Buscar

Programação Estruturada Trabalho AV1 - UNICARIOCA

Prévia do material em texto

UNICARIOCA - 2020. 2 – AV1
Programação Estruturada
1) Desenvolva um programa que receba o nome, peso e altura de 5 pessoas (utilize um vetor de registro), ao final exiba os dados de cada pessoa, seguido de seu IMC (Índice de Massa Corporal) e seu Significado.
	Menos do que 18,5
	Abaixo do peso
	Entre 18,5 e 24,9
	Peso normal
	Entre 25 e 29,9
	Sobrepeso
	Entre 30 e 34,9
	Obesidade grau 1
O Cálculo do IMC deve ser feito em uma função.
#include<stdio.h>
float imc(float p,float a){
	return p/(a*a);
}
int main(){
	int x;
typedef struct{
		char nome[20];
		float peso;
		float altura;
		float imc;
	}Pessoa;
Pessoa p[5];
	for(x=0; x<=4;x++){
	system("cls");
		fflush(stdin);
		printf("Digite seu nome:");
		scanf("%s",&p[x].nome);
		printf("Digite seu peso:");
		scanf("%f",&p[x].peso);
		printf("Digite seu altura:");
		scanf("%f",&p[x].altura);
		}
	printf("Todos Usuarios cadastrados\n");
	system("pause");
	system("cls");	
	for(x=0; x<=4;x++){
	printf("--------------\nNome:%s \nPeso:%0.2f \nAltura:%0.2f\n",p[x].nome, p[x].peso,p[x].altura);
	p[x].imc=imc(p[x].peso,p[x].altura);
	printf("IMC:%0.2f\n",p[x].imc);
	if(p[x].imc<18.5){
		printf("Abaixo do peso\n");
	}
	else if(p[x].imc>=18.5 && p[x].imc<25){
		printf("Peso Normal\n");
	}
	else if(p[x].imc>=25 && p[x].imc<29.9){
		printf("Sobrepeso\n");
	}
	else if(p[x].imc>=30 && p[x].imc<34.9){
		printf("Obesidade Grau 1\n");
}
	else {
	printf("Erro no calculo\n");
	}
	}
	system("pause");
}
2) Desenvolva um programa que exemplifique a passagem de parâmetro por referência em uma função, comentando cada linha do programa.
	#include <stdio.h>
	
	//função que soma 15 ao valor recebido
	void soma15(int x)
	{
	x = x + 15; 
	printf("Valor de x apos a soma = %d \n",x);
	return;
	}
	
	void soma15p(int *x)
	{
	*x = *x + 15; 
	printf("Valor de x apos a soma = %d \n",*x);
	return;
	}
	
	int main(void)
	{
	int numero;
	printf("Digite um numero: ");
	scanf("%d", &numero); 
	
	printf("O numero digitado foi: %d \n",numero); 
	
	soma15(numero); //chamada da função
	printf("Agora o numero vale: %d \n",numero); 
	
	soma15p(&numero); //chamada da função com ponteiro como parâmetro
	printf("Agora o numero vale: %d \n",numero); 
	return 0;
	}
3) Escreva os valores que serão exibidos e comente cada linha do programa abaixo.
#include<stdio.h> // biblioteca padrão do C
#include<stdlib.h> // biblioteca padrão do C
main() // Função principal (ponto de partida para a execução do programa)
{ // As chaves delimitam um bloco de comandos na linguagem
 int vetor[]={1967, 1947, 2007}; //  não foi especificado o tamanho do vetor, porém ao inicializar os elementos o compilador faz a contagem dos itens e determina o tamanho do vetor automaticamente, nesse caso sabemos que o tipo do vetor é inteiro.
 int *ano; // declaração de ponteiro para um inteiro
 ano=&vetor[0]; // ano aponta para o endereço do vetor, obtido pelo operador & 
 ano++; // incremento de um
 printf("Valor: %d", *ano); // exibição do ano 1947
 (*ano)++; // incremento de um
 printf("Valor: %d", *ano); // exibição de 1948 já que foi acrescentado mais um no passo anterior.
 system(“pause”); // A função system() chama o console do sistema operacional (se já não estiver rodando) e executa um comando neste aplicativo. No caso está chamando o comando pause do sistema operacional que fará o console ficar esperando por uma tecla e consequentemente sua aplicação esperará por isso também.
} As chaves delimitam um bloco de comandos na linguagem
Será exibido 
Valor: 1947 Valor: 1948
4)
Considere a função seguinte, codificada na linguagem de programação C (o operador % significa resto da divisão inteira):
void surpresa (int n)
{
	int a=0, b=0;
	while (n>0)
	{
		if ((n%2)==0)
			a=a+1;
		else
			b=b+1;
		
		n=n/2;
	}
	printf ("%d %d\n", a, b);
}
Os dois valores impressos pela função são iguais quando o valor de n é:
44.
Demonstre como chegou ao resultado
n: 44; 22; 11; 5,5...
a: 1; 2; 2; 2; ...
b: 0; 0; 1; 2; ..
Na quarta iteração os valores coincidem.

Continue navegando