FIT – Faculdade de Informática de Taquara Curso de Sistemas de Informação

EXERCÍCIOS e Respostas da disciplina de PROGRAMAÇÃO I - Linguagem Pascal -

Profa. Flávia Pereira de Carvalho

Agosto de 2006

Exercícios de Programação I - Linguagem Pascal

Sumário
Página
Simples - 1 ao 7.............................................................................................................................................................3 Seleção - 1 ao 23 ...........................................................................................................................................................4 Repetição e/ou Seleção - 1 ao 30 ...............................................................................................................................7 Vetores - 1 ao 23 .........................................................................................................................................................11 Matrizes - 1 ao 8 ..........................................................................................................................................................14 Registros - 1 ao 4 ........................................................................................................................................................16 Modularização - 1 ao 6 ...............................................................................................................................................17 Respostas - Simples ..................................................................................................................................................18 Respostas - Seleção...................................................................................................................................................22 Respostas - Repetição e/ou Seleção.......................................................................................................................35 Respostas - Vetores ...................................................................................................................................................40 Respostas - Matrizes..................................................................................................................................................41 Respostas - Registros ...............................................................................................................................................42 Respostas - Modularização.......................................................................................................................................47

Profa. Flávia Pereira de Carvalho - fpereira@faccat.br - http://fit.faccat.br/~fpereira

2

Exercícios de Programação I - Linguagem Pascal

Simples - 1 ao 7
1) Escreva um programa para ler o raio de um círculo, calcular e escrever a sua área. πR2 2) Escreva um programa para ler uma temperatura em graus Fahrenheit, calcular e escrever o valor correspondente em graus Celsius.

3) Escreva um programa para ler uma temperatura em graus Celsius, calcular e escrever o valor correspondente em graus Fahrenheit. 4) Escreva um programa para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado. 5) Escreva um programa para ler as dimensões de uma cozinha retangular (comprimento, largura e altura), calcular e escrever a quantidade de caixas de azulejos para se colocar em todas as suas paredes (considere que não será descontada a área ocupada por portas e janelas). Cada caixa de azulejos possui 1,5 m2. 6) Um motorista de táxi deseja calcular o rendimento de seu carro na praça. Sabendo-se que o preço do combustível é de R$ 1,90, escreva um programa para ler: a marcação do odômetro (Km) no início do dia, a marcação (Km) no final do dia, o número de litros de combustível gasto e o valor total (R$) recebido dos passageiros. Calcular e escrever: a média do consumo em Km/L e o lucro (líquido) do dia. 7) A equipe Benneton-Ford deseja calcular o número mínimo de litros que deverá colocar no tanque de seu carro para que ele possa percorrer um determinado número de voltas até o primeiro reabastecimento. Escreva um programa que leia o comprimento da pista (em metros), o número total de voltas a serem percorridas no grande prêmio, o número de reabastecimentos desejados e o consumo de combustível do carro (em Km/L). Calcular e escrever o número mínimo de litros necessários para percorrer até o primeiro reabastecimento. OBS: Considere que o número de voltas entre os reabastecimentos é o mesmo.

Profa. Flávia Pereira de Carvalho - fpereira@faccat.br - http://fit.faccat.br/~fpereira

3

Exercícios de Programação I - Linguagem Pascal

Seleção - 1 ao 23
1) Escreva um programa que leia o código de origem de um produto e imprima na tela a região de sua procedência conforme a tabela abaixo: código 1 : Sul código 2 : Norte código 3 : Leste código 4 : Oeste código 5 ou 6 : Nordeste

código 7, 8 ou 9 : Sudeste código 10 código 11 : Centro-Oeste : Noroeste

Observação: Caso o código não seja nenhum dos especificados o produto deve ser encarado como Importado. 2) Escreva um programa que leia as notas das duas avaliações normais e a nota da avaliação optativa. Caso o aluno não tenha feito a optativa deve ser fornecido o valor –1. Calcular a média do semestre considerando que a prova optativa substitui a nota mais baixa entre as duas primeiras avaliações. Escrever a média e mensagens que indiquem se o aluno foi aprovado, reprovado ou está em exame, de acordo com as informações abaixo: Aprovado : media >= 6.0 Reprovado: media < 3.0 Exame : media >= 3.0 e < 6.0

3) Escreva um programa para ler as notas das duas avaliações de um aluno no semestre, calcular e escrever a média semestral e a seguinte mensagem: PARABÉNS! Você foi aprovado! somente se o aluno foi aprovado (considere 6.0 a média mínima para aprovação). 4) Acrescente ao exercício anterior a mensagem Você foi REPROVADO! Estude mais... caso a média calculada seja menor que 6.0. 5) Escreva um programa para ler um valor e escrever se é positivo ou negativo. Considere o valor zero como positivo. 6) Reescreva o programa do exercício anterior considerando o zero como neutro, ou seja, se for digitado o valor zero, escrever a palavra zero. 7) Escreva um programa para ler 2 valores (considere que não serão informados valores iguais) e escrever o maior deles. 8) Escreva um programa para ler o ano de nascimento de uma pessoa e escrever uma mensagem que diga se ela poderá ou não votar este ano (não é necessário considerar o mês em que ela nasceu).

Profa. Flávia Pereira de Carvalho - fpereira@faccat.br - http://fit.faccat.br/~fpereira

4

Exercícios de Programação I .Se o número de lados for igual a 3 escrever TRIÂNGULO e o valor do seu perímetro.para mulheres : (62.Se o número de lados for igual a 5 escrever PENTÁGONO.7 * h) – 58 .25 se forem compradas pelo menos doze. 11) Escreva um programa que verifique a validade de uma senha fornecida pelo usuário. e R$ 0. A senha válida é o número 1234. 14) Escreva um programa para ler o número de gols marcados pelo Grêmio e o número de gols marcados pelo Inter em um GRENAL. Observação: Considere que o usuário só informará os valores 3. . Caso não haja vencedor deverá ser impressa a palavra EMPATE.30 cada se forem compradas menos do que uma dúzia. 10) Escreva um programa para ler 3 valores inteiros (considere que não serão lidos valores iguais) e escrevê-los em ordem crescente. Flávia Pereira de Carvalho .http://fit. 15) Escreva um programa para ler o número de lados de um polígono regular e a medida do lado (em cm).Linguagem Pascal 9) As maçãs custam R$ 0.faccat. Escrever o nome do vencedor. utilizando as seguintes fórmulas: . 12) Tendo como entrada a altura e o sexo (codificado da seguinte forma: 1:feminino 2:masculino) de uma pessoa.br . Profa. 4 ou 5.para homens : (72. Escreva um programa que leia o número de maçãs compradas.br/~fpereira 5 . 13) Escreva um programa para ler um número inteiro (considere que serão lidos apenas valores positivos e inteiros) e escrever se é par ou ímpar.Se o número de lados for igual a 4 escrever QUADRADO e o valor da sua área.fpereira@faccat. Calcular e imprimir o seguinte: .1 * h) – 44. calcule e escreva o valor total da compra. construa um programa que calcule e imprima seu peso ideal.7 Observação: Altura = h (na fórmula acima). . ACESSO NEGADO caso a senha seja inválida. Devem ser impressas as seguintes mensagens: ACESSO PERMITIDO caso a senha seja válida.

