Escrever o programa de exemplo no quadro. Aproveitar para ir descrevendo em que é que consiste. Estrutura básica de um programa, noção de variável, instruções, expressões, definições, inserção e extracção de canais.
O primeiro exercício serve para os alunos verificarem na prática a ordem de execução das instruções.
2.a) Por analogia com o exemplo. Ver ex2a.C
.
2.b) Basta substituir int
por double
(ou float
ou long double
). Ver ex2b.C
.
2.c) Solução ingénua. Ver ex2c.C
.
2.d) Solução melhorada. Ver ex2d.C
.
A maior parte dos noviços da programação tem muitos problemas neste
passo. É o primeiro em que se usa raciocínio algorítmico. É
conveniente apelar à sua intuição, afastando-os um pouco do computador
(desligando o ecrã). Fazer uma analogia com encher um tanque a partir de
uma fonte (c/ torneira) usando um copo. Depois passar para um computador
de papel e lápis, em que eles são o computador e têm apenas duas folhas de
papel disponíveis, podendo apenas escrever um número de cada vez em cada
uma. O docente pode fazer de teclado. Pode-se fazer um pequeno
teatro.
2.e) Solução usando ciclos. Ver ex2e.C
.
Aqui o problema para os noviços é semelhante. Convém talvez que eles
façam o traçado de um ciclo simples, para escrever todos os inteiros entre 0 e
10 exclusive.
3. Ver ex3.C
.
4.a) Não funciona porque 2147483647 é
o maior dos int
numa máquina Linux de arquitectura Intel.
4.b) Não funciona como expectável porque
os float
não têm precisão suficiente para guardar o
inteiro 2147483647. Ver ex4b.C
.
4.c) Como seria de esperar, porque a precisão do
tipo double
o permite, o programa funciona. Ver ex4c.C
.
5. A constante x
tem de passar a variável.
Além disso é escusado inicializá-la. Ver ex5.C
.
6. A primeira versão é interpretada pelo compilador como
(cout << x) < (y << endl);
pois o operador <<
tem maior precedência
que o operador >
. Ver ex6.C
(incompleto).
7.a) Ver ex7a.C
. Note-se que int(c)
devolve o código
do caractere c
como um inteiro. Note-se ainda que cin.get(c)
lê um caractere do teclado coloca o seu código em c
.
A solução com cin >> c
descarta todos os espaços,
tabuladores e fins-de-linha que encontrar antes do caracter, e por isso
o utilizador não conseguirá saber o código do caractere
espaço ' '
.
7.b) Ver ex7b.C
. Nota
para os alunos: Que acontece se o caractere introduzido
for uma letra maiúscula? E se não for uma letra de
todo? Experimente...
7.c) Ver ex7c.C
. Nota
para os alunos: Que acontece se o caractere introduzido
for 'z' ou 'Z'? E se não for uma letra de
todo? Experimente... Tente fazer surgir a letra 'a'.
8. Ver ex8.C
.