diff --git a/exercicios/09/README.org b/exercicios/09/README.org new file mode 100644 index 0000000..12fedec --- /dev/null +++ b/exercicios/09/README.org @@ -0,0 +1,102 @@ +#+title: Curso Básico da Linguagem C +#+subtitle: Exercícios +#+author: Blau Araujo +#+startup: show2levels +#+options: toc:3 + +* Exercícios da aula 9: Argumentos e ambiente + +- [[../../aulas/09-args/README.org][Anotações da aula]] +- [[https://youtu.be/uufnW60rg2Q][Vídeo]] + +** 1. Desafio: Programa =listenv= + +Crie um programa que liste as variáveis exportadas para seu ambiente de duas +formas: + +*Sem argumentos:* lista todas as variáveis no ambiente... + +#+begin_example +:~$ listenv +#+end_example + +*Com nomes de variáveis:* lista apenas os valores das variáveis informadas... + +#+begin_example +:~$ listenv VAR1 VAR2 ... +#+end_example + +Para cada variável inexistente passada como argumento, imprimir na saída +padrão de erros (=stderr=)... + +#+begin_example +:~$ listenv SHELL VAR2 VAR3 +/bin/bash +VAR2 não está definida no ambiente +VAR3 não está definida no ambiente +#+end_example + +** 2. Desafio: Programa =tconv= + +Crie um programa que converta temperaturas segundo a sintaxe abaixo: + +#+begin_example +tconv 23.4c Converte 23.4 graus Celsius para Fahrenheit +tconv 100f Converte 100 graus Fahrenheit para Celsius +#+end_example + +#+begin_quote +A unidade deve ser indiferente à caixa de texto (~f = F~, ~c = C~). +#+end_quote + +** 3. Desafio: Programa =2fer= + +Crie um programa que, para cada =NOME= recebido como argumento, imprima: + +#+begin_example +Um para NOME, um para mim. +#+end_example + +Se nenhum nome for passado, imprimir: + +#+begin_example +Um para você, um para mim. +#+end_example + +** 4. Desafio: Programa =fatp= + +Escreva um programa que imprima os fatores primos de um número inteiro positivo +maior do que 1 recebido como argumento. + +#+begin_example +:~$ fatp 90 +2 3 3 5 +:~$ fatp 36 +2 2 3 3 +:~$ fatp 43 +43 é primo! +#+end_example + + +** 5. Desafio: Programa =round= + +Escreva um programa que, recebendo um número com ponto flutuante como argumento, +faça o seu arredondamento das seguintes formas: + +#+begin_example +:~$ round 2.5 +3 +:~$ round 2.4 +2 +:~$ round -c 2.3 +3 +:~$ round -f 2.9 +2 +:~$ round -t 2.6 +2 +#+end_example + +#+begin_quote +As opções =-t= (/truncate/), =-f= (/floor/) e =-c= (/ceil/) podem ser escritos antes ou +depois do número. As opções =-t= e =-f= são sinônimas. +#+end_quote