2. . 22) Escreva um programa que leia a idade de 2 homens e 2 mulheres (considere que a idade dos homens será sempre diferente.Subtração. Calcular e escrever o resultado dessa operação sobre os dois valores lidos. Isósceles ou Escaleno.Multiplicação). Observação: Considere que só serão lidos os valores 1. Retângulo ou Obtusângulo.Triângulo Equilátero: possui os 3 lados iguais.Caso o número de lados seja inferior a 3 escrever NÃO E’ UM POLÍGONO. 18) Escreva um programa para ler 3 valores inteiros e escrever o maior deles. . (menor que 90º) Profa.fpereira@faccat. e o produto das idades do homem mais novo com a mulher mais velha.http://fit.Adição.Triângulo Escaleno: possui 3 lados diferentes. 3 ou 4.Triângulo Obtusângulo: possui um ângulo obtuso. Considere que o usuário não informará valores iguais.Triângulo Retângulo: possui um ângulo reto. Flávia Pereira de Carvalho . Considere que o usuário não informará valores iguais.Linguagem Pascal 16) Acrescente as seguintes mensagens à solução do exercício anterior conforme o caso. 19) Escreva um programa para ler 3 valores e escrever a soma dos 2 maiores.br .Triângulo Isósceles: possui 2 lados iguais. 21) Escreva um programa que leia as medidas dos lados de um triângulo e escreva se ele é Equilátero.Triângulo Acutângulo: possui três ângulos agudos. (maior que 90º) . 20) Escreva um programa para ler 3 valores e escrevê-los em ordem decrescente.Exercícios de Programação I . 3. . .faccat.Caso o número de lados seja superior a 5 escrever POLÍGONO NÃO IDENTIFICADO. assim como das mulheres).Divisão. (igual a 90º) . 2. Sendo que: . Considere que o usuário não informará valores iguais. Sendo que: .br/~fpereira 6 . 17) Escreva um programa para ler 2 valores inteiros e uma das seguintes operações a serem executadas (codificada da seguinte forma: 1. Calcule e escreva a soma das idades do homem mais velho com a mulher mais nova. Observação: Considere que o usuário poderá informar qualquer valor para o número de lados. 23) Escreva um programa que leia o valor de 3 ângulos de um triângulo e escreva se o triângulo é Acutângulo. 4.

Utilize a estrutura Repita/Até na construção da repetição de validação. a leitura dos dados (a medida dos 3 lados) deverá ser repetida. caso contrário. 3) Reescreva o programa para o exercício 1 utilizando a estrutura Enquanto/Faça na construção da repetição de validação. Caso a resposta seja 1 a execução deve continuar normalmente escrevendo o tipo de triângulo. calcular e imprimir a média semestral. caso contrário deve ser encerrado imprimindo a quantidade de alunos aprovados. Enquanto for fornecido um valor nulo a leitura deve ser repetida. 4) Altere a solução do exercício 3 para que seja impressa a mensagem Valor inválido! caso o segundo valor informado seja zero.http://fit.10]). Flávia Pereira de Carvalho . 5) Escreva um programa para ler as notas da 1ª e 2ª avaliações de um aluno.sim 2.fpereira@faccat. caso contrário ele deve ser encerrado. a quantidade de alunos aprovados. reprovados e que ficaram em exame. Se a resposta for "S".br . 2) Altere a solução do exercício anterior para que seja impressa a mensagem Valor inválido! caso o segundo valor informado seja zero.br/~fpereira 7 . 9) Escreva um programa para ler 2 notas de um aluno. 10) Reescreva o programa do exercício 9.não) solicitando ao usuário que informe um código (1 ou 2) indicando se ele deseja ou não executar o programa novamente.Linguagem Pascal Repetição e/ou Seleção .não)? solicitando ao usuário uma resposta. 7) Reescreva o programa do exercício 6 validando a resposta do usuário para a pergunta Novo Cálculo (1.não)? (aceitar apenas o código 1 ou 2). Logo após escrever a mensagem "Calcular a média de outro aluno [S]im [N]ão?" e solicitar um resposta. Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo. o programa deve ser executado novamente. isósceles e escaleno) para que após a leitura dos dados (a medida dos 3 lados do triângulo) seja impressa a mensagem Os dados informados estão corretos (1. para que seja impressa no final. 6) Reescreva o programa para o exercício 5 para que no final seja impressa a mensagem Novo cálculo (1. calcular e imprimir a média final.1 ao 30 1) Para que a divisão entre 2 números possa ser realizada. Faça com que o algoritmo só aceite notas válidas (uma nota válida deve pertencer ao intervalo [0.sim/2.faccat. Profa. Escreva um programa para ler 2 valores e imprimir o resultado da divisão do primeiro pelo segundo. o divisor não pode ser nulo (zero).sim 2. 8) Reescreva o programa do exercício 21 da série "Seleção" (triângulo equilátero. OBS: O programa deve validar a leitura do segundo valor (que não deve ser nulo).Exercícios de Programação I . Cada nota deve ser validada separadamente.10]. Deve ser impressa a mensagem "Nota inválida" caso a nota informada não pertença ao intervalo [0.

12) A Federação Gaúcha de Futebol contratou você para escrever um programa para fazer uma estatística do resultado de vários GRENAIS.. Sendo que: N! = 1 * 2 * 3 * .Linguagem Pascal 11) Escreva um programa que verifique a validade de uma senha fornecida pelo usuário.fpereira@faccat. o algoritmo deve ser executado novamente solicitando o número de gols marcados pelos times em uma nova partida.1) * N 0! = 1 (por definição) Profa. 15) Escreva um programa para imprimir os números de 1 a 10 utilizando uma estrutura Repita/Até.O número de vitórias do Grêmio.Não?" e solicitar uma resposta.http://fit. a mensagem "ACESSO NEGADO" deve ser impressa e repetida a solicitação de uma nova senha até que ela seja válida. .br/~fpereira 8 . .faccat. imprimindo o nome do time vitorioso ou a palavra EMPATE. caso contrário deve ser encerrado imprimindo: .Exercícios de Programação I .Quantos GRENAIS fizeram parte da estatística. Logo após escrever a mensagem "Novo GRENAL 1. . . sendo que o valor inteiro de N deve ser escolhido pelo usuário. Quando for informada a palavra FIM para o nome da moça o programa deverá ser encerrado e imprimir: o nome e a altura da moça mais alta e o número de moças no concurso.br .O número de Empates. 16) Reescreva o programa do exercício anterior. Escreva um algoritmo para ler o número de gols marcados pelo Inter. Caso contrário deve ser impressa a mensagem "ACESSO PERMITIDO" junto com um número que representa quantas vezes a senha foi informada.Uma mensagem indicando qual o time que venceu o maior número de GRENAIS (ou NÃO HOUVE VENCEDOR)..O número de vitórias do Inter. Observação: Se a senha informada pelo usuário for inválida. Considere que todas as moças possuem altura diferente.Sim 2. o número de gols marcados pelo GRÊMIO em um GRENAL. * (N . 14) Escreva um programa para imprimir as letras de A a Z. Se a resposta for 1. Flávia Pereira de Carvalho . Observação: Para implementar um contador em Pascal (incrementar): variável := variável + 1 13) Escreva um programa que leia o primeiro nome e a altura das moças inscritas em um concurso de beleza. para imprimir os números de 1 a 10 utilizando uma estrutura Enquanto/Faça 17) Escreva um programa que calcule o fatorial de N (N!). A senha válida é a palavra teste (em minúsculo).

se forem. inclusive. o sobrenome e o ano em que nasceu.br . a última linha contém o número do dia negativo . calcular e escrever a média de idade desse grupo de idades.o ano está digitado com quatro dígitos . calcule e imprima os que são números perfeitos. Ao final programa deverá escrever quantas idades foram lidas.faccat.br/~fpereira 9 . Exemplo: 6 é perfeito porque 1 + 2 + 3 = 6 24) Número primo é aquele que só é divisível por ele mesmo e por 1. Faça um programa que determine e escreva os números primos compreendidos entre 100 e 1000. escrever uma mensagem informando o usuário.cada par de datas é lido numa linha.o número de homens 22) Faça um programa para calcular o número de dias decorridos entre duas datas (considerar também a ocorrência de anos bissextos). A última idade lida.um ano será bissexto se for divisível por 400 ou se for divisível por 4 e não o for por 100 23) Faça um programa que leia 10 números inteiros positivos.a primeira data na linha é sempre a mais antiga . deverá ser igual a zero. masculino) de 10 pessoas. um número perfeito é aquele cuja soma de seus divisores.Linguagem Pascal 18) Escreva um programa para que o usuário entre com três valores X. O programa deve verificar se esses valores podem ser os comprimentos dos lados de um triângulo e.http://fit. Se os valores não formarem um triângulo. Profa.a maior e a menor altura .fpereira@faccat. de 5 pessoas. Calcular e escrever: . 20) Faça um programa que leia um número indeterminado de idades.Exercícios de Programação I . calcular e escrever a soma das cinco idades lidas. informar o perímetro desse triângulo ao usuário. Z. sabendo-se que: .a média de altura das mulheres . Sendo que: a) Propriedade: o comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados. Escrever o nome completo e a idade da terceira pessoa. Sendo que. que não entrará nos cálculos. 21) Faça um programa para ler a altura e o sexo (feminino. é igual ao número. 25) Faça um programa para ler o primeiro nome. exceto ele próprio. Flávia Pereira de Carvalho . b) Perímetro: é a soma dos três lados 19) Escreva um programa para determinar e escrever a soma dos números pares de 100 a 200. Y.

