Professional Documents
Culture Documents
Programao II
(Licenciatura em Engenharia Ambiente e Engenharia e Gesto Industrial)
Exerccio 1
i) Defina uma estrutura de dados que permita armazenar as notas obtidas por 30 alunos de uma
turma, a uma determinada disciplina.
ii) Elabore funes que permitam:
a) Efectuar a leitura das notas obtidas pelos 30 alunos.
b) Calcular e devolver a mdia das notas obtidas pelos 30 alunos.
iii) Elabore um programa que:
Efectue a leitura das notas obtidas pelos 30 alunos;
Calcule a mdia das notas;
Escreva no ecr todas as notas superiores mdia.
Resoluo
i) int notas[30];
ii)
a)
void leitura_notas (int not[])
{
int i;
for (i=0;i<MAX_ALUNOS;i++)
do
{
printf("Introduza a nota do aluno %d: ",i+1);
scanf("%d",¬[i]);
} while (not[i]<0 || not[i]>20);
}//leitura_notas
pg 1/6
b)
float media(int n[])
{
float med;
int i, soma=0;
for (i=0;i<MAX_ALUNOS;i++)
soma+= n[i];
med=(float)soma/MAX_ALUNOS;
return(med);
}//media
iii)
#include<stdio.h>
#include<conio.h>
#define MAX_ALUNOS 30
void leitura_notas (int not[]);
float media(int n []);
void main()
{
int notas[MAX_ALUNOS],i;
float m ;
leitura_notas(notas);
m = media(notas);
for (i=0;i<MAX_ALUNOS;i++) //verifica quais as notas que so
if (notas[i]>m)
// superiores mdia
printf( O aluno n %d tem nota superior
%d\n,i+1,notas[i]);
getch();
media
Exerccio 2
A empresa de aviao Pequenos Mas Eficientes possui apenas um pequeno jacto com uma
capacidade mxima de 7 passageiros e pretende um programa que permita as opes:
R Reserva de lugar no jacto
T Total de lugares disponveis e respectivos nmeros
P Percentagem de ocupao do jacto
S Sair
i)
Defina uma estrutura de dados que permita armazenar a informao acerca dos 7 lugares do jacto
(ou seja, para cada lugar a informao se este se encontra livre ou ocupado).
ii)
pg 2/6
Exerccio 3
O clube de atletismo de Leiria vai organizar uma corrida de 5km, onde participaro 18 atletas.
Pretende-se elaborar um programa em C para registar os resultados do evento. Para auxiliar o clube
nessa tarefa responda s seguintes alneas:
a) Que estrutura dever utilizar para armazenar os tempos gastos por todos os atletas? Declare essa
estrutura em C. Assuma que os tempos so dados em segundos.
b)
Elabore a funo ler_tempos, que efectua a leitura dos tempos de todos os atletas.
c) Elabore a funo media, que calcula o tempo que os atletas levaram em mdia, a completar a
prova.
d) Elabore a funo vencedor, que mostra o tempo e o nmero do atleta vencedor. A funo deve
tambm mostrar a diferena de tempo entre o tempo do vencedor e a mdia dos concorrentes.
e) Elabore a funo tempo_inferior, que mostre o nmero e o tempo de cada um dos atletas que
tiveram um tempo inferior mdia.
f) Elabore uma funo menu que apresente ao utilizador as seguintes opes:
L Ler tempos
V Vencedor
I Tempos inferiores mdia
S - Sair
g) Escreva o programa que permita ao clube de atletismo fazer a gesto dos tempos dos atletas numa
prova.
Exerccio 4
O clube de atletismo de Leiria vai organizar um Campeonato de Atletismo para os seus 18 atletas.
Esse campeonato consiste numa srie de 10 corridas de 5km cada. Pretende-se elaborar um programa
em C para registar os resultados desse campeonato. Para auxiliar o clube nessa tarefa responda s
seguintes alneas:
a) Que estrutura dever utilizar para armazenar os tempos gastos por todos os atletas em todas as
corridas? Declare essa estrutura em C. Assuma que os tempos so dados em segundos.
b)
Elabore a funo ler_tempos, que efectua a leitura dos tempos de todos os atletas, numa
determinada corrida.
pg 3/6
c) Elabore a funo media, que calcula o tempo que os atletas levaram em mdia, a completar uma
determinada prova.
d) Elabore a funo vencedor, que mostra o tempo e o nmero do atleta vencedor numa determinada
corrida. A funo deve tambm mostrar a diferena de tempo entre o tempo do vencedor e a
mdia dos concorrentes nessa corrida.
e) Elabore a funo tempo_inferior, que mostre o nmero e o tempo de cada um dos atletas que
tiveram um tempo inferior mdia numa determinada corrida.
f) Elabore uma funo tempo_inferior2 que, para cada uma das 10 corridas indique o nmero e o
tempo de cada um dos atletas com tempo inferior mdia nessa corrida.
g) Elabore a funo media_corridas, que mostre a mdia que um determinado atleta obteve nas 10
corridas.
h) Elabore uma funo menu que apresente ao utilizador as seguintes opes:
L Ler tempos
V Vencedor
I Tempos inferiores mdia
M Mdia de um atleta em todas as corridas
S - Sair
i)
Escreva o programa que permita ao clube de atletismo fazer a gesto dos tempos dos atletas
durante as provas.
pg 4/6
e) Funo main() que permita executar o programa indicado. Aqui dever criar a estrutura de dados
que permita armazenar a informao sobre as viaturas, inicializando-a correctamente.
1
C
L
P
2
C
L
M
3
C
P
M
4
A
P
P
31
V
N
F
NOTA: os valores representados na matriz anterior servem apenas para exemplificar a forma de
armazenamento na matriz, pelo que na realidade podero no ser os indicados.
pg 5/6
Exerccio 7
Construa um programa que obtenha os elementos de duas matrizes quadradas (NxN) com a
dimenso mxima de 10 e que efectue as seguintes operaes: soma, subtraco, produto, clculo
transposta e soma dos elementos da diagonal principal. Para facilitar a estruturao e elaborao
do programa dever efectuar as seguintes funes:
lerdim Obtm a dimenso da matriz (N).
lerMatriz Obtm os valores que compem uma matriz NxN.
escreveMatriz imprime no monitor o contedo de uma matriz NxN.
somaMatrizes Calcula a soma de duas matrizes NxN.
subMatrizes Calcula a subtraco de duas matrizes NxN.
multiMatrizes Calcula o produto de duas matrizes NxN.
somadiag Calcula a soma dos elementos da diagonal principal de uma matriz NxN.
transpMat Calcula a transposta de uma matriz NxN.
Menu - Mostra o seguinte menu:
(A)ltera Matriz
(S)oma Matrizes
S(u)btraco Matrizes
(M)ultiplicao Matrizes
Soma (D)iagonal
(T)ranspe Matriz
(S)air
Exerccio 8
Escreva um programa em C, que leia o seu nome a partir do teclado e execute o seguinte conjunto de
operaes:
a) Escreva no ecr as suas iniciais;
b) Indique por quantos nomes prprios constitudo o seu nome;
c) Escreva o seu nome da seguinte forma: Apelido, Nome.
pg 6/6