Buscar

Exercícios de COMP I 20142 0102

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Exercícios de COMP I 
 
Etapa – 1 
 
Exercícios simples só com instruções de declaração, manipulação, leitura e 
escrita de variáveis e expressões aritméticas, lógicas e relacionais. 
 
a) Faça um programa que receba três números reais, calcule e mostre a 
multiplicação desses números. 
 
b) Faça um programa que receba as notas da P1, P2 e T e calcule a média 
de acordo com os conceitos de COMP I. 
 
c) Faça um programa que receba o salário de um funcionário e calcule e 
mostre o novo salário considerando que ele recebeu um aumento de 
25%. 
 
d) Faça um programa que receba o salário base de um funcionário, calcule 
e mostre o salário a receber sabendo que este funcionário tem 
gratificação de 5% sobre o salário base e paga 7% de impostos sobre o 
salário base. Informar na tela os Valores de gratificação e desconto. 
 
e) Faça um programa que calcule a área de um retângulo a partir da 
informação de seus lados. 
 
f) Faça um programa que calcule e mostre a área de um triângulo a partir 
da base e altura fornecidas pelo usuário. 
 
g) Faça um programa que calcule e mostre a área de um circulo a partir da 
informação de seu perímetro. 
 
h) Faça um programa que a partir de uma distância em quilômetros a ser 
percorrida e o consumo de um veículo retorne a quantidade de litros de 
combustível necessária para percorrê-la. 
 
i) Faça um programa que a partir da idade de uma pessoa e o ano atual 
calcule e mostre a idade que a pessoa teria na virada do próximo século. 
 
j) Faça um programa que receba duas notas, calcule e mostre a media 
ponderada dessas notas, considerando o peso 2 para a primeira nota e 
o peso 3 para a segunda nota. 
 
k) Um funcionário recebe um salário fixo mais 4% de comissão sobre as 
vendas. Faça um programa que receba o salário fixo de um funcionário 
e o valor de suas vendas, calcule e mostre a comissão e o salário final 
do funcionário. 
 
l) Faça um programa que receba o ano de nascimento de uma pessoa e o 
ano atual, calcule e mostre a idade dessa pessoa em anos. 
Etapa – 2 
 
Exercícios com os elementos anteriores e estruturas de decisão. 
 
a) Faça um programa que receba duas notas, calcule a média das notas e 
mostre na tela se o aluno foi aprovado. 
 
Program exmedia; 
uses crt; 
var soma,nota1,nota2:real; 
begin 
 writeln(´Digite as notas das provas´); 
 read (nota1,nota2); 
 media:=(nota1+nota2)/2; 
 if media>=5 then 
 writeln(´Aprovado´) 
 else 
 writeln(´Reprovado´); 
end. 
b) Faça um programa que tendo como entrada a altura e o sexo de uma 
pessoa , construa um algorítimo que calcule seu peso ideal, utilizando as 
seguintes fórmulas: 
• para homens: (72.7*h)-58; 
• para mulheres: (62,1*h)-44.7; 
Program expesoideal; 
uses crt; 
var sexo:char; 
 h,peso:real; 
begin 
 writeln(´Calcule seu Peso Ideal´); 
 write (´Digite seu sexo (M:masculino , F:feminino)´); 
 readln (sexo); 
 write (´Entre com a sua altura´); 
 readln(h) 
 if sexo=´F´ then 
 peso:=(62.1*h)-44.7 
 else 
 peso:=(72.2*h)-58; 
writeln(´seu peso ideal é´,peso:2:2); 
readkey; 
end. 
 
c) Faça um programa que receba dois números e mostre o maior entre 
eles. 
 
d) Faça um programa que receba dois números e mostre o menor entre 
eles. 
 
e) Faça um programa que receba dois nomes e mostre se eles são iguais 
ou diferentes. 
 
f) Faça um programa que receba um número inteiro e verifique se este 
número é par ou ímpar (utilize o operador "MOD" que retorna o resto da 
divisão pra isso). 
 
