Prova Discursiva _linguagem de Programação (1)

1
Fig. I. Distribution of the red-bellied piranha Serrasalmus nattereri in South America (modified from Braga 1975and Schulte1988).Note question mark for the Orinoco basin, where S. nattereri is replaced by S. notatus, a close relative or synonym. The taxonomic status and hence the distribution of this and related piranhas are not well-established and some closely related species, such as S. notatus, the 'caribe colorao' of the Orinoco River Basin, may be synonyms (GCry 1977, Schulte 1988). Alternatively, what is now considered a single widespread species ('S. nattereri') may end up being split into several species with narrower ranges (Schulte 1988, Riehl & Baensch 1991), and again bearing Kner's original generic name (Machado 1985). Given its broad natural range, and its use as aquarium fish, S. nattereri has a number of common names, notably 'palometa' (Argentina, Bolivia), 'paiia' (Peru), 'palometa de rio' (Uruguay), 'caribe boca de locha' (Venezuela); 'red pirai' (Guyana); 'Natterers Sagesalmler' (German). In the Cuiabi rivers and the Pantanal, S. nattereri is called 'pira- nha-queixcuda', i.e. 'big jawed' (I. Sazima personal communication), but in most of Brazil, the common name is 'piranha caju', or cashew-fruit piranha, be- cause of the color similarity between cashew fruit and the fish when both are ripe (Goulding 1981). Growth and natural mortality Formal studies on the growth of S. nattereri, or of other piranhas for that matter, do not appear to have been conducted. However, Lowe-McConnell (1964) presented various information which when re-expressed as in Table 2 allows estimation of the

description

Prova Discursiva

Transcript of Prova Discursiva _linguagem de Programação (1)

Page 1: Prova Discursiva _linguagem de Programação (1)

Questão 1/5

Uma empresa contratou 15 funcionários temporários. De acordo com o valor das vendas

mensais, os funcionários adquirem pontos que determinarão seus salários ao final de cada

mês. Sabe-se que esses funcionários trabalharão nos meses de novembro de 2014 a janeiro de

2015. Faça um programa que:

Cadastre os nomes dos funcionários e suas respectivas vendas mensais;

Calcule e mostre a pontuação geral de todos os funcionários a cada mês;

Determine e mostre a maior pontuação atingida nos três meses, mostrando o nome do

funcionário. Desconsiderar empates;

Determine e mostre o valor total vendido

Resposta:

