From 1c7d9ac2765848abc14861bd50f29c4fcdb404a1 Mon Sep 17 00:00:00 2001 From: Blau Araujo Date: Fri, 14 Mar 2025 08:03:17 -0300 Subject: [PATCH] =?UTF-8?q?Exerc=C3=ADcios=20da=20aula=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exercicios/01/README.org | 2 +- exercicios/02/README.org | 125 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 exercicios/02/README.org diff --git a/exercicios/01/README.org b/exercicios/01/README.org index c4150b0..70aac9a 100644 --- a/exercicios/01/README.org +++ b/exercicios/01/README.org @@ -4,7 +4,7 @@ #+startup: show2levels #+options: toc:3 -* Aula 1: História +* Exercícios da aula 1: História - [[../aulas/01-historia/README.org][Anotações da aula]] - [[https://youtu.be/wqJQL5W9FIw][Vídeo]] diff --git a/exercicios/02/README.org b/exercicios/02/README.org new file mode 100644 index 0000000..3ed6ada --- /dev/null +++ b/exercicios/02/README.org @@ -0,0 +1,125 @@ +#+title: Curso Básico da Linguagem C +#+subtitle: Exercícios +#+author: Blau Araujo +#+startup: show2levels +#+options: toc:3 + +* Exercícios da aula 2: Dados e instruções + +- [[../aulas/02-dados-e-instrucoes/README.org][Anotações da aula]] +- [[https://youtu.be/2KsvRJjshQ0][Vídeo]] + + +** 1. Pesquise e responda + +- Quais são as finalidades da função =printf=? +- Em que cabeçalho da =glibc= ela é declarada? +- Quantos argumentos ela recebe? +- Como fazer para que a saída imprima quebras de linha? +- Para que servem os especificadores de formato =%d=, =%s=, =%c= e =%f=? + +** 2. Operações aritméticas + +Escreva um programa que, dado um valor inteiro associado à variável =num=, +calcule e imprima os resultados das seguintes operações: + +- =num= multiplicado por 15; +- =num= somado a =42=; +- =123= menos =num=; +- Divisão de =num= por =5=; +- Resto da divisão de =num= por =5=. + +Esquema geral da saída do programa: + +#+begin_example +NUM x 15 = VALOR +NUM + 42 = VALOR +123 - NUM = VALOR +NUM / 5 = VALOR +RESTO DE NUM / 5 = VALOR +#+end_example + +** 3. Números mágicos + +O uso de valores literais sem um significado óbvio (/números mágicos/) é uma +prática indesejável, mas pode ser evitada de várias formas. Sendo assim, +analise as situações abaixo e proponha uma solução. + +*Caso 1:* Propriedades de círculos + +Meu programa tem funções para calcular a área e o perímetro de um círculo +cujo raio (um inteiro) é recebido como argumento: + +#+begin_src c +#include ... + +float circ_perim(int raio) { + /* Circunferência = 2πr */ + return 2 * 3.14 * raio; +} + +double circ_area(int raio) { + /* Área = πr² */ + return 3.14 * raio * raio; +} + +int main(void) { ... } +#+end_src + +*Caso 2:* Multiplicador constante + +No meu programa, todas as operações aritméticas envolvem a multiplicação +de um valor por =10=. + +#+begin_src c +#include + +int main(void) { + int num1 = 13; + int num2 = 29; + + printf("%d x %d = %d\n", num1, 10, num1 * 10); + printf("%d x %d = %d\n", num1 + num2, 10, (num1 + num2) * 10); + printf("%d x %d = %d\n", num2, 10, num2 * 10); +} +#+end_src + +** 4. Compile, corrija e responda + +Dado o programa abaixo (por exemplo, =main.c=)... + +#+begin_src c +#include + +int main(void) { + char *fmt = "Circunferência de um círculo de raio %d: %.2f\n"; + printf(fmt, r, circ_perim(r)); + return 0; +} + +float circ_perim(int raio) { + /* Circunferência = 2πr */ + return 2 * 3.14 * raio; +} +#+end_src + +- Qual foi o erro encontrado na compilação? +- Por que esse erro aconteceu? +- Qual foi a solução adotada? +- A sua solução é a única possível? +- Se não for, cite outras possibilidades. + +** 5. Pesquise e responda + +Pesquise, entre as funções da =glibc=, aquelas que podem solucionar os problemas +abaixo e demonstre como elas podem ser utilizadas. + +- Pausar a execução do programa por 10 segundos. +- Apenas imprimir uma quebra de linha. +- Ler um número inteiro interativamente e atribuí-lo a uma variável. +- Imprimir um número inteiro decimal em base 8 e base 16. +- Terminar a execução do programa com um valor de estado de término. + + + +