g) Faça um programa que receba os valores da base e altura de 3 
triângulos e retorne o valor da área do maior triângulo. 
 
program testec; 
var at1,at2,at3,b,h,maior:real; 
begin 
 writeln('Digite as bases e alturas dos triƒngulos:'); 
 writeln('triangulo 1:'); 
 writeln('base:'); 
 readln(b); 
 writeln('altura:'); 
 readln(h); 
 at1:=b*h/2; 
 writeln('triangulo 2:'); 
 writeln('base:'); 
 readln(b); 
 writeln('altura:'); 
 readln(h); 
 at2:=b*h/2; 
 writeln('triangulo 3:'); 
 writeln('base:'); 
 readln(b); 
 writeln('altura:'); 
 readln(h); 
 at3:=b*h/2; 
 if at1 > at2 then 
 maior:=at1 
 else 
 maior:=at2; 
 if at3 > maior then 
 maior:=at3; 
 writeln('A maior Área ‚: ',maior:5:2); 
 readln; 
end. 
 
h) Faça um programa que receba três notas de um aluno (P1, P2 e T) e 
calcule, segundo os critérios de COMP I, a média do aluno, mostrando 
as mensagens “APROVADO” ou “REPROVADO (SUB)” na tela. 
 
i) Faça um programa que receba três números e mostre-os em ordem 
crescente. 
 
j) Faça um programa que mostre um menu de opções (soma, subtração, 
multiplicação e divisão) e receba a opção do usuário e os dados 
necessários para executar cada operação mostrando o resultado na tela. 
 
k) Faça um programa que receba o valor de 3 arestas e diga se formam um 
triângulo. Caso as arestas formem um triângulo indique se ele é 
equilátero, isóceles ou escaleno. Lembre-se: 
 
 Para que se possa construir um triângulo é necessário que a medida de 
 qualquer um dos lados seja menor que a soma das medidas dos outros 
 dois e maior que o valor absoluto da diferença entre essas medidas. 
 
 
 Equilátero Isósceles Escaleno 
 
l) Faça um programa que receba os coeficientes a (diferente de 0), b e c 
de uma equação de segundo grau como entrada e retorne os valores 
das raízes da equação ou a informação que “não existem raízes reais” 
de acordo com o delta calculado na fórmula de Báskara. 
 
m) Faça um programa que determine cronologicamente a data mais recente 
entre duas datas fornecidas pelo usuário. Cada data deve ser fornecida 
em três valores inteiros, onde o primeiro representa o dia, o segundo o 
mês e o terceiro o ano. 
 
n) Faça um programa que receba o nome e data de nascimento de duas 
pessoas retorne qual delas é mais velha. Cada data deve ser fornecida 
em três valores inteiros, onde o primeiro representa o dia, o segundo o 
mês e o terceiro o ano. 
 
o) Faça um programa que receba a nota de um aluno em inteiros e mostre 
o seu conceito de acordo com os critérios de COMP I: nota <7(C), 
7<=nota <8 (B), 8<=nota<9 (A) e nota>=9 (E). 
 
p) Faça um programa que receba a quantidade de cilindradas de um 
veículo de competição de um Rally e mostre a categoria a que pertence: 
 
- De 0 a 120cc: categoria “Sub Production” 
- De 121 a 240cc: categoria “Production” 
- Acima de 240cc: categoria “Super Production” 
 
q) Faça um programa que receba a idade de um nadador e retorne sua 
categoria segundo o seguinte critério: “Infantil” de 0 a 10 anos, “Junior” 
de 11 a 14 anos, “Adolescente” de 15 a 20 anos, “Jovem” de 21 a 35 
anos e “Master” acima desta idade. 
Etapa – 3 
 
Exercícios com os elementos anteriores e estruturas de repetição. 
 
a) Faça um programa que receba N valores inteiros e calcule a média entre 
eles. A quantidade N deve ser informada pelo usuário no início do 
programa. 
 
