Você está na página 1de 6

Faculdade de Engenharia

Universidade Católica de Angola

Correcção da prova de Fundamentos de programação I -Turma A e B


1ª Questão [ 4 Pontos ]
Dado uma turma com n alunos. Desenvolva um programa em C para determinar por
sexo, a nota mais alta, a nota mais baixo, e a nota média. O programa também deve
determinar a percentagem de alunos do sexo masculino e feminino.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int totalunos, thomens=0, tmulheres=0, contador= 1,
float nota_alta_homem=0.0, nota_baixa_homem= 21.0, nota_media_homem;
float nota_alta_mulher=0.0, nota_baixa_mulher= 21.0, nota_media_mulher;
float soma-nota-homem = 0,0, soma_nota_mulher=0,0; nota;
char sexo;

printf( "\n Entre com um numero de alunos :");


scanf( " %d ", &totalunos);
while ( totalunos <= 0)
{
printf( "\n ERRO: numero invalido!. Entre com o numero de pessoas :");
scanf( " %d ", &totalunos);
}
while ( contador < totalunos)
{
printf(" \n Entre com o sexo e a nota do aluno ");
scanf(" %c %d ",&sexo,&nota);
if ( sexo == 'M')
{
tmulheres++;
soma_nota_mulher += nota;
if ( nota > nota_alta_mulher) nota_alta_mulher = nota;
if ( nota < nota_baixa_mulher) nota_baixa_mulher = nota;
contador ++;
}
if ( sexo == 'H')
{
thomens++;
soma_nota_homem += nota;
if ( nota > nota_alta_homem) nota_alta_homem = nota;
if ( nota < nota_baixa_homem) nota_baixa_homem = nota;
contador ++;
}
}
printf(" \n Nota mais alta mulheres %f ",nota_alta_mulher);
printf(" \n Nota mais baixa mulheres %f ",nota_baixa_mulher);
printf(" \n Nota media das mulheres %f", soma_nota_mulher/tmulheres);

printf(" \n Nota mais alta homens %f ",nota_alta_homem);

1
printf(" \n Nota mais baixa homens %f ",nota_baixa_homem);
printf(" \n Nota media das homens %f", soma_nota_homem/thomens);

printf(" \n percentagens de homens %c " (thomens*100)/totalunos);


printf(" \n percentagens de mulheres %c " (tmulheres*100)/totalunos);

system("PAUSE");
return 0;
}

2ª Questão[4 Pontos]

Dado o segmento de código:

int num, ct1= 0, ct2 = 0;


float alt, m1 = -1.0; m2 = -1.0;
scanf(" %d %f ", &num,&alt);
while(num > 0)
{ if (alt > m1)
{ m2 = m1; ct2 = ct1; m1 = alt; ct1 = 1; }
else if (alt = m1)
ct1 ++;
else if (alt > m2)
{ m2 = alt; ct2 = 1; }
else if (alt = m2)
ct2++;
scanf(" %d %f ",&num,&alt);
}
printf( " %d %d %d %d ",m1,ct1,m2,ct2);

Faça a simulação passo a passo deste segmento de código para os seguintes dados:

(10 1.75) (12 1.70) (22 1.70) (23 1.45) (32 1.75) (5 1.85) (4 1.70)
(16 1.75) (33 1.65) (36 1.75) (44 1.55) (38 1.85) (8 1.75) (0 1.90)

Num alt ct1 ct2 m1 m2


0 0 -1 -1
10 1.75 1 0 1.75 -1
12 1.70 1 1.70
22 1.70 2
23 1.45
32 1.75 2
5 1.85 1 1.85 1.75
4 1.70
16 1.75 3
33 1.65
36 1.75 4
44 1.55
38 1.85 2
8 1.75 5
0

2
3ª Questão[ 4 Pontos ]

Dado três números inteiros necessariamente diferentes. Desenvolva um programa em


C para calcular e mostrar o maior e o menor número. OBS: Não pode utilizar
condições compostas.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c, maior, menor;
if ( a > b )
if ( a > c)
{
maior = a;
if ( b > c)
menor = c;
else
menor = b;
}
else
{
maior = c;
if ( a > b)
menor = b;
else
menor = a;
}
else if ( b > c)
{
maior = b;
if ( a > c)
menor = c;
else
menor = a;
}
else
{
maior = c;
if ( a > b)
menor = b;
else
menor = a;
}
printf( " \n Maior valor /d Menor valor %d ", maior,menor);
system("PAUSE");
return 0;
}

