Programação Imperativa
Aula Prática 7
Sumário
-
Programas com utilização de arrays.
-
Programas com ponteiros.
1.
Escreve um programa que atribuí números aleatórios
a um array de duas dimensões de 5 por 4 elementos e que apresenta
esses números no ecrã por colunas.
2.
Altera o programa anterior de forma a que apresente também o
maior e o menor dos números aleatórios.
3.
Escreve um programa que ordena uma lista de N números. N pode
ir no máximo até 100.
4.
Escreve um programa que registe o sexo e a idade de um grupo de dez
pessoas. Em seguida o programa deve apresentar a média das idades
de cada sexo.
5.
O programa a seguir usa a técnica de passagem por valor.
Muda o programa de forma a usar a técnica de passagem por referência.
Qual será o output do programa antes e após esta mudançã?
código original:
#include <stdio.h>
int twotimesx(int x)
{
x = 2*x;
return(x);
}
void main()
{
int a, b;
a = 10.0;
b = twotimesx(a);
printf("%a", a);
} |
código modificado: |
(aula relevante: 15)
6.
Escreve uma função que recebe como parâmetros a
largura e comprimento de um rectângulo. A função deve
calcular e devolver os seguintes pontos
1: a área do rectângulo (lado vezes lado).
2: o perímetro (somar os quatro lados).
A função não pode usar variáveis globais!
(Nota: porque a informação a retornar são dois
valores, temos de usar ponteiros (passagem por referência). Veja
aulas 15 e 14.)
7.
void double10(double *dp)
{
*dp = 10.0;
}
void main()
{
float y=10.0;
float x=10.0;
double10((double *) &x);
printf("%f %f\n", x, y);
}
O programa acima não corre bem (o output não será
10.0
10.0). Experimente e elimine o erro.
(aula relevante: 15)
8.
Na aula prática 3, o exercicío 8 consistia no seguinte:
Faz um programa que receba 10 valores inteiros e que indique: Quantos são
pares, quantos são ímpares, quantos são positivos
e quantos são negativos. Volta a escrever o programa, utilizando
arrays.
9.
Volta a fazer o exercício de contar 0s e 1s de um byte binário,
com arrays.
10.
Volta a fazer o exercício de converter um número decimal
para binário, com arrays.
11.
Faz um programa que apresente uma tabela de conversão de decimal
para binário:
0
0
1
1
2
01
3
11
4
100
...
...
12.
Now safe your work and crash the computer with the following program:
#include <stdlib.h>
void main()
{
int i;
int *p;
for (i=0; i<=10000; i++)
{
p = (int *) rand();
*p = 0;
}
}
(Running this program is at your own risk. It
will crash the computer and in some cases it can destroy the operating
system and in extreme cases even the hardware)