Prévia do material em texto
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
Avaliação Obrigatória para A1.
Valor: até 5.0pts da Atividade Individual Avaliativa (AIA) de A1.
Data Limite de envio pelo Sistema Canvas: 06/05/2021 – 23:59hs.
O arquivo deverá ser entregue em documento do Word, conforme este modelo.
Não serão aceitos arquivos compactados.
Identificação do trabalho para envio: PRINOME_ULTNOME(AIA_A1).DOC
Matrícula: 20191106060
Nome Completo: Giordano Aiex Mendes Vianna
Responda a todas as questões apresentando os códigos da solução (os códigos devem ser copiados em
formato texto e você não deve inserir os códigos na forma de imagem) e a captura da tela (com as
imagens) dos testes de execução, apresentando os dados de entrada e os resultados apresentados pelo
programa. Deverão ser realizados pelo menos 3 testes para cada programa. Caso não caiba em uma
única imagem, você pode inserir imagens suficientes para exibir todas as entradas e saídas de cada
teste.
1ª Questão (1,25pt) Faça um programa que leia 15 números inteiros e ao final informe:
• A média dos números ímpares digitados.
• A quantidade de números compreendidos entre 30 e 120 (inclusive) que foram
digitados.
• O somatório dos números múltiplos de 3 digitados.
Solução (Código do DevC++ (Texto)):
#include<stdio.h>
int main(void)
{
int valores[15], i, soma_multiplos = 0, soma_impares = 0, impar = 0, quantidade = 0;
float media_impares;
for(i=0; i<15; i++)
{
printf("Digite o %d numero: ",i + 1);
scanf("%d",&valores[i]);
if(valores[i] % 3 == 0)
{
soma_multiplos += valores[i];
}
if(valores[i] % 2 != 0)
{
impar++;
soma_impares += valores [i];
media_impares = soma_impares / impar;
}
if(valores[i] > 29 && valores[i] < 121)
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
{
quantidade++;
}
}
printf("A soma dos numeros multiplos de 3 digitados vale %d\n", soma_multiplos);
printf("A media dos numeros impares digitados vale %.f\n", media_impares);
printf("A quantidade de numeros digitados entre 30 e 120 vale %d", quantidade);
return 0;
}
Telas dos testes capturadas (imagem: ALT+ PrintScreen):
1º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
2º Teste:
3º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
2ª Questão (1,25pt) Crie um programa em linguagem C, que use três funções:
1. A primeira deve receber o raio de um círculo e uma variável por referência para armazenar a área
do círculo, uma vez que esta função não retornará nada;
2. A segunda deve receber a área do círculo (base do cilindro) e a altura do cilindro, a função deve
retornar o volume do cilindro;
3. A terceira deve receber o raio da esfera e retornar o volume calculado na função para a função
principal.
. O raio e altura devem ser obtidos através de leitura pelo teclado na função principal, que deve exibir
ao final a área do círculo, o volume do cilindro e o volume da esfera.
areaCirculo = 3.1415 . raio2
volumeCilindro = 3.1415 . raio2 . altura
volumeEsfera = 4 . 3.1415 . raio3
3
Faça a conversão das fórmulas para o formato computacional e use a função de potência da biblioteca
matemática.
Solução (Código do DevC++ (Texto)):
#include<stdio.h>
#include<math.h>
void calculo_area(float raio_circulo, float *x)
{
*x = 3.1415 * pow(raio_circulo,2);
return;
}
void calculo_volume_cilindro(float area_circulo, float altura_cilindro, float *y)
{
*y = area_circulo * altura_cilindro;
return;
}
void calculo_volume_esfera(float raio_esfera, float *z)
{
*z = 4 * 3.1415 * pow(raio_esfera,3)/3;
return;
}
int main (void)
{
float area_circulo, raio_circulo, altura_cilindro, volume_cilindro, volume_esfera, raio_esfera;
printf("Digite o raio da base do cilindro: ");
scanf("%f", &raio_circulo);
calculo_area(raio_circulo, &area_circulo);
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
printf("\n\nDigite a altura do cilindro: ");
scanf("%f", &altura_cilindro);
calculo_volume_cilindro(area_circulo, altura_cilindro, &volume_cilindro);
printf("O volume do cilindro vale: %.2f \n", volume_cilindro);
printf("\n\nDigite o raio da esfera: ");
scanf("%f", &raio_esfera);
calculo_volume_esfera(raio_esfera, &volume_esfera);
printf("O volume da esfera vale: %.2f", volume_esfera);
return 0;
}
Telas dos testes capturadas (imagem: ALT+ PrintScreen):
1º Teste:
2º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
3º Teste:
3ª Questão (1,25pt) Faça um programa em linguagem C com uma função que receba, por parâmetro, um
vetor de 12 elementos inteiros, calcule e retorne de alguma forma a soma e a média dos valores para a
função principal, que deverá exibir a soma e a média calculadas. Os valores do vetor deverão ser lidos via
teclado pela função principal (main). A média deve ser calculada e armazenada em uma variável do tipo
real de dupla precisão.
Solução (Código do DevC++ (Texto)):
#include<stdio.h>
double media(int x, int *valores);
double soma(int x, int *valores);
int main (void)
{
double media_valores, soma_valores;
int i, valores[12];
for (i = 1; i <= 12; i++)
{
printf("Digite o valor %d: ", i);
scanf("%d", &valores[i]);
}
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
media_valores = media(12,valores);
soma_valores = soma(12,valores);
printf("A soma dos valores vale: %.2lf \n", soma_valores);
printf("A media dos valores vale: %.2lf", media_valores);
return 0;
}
double soma(int x, int *valores)
{
int i;
double soma = 0;
for (i = 1; i <= x; i++)
soma = soma + valores[i];
return soma;
}
double media(int x, int *valores)
{
int i;
double m = 0, soma = 0;
for (i = 1; i <= x; i++)
soma = soma + valores[i];
m = soma / x;
return m;
}
Telas dos testes capturadas (imagem: ALT+ PrintScreen):
1º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
2º Teste:
3º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
4ª Questão (1,25pt) Faça um programa em linguagem C que possua dois vetores de inteiros de 10
elementos cada, que devem ser preenchidos pelo teclado. O programa deve possuir uma matriz 2 X 2 que
deverá conter o número (quantidade) de números pares do primeiro vetor na primeira linha e primeira
coluna, o número (quantidade) de números ímpares do primeiro vetor na primeira linha e segunda coluna,
o número (quantidade) de números pares do segundo vetor na segunda linha e primeira coluna e o
número (quantidade) de números ímpares do segundo vetor na primeira linha e segunda coluna.
Apresente os elementos (valores) da matriz no formato original de uma matriz (utilize \n e \t comformatação dos valores).
Qtd_pares_vetor1 Qtd_Ímpares_vetor1
Qtd_pares_vetor2 Qtd_Ímpares_vetor2
Solução (Código do DevC++ (Texto)):
#include<stdio.h>
int main(void)
{
int vetor_1[10], vetor_2[10], cont, qtd_pares_vetor_1 = 0, qtd_impares_vetor_1 = 0, qtd_pares_vetor_2 = 0,
qtd_impares_vetor_2 = 0;
printf("Primeiramente, digite os valores do vetor 1\n");
for (cont = 0; cont < 10; cont++)
{
Printf ("Digite o elemento %d do vetor 1: ", cont + 1);
scanf ("%d", &vetor_1[cont]);
if(vetor_1[cont] % 2 == 0)
{
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
qtd_pares_vetor_1++;
}
else
{
qtd_impares_vetor_1++;
}
}
printf("\n\nAgora digite os valores do vetor 2\n");
for (cont = 0; cont < 10; cont++)
{
Printf ("Digite o elemento %d do vetor 2: ", cont + 1);
Scanf ("%d", &vetor_2[cont]);
if(vetor_2[cont] % 2 == 0)
{
qtd_pares_vetor_2++;
}
else
{
qtd_impares_vetor_2++;
}
}
Printf ("O resultado final eh: \n");
Printf (" %d\t %d\n %d\t %d", qtd_pares_vetor_1, qtd_impares_vetor_1, qtd_pares_vetor_2, qtd_impares_vetor_2);
return 0;
}
Telas dos testes capturadas (imagem: ALT+ PrintScreen):
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
1º Teste:
2º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento
3º Teste:
Programação Estruturada (2021-1).
Prof. Dr. Engo. Carlos A. Sicsú A. do Nascimento
Prof . Dr. Engo. Carlos A. Sicsú A. do Nascimento