0 a 10. o programa deverá solicitar novos dados.0).fpereira@faccat. 29) Reescreva o programa do exercício anterior. as notas da 1a.x Média xx. quantos o usuário quiser digitar e quando for digitado o zero. Calcular a média do aluno. Flávia Pereira de Carvalho . se válida. Validar as notas aceitando apenas notas válidas para cada avaliação (0. mas agora o caractere que será usado para desenhar a linha deve ser lido.br .x 2a. Após a entrada das notas deve ser impressa a seguinte mensagem: "Os dados estão corretos (S/N)?".Linguagem Pascal 26) Faça um programa para ler um número de 1 a 9 e mostrar a tabuada da multiplicação do número lido.0 Reprovado: média menor que 3.faccat. ou seja.Exercícios de Programação I . Avaliação xx.0 e menor que 6. informar quantos números foram lidos.0 Em Exame: média maior ou igual a 3. avaliações.0 no exame para aprovação! Novo cálculo (S/N)? Na coluna "Resultado" deverão ser impressas as seguintes mensagens. conforme os casos abaixo: Aprovado : média maior ou igual a 6.x Resultado xxxxxxx Obs: Você deverá obter nota 6. mostre uma "linha" vertical na coluna lida desenhada com caracteres *. aceitando apenas a letra S ou N maiúsculas como resposta. Após este cálculo a tela deve ser limpa e os resultados impressos conforme o lay-out abaixo: ALUNO: xxxxxxxxx 1a. Caso seja fornecida uma nota inválida deve ser impressa uma mensagem para o usuário. Avaliação xx. Profa.br/~fpereira 10 . 28) Faça um programa para ler o valor de uma coluna e.0 >> Note que a observação só deverá ser impressa caso o aluno fique em exame. o usuário que indicará. ou seja.http://fit. qual foi o maior e o menor número lido. e 2a. 27) Faça um programa para ler N números inteiros e positivos (apenas). Caso o usuário responda a letra N. 30) Ler o nome de um aluno.

faccat. 3) Preencher um vetor B de 10 elementos com 1 se o índice do elemento for ímpar e com 0 se for par. Criar um vetor Y da seguinte forma: os elementos de Y com índice par receberão os respectivos elementos de X divididos por 2. 8) Ler um vetor W de 10 elementos. v [8 .Exercícios de Programação I . com todos os elementos de D na ordem inversa. Flávia Pereira de Carvalho . os elementos com índice ímpar receberão os respectivos elementos de X multiplicados por 3. Escrever todo o vetor D e todo o vetor E. 5) Ler um vetor C de 10 elementos inteiros. depois ler um valor V. Criar um vetor E. v [v [3]] := v [v [2]]. 7) Ler um vetor X de 10 elementos inteiros e positivos. v [i] := v [8 .fpereira@faccat. Caso o valor V não ocorra nenhuma vez no vetor W. Escrever o vetor X e o vetor Y. 4) Dado o seguinte vetor V a seguir: 1 5 2 1 3 4 4 2 5 7 6 8 7 3 8 6 V >> Qual será seu conteúdo depois de executado o algoritmo abaixo? for i := 8 downto 5 do begin aux := v [i].br . Escrever o vetor A após o seu total preenchimento. o último elemento passará a ser o primeiro.i + 1]. Profa. o penúltimo será o segundo e assim por diante. 2) Preencher um vetor A de 10 elementos com os números inteiros de 1 a 10.Linguagem Pascal Vetores .i + 1] := aux. end .1 ao 23 1) Preencher (ler) um vetor X de 10 elementos com o valor inteiro 30. Contar e escrever quantas vezes o valor V ocorre no vetor W e escrever também em que posições (índices) do vetor W o valor V aparece. v [3] := v [1]. ou seja. trocar todos os valores negativos do vetor C por 0.br/~fpereira 11 . 6) Ler um vetor D de 10 elementos. Escrever o vetor B após o seu total preenchimento. Escrever o vetor C modificado. escrever uma mensagem informando isto. Escrever o vetor X após seu total preenchimento.http://fit.

18) Ler dois vetores. dos alunos que obtiveram nota maior que a média calculada.faccat. os elementos de S. A seguir. Escrever a mensagem ACHEI. ler um vetor B de 10 elementos contendo uma aposta. Obs. A seguir trocar o primeiro elemento com o último. Profa. Escrever o vetor R. 19) Ler um vetor X de 10 elementos inteiros. Escrever o vetor X e o vetor R. Escrever a média da turma e o resultado da contagem. Imprimir a média calculada e logo após o vetor P. 12) Ler dois vetores: R de 5 elementos e S de 10 elementos. após pedir que o usuário digite um nome qualquer de pessoa. até o quinto com o sexto e escrever o vetor U assim modificado. Escrever o vetor X. Escrever quantos pontos fez o apostador. Calcular a média da turma e contar quantos alunos obtiveram nota acima desta média calculada. Gerar um vetor X de 15 elementos cujas 5 primeiras posições contenham os elementos de R e as 10 últimas posições.br/~fpereira 12 . Flávia Pereira de Carvalho . 10) Ler um vetor que contenha as notas de uma turma de 10 alunos. onde nas posições ímpares de R estejam os elementos de X e nas posições pares os elementos de Y.Linguagem Pascal 9) Ler um vetor C de 10 nomes de pessoas. 13) Ler um vetor Q de 10 posições (aceitar somente números positivos). após sua completa geração. Considere que no mesmo vetor não haverão números repetidos. sem deixar elementos vazios entre os valores copiados. X e Y de 10 elementos cada um (ocupando as posições de 1 a 10 em cada vetor).br .fpereira@faccat. Escrever o vetor X. se o nome estiver armazenado no vetor C ou NÃO ACHEI caso contrário.http://fit. Calcular a média aritmética e copiar para um vetor A os valores de X que estão acima da média calculada e para um vetor B os valores que estão abaixo da média. Gerar um vetor X que possua os elementos comuns a R e T. 16) Ler um vetor A de 6 elementos contendo o gabarito da Mega Sena.Exercícios de Programação I .: Não deixar espaços vagos entre os elementos de A nem de B. 15) Ler dois vetores: R de 5 elementos e T de 10 elementos. Obs. 17) Ler as notas finais de uma turma de 10 alunos armazenando-as em um vetor N.: Não deixar valores em branco entre os elementos de P. Escrever a seguir o valor do maior elemento de Q e a respectiva posição que ele ocupa no vetor. A seguir copiar todos os valores negativos do vetor X para um vetor R. A seguir calcule a média aritmética das notas dos alunos aprovados (nota maior ou igual a 6. 14) Ler um vetor U de 10 elementos. Armazene em um vetor P a posição (índice) que cada aluno ocupa no vetor N. 11) Ler um vetor X de 10 elementos. Intercalar os elementos desses dois vetores formando assim um novo vetor R de 20 elementos.0). o segundo com penúltimo etc. Imprimir a média calculada e os vetores A e B.