4ª Questão[4 Pontos]
Dado um número indeterminado artigos. Desenvolva um programa em C, que leia o
código e o preço desses artigos e devolva um novo preço com base na seguinte
tabela:

3
Intervalo Arredondamento
0.1 <= Casa Decimal <= 0.24 0.25
0.24 < Casa Decimal <=0.49 0.50
0.50 < Casa Decimal <= 0.74 0.75
0.75< Casa Decimal <=0.99 1.0

#include <stdio.h>
#include <stdlib.h>
#define SENTINELA 0
int main()
{
int codigo, parte_inteira;
float preco, parte_fracio;
printf(" \n Entre com o codigo do artigo");
scanf( "%d",&codigo);
while ( codigo != SENTINELA)
{
printf(" \n Entre com o preco do artigo: ")
scanf(" %f ",&preco);
parte_inteira = (int)preco;
parte_fracio = preco - parte_inteira;
if ( parte_fracio <= 0.24 )
preco = parte_inteira + 0.25;
else if ( parte_fracio <= 0.49 )
preco = parte_inteira + 0.50;
else if ( parte_fracio <= 0.74)
preco = parte_inteira + 0.75;
else
preco = parte_inteira + 1;

printf(" \n novo preco %f", preco);


printf(" \n Entre com o codigo do artigo: ");
scanf(" %d",&codigo);
}
}

5ª Questão[ 4 Pontos ]
O Departamento de viação e trânsito compilou dados de acidentes na província de
Luanda. Para cada motorista envolvido num acidente foi lançado uma informação no
computador com os seguintes dados: ano de nascimento, sexo (1-Masculino, 2-
Feminino), Nível escolar ( 1-Universitário, 2- Médio e 3- Básico), estado do motorista (
1-Embriagado , 2-Não embriagado), código da carta de condução (1-Luanda, 2-
Restantes províncias e 3-Estrangeiros) Desenvolva um programa em C, sem
condições compostas, para ler um conjunto de dados e imprimir as seguintes
estatísticas:

a) Quantidade de mulheres com formação universitária, encartadas, idade entre 20 e


35 anos no estado embriagado.
b) Quantidade de homens com formação média ou básica, idade superior aos 40 anos,
não estrangeiros, com carta de condução tirada em Luanda e embriagados.
c) Deve mostrar também a percentagem que cada grupo representa em relação à
quantidade de acidentes.

4
Vamos deixar essa questão para estudo. Mostraremos a seguir a resolução de um
exercício muito parecido. Estude.

Uma agência de modelos possui um conjunto de fichas com dos seus manequins.
Cada manequim possui a seguinte informação: código do manequim, sexo (1=
homens 0= mulheres), idade, altura em centímetros, peso em quilogramas, cor dos
olhos (1=azuis 2=verdes 3= castanhos), cor do cabelo (1=preto, 2= loiro, 3= ruivo, 4=
castanho). Desenvolva um programa que não utiliza composição de condições para
imprimir:

- Quantidade de mulheres loiras com olhos azuis ou verdes, altura entre 1,70 à 1,75
metros com peso inferior a 70 kg.
- Quantidade de homens com cabelos castanhas, altura superior a 1,80 metros e peso
entre 78 kg a 85 kg.

#include <stdio.h>
#include <stdlib.h>
#define SENTINELA 0
int main()
{
int sexo,codigo,idade,altura,peso cabelos,olhos,nmulhres= 0; nhomens= 0;
printf(" \n Entre com o numero do manequim : ");
scanf(" %d ",codigo);
while (codigo != SENTINELA)
{
printf("\n Entre com os restantes dados do manequin ");
scanf( " %d %d %d ",&sexo,&idade,&altura);
scanf(" %d %d %d ",&peso,&olhos,&cabelos);
if (sexo == 0)
{
if (altura <= 170)
if (altura <=175)
if (peso < 70)
if (olhos == 1)
nmulheres++;
else if ( olhos == 2 )
nmulhres++;
}
else if (sexo == 1)
{
if (altura > 180)
if ( peso >= 78)
if (peso <= 85)
if ( cabelos == 4)
nhomens++;
}
printf(" \n Entre com o numero do manequim : ");
scanf(" %d ",codigo);
}
printf(" \n Numero de homens : %d ",nhomens);
printf("\n Numero de mulheres: %d",nmulheres);
system("PAUSE");
return 0;
}

5
Luanda aos 29 de Maio de 2013

Engº Manuel Menezes


Prof . Auxiliar

Você também pode gostar