Program media; 
uses crt; 
var n, ct, ac, valor:real; 
begin 
 writeln('Digite o valor de quantidade de números:'); 
 readln (n); 
 writeln('Entre os valores'); 
 ct := 1; 
 ac := 0; 
 while ct <= n do 
 begin 
 readln (valor); 
 ac:= ac + valor; 
 ct:=ct+1; 
 end; 
 writeln('a média dos valores ‚',ac/(ct-1):6:2); 
 readln; 
end. 
 
b) Faça um programa que receba N valores inteiros e positivos até que seja 
digitado o valor 0 e calcule a média entre eles. Não considerar o valor 0 
no cálculo da média. 
 
c) Faça um programa que receba a nota de 80 alunos a após a leitura 
retorne a maior nota. 
 
d) Um funcionário de uma empresa recebe bonificação salarial anualmente.Sabe-se que ele foi contratado em 2000 com salário de R$ 1.000,00. Em 
2001 recebeu bonificação de 0,5% sobre o salário inicial e ano a ano 
passou a receber porcentagem em dobro do ano anterior. Faça um 
programa que mostre ano a ano. Faça um programa que mostre ano a 
ano o salário do funcionário desde que começou na firma até 2010. 
 
e) Faça um programa que calcule Nm a partir dos números inteiros N (real) 
e m (natural) fornecidos pelo usuário. 
 
f) Faça um programa que receba os valores de saldo diário de um cliente 
durante um mês (30 dias fixos) e informe ao final. Qual o maior e o 
menor saldo que o cliente teve. 
 
g) Faça um programa que receba uma quantidade de valores relativos a 
altura e sexo ('M'ou 'F') de pacientes de um médico e retorne a maior altura 
masculina e feminina (a entrada de dados deve ser encerrada quando se 
digitar zero na altura). 
 
program maiores; 
var sexo:char; 
 valor,maxfem,maxmas:real; 
begin 
 writeln('digite alturas e o sexo dos pacientes:'); 
 maxfem:=0; 
 maxmas:=0; 
 repeat 
 writeln('digite altura do paciente (0 para sair):'); 
 readln(valor); 
 if valor>0 then 
 begin 
 writeln('digite o sexo (M/F) do paciente:'); 
 readln(sexo); 
 if (sexo='M') or (sexo='m') then 
 if valor>maxmas then 
 maxmas:=valor; 
 if (sexo='F') or (sexo='f') then 
 if valor>maxfem then 
 maxfem:=valor; 
 end; 
 until valor=0; 
 writeln('O maior valor feminino ‚: ',maxfem:6:2); 
 writeln('O maior valor maxulino ‚: ',maxmas:6:2); 
 readln; 
end. 
 
h) Faça um programa que receba o valor do saldo de uma conta corrente e 
os valores de movimentação da conta corrente (positivos e negativos). Ao 
ser digitado o valor zero o programa deve apresentar na tela o saldo após 
as movimentações realizadas. 
 
program saldo; 
var saldo,valor:real; 
begin 
 writeln('digite o saldo inicial:'); 
 readln(saldo); 
 writeln('digite os valores de movimento:'); 
 readln(valor); 
 while valor<>0 do 
 begin 
 saldo:=saldo+valor; 
 readln(valor); 
 end; 
 writeln('O saldo final ‚: ',saldo:12:2); 
 readln; 
end. 
 
i) A sequência de Fibonacci é caracterizada por cada termo ser a soma dos 
dois anteriores onde os 2 primeiros termos têm valor igual a 1 conforme 
apresentado a seguir: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, etc. Faça um programa 
que receba o número de termos da sequência que serão apresentados e 
apresente estes termos. Por exemplo, se receber o valor 7 deve apresentar 
1, 1, 2, 3, 5, 8, 13. 
 