int main() {

int p_nov, p_dez, p_jan, i, j, maior=-1, func_maior, soma;

for (i=1; i<=15; i++) {

printf("Informe a pontuação, para os meses de novembro, dezembro e janeiro, do

funcionário: %d: ", i);

scanf("%d %d %d", &p_nov, &p_dez, &p_jan);

if (maior < p_nov) {

maior = p_nov;

func_maior = i;

}

if (maior < p_dez) {

maior = p_dez;

func_maior = i;

}

if (maior < p_jan) {

maior = p_jan;

func_maior = i;

}

Page 2: Prova Discursiva _linguagem de Programação (1)

soma = p_nov + p_dez + p_jan;

printf("Funcionário %d\tPontuação total: %d\tPontuação média mensal: %.2f\n", i,

soma, (float) soma / 3);

}

pintf("Maior pontuação: %d do funcionário: %d\n", maior, func_maior);

return 0;

}

Questão 2/5

Uma empresa contratou 15 funcionários temporários. De acordo com o valor das vendas

mensais, os funcionários adquirem pontos que determinarão seus salários ao final de cada

mês. Sabe-se que esses funcionários trabalharão nos meses de novembro a janeiro do ano

subsequente:

Faça um programa que:

Leia as pontuações nos três meses de cada funcionário;

Calcule e mostre a pontuação geral de cada funcionário nos três meses;

Calcule e mostre a média das pontuações de cada funcionário nos três meses;

Determine e mostre a maior pontuação atingida entre todos os funcionários nos três meses.

Resposta:

#include <stdio.h>

int main() {

int p_nov, p_dez, p_jan, i, j, maior=-1, func_maior, soma;

for (i=1; i<=15; i++) {

printf("Informe a pontuação, para os meses de novembro, dezembro e janeiro, do

funcionário: %d: ", i);

scanf("%d %d %d", &p_nov, &p_dez, &p_jan);

if (maior < p_nov) {

maior = p_nov;

func_maior = i;

}

Page 3: Prova Discursiva _linguagem de Programação (1)

if (maior < p_dez) {

maior = p_dez;

func_maior = i;

}

if (maior < p_jan) {

maior = p_jan;

func_maior = i;

}

soma = p_nov + p_dez + p_jan;

printf("Funcionário %d\tPontuação total: %d\tPontuação média mensal: %.2f\n", i,

soma, (float) soma / 3);

}

pintf("Maior pontuação: %d do funcionário: %d\n", maior, func_maior);

return 0;

}

Questão 3/5

Faça um programa que leia um código numérico inteiro e um vetor de cinco posições de

números reais. Se o código for zero, termine o programa. Se o código for 1, mostre o vetor na

ordem direta. Se o código for 2, mostre o vetor na ordem inversa.

Resposta:

include <stdio.h>

main(){

int vetor[5],num,i=0;

printf("Insira 5 elementos de um vetor:\n");

while(i<=4) scanf("%d",&vetor[i++]);

printf("Insira o codigo:\n");

scanf("%d",&num);

if(num==0) return 0;

Page 4: Prova Discursiva _linguagem de Programação (1)

if(num==1){

i=0;

while(i<=4) printf("%d ",vetor[i++]);

}

if(num==2){

i=4;

while(i>=0) printf("%d ",vetor[i--]);

}

system("pause");

}

Questão 4/5

Faça um programa que carregue uma matriz 10x20 com números inteiros e some cada uma

das linhas, armazenando o resultado das somas em um vetor. A seguir, multiplique cada

elemento da matriz pela soma da linha e mostre a matriz resultante.

R:

#include <stdio.h>

int main() {

int matriz[10[20], vetor[10], i, j;

for (i=0; i<10; i++)

for (j=0; j<20; j++)

scanf("%d", &matriz[i][j]);

for (i=0; i<10; i++) {

vetor[i] = 0;

for (j=0; j<20; j++)

vetor[i] += matriz[i][j];

}

for (i=0; i<10; i++)

Page 5: Prova Discursiva _linguagem de Programação (1)

for (j=0; j<20; j++)

matriz[i][j] *= vetor[i];

for (i=0; i<10; i++) {

printf("\n");

for (j=0; j<20; j++)

printf("%d\t", matriz[i][j]);

}

return 0;

}

Questão 5/5

Um funcionário de uma empresa recebe aumento salarial anualmente. Sabe-se que:

Esse funcionário foi contratado em 1995, com salario inicial de R$1.000,00;

Em 1996 recebeu aumento de 15% sobre o seu salário inicial;

A partir de 1997 (inclusive), os aumentos salariais sempre corresponderam ao dobro do

percentual do ano anterior.

Faça um programa que determine o salário atual desse funcionário.

R:

#include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{

int i, ano_atual;

float salario, novo_salario, percentual;

printf("Digite o ano atual: ");

scanf("%d",&ano_atual);

salario = 1000;

percentual = 1.5/100;

Page 6: Prova Discursiva _linguagem de Programação (1)

novo_salario = salario + percentual * salario;

i = 1997;

while (i <= ano atual ano_atual)

{

percentual = 2 * percentual;

novo_salario = novo_salario + percentual * novo_salario;

i = i + 1;

}

printf("\nNovo salario = %5.2f", novo_salario);

// Parar o programa a espera de um ENTER

printf("\n\n");

system("pause");

return 0;

}