mirror of
https://gitlab.com/blau_araujo/cblc.git
synced 2025-05-10 02:26:36 -03:00
exercícios da aula 1
This commit is contained in:
parent
0e0e8827e4
commit
2fc5d363b9
2 changed files with 97 additions and 1 deletions
|
@ -19,6 +19,6 @@ qualquer distribuição.
|
|||
** Anotações e vídeos
|
||||
|
||||
- 10.03.2025 [[./aulas/00-intro/README.org][Aula 0: Sobre o curso]] ([[https://youtu.be/RZmfuuABTHY][vídeo]])
|
||||
- 12.03.2025 [[./aulas/01-historia/README.org][Aula 1: História]] ([[https://youtu.be/wqJQL5W9FIw][vídeo]])
|
||||
- 12.03.2025 [[./aulas/01-historia/README.org][Aula 1: História]] ([[https://youtu.be/wqJQL5W9FIw][vídeo]]) ([[./exercicios/01/README.org][exercícios]])
|
||||
- 14.03.2025 [[./aulas/02-dados-e-instrucoes/README.org][Aula 2: Dados e instruções]] ([[https://youtu.be/2KsvRJjshQ0][vídeo]])
|
||||
|
||||
|
|
96
exercicios/01/README.org
Normal file
96
exercicios/01/README.org
Normal file
|
@ -0,0 +1,96 @@
|
|||
#+title: Curso Básico da Linguagem C
|
||||
#+subtitle: Exercícios
|
||||
#+author: Blau Araujo
|
||||
#+startup: show2levels
|
||||
#+options: toc:3
|
||||
|
||||
* Aula 1: História
|
||||
|
||||
- [[../aulas/01-historia/README.org][Anotações da aula]]
|
||||
- [[https://youtu.be/wqJQL5W9FIw][Vídeo]]
|
||||
|
||||
** 1. Pesquise e explique
|
||||
|
||||
As classificações abaixo são utilizadas para descrever as características da
|
||||
linguagem C: pesquise e explique cada uma delas.
|
||||
|
||||
- Linguagem de alto nível;
|
||||
- Linguagem compilada;
|
||||
- Linguagem procedural;
|
||||
- Linguagem imperativa;
|
||||
- Linguagem estruturada.
|
||||
|
||||
** 2. Analise o programa
|
||||
|
||||
Dado o programa abaixo ([[../aulas/01-historia/salve.c][salve.c]]), explique cada uma perguntas nos comentários.
|
||||
|
||||
#+begin_src c
|
||||
#include <stdio.h> // O que é isso e para que serve?
|
||||
|
||||
// Por que todo o programma é escrito na função 'main()'?
|
||||
int main(void) {
|
||||
|
||||
puts("Salve, simpatia!"); // O que faz e como se usa a função 'puts()'?
|
||||
|
||||
return 0; // Para que serve esta instrução?
|
||||
}
|
||||
#+end_src
|
||||
|
||||
** 3. Compile, encontre, explique e corrija os bugs
|
||||
|
||||
O uso de /números mágicos/ (valores literais que não dão pistas de seus
|
||||
significados) é desaconselhado porque dificultam a leitura semântica do
|
||||
código. Sendo assim, nós utilizaremos a constante simbólica =EXIT_SUCCESS=,
|
||||
definida na biblioteca padrão com valor =0=, em vez do inteiro literal =0= como
|
||||
argumento da instrução =return=:
|
||||
|
||||
#+begin_src c
|
||||
#include <stdio.h>
|
||||
|
||||
int main(void) {
|
||||
puts("Salve, simpatia!");
|
||||
return EXIT_SUCCESS
|
||||
}
|
||||
#+end_src
|
||||
|
||||
Observe o resultado da compilação:
|
||||
|
||||
#+begin_example
|
||||
:~$ gcc salve.c -o salve
|
||||
#+end_example
|
||||
|
||||
- Quantos *erros* foram encontrados e quais são eles?
|
||||
- Quais são as correções sugeridas pelo =gcc=?
|
||||
- Como ficou o código corrigido?
|
||||
|
||||
** 4. Compile, pesquise e responda
|
||||
|
||||
Dado o código abaixo (por exemplo, =main.c=):
|
||||
|
||||
#+begin_src c
|
||||
#define EXIT_SUCCESS 0
|
||||
|
||||
int puts(const char *string);
|
||||
|
||||
int main(void) {
|
||||
puts("Salve, simpatia!");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
#+end_src
|
||||
|
||||
Compilação:
|
||||
|
||||
#+begin_example
|
||||
:~$ gcc main.c
|
||||
:~$
|
||||
#+end_example
|
||||
|
||||
- Nenhum erro foi reportado, mas por quê?
|
||||
- Como você executaria o binário resultante?
|
||||
|
||||
** 5. Pesquise e responda
|
||||
|
||||
Quando não explicitamos a especificação utilizada para compilar o nosso programa
|
||||
(opção ~-std=PADRÃO~ do =gcc=), qual será o padrão utilizado e como podemos
|
||||
confirmar isso pela linha de comandos?
|
||||
|
Loading…
Add table
Reference in a new issue