program fibonacci; 
var n,i,ant,fib,fibant:integer; 
begin 
 writeln('Digite número de termos de Fibonacci: '); 
 readln(n); 
 if n >= 1 then 
 write(1); 
 if n >= 2 then 
 write(' ',1); 
 if n > 2 then 
 begin 
 fib:=1; 
 fibant:=1; 
 for i:=3 to n do 
 begin 
 ant:=fib; 
 fib:=fib+fibant; 
 write(' ',fib); 
 fibant:=ant; 
 end; 
 end; 
 readln; 
end. 
Etapa – 4 
 
Exercícios sobre tipos estruturados homogêneos unidimensionais (vetores) 
 
a) Faça um programa que receba um conjunto de 100 valores inteiros 
colocando-os em um vetor e em seguida mostre na tela o maior dos 
valores do vetor. 
program exmaior; 
const fim=100; 
var seq: array[1..fim] of integer; 
 k,maior:integer; 
begin 
 for k:=1 to fim do 
 readln(seq[k]); 
 maior:=seq[1]; 
 for k:=2 to fim do 
 if seq[k]>maior then 
 maior:=seq[k]; 
 writeln(maior); 
end. 
b) Faça um programa que receba 30 strings e mostre-os na tela na 
seqüência inversa à ordem de entrada, isto é, do último valor incluído 
até o primeiro valor incluído. 
 
c) Construa um programa que leia um vetor de números reais de tamanho 
10 e zere todos os valores negativos do vetor apresentando todos os 
elementos do vetor na tela, já alterados. 
 
d) Construa um programa que receba um conjunto de valor em um vetor de 
tamanho 20 e calcule a média de todos os valores do vetor mostrando 
na tela todos os valores do vetor que são abaixo da média. 
 
e) Construa um programa que leia um vetor e 50 elementos inteiros e 
transforme todos os valores negativos em valores positivos mostrando-
os em tela. 
 
f) Construa um programa que receba um vetor e procure o maior valor do 
vetor apresentando-o em tela. 
 
g) Construa um programa que faça a média entre o maior e o menor valor 
de um vetor de 200 elementos do tipo inteiro recebido pelo teclado, 
mostrando na tela todos os valores acima da média calculada. 
 
h) Construa um programa que mostre todos os valores pares de um vetor 
de 15 posições que será recebido pelo usuário. Lembre-se que só 
consideraremos como entrada valores inteiros e positivos. 
 
i) Faça um programa que receba o código (string[6]) e valor (real) de 100 
produtos e logo após a entrada de dados permita ao usuário realizar 
consultas aos valores por meio do código do produto. O programa deve 
ser encerrado quando o usuário digitar o valor ‘0’ no código do produto. 
 
j) Construa um programa que receba as notas (P1, P2 e T) e o nome de 
uma classe contendo 70 alunos e ao final retorne o nome de todos os 
alunos que terão que fazer a prova substitutiva. 
 
Etapa – 5 
 
Exercícios sobre tipos estruturados homogêneos multidimensionais 
(matrizes) 
 
a) Faça um programa que controle a produção de clipes de papel, para que 
uma determinada empresa tenha um controle sobre o consumo deste 
produto entre os anos de 1980 a 1992, apresentando ao final a produção 
de cada mês do ano de 1987. 
program exconsumo; 
var clipes: array[1980..1992,1..12] of integer; 
 i,j,tot,ano:integer; 
begin 
 for i:=1980 to 1992 do 
 for j:=1 to 12 do 
 begin 
 writeln (´Digite a produção (´,i,´ ´,j,´):´); 
 readln(clipes[i,j]); 
 end; 
 
 writeln(´Digite o ano a consultar (1980 a 1992:´); 
 readln(ano); 
 tot=0; 
 for i:=1 to 12 do 
 tot:=tot+clipes[ano,i]; 
 writeln(´Total em ´,ano,´:´,tot); 
end. 
b) Faça um programa que receba inicialmente a produção de uma indústria 
mês a mês desde 2000 até 2008 e após a entrada permita o usuário 
fornecer valores iniciais e finais de ano e de meses retornando o total de 
produção no período indicado. O programa deve sempre após uma 
consulta perguntar ao usuário se deseja realizar nova consulta (1) ou 
sair (2) continuando as consultas até que a opção sair seja indicada 
após uma consulta. 
 
