Baixe o app para aproveitar ainda mais
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.
Compartilhar