O programa deve solicitar antes da leitura dos vetores a quantidade de dados a serem lidos (1 a 10). Após isto.br/~fpereira 13 .http://fit. ler a posição (0 a 6) de um produto no vetor e a quantidade vendida. Imprimir o nome do produto e o respectivo valor da venda (para o produto lido). sem deixar espaços em branco entre os elementos.br . 21) Ler dois vetores. 4 vetores. Gerar um terceiro vetor chamado Soma (de no máximo 10 elementos) que seja a soma dos dados do vetor A com os do vetor B. A e B com um número variável de conteúdos (dados) (no máximo 10). ou seja. ou seja. quantidade mínima para estoque e o valor unitário de 6 produtos. Logo após. deve ser impressa uma mensagem e ser lida uma nova posição. A seguir. Imprimir o novo vetor.Exercícios de Programação I . escrevendo se o produto está com o estoque normal ou abaixo do mínimo. Ajustar a nova quantidade do estoque. No momento da exclusão todos os valores posteriores ao valor escolhido deverão ser reorganizados (movidos uma posição para esquerda) a fim de que o vetor resultante não fique com um espaço em branco. imprimir um balanço de todo o estoque e das vendas de cada produto. Estas informações devem ser armazenadas em vetores separados.faccat. Profa. Se a posição for inválida. Repetir novas consultas ao estoque até que o usuário informe o valor zero para a posição do produto no vetor. 23) Ler um vetor de 10 elementos inteiros. imprimir na tela os 10 valores lidos e o usuário poderá escolher um destes valores para ser excluído do vetor. atualizar a quantidade em estoque e armazenar a quantidade vendida em um outro vetor. os dois vetores terão o mesmo número de elementos. 22) Ler um vetor A de 10 elementos inteiros e um valor X também inteiro. Flávia Pereira de Carvalho . Ler o valor escolhido e eliminá-lo do vetor. a quantidade em estoque. Ao final das retiradas. Imprimir o vetor Soma. imprimir o vetor M.Linguagem Pascal 20) Escrever um programa para ler o nome.fpereira@faccat. Armazenar em um vetor M o resultado de cada elemento de A multiplicado pelo valor X.

http://fit.2] := M [3.Exercícios de Programação I .j] := M [j. .. M [i.br . M [i.3]. M [j. end .j+1] := 1.i] := aux.4]. aux := M [1.1 ao 8 1) Qual o conteúdo das matrizes M e N após a execução do algoritmo abaixo? .i]..j]. for i := 1 to 3 do for j := i+1 to 4 do begin aux := M [i.. .fpereira@faccat.j] := 'A' else N [i. Flávia Pereira de Carvalho .j] := 2.. 2) Dada a matriz Mat abaixo: Qual será o seu conteúdo depois de executado o seguinte algoritmo? . . M [i.j] := 'Z' .2]. . M [i.3] := aux. aux := M [2..1]. M [2.Linguagem Pascal Matrizes . for i := 1 to 3 do begin M [i.br/~fpereira 14 . j := 2. M [4. end .j-1] := 1.. for i := 1 to 2 do for j := 1 to 2 do begin if i = j then N [i.1] := M [4. M [3. Profa.faccat.4] := aux. end ...j+2] := 2. M [1.

com 3 linhas e 3 colunas (considere que não serão informados valores duplicados). de 3 elementos cada.br . O mesmo deverá ser feito ao final da tarde.faccat. 4) Ler uma matriz SOMA 4x4. multiplicar os elementos da diagonal principal por um número inteiro também lido e escrever a matriz resultante.: Utilizar o conceito de matriz para resolver este exercício :-D Profa. Escrever os vetores criados. Obs. calcular e escrever as seguintes somas: a) da linha 3 b) da coluna 2 c) de todos os elementos da matriz 5) Ler uma matriz G 3x3 e criar 2 vetores. contendo respectivamente as somas das linhas e das colunas de G. 8) Fazer um programa para ler ao final da manhã o fechamento do caixa de uma loja. Ao final da semana. e criar: a) uma matriz S que seja a soma de A e B (A+B) b) uma matriz D que seja a diferença de A e B (A-B) Escrever as matrizes S e D. A 4x6 e B 4x6. Flávia Pereira de Carvalho .fpereira@faccat.br/~fpereira 15 . A seguir. ou seja. descobrir e escrever o dia e o turno que teve maior rendimento. o seu rendimento ao final da manhã. SL e SC. 6) Ler duas matrizes.Exercícios de Programação I . após feitas todas as leituras. ler um número inteiro X e escrever uma mensagem indicando se o valor de X existe ou não na matriz D.http://fit. ou seja. 7) Ler uma matriz 4x4 de números inteiros.Linguagem Pascal 3) Ler 9 números inteiros para preencher uma matriz D 3x3. Este levantamento deve ser feito todos os dias da semana (de segunda-feira a sexta-feira).

Observação2: O fundo deve ser azul e as letras amarelas :D 4) Escreva um programa para cadastrar até 30 alunos de uma turma. Ao final do cadastro de cada cliente deverá ser perguntado: "Novo Cliente (S/N)?". quando o usuário digitar "N" na pergunta para novo cliente ou quando preencher o vetor com 50 clientes.br/~fpereira 16 .1 ao 4 1) Escreva um programa para cadastrar dois clientes de uma loja. Após o término de todos os cadastros.fpereira@faccat. e não a cada execução do programa. quando o usuário digitar "N" na pergunta para novo aluno ou quando preencher o vetor com 30 alunos. Deverá ser digitada a palavra FIM para o nome para encerrar o programa.Linguagem Pascal Registros . mas após o término de todos os cadastros. Deve-se utilizar um vetor do tipo declarado como um registro para a solução deste programa. Deve ser usada uma estrutura de registro para a construção deste cadastro. Observação: Faça o programa o mais próximo da realidade possível . usando Type para a declaração do registro.http://fit. mas o programa deverá suportar até 50 clientes. ou seja.-) Profa.. 2) O mesmo exercício anterior. Flávia Pereira de Carvalho . Você deverá fazer uma tela de consulta com o formato que achar adequado. nome da disciplina e média final. usando Type para a declaração do registro. endereço e telefone. a tela deverá ser limpa e deverá ser montada uma tela para permitir a consulta aos clientes: por código (que é o índice do vetor). As informações necessárias são: nome. a tela deverá ser limpa e deverá ser montada uma tela para permitir a consulta aos alunos: por nome. As informações necessárias são: nome do aluno.> Observação1: Estas informações só deverão ser impressas uma vez. A tela de consulta deverá ter o seguinte formato: Digite o código do cliente: _ Nome: Endereço: Telefone: <Digite 999 para sair. Deverá ser digitado o código 999 para encerrar o programa. Deve ser usada uma estrutura de registro para a construção deste cadastro.Exercícios de Programação I . ou seja. Deve-se utilizar um vetor do tipo declarado como registro para a solução deste programa..faccat. 3) O mesmo exercício anterior.br . Ao final do cadastro de cada aluno deverá ser perguntado: "Novo Aluno (S/N)?".

br/~fpereira 17 . Imprimir o valor calculado (estando no programa principal). Este valor deverá ser passado como parâmetro para um módulo denominado Quadrado. Flávia Pereira de Carvalho . Utilizar o módulo ContaPalavra para a resolução deste exercício: Nome: ContaPalavra Entrada: uma string Saída: número de palavras existentes na string 3) Escreva um programa que leia uma palavra e imprima-a invertida na tela.1 ao 6 1) Escreva um programa que leia uma string e uma letra e conte quantas vezes a letra informada ocorre na string. Considere que palavra é qualquer conjunto de caracteres delimitados por um espaço em branco.Exercícios de Programação I . Utilizar o módulo ContaLetra para resolver este problema: Nome: ContaLetra Entrada: uma string e uma letra Saída: número de vezes que a letra ocorre na string 2) Escreva um programa que leia uma string e conte o número de palavras existentes na string. 6) O mesmo exercício anterior (número 5). 5) O mesmo exercício anterior (número 4). Este módulo imprime na tela o quadrado do valor passado como parâmetro.http://fit. Por exemplo: FACCAT --> TACCAF Utilizar o módulo InvertePalavra para resolver este exercício: Nome: InvertePalavra Entrada: uma palavra Saída: a mesma palavra com suas letras em ordem inversa 4) Escreva um programa em Pascal que leia do teclado um valor inteiro e armazene este valor em uma variável. mas agora o módulo deverá retornar 2 valores: o quadrado do valor lido do teclado e passado como parâmetro e também o valor passado como parâmetro multiplicado por 10. mas agora o módulo deverá retornar para uma segunda variável do programa principal o quadrado do valor passado como parâmetro.fpereira@faccat. Profa.br .faccat.Linguagem Pascal Modularização .

