diff --git a/exercicios/05/README.org b/exercicios/05/README.org new file mode 100644 index 0000000..e1a8d4c --- /dev/null +++ b/exercicios/05/README.org @@ -0,0 +1,88 @@ +#+title: Curso Básico da Linguagem C +#+subtitle: Exercícios +#+author: Blau Araujo +#+startup: show2levels +#+options: toc:3 + +* Exercícios da aula 4: Variáveis e ponteiros + +- [[../aulas/05-controle/README.org][Anotações da aula]] +- [[https://youtu.be/9dvDL7FbYKY][Vídeo]] + + +** 1. Desafio: caracteres alfanuméricos ASCII + +Crie um programa que produza a seguinte saída: + +#+begin_example +====================================================== +DEC OCT HEXA CHR | DEC OCT HEXA CHR | DEC OCT HEXA CHR +-----------------+------------------+----------------- + 48 60 0x30 0 | 65 101 0x41 A | 97 141 0x61 a + 49 61 0x31 1 | 66 102 0x42 B | 98 142 0x62 b + 50 62 0x32 2 | 67 103 0x43 C | 99 143 0x63 c + 51 63 0x33 3 | 68 104 0x44 D | 100 144 0x64 d + 52 64 0x34 4 | 69 105 0x45 E | 101 145 0x65 e + 53 65 0x35 5 | 70 106 0x46 F | 102 146 0x66 f + 54 66 0x36 6 | 71 107 0x47 G | 103 147 0x67 g + 55 67 0x37 7 | 72 110 0x48 H | 104 150 0x68 h + 56 70 0x38 8 | 73 111 0x49 I | 105 151 0x69 i + 57 71 0x39 9 | 74 112 0x4a J | 106 152 0x6a j + | 75 113 0x4b K | 107 153 0x6b k + | 76 114 0x4c L | 108 154 0x6c l + | 77 115 0x4d M | 109 155 0x6d m + | 78 116 0x4e N | 110 156 0x6e n + | 79 117 0x4f O | 111 157 0x6f o + | 80 120 0x50 P | 112 160 0x70 p + | 81 121 0x51 Q | 113 161 0x71 q + | 82 122 0x52 R | 114 162 0x72 r + | 83 123 0x53 S | 115 163 0x73 s + | 84 124 0x54 T | 116 164 0x74 t + | 85 125 0x55 U | 117 165 0x75 u + | 86 126 0x56 V | 118 166 0x76 v + | 87 127 0x57 W | 119 167 0x77 w + | 88 130 0x58 X | 120 170 0x78 x + | 89 131 0x59 Y | 121 171 0x79 y + | 90 132 0x5a Z | 122 172 0x7a z +====================================================== +#+end_example + +** 2. Desafio: dias da semana + +Pesquise e crie um programa que receba um número inteiro entre 1 e 7 como +argumento e imprima o nome do dia correspondente da semana. + +*Requisitos:* + +- Utilize uma estrutura =switch= para resolver o problema. +- Se o número não estiver no intervalo de 1 a 7, o programa deve imprimir + =Número inválido=. +- Se não houver argumentos, a mensagem deve ser =Número incorreto de argumentos=. +- Em ambos os casos anteriores, o programa deve terminar com erro. +- Se o argumento recebido for =-h=, o programa deve exibir uma mensagem de uso + e terminar com sucesso. + +*Dicas:* + +Para receber argumentos, os parâmetros da função =main= devem ser (nesta ordem): + +- =int argc= - Número de argumentos recebidos. +- =char **argv= - Vetor de palavras (/strings/) recebidas como argumentos. + +Cada palavra no vetor =argv= pode ser acessada com =argv[N]=, onde =N= +é o índice do argumento acessado. + +O primeiro argumento (=argv[0]=) sempre será a invocação do programa. + +Todo argumento é recebido como uma string, inclusive os numéricos. + +** 3. Desafio: conversão de base 10 para 16 e vice-versa + +Crie um programa que receba um inteiro como argumento e imprima... + +- Se o número começar com =0x=, da base 16 para a base 10. +- Se começar com um inteiro diferente de =0=, da base 10 para 16. + + + +