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