sendo q 6 eh o num total de caracteres e 2.Exercícios de Programação I . //Pi = 3. area : real. temp_c: temperatura celsius} begin clrscr. raio := 0.Simples program exercicio01. {simples} uses crt. Flávia Pereira de Carvalho .br/~fpereira 18 . var raio. write ('Informe o raio do circulo: '). temp_c : real. a quantidade de caracteres depois do ponto} end. write ('Informe a temperatura em graus Fahrenheit: '). {inicializar as variaveis} area := 0. temp_f := 0. Profa.32) * 5) / 9. {inicializar as variaveis} temp_c := 0. program exercicio02. area:6:2). {temp_f: temperatura fahrenheit.14 * (Sqr (raio)).br .Linguagem Pascal Respostas .faccat. end. area := 3. {simples} uses crt. temp_c:5:1). writeln ('A temperatura em graus Celsius eh: '. var temp_f. readln (raio).14 writeln ('A area do circulo eh: '. begin clrscr.http://fit.fpereira@faccat. readln (temp_f). temp_c := ((temp_f . {Formatar a saida.

write ('Qual o comprimento do comodo (em metros)? ').Linguagem Pascal program exercicio04. writeln. larg_com. num_lamp: integer. pot_total := area_com * 18. comp_com. writeln. {round = arredonda o valor} writeln. Profa. area_com := larg_com * comp_com. {simples} uses crt.br/~fpereira 19 . end.faccat. Flávia Pereira de Carvalho .http://fit. num_lamp).br .Exercícios de Programação I . writeln ('Numero de lampadas necessarias para iluminar esse comodo: '. {pot_lamp: potencia da lampada larg_com: largura do comodo comp_com: comprimento do comodo area_com: area do comodo pot_total: potencia total num_lamp: numero de lampadas} begin clrscr. write ('Qual a largura do comodo (em metros)? '). pot_total : real. writeln. readln (pot_lamp). readln (comp_com). area_com. readln (larg_com). writeln. var pot_lamp. write ('Qual a potencia da lampada (em watts)? ').fpereira@faccat. num_lamp := round (pot_total / pot_lamp).

{inicializar variaveis} 0. alt: altura} begin comp larg alt area caixas := := := := := 0. write ('Qual a largura da cozinha? ').5). write ('Qual o comprimento da cozinha? '). 0. clrscr.br/~fpereira 20 . 0. {simples} uses crt. writeln.http://fit. caixas : integer. {Tem q ser ponto em vez de virgula} writeln.fpereira@faccat. readln (alt). larg. writeln. area : real.br . writeln ('Quantidade de caixas de azulejos para colocar em todas as paredes: '. write ('Qual a altura da cozinha? '). alt. {comp: comprimento. Flávia Pereira de Carvalho .faccat. writeln. area := (comp*alt*2) + (larg*alt*2). var comp. readln (comp). readln (larg). writeln.Exercícios de Programação I . 0. Profa. caixas := round (area/1. writeln. end.Linguagem Pascal program exercicio05. caixas).

writeln ('Lucro (liquido) do dia: R$'. var odom_i. readln (litros).faccat.lucro:8:2). valor_t := 0. media. lucro. write ('Marcacao inicial do odometro (Km): '). odom_f. clrscr. writeln.fpereira@faccat. write ('Valor total recebido (R$): '). valor_t.http://fit.br/~fpereira 21 . lucro := valor_t . media:4:1). write ('Marcacao final do odometro (Km): '). lucro := 0.br . write ('Quantidade de combustivel gasto (litros): '). readln (odom_f). writeln. Flávia Pereira de Carvalho . writeln. gasol_l := 1.90. gasol_l : real. end. writeln.Exercícios de Programação I . odom_f := 0. writeln.odom_i) / litros.(litros * gasol_l). litros := 0. writeln.Linguagem Pascal program exercicio06. Profa. readln (valor_t). litros. media := (odom_f . readln (odom_i). writeln ('Media de consumo em Km/L: '. {odom_i: odometro inicial odom_f: odometro final valor_t: valor total gasol_l: valor do litro da gasolina} begin odom_i := 0. writeln. writeln. {simples} uses crt. media := 0.

Flávia Pereira de Carvalho . var cod : integer. {Selecao com if} uses crt.fpereira@faccat. begin cod := 0.faccat. readln (cod).http://fit. writeln.Seleção program exercicio01. clrscr. end.Exercícios de Programação I . writeln.br/~fpereira 22 . if cod = 1 then writeln ('Sul') else if cod = 2 then writeln ('Norte') else if cod = 3 then writeln ('Leste') else if cod = 4 then writeln ('Oeste') else if (cod = 5) or (cod = 6) then writeln ('Nordeste') else if (cod = 7) or (cod = 8) or (cod = 9) then writeln ('Sudeste') else if cod = 10 then writeln ('Centro-Oeste') else if cod = 11 then writeln ('Noroeste') else writeln ('Importado') . Profa. write ('Qual o codigo do produto? '). writeln.Linguagem Pascal Respostas .br .

if valor < 0 then writeln ('Negativo!') else writeln ('Positivo!') . clrscr. {Selecao com if} uses crt. begin valor := 0. writeln. begin nota1 := 0. var valor : real.0 then writeln ('PARABENS! Voce foi aprovado') . end. nota2 := 0. writeln. write ('Digite um valor: '). readln (valor).Linguagem Pascal program exercicio03.br . if media >= 6.Exercícios de Programação I . writeln.br/~fpereira 23 . nota2. media : real. {Selecao com if} uses crt. Profa. media := (nota1 + nota2) / 2. media := 0. write ('Digite a nota da segunda avaliacao: '). writeln.fpereira@faccat. readln (nota2). end.http://fit. Flávia Pereira de Carvalho . write ('Digite a nota da primeira avaliacao: '). clrscr. readln (nota1). var nota1.faccat. program exercicio05.

write ('Digite outro valor: '). begin x := 0. writeln.http://fit. program exercicio08. . writeln. var x. writeln. write ('Ano de nascimento c/ quatro digitos: '). {Selecao com if} uses crt. end. writeln.br/~fpereira 24 . if (2002 . y : real.Exercícios de Programação I . clrscr.Linguagem Pascal program exercicio07. writeln.br . write ('Digite um valor: '). var ano : integer. Profa. y:5:2) . y := 0. clrscr. writeln.faccat. if x > y then writeln ('O maior eh: '. readln (y). {Selecao com if} uses crt.ano) >= 16 then writeln ('Voce podera votar este ano :-) ') else writeln ('Voce ainda nao podera votar este ano :-( '). begin ano := 0. end. x:5:2) else writeln ('O maior eh: '. readln (ano). readln (x).fpereira@faccat. Flávia Pereira de Carvalho .

