Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Estruturada – 2017.2 Atividade Prática Supervisionada (APS)_01 GABARITO – Questões: 1, 2, 3 e 4 Instrução: responda as questões da forma mais organizada possível 1) Observe a função abaixo: 1. double cube(int y){ 2. return y*y*y; 3. } Em relação a essa função responda: a) qual é o seu tipo? b) qual é o seu nome? c) quantos parâmetros possui? d) se tiver apenas um parâmetro, qual é o seu tipo? Ou se tiver mais que um parâmetro quais são os seus respectivos tipos? Obs.: Se não tiver parâmetros não precisa responder este item. e) Qual é a tarefa que essa função executa? a) double b) cube c) um d) int e) Calcula o cubo de um valor inteiro. 2) Considere o problema: Escrever um programa com a função TarifaTaxi( ) que simule um taxímetro, ou seja, calcule o valor da corrida de um passageiro. Para isso, o programa deve solicitar, ainda na função main( ), que o usuário digite, via teclado, a distância percorrida pelo passageiro no táxi, em quilômetros. A função TarifaTaxi( ) deve receber esse valor, digitado pelo usuário, e retornar o quanto o passageiro dever pagar. Esse valor a ser pago, deve ser impresso na tela por uma instrução escrita na função main( ). Considere que a bandeirada seja de R$5,40 e que a acada quilômetro percorrido seja acrescido o valor de R$ 2,50 ao valor total a ser pago. Possível solução: #include<stdio.h> #include<locale.h> float TarifaTaxi(float); int main(void){ setlocale(LC_ALL, "Portuguese"); float distancia, preco; printf("Este programa calcula o valor pago por uma corrida de taxi\n"); printf("\nDigite a distância percorrida em Km: "); scanf("%f",&distancia); preco=TarifaTaxi(distancia); printf("O preço a pagar é: R$%.2f\n",preco); return 0; } float TarifaTaxi(float dist){ return 2.5*dist + 5.4; } Prof. Lincoln Faria - lfaria@unicarioca.edu.br 3) Escreva uma função recursiva chamada potencia( ) que aceite dois argumentos positivos i e j. A função deve retornar o resultado de i elevado a j. Por exemplo: potencia(2,3) retorna 8. Dica: use a propriedade de que i elevado a j é igual a i elevado a (j-1) vezes i. Possível solução: #include <stdio.h> #include <locale.h> int potencia(int, int); int main(void){ setlocale(LC_ALL, "Portuguese"); int i, j, resultado; printf("Esse programa calcula o resultado de i elevado a j, ambos inteiros\n"); printf("Entre com o valor i: "); scanf("%d",&i); printf("Entre com o valor j: "); scanf("%d",&j); resultado=potencia(i,j); printf("\nO resultado de %d elevado a %d é: %d",i,j,resultado); return 0; } int potencia(int i, int j){ if (j==1){ return i; } else return i*potencia(i,j-1); /*chamada recursiva*/ } Prof. Lincoln Faria - lfaria@unicarioca.edu.br 4) Observe o programa abaixo: #include <stdio.h> #include <locale.h> #define TAMANHO 5 void pesquisa(int vetor[], int chave, int tamanho); int main(void){ setlocale(LC_ALL, "Portuguese"); int a[TAMANHO]={1,2,3,4,5}; int chave; printf("Esse programa realiza pesquisas em vetores\n"); printf("Entre com o valor a ser pesquisado: "); scanf("%d",&chave); pesquisa(a, chave, TAMANHO); } void pesquisa(int vetor[], int chave, int tamanho){ int n; for(n=0;n<TAMANHO;n++){ if(vetor[n]==chave){ printf("Valor encontrado na posição %d",n); return; } } printf("Valor não encontrado"); return; } Essa programa possui uma função. Em relação a essa função responda: a) qual é o seu tipo? void b) qual é o seu nome? pesquisa c) quantos parâmetros possui? 3 (três). d) se tiver apenas um parâmetro, qual é o seu tipo? Ou se tiver mais que um parâmetro quais são os seus respectivos tipos? Obs.: Se não tiver parâmetros não precisa responder este item. int e) Qual é a tarefa que essa função executa? Pesquisa no vetor por um valor informado pelo usuário e informa sua posição se encontrá-lo, caso contrário informa que o valor não foi encontrado no vetor. Prof. Lincoln Faria - lfaria@unicarioca.edu.br
Compartilhar