c) Faça um programa que receba duas matrizes 4x3 (uma de cada vez) e 
realize a soma delas apresentando o resultado em tela. 
 
d) Faça um programa permita a soma de matrizes de qualquer tamanho até 
50x50 fazendo a leitura delas em separado e apresentando a matriz 
resultante na tela. 
 
e) Faça um programa que receba duas matrizes (uma 4x3 e outra 3x5, uma 
de cada vez) e realize a multiplicação delas apresentando o resultado 
em tela. 
 
f) Faça um programa permita a multiplicação de matrizes de qualquer 
tamanho até 50x50 (desde que seja possível fazer a multiplicação sendo 
a quantidade de colunas da primeira igual a quantidade de linhas da 
segunda) fazendo a leitura delas em separado e apresentando a matriz 
resultante na tela. 
 
Etapa – 6 
 
Exercícios sobre tipos estruturados heterogêneos (registros) e declaração 
de novos tipos. 
 
a) Faça um programa que construa uma agenda com nome, endereço, 
número, complemento, CEP, cidade, estado, telefone de casa e telefone 
celular de seus contatos e depois permita inclusões, consultas, 
exclusões e listagem a partir de um menu de opções. 
 
b) Faça um programa de eleições onde previamente os dados de até 5 
candidatos são armazenados (número, nome e partido) e em seguida o 
programafica esperando que os eleitores escolham pelo número os 
candidatos apresentados em um menu de opções pelo número do 
candidato. O eleitor deve poder votar em seu candidato digitando o 
número do mesmo. Ao se digitar o número zero o programa deve 
apresentar o resultado das eleições calculando e apresentando as 
porcentagens de votos de cada um dos candidatos. 
 
Etapa – 7 
 
Exercícios envolvendo sub-rotinas (funções e procedimentos) 
 
a) Faça uma função para verificar se um número é menor do que zero. O 
programa deve receber um número e retornar um valor booleano. 
 
b) Faça um procedimento que mostre uma linha na tela na posição em que 
está com um conjunto de riscos do tamanho informado como parâmetro. 
 
c) Faça uma função que receba quatro números reais como parâmetro e 
retorne qual é o maior; 
 
d) Faça uma função que receba um número e retorne o string “par” ou 
“impar” de acordo com o valor passado por parâmetro. 
 
e) Faça uma função que retorne true ou false se um número passado como 
parâmetro aparece ou não no vetor de inteiros com 50 elementos 
também passados como parâmetro. 
 
f) Faça um procedimento que mostre na tela todos os elementos de um 
vetor de 100 elementos do tipo string passados como parâmetro. 
 
g) Faça uma função que receba um vetor de 100 inteiros e um número e 
retorne quantas vezes este número aparece no vetor. 
 
h) Faça um procedimento que desenhe um quadrado na tela a partir da 
posição especificada como parâmetro (linha e coluna) do tamanho 
também especificado como parâmetro (altura e largura). Utilize a rotina 
gotoxy predefinida no Pascal para posicionar o cursor e utilize os 
caracteres da tabela ASCII para desenhar o retângulo. 
 
Etapa – 8 
 
Exercícios envolvendo passagem de parâmetros por valor e referência em 
sub-rotinas. 
 
a) Faça um procedimento que receba dois números por referência e troque 
o conteúdo dos dois números. 
 
b) Faça um programa que receba um vetor e inverta o seu conteúdo 
colocando os primeiros elementos nas últimas posições e os últimos 
elementos nas primeiras posições. 
 
c) Faça um procedimento que receba um elemento do tipo cliente 
declarado abaixo e faça a atualização dos campos a partir da entrada de 
dados do usuário. 
 
Type cliente = Record 
 codigo: integer; 
 nome: string[30]; 
 endereco: string[40]; 
 numero: integer; 
 complemento: string[20]; 
 cep:longint; 
 fone: string[20]; 
 end;

Outros materiais