Exercícios de Programação I . if (a < b) and (a < c) then if b < c then writeln (a. b) 25 .3:5:2) else writeln ('Valor da compra: '.http://fit. c : integer. readln (macas). readln (c). writeln. writeln. clrscr. if macas < 12 then writeln ('Valor da compra: '. b. macas * 0. var a. program exercicio10. . ' else writeln (a. c. ' else writeln (b. ' else if (b < a) and (b < c) then if a < c then writeln (b. b) '.faccat. write ('Digite um valor qualquer: '). ' '. b := 0. begin a := 0. {Selecao com if} uses crt. c := 0. ' else if b < a then writeln (c. write ('Digite outro valor qualquer: '). ' '. c) '. ' '. c. a) '. var macas : integer. ' else writeln (c. c) '. readln (a).br/~fpereira '. b. a. readln (b). ' .fpereira@faccat. begin macas := 0. end. ' '. a. writeln. Flávia Pereira de Carvalho . b. end. ' '.br . writeln.25:5:2). Profa. write ('Digite mais um valor qualquer: '). writeln.Linguagem Pascal program exercicio09. macas * 0. {Selecao com if} uses crt. ' '. a) '. write ('Quantidade de macas compradas: '). clrscr.

peso:7:3). readln (altura). write ('1:feminino 2:masculino: '). sexo : integer. {Selecao com if} uses crt. program exercicio12. ('Seu peso ideal eh: '. writeln. {Selecao com if} uses crt. (72. peso := 0.Exercícios de Programação I .br/~fpereira (62. begin altura := 0. peso:7:3). if senha = 1234 then writeln ('Acesso Permitido!') else writeln ('Acesso Negado. writeln. begin senha := 0.fpereira@faccat.58. 26 . sexo := 0. writeln.') . Flávia Pereira de Carvalho . clrscr. readln (senha). if sexo = 1 then begin peso := writeln end else begin peso := writeln end . var senha : integer. ('Seu peso ideal eh: '. write ('Digite a senha (quatro digitos): '). end.7. writeln. peso : real. writeln. end..faccat. var altura. writeln.br . Profa.1 * altura) .. clrscr.7 * altura) .44. writeln.http://fit. readln (sexo).Linguagem Pascal program exercicio11. write ('Digite sua altura: ').

http://fit. readln (num).faccat. write ('Gols do Gremio: ').br/~fpereira 27 . Flávia Pereira de Carvalho .') . uses crt. begin num := 0.Exercícios de Programação I .Linguagem Pascal program exercicio13. gols_i : integer. readln (gols_i). gols_i := 0. {Selecao com if e mod} var gols_g. writeln. if gols_g > gols_i then writeln ('GREMIO!!!') else if gols_i > gols_g then writeln ('INTER!!!') else writeln ('Empate. writeln.') .. readln (gols_g).br . writeln. program exercicio14. clrscr. writeln. uses crt. var num : integer. end. writeln. if (num mod 2) = 0 then writeln ('O numero digitado eh PAR. {gols_g: gols do gremio gols_i: gols do inter} begin gols_g := 0. write ('Digite um numero: ').fpereira@faccat. Profa. writeln. writeln.. end. {Selecao com if e mod} clrscr.') else writeln ('O numero digitado eh IMPAR. write ('Gols do Inter: ').

{Selecao com if} var num_lado : integer. end else writeln ('Pentagono'). writeln. write ('Quantos lados tem o poligono: ').br . writeln. med_lado := 0. {Numero de lados} med_lado : real. writeln. writeln ('Perimetro: '. end else if num_lado = 4 then begin writeln ('Quadrado').http://fit. .fpereira@faccat. Flávia Pereira de Carvalho .Linguagem Pascal program exercicio15. readln (med_lado).faccat. Profa. writeln. end.br/~fpereira 28 . uses crt. if num_lado = 3 then begin writeln ('Triangulo'). clrscr. writeln ('Área: '.Exercícios de Programação I . {Medida do lado} begin num_lado := 0. med_lado * med_lado:5:2). writeln. writeln. write ('Qual a medida do lado (cm): '). med_lado * 3:5:2). readln (num_lado).

end. writeln. readln (b). readln (a).faccat.br/~fpereira 29 . b.fpereira@faccat. a/b:5:2) else writeln ('A multiplicacao eh: '. a*b) . begin a := 0.Subtracao 3.http://fit. write ('1. uses crt. write ('Informe um valor: '). {Selecao com if} clrscr. a+b) else if op = 2 then writeln ('A subtracao eh: '. Flávia Pereira de Carvalho . 4. a-b) else if op = 3 then writeln ('A divisao eh: '. writeln. writeln. Profa. op : integer. if op = 1 then writeln ('A soma eh: '.Adicao 2.Linguagem Pascal program exercicio17_if.Divisao readln (op). writeln.Exercícios de Programação I . b := 0.br . op := 0. write ('Informe outro valor: ').Multiplicacao '). writeln. var a.

writeln.Subtracao 3. var a. writeln.faccat. ('Subtracao: '. writeln. b := 0. a+b).Adicao 2. op : integer. a*b).Multiplicacao '). begin a := 0. readln (b).Exercícios de Programação I . a/b:5:2). end. write ('Informe outro valor: '). uses crt. Flávia Pereira de Carvalho .br/~fpereira 30 . op := 0. {Selecao com case} clrscr.http://fit. writeln. writeln writeln writeln writeln ('Soma: '.Divisao readln (op). Profa. ('Divisao: '. a-b). writeln.fpereira@faccat. b. write ('Informe um valor: '). 4. ('Multiplicacao: '.br . case op of 1 : 2 : 3 : 4 : end. readln (a). write ('1.Linguagem Pascal program exercicio17_case.

writeln. write ('Informe outro valor: '). x+z) . {Selecao com if} var x. if (x > y) and (y > z) then writeln ('A soma dos dois maiores eh: '. clrscr.Exercícios de Programação I . write ('Informe outro valor: '). writeln. readln (y). readln (z).br .Linguagem Pascal program exercicio19. writeln. writeln.fpereira@faccat. write ('Informe um valor: '). begin x := 0. Flávia Pereira de Carvalho . uses crt.faccat.http://fit. end. writeln. Profa. y.br/~fpereira 31 . readln (x). y := 0. x+y) else if (z > y) and (y > x) then writeln ('A soma dos dois maiores eh: '. z := 0. z+y) else writeln ('A soma dos dois maiores eh: '. z : integer.

uses crt. writeln. write ('Informe a medida 1: ').br/~fpereira 32 . writeln.Exercícios de Programação I . writeln.br . Profa. if (x = y) and (y = z) then writeln ('Equilatero') else if (x = y) or (y = z) or (x = z) then writeln ('Isosceles') else if (x <> y) and (y <> z) and (x <> z) then writeln ('Escaleno') . writeln. write ('Informe a medida 3: ').Linguagem Pascal program exercicio21. z : real. var x. write ('Informe a medida 2: '). {Selecao com if} clrscr. y. writeln. Flávia Pereira de Carvalho . end. z := 0. readln (y). readln (x). begin x := 0. readln (z). y := 0.http://fit.faccat.fpereira@faccat.

h2*m2). end else if (h1 > h2) and (m1 > m2) then begin writeln ('Homem mais velho + mulher mais nova = '. h1*m2). Flávia Pereira de Carvalho . end. writeln. if (h1 > h2) and (m1 < m2) then begin writeln ('Homem mais velho + mulher mais nova = '. do segundo homem: '). writeln. da primeira mulher: ').faccat. writeln. write ('Idade readln (m1). 0. end else if (h1 < h2) and (m1 < m2) then begin writeln ('Homem mais velho + mulher mais nova = '.br/~fpereira 33 .fpereira@faccat. clrscr. h1+m2). h2. writeln ('Homem mais novo * mulher mais velha = '. writeln ('Homem mais novo * mulher mais velha = '. writeln. write ('Idade readln (h2).Exercícios de Programação I . end . end else begin writeln ('Homem mais velho + mulher mais nova = '. 0. write ('Idade readln (h1). 0. {h1: h2: m1: m2: idade idade idade idade do do da da primeiro homem segundo homem primeira mulher segunda mulher} begin h1 h2 m1 m2 := := := := 0. writeln. da segunda mulher: '). {Selecao com if} uses crt.br .http://fit. h2*m1). do primeiro homem: '). writeln. writeln ('Homem mais novo * mulher mais velha = '. h2+m1). m2 : integer. writeln ('Homem mais novo * mulher mais velha = '. write ('Idade readln (m2). h1+m1). m1. h2+m2). Profa.Linguagem Pascal program exercicio22. var h1. h1*m1).

. uses crt. write ('Segundo angulo: '). {Selecao com if} clrscr.Exercícios de Programação I . Profa. c := 0.Linguagem Pascal program exercicio23..br . readln (c)... write ('Terceiro angulo: '). begin a := 0. end.. writeln. b.') else if (a > 90) or (b > 90) or (c > 90) then writeln ('Obtusangulo.faccat. if (a = 90) or (b = 90) or (c = 90) then writeln ('Retangulo. var a. writeln. writeln. c : real. writeln. readln (b). Flávia Pereira de Carvalho .') else writeln ('Acutangulo.') . writeln..fpereira@faccat. write ('Primeiro angulo: ').br/~fpereira 34 .http://fit. b := 0. readln (a).

faccat. var a. divisao := a/b. b := 0. {5:2 = formatacao do numero} writeln. readln (a). divisao := 0. divisao: real. divisao := a/b.Exercícios de Programação I . end. { Repeticao com Repeat } program exercicio03. clrscr. { Repeticao com While } uses crt. b : integer. uses crt. begin a := 0. writeln ('A divisao do primeiro valor pelo segundo eh: '. clrscr. while b = 0 do begin write ('Digite outro valor inteiro: '). write ('Digite um valor inteiro: '). writeln. {5:2 = formatacao do numero} writeln. Flávia Pereira de Carvalho . Profa.http://fit. write ('Digite um valor inteiro: '). divisao: real. readln (b).fpereira@faccat. end . repeat write ('Digite outro valor inteiro: '). readln (a). b := 0. writeln. readln (b).Linguagem Pascal Respostas . end. until b <> 0. divisao:5:2). begin a := 0.br .br/~fpereira 35 . divisao:5:2). divisao := 0. writeln ('A divisao do primeiro valor pelo segundo eh: '. var a.Repetição e/ou Seleção program exercicio01. b : integer.

writeln. write ('Digite a nota da 2a avaliacao: '). write ('Calcular a media de outro aluno? 1. clrscr.Sim 2. writeln ('A media do aluno eh: '. if media >= 6. begin nota1 nota2 media resp cont := := := := := 0.fpereira@faccat. 0.http://fit. repeat write ('Digite a nota da 1a avaliacao: ').faccat. cont). writeln ('Quantidade de alunos aprovados: '. 0. cont : integer.Exercícios de Programação I . resp. readln (nota2). media:3:1). { Repeticao com Repeat e If var nota1. end. writeln. 0. media : real. nota2.Nao '). writeln. Profa. writeln.Linguagem Pascal program exercicio09.br . Flávia Pereira de Carvalho . until resp <> 1. readln (nota1). readln (resp). uses crt. media := (nota1 + nota2) / 2. 0.0 then cont := cont + 1 .br/~fpereira 36 . writeln. writeln.

Profa.Exercícios de Programação I . maior:3:2). writeln ('Moca mais alta: '. end. end .Linguagem Pascal program exercicio13. nome_m := nome.br/~fpereira 37 . ' '. writeln.br . writeln. nome_m). writeln ('Altura: '. num := num + 1. maior : real. if altura > maior then begin maior := altura.http://fit. uses crt. end .fpereira@faccat. begin altura nome maior num nome_m := := := := := 0. ' '.faccat. writeln. write ('Nome: '). end . nome. while upcase(nome) <> 'FIM' do { Upcase: transforma p/ maiúscula } begin writeln. var { Repeticao com While e If } altura. num). if upcase(nome) = 'FIM' then begin writeln ('Total de mocas no concurso: '. end else begin write ('Altura: '). readln (nome). num : integer. readln (altura). 0. 0. clrscr. Flávia Pereira de Carvalho . nome_m : string [15].

{ contador } end . i := 0. var n. writeln. soma). { Repeticao com For e If } uses crt. ' eh: '. writeln. begin soma := 0. writeln ('Soma dos pares entre 100 e 200 (inclusive) eh: '. end. for i := 100 to 200 do begin soma := soma + i. { acumulador } i := i + 1. n. readln (n).faccat. writeln. writeln.br/~fpereira 38 . { Repeticao com For } uses crt. begin n := 0. write ('Digite um numero inteiro: '). fatorial. 1) else begin for i := 1 to n do fatorial := fatorial * i . Flávia Pereira de Carvalho . ' eh: '.br . fatorial). if n = 0 then writeln ('Fatorial de '. . writeln.http://fit.fpereira@faccat. clrscr. clrscr. end . n.Exercícios de Programação I . var soma. end. i := 0. i : integer. writeln ('Fatorial de '. program exercicio19. Profa. i : integer.Linguagem Pascal program exercicio17. fatorial := 0.

end . clrscr. writeln. until idade = 0.http://fit. uses crt. Flávia Pereira de Carvalho . writeln.Exercícios de Programação I . cont. if idade <> 0 then begin cont := cont + 1. end. cont := 0. readln (idade).fpereira@faccat. var { Repeticao com While e If } idade.') .faccat. begin idade := 0.. Profa.Linguagem Pascal program exercicio20.br/~fpereira 39 . media : integer. repeat write ('Digite uma idade: '). media div cont) else writeln ('Nao tem idades para calcular. media := media + idade.br .. media := 0. if cont > 0 then writeln ('A media das idades é: '.

x [cont] := pos.fpereira@faccat. uses wincrt. pos := 0.faccat. v := 0.http://fit. pos. v. ' vez(es) no vetor w'). Flávia Pereira de Carvalho ..x : array [1. readln (w [pos]). for pos := 1 to 10 do if w [pos] = v then begin cont := cont + 1. var w. pos : integer. end. v.br/~fpereira 40 . write ('Digite um valor: ').br . v. x [pos]). { Vetor com For e If } Profa. for pos := 1 to 10 do begin write ('Valor '. ' apareceu '.Linguagem Pascal Respostas .Vetores program exercicio08. cont. ' : '). cont := 0. . cont.Exercícios de Programação I . end .10] of integer. end . end . for pos := 1 to (cont) do writeln ('Na posicao '. ' nao aparece no vetor w') else begin writeln ('O valor '. readln. . readln (v). if cont = 0 then writeln ('O valor '. begin clrscr.

j]). Flávia Pereira de Carvalho . write ('Digite um numero inteiro para verificar se existe na matriz D: ').3] of integer..Matrizes program matriz3.1. readln (x).fpereira@faccat. if teste = 1 then writeln ('Este numero existe na matriz D') else writeln ('Este numero nao existe na matriz D') .faccat. clrscr. readln. readln (d[i. end . .br/~fpereira 41 . uses crt.teste: integer. i.j] then teste := 1 . begin teste := 0.br .http://fit.Exercícios de Programação I . var d: array[1.Linguagem Pascal Respostas .x. Profa. .j.3. writeln. .. for i:=1 to 3 do for j:=1 to 3 do if x = d[i. for i:=1 to 3 do for j:=1 to 3 do begin write ('Digite um numero inteiro para a matriz D3X3: '). end.

('Endereco: '). writeln ('Endereco: '. type cadastro = record nome. end.ender). Profa. ('Endereco: ').nome). writeln. ('Telefone: '). writeln ('Cadastrar dois Clientes'). readln. writeln ('Pressione <Enter> para ver os clientes cadastrados.br/~fpereira 42 . writeln ('Clientes Cadastrados').fpereira@faccat. writeln ('Nome: '.fone).fone). cliente1. begin clrscr. fone : string [20]. (cliente2.nome). writeln. Flávia Pereira de Carvalho .ender). (cliente1. clrscr..br . (cliente1. writeln ('Telefone: '..fone).ender). cliente2. writeln. { Registro com uso do Type } var cliente1.Exercícios de Programação I .Linguagem Pascal Respostas . writeln. (cliente1.faccat. writeln ('Endereco: '. cliente1.Registros program exercicio01.'). uses crt.http://fit. cliente2.ender). writeln.nome). cliente2 : cadastro. cliente2. writeln. clrscr. (cliente2. writeln ('Telefone: '. write readln write readln write readln ('Nome: ').fone). writeln. ('Telefone: ').nome). cliente1. end. ender : string [35]. writeln. (cliente2. write readln write readln write readln ('Nome: '). writeln ('Nome: '.

fpereira@faccat. cliente[x]. until resp in ['s'.'n'. Flávia Pereira de Carvalho .http://fit. readln (cliente[i]. writeln.nome)..'S'. begin i := 0. clrscr. clrscr. writeln ('Endereco: '. until (resp = 'n') or (resp = 'N') or (i = 50).Linguagem Pascal program exercicio02.faccat. cliente[x].'N'] then teste := true else repeat writeln ('Resposta Incorreta! Digite Novamente: '). readln (cliente[i].fone). readln (resp).br/~fpereira 43 . writeln ('Telefone: '. Profa. boolean. writeln.br .ender). writeln. cliente[x].50] of cadastro.')..'S'. end . if resp in ['s'. for x := 1 to i do begin writeln ('Nome: '.x resp teste : : : : array [1. ' Cliente(s) Cadastrado(s):').'N']. writeln ('Pressione <Enter> para ver os clientes cadastrados. readln (resp). writeln.Exercícios de Programação I . i. writeln. readln. end. write ('Novo Cliente (S/N)? '). write ('Nome: '). integer. ender : string [35]. char.. writeln. var cliente i.fone). { Registro com uso do Type e Repeat } type cadastro = record nome. .nome).'n'. write ('Telefone: '). fone : string [20]. repeat i := i + 1. write ('Endereco: '). writeln ('Cadastro de Clientes'). uses crt. writeln ('Existe(m) '. writeln. end. clrscr. readln (cliente[i].ender).

lin+2). gotoxy (5. i := 0. write (' ').br . {textcolor (14). {textcolor (14).http://fit. readln (cliente[i]. x. {textcolor (14). writeln. readln (resp). {textcolor (14).50] of cadastro. end.lin). end .} write ('Nome: '). write (' gotoxy (15. i. repeat i := i + 1.7).8). {textbackground(1).Linguagem Pascal program exercicio03. fone : string [20]. type cadastro = record nome. 44 . pois este comando e o textcolor nao funcionam no compilador q eu estava testando. Repeat e GoToXY } '). lin. begin lin := 6.} write ('Novo Cliente (S/N)? ').6).lin+4).lin). resp : char. gotoxy (15. readln (cliente[i]. gotoxy (25.br/~fpereira { Registro com uso do Type.2). gotoxy (15.lin+1). {textcolor (14).} write ('Endereco: '). coloquei como comentario.lin+1).ender).'S'.nome). var cliente : array [1. writeln.lin+2). q eh o TPW . readln (cliente[i]. ender : string [35].lin+4). gotoxy (5. uses crt. if resp in ['s'.} write ('Telefone: ').fone). write (' gotoxy (15.. '). gotoxy (5. gotoxy (11.Exercícios de Programação I . cod : integer.'N'] then begin if (resp = 's') or (resp = 'S') then begin gotoxy (11. end Profa.faccat.Turbo Pascal para Windows} clrscr. write (' ').fpereira@faccat.} writeln ('Cadastro de Clientes').'n'. gotoxy (5. Flávia Pereira de Carvalho . gotoxy (20.

22). end .20). write (' ').8).} Profa. ').lin+3).'n'.'S'. {textcolor (14).lin+4).Linguagem Pascal else begin gotoxy (5. {textcolor (14).} writeln ('Consulta a(os) '.lin+2).lin).} gotoxy (23. clrscr. gotoxy (5.lin+2). {textbackground (1). gotoxy (43.lin). gotoxy (25.20). {textcolor (14). gotoxy (33. 45 .faccat. write (' '). {textcolor (14). Flávia Pereira de Carvalho .Exercícios de Programação I . if (resp = 's') or (resp = 'S') then begin gotoxy (11. until resp in ['s'.} write ('Telefone: ').} write ('Nome: ').} write ('Resposta Incorreta! Digite Novamente: ').br/~fpereira '). write (' gotoxy (15. ' Cliente(s) Cadastrado(s)').lin). write (' '). write (' ').br .'N']. end . {textcolor (14). gotoxy (5.22). repeat repeat gotoxy (33.http://fit. write (' gotoxy (15. readln (cod). readln (resp).fpereira@faccat.} write ('Endereco: '). ').6). write (' gotoxy (11. end else begin gotoxy (5.lin+4).22). repeat gotoxy (43. if cod > i then begin gotoxy (5.2). {textcolor (14). gotoxy (5. {textcolor (14). i.} write ('Digite o codigo do cliente: '). gotoxy (5. {textcolor (14). until (resp = 'n') or (resp = 'N') or (i = 50).} writeln ('Codigo Inexistente! Digite outro Codigo!').7).

{textcolor (14). write (' gotoxy (15. gotoxy (43.lin+3). readln (resp).} write ('Resposta Incorreta! Digite Novamente: '). until cod <= i.br .lin). write (' gotoxy (15.nome). gotoxy (26. write (' gotoxy (15. {textcolor (14).lin+6). '). write (' '). end. {Observação: Esta resposta está além do que o exercício pedia. pois eu incrementei o programa para que ele ficasse mais próximo da realidade.lin+3).ender).'N'] then begin if (resp = 's') or (resp = 'S') then begin gotoxy (33. ou seja. '). gotoxy (15. write (' ').22). if (resp = 's') or (resp = 'S') then begin gotoxy (11. Flávia Pereira de Carvalho .faccat. readln (resp).lin+6).'S'. end . end .'n'. {textcolor (14). end else begin gotoxy (5. end .br/~fpereira 46 . imaginando como seria um cadastro realmente :-) } Profa.lin+6).'S'.22).lin+2).Exercícios de Programação I .Linguagem Pascal write (cliente[cod]. write (' ').http://fit. write (' ').lin+4). {textcolor (14).'N']. gotoxy (15.fone). write (' gotoxy (15.lin+2). '). until (resp = 'n') or (resp = 'N'). if resp in ['s'. gotoxy (5. write (' ').lin+4). end . gotoxy (5.} write (cliente[cod].22).} write (cliente[cod].lin+4).lin+3).'n'. repeat gotoxy (43. write (' '). gotoxy (11.} write ('Nova Consulta (S/N)? ').fpereira@faccat. until resp in ['s'. ').

var valor: integer.. valor). writeln ('O quadrado deste valor eh: '. writeln ('O conteudo da variavel lida eh: '. end. Profa. readln (valor). write ('Digite um valor inteiro: '). quad). result). end. begin clrscr. end.'). { exercicio de modularizacao 5 } uses crt. begin clrscr.. quad: integer.br . writeln ('Execucao dentro da procedure Quadrado. Flávia Pereira de Carvalho . begin result := x * x. quad := quadrado (valor). end.'). {exercicio de modularizacao 4 } uses crt.faccat. write ('Digite um valor inteiro: ').br/~fpereira 47 . writeln ('Programa principal novamente.Modularização program modulo4. var valor.Exercícios de Programação I . procedure quadrado (x: integer).. function quadrado (x: integer):integer. writeln ('O quadrado deste valor eh: '. program modulo5.Linguagem Pascal Respostas .http://fit. quadrado (valor). readln (valor).fpereira@faccat. begin quadrado := x * x. var result: integer..

então as respostas apresentadas nesta apostila não são as únicas corretas. ATENÇÃO: Lembre-se que existem várias formas diferentes de se chegar ao mesmo resultado. {exercicio de modularizacao 6} uses crt. var valor.faccat. valor). quad). write ('Digite um valor inteiro: ').http://fit. end. function quadrado (var x: integer):integer. readln (valor). Flávia Pereira de Carvalho . você pode ter feito de forma diferente e também estar correta a sua resposta. begin clrscr. quad := quadrado (valor).fpereira@faccat.br . end.Exercícios de Programação I . x := x * 10. writeln ('O quadrado deste valor eh: '. ok? Profa. writeln ('O conteudo da variavel lida multiplicado por 10 eh: '. quad: integer.Linguagem Pascal program modulo6. begin quadrado := x * x.br/~fpereira 48 .

Sign up to vote on this title
UsefulNot useful