Recapitulação - Grade de Calendário
Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 11 de 56.
Desafio
MédioLeia três números inteiros de três linhas: days (o total de dias em um mês, de 28 a 31), start_dow (0 = Segunda-feira … 6 = Domingo, o dia da semana em que cai o dia 1º) e cols (o número de colunas a serem impressas).
Imprima uma grade de calendário:
- Preencha a primeira linha com entradas
--até que o dia da semana se alinhe (um--por slot inicial) - Imprima cada dia de
1atédays, com dois caracteres de largura (use um espaço à esquerda para dias de um único dígito, por exemplo,1,10) - Use um único espaço entre as células em uma linha
- Quebre para uma nova linha após cada
colsentradas (incluindo o preenchimento)
Para a entrada 30 / 2 / 7, a saída é:
-- -- 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30Experimente você mesmo
let days = Int(readLine()!)!
let startDow = Int(readLine()!)!
let cols = Int(readLine()!)!
// TODO: construir um array plano de células ("--" + strings de dias),
// depois imprimir as linhas de `cols` células unidas por um único espaço
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Contagem e ÍndicesCase e TrimBusca em StringsDivisão e JunçãoSubstituindo SubstringsRecapitulação - Verificação de Nome de Usuário4Conjuntos
Criando ConjuntosUnião e InterseçãoSubtração e Diferença SimétricaSubconjunto e SuperconjuntoRecapitulação - Filtro de Tags7Projeto - Monitor de Hábitos
Visão Geral do ProjetoMarcar como Concluído10Projeto - Mecanismo de Quiz
Visão Geral do ProjetoFazer Perguntas2Intervalos e Strides
Fechado vs Meio-AbertoStrideMétodos de IntervaloIntervalos no SwitchRecapitulação - Grade de Calendário5Funções de Ordem Superior Parte 1
MapFilterReduceEncadeando map, filter, reduceRecapitulação - Estatísticas de Palavras