








































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
EXERCÍCIO PARA O DESENVOLVIMENTO DA LÓGICA DE PROGRAMAÇÃO COM PASCAL!
Tipologia: Exercícios
1 / 48
Esta página não é visível na pré-visualização
Não perca as partes importantes!









































FIT – Faculdade de Informática de Taquara Curso de Sistemas de Informação
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 5 ou 6 : Nordeste
código 2 : Norte código 7, 8 ou 9 : Sudeste código 3 : Leste código 10 : Centro-Oeste código 4 : Oeste código 11 : 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.
Reprovado: media < 3.
Exame : media >= 3.0 e < 6.
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).
9) As maçãs custam R$ 0,30 cada se forem compradas menos do que uma dúzia, e R$ 0,25 se forem compradas pelo menos doze. Escreva um programa que leia o número de maçãs compradas, calcule e escreva o valor total da compra.
10) Escreva um programa para ler 3 valores inteiros (considere que não serão lidos valores iguais) e
escrevê-los em ordem crescente.
11) Escreva um programa que verifique a validade de uma senha fornecida pelo usuário. A senha válida é o número 1234. Devem ser impressas as seguintes mensagens:
ACESSO PERMITIDO caso a senha seja válida.
ACESSO NEGADO caso a senha seja inválida.
12) Tendo como entrada a altura e o sexo (codificado da seguinte forma: 1 :feminino 2 :masculino) de uma pessoa, construa um programa que calcule e imprima seu peso ideal, utilizando as seguintes fórmulas:
Observação: Altura = h (na fórmula acima).
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.
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. Escrever o nome do vencedor. Caso não haja vencedor deverá ser impressa a palavra EMPATE.
15) Escreva um programa para ler o número de lados de um polígono regular e a medida do lado (em cm). Calcular e imprimir o seguinte:
Observação: Considere que o usuário só informará os valores 3, 4 ou 5.
1) Para que a divisão entre 2 números possa ser realizada, o divisor não pode ser nulo (zero). Escreva um programa para ler 2 valores e imprimir o resultado da divisão do primeiro pelo segundo. OBS: O programa deve validar a leitura do segundo valor (que não deve ser nulo). Enquanto for fornecido um valor nulo a leitura deve ser repetida. Utilize a estrutura Repita/Até na construção da repetição de validação.
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.
3) Reescreva o programa para o exercício 1 utilizando a estrutura Enquanto/Faça na construção da repetição de validação.
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.
5) Escreva um programa para ler as notas da 1ª e 2ª avaliações de um aluno, calcular e imprimir a média semestral. Faça com que o algoritmo só aceite notas válidas (uma nota válida deve pertencer ao intervalo [0,10]). Cada nota deve ser validada separadamente. Deve ser impressa a mensagem "Nota inválida" caso a nota informada não pertença ao intervalo [0,10].
6) Reescreva o programa para o exercício 5 para que no final seja impressa a mensagem Novo cálculo (1.sim 2.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. Se for informado o código 1 deve ser repetida a execução de todo o programa para permitir um novo cálculo, caso contrário ele deve ser encerrado.
7) Reescreva o programa do exercício 6 validando a resposta do usuário para a pergunta Novo Cálculo (1.sim 2.não)? (aceitar apenas o código 1 ou 2).
8) Reescreva o programa do exercício 21 da série "Seleção" (triângulo equilátero, 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.sim/2.não)? solicitando ao usuário uma resposta. Caso a resposta seja 1 a execução deve continuar normalmente escrevendo o tipo de triângulo, caso contrário, a leitura dos dados (a medida dos 3 lados) deverá ser repetida.
9) Escreva um programa para ler 2 notas de um aluno, calcular e imprimir a média final. Logo após escrever a mensagem "Calcular a média de outro aluno [S]im [N]ão?" e solicitar um resposta. Se a resposta for "S", o programa deve ser executado novamente, caso contrário deve ser encerrado imprimindo a quantidade de alunos aprovados.
10) Reescreva o programa do exercício 9, para que seja impressa no final, a quantidade de alunos aprovados, reprovados e que ficaram em exame.
11) Escreva um programa que verifique a validade de uma senha fornecida pelo usuário. A senha válida é a palavra teste (em minúsculo).
Observação: Se a senha informada pelo usuário for inválida, a mensagem "ACESSO NEGADO" deve ser impressa e repetida a solicitação de uma nova senha até que ela seja válida. Caso contrário deve ser impressa a mensagem "ACESSO PERMITIDO" junto com um número que representa quantas vezes a senha foi informada.
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. Escreva um algoritmo para ler o número de gols marcados pelo Inter, o número de gols marcados pelo GRÊMIO em um GRENAL, imprimindo o nome do time vitorioso ou a palavra EMPATE. Logo após escrever a mensagem "Novo GRENAL 1.Sim 2.Não?" e solicitar uma resposta. Se a resposta for 1, o algoritmo deve ser executado novamente solicitando o número de gols marcados pelos times em uma nova partida, caso contrário deve ser encerrado imprimindo:
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. 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. Considere que todas as moças possuem altura diferente.
14) Escreva um programa para imprimir as letras de A a Z.
15) Escreva um programa para imprimir os números de 1 a 10 utilizando uma estrutura Repita/Até.
16) Reescreva o programa do exercício anterior, 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!), sendo que o valor inteiro de N deve ser escolhido pelo usuário. Sendo que:
N! = 1 * 2 * 3 * ... * (N - 1) * N
0! = 1 (por definição)
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.
27) Faça um programa para ler N números inteiros e positivos (apenas), ou seja, quantos o usuário quiser digitar e quando for digitado o zero, informar quantos números foram lidos, qual foi o maior e o menor número lido.
28) Faça um programa para ler o valor de uma coluna e, se válida, mostre uma "linha" vertical na coluna lida desenhada com caracteres *.
29) Reescreva o programa do exercício anterior, mas agora o caractere que será usado para desenhar a linha deve ser lido, ou seja, o usuário que indicará.
30) Ler o nome de um aluno, as notas da 1a. e 2a. avaliações. Validar as notas aceitando apenas notas válidas para cada avaliação (0,0 a 10,0). Caso seja fornecida uma nota inválida deve ser impressa uma mensagem para o usuário. Após a entrada das notas deve ser impressa a seguinte mensagem: "Os dados estão corretos (S/N)?", aceitando apenas a letra S ou N maiúsculas como resposta. Caso o usuário responda a letra N, o programa deverá solicitar novos dados. Calcular a média do aluno. Após este cálculo a tela deve ser limpa e os resultados impressos conforme o lay-out abaixo:
ALUNO: xxxxxxxxx
1 a. Avaliação 2 a. Avaliação Média Resultado xx.x xx.x xx.x xxxxxxx
Obs: Você deverá obter nota 6,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,
Reprovado : média menor que 3,
Em Exame : média maior ou igual a 3,0 e menor que 6,
>> Note que a observação só deverá ser impressa caso o aluno fique em exame.
1) Preencher (ler) um vetor X de 10 elementos com o valor inteiro 30. Escrever o vetor X após seu total preenchimento.
2) Preencher um vetor A de 10 elementos com os números inteiros de 1 a 10. Escrever o vetor A após o seu total preenchimento.
3) Preencher um vetor B de 10 elementos com 1 se o índice do elemento for ímpar e com 0 se for par. Escrever o vetor B após o seu total preenchimento.
4) Dado o seguinte vetor V a seguir:
1 2 3 4 5 6 7 8 V 5 1 4 2 7 8 3 6
>> Qual será seu conteúdo depois de executado o algoritmo abaixo?
for i := 8 downto 5 do begin aux := v [i]; v [i] := v [8 - i + 1]; v [8 - i + 1] := aux; end ;
v [3] := v [1]; v [v [3]] := v [v [2]];
5) Ler um vetor C de 10 elementos inteiros, trocar todos os valores negativos do vetor C por 0. Escrever o vetor C modificado.
6) Ler um vetor D de 10 elementos. Criar um vetor E, com todos os elementos de D na ordem inversa , ou seja, o último elemento passará a ser o primeiro, o penúltimo será o segundo e assim por diante. Escrever todo o vetor D e todo o vetor E.
7) Ler um vetor X de 10 elementos inteiros e positivos. Criar um vetor Y da seguinte forma: os elementos de Y com índice par receberão os respectivos elementos de X divididos por 2 ; os elementos com índice ímpar receberão os respectivos elementos de X multiplicados por 3. Escrever o vetor X e o vetor Y.
8) Ler um vetor W de 10 elementos, depois ler um valor V. 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. Caso o valor V não ocorra nenhuma vez no vetor W, escrever uma mensagem informando isto.
20) Escrever um programa para ler o nome, a quantidade em estoque, quantidade mínima para estoque e o valor unitário de 6 produtos. Estas informações devem ser armazenadas em vetores separados, ou seja, 4 vetores. A seguir, ler a posição (0 a 6) de um produto no vetor e a quantidade vendida. Se a posição for inválida, deve ser impressa uma mensagem e ser lida uma nova posição. Ajustar a nova quantidade do estoque, ou seja, atualizar a quantidade em estoque e armazenar a quantidade vendida em um outro vetor. Imprimir o nome do produto e o respectivo valor da venda (para o produto lido). Repetir novas consultas ao estoque até que o usuário informe o valor zero para a posição do produto no vetor. Ao final das retiradas, imprimir um balanço de todo o estoque e das vendas de cada produto, escrevendo se o produto está com o estoque normal ou abaixo do mínimo.
21) Ler dois vetores, A e B com um número variável de conteúdos (dados) (no máximo 10). O programa deve solicitar antes da leitura dos vetores a quantidade de dados a serem lidos (1 a 10), os dois vetores terão o mesmo número de elementos. 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. Imprimir o vetor Soma, sem deixar espaços em branco entre os elementos.
22) Ler um vetor A de 10 elementos inteiros e um valor X também inteiro. Armazenar em um vetor M o resultado de cada elemento de A multiplicado pelo valor X. Logo após, imprimir o vetor M.
23) Ler um vetor de 10 elementos inteiros. Após isto, imprimir na tela os 10 valores lidos e o usuário poderá escolher um destes valores para ser excluído do vetor. Ler o valor escolhido e eliminá-lo do vetor. 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 o novo vetor.
1) Qual o conteúdo das matrizes M e N após a execução do algoritmo abaixo?
... j := 2; for i := 1 to 3 do begin M [i,j] := 2; M [i,j+2] := 2; M [i,j-1] := 1; M [i,j+1] := 1; end ;
for i := 1 to 2 do for j := 1 to 2 do begin if i = j then N [i,j] := 'A' else N [i,j] := 'Z' ; end ; ; ...
2) Dada a matriz Mat abaixo:
Qual será o seu conteúdo depois de executado o seguinte algoritmo?
... for i := 1 to 3 do for j := i+1 to 4 do begin aux := M [i,j]; M [i,j] := M [j,i]; M [j,i] := aux; end ; ; aux := M [1,1]; M [1,1] := M [4,4]; M [4,4] := aux; aux := M [2,2]; M [2,2] := M [3,3]; M [3,3] := aux; ...
1) Escreva um programa para cadastrar dois clientes de uma loja. As informações necessárias são: nome , endereço e telefone. Deve ser usada uma estrutura de registro para a construção deste cadastro, usando Type para a declaração do registro.
2) O mesmo exercício anterior, mas o programa deverá suportar até 50 clientes. Ao final do cadastro de cada cliente deverá ser perguntado: "Novo Cliente (S/N)?". Deve-se utilizar um vetor do tipo declarado como um registro para a solução deste programa.
3) O mesmo exercício anterior, mas após o término de todos os cadastros, ou seja, quando o usuário digitar "N" na pergunta para novo cliente ou quando preencher o vetor com 50 clientes, 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). Deverá ser digitado o código 999 para encerrar o programa. A tela de consulta deverá ter o seguinte formato:
Digite o código do cliente: _ Nome: Endereço: Telefone: <Digite 999 para sair...>
Observação1: Estas informações só deverão ser impressas uma vez, e não a cada execução do programa.
Observação2: O fundo deve ser azul e as letras amarelas :D
4) Escreva um programa para cadastrar até 30 alunos de uma turma. As informações necessárias são: nome do aluno , nome da disciplina e média final. Deve ser usada uma estrutura de registro para a construção deste cadastro, usando Type para a declaração do registro. Ao final do cadastro de cada aluno deverá ser perguntado: "Novo Aluno (S/N)?". Deve-se utilizar um vetor do tipo declarado como registro para a solução deste programa. Após o término de todos os cadastros, ou seja, quando o usuário digitar "N" na pergunta para novo aluno ou quando preencher o vetor com 30 alunos, a tela deverá ser limpa e deverá ser montada uma tela para permitir a consulta aos alunos : por nome. Deverá ser digitada a palavra FIM para o nome para encerrar o programa. Você deverá fazer uma tela de consulta com o formato que achar adequado.
Observação: Faça o programa o mais próximo da realidade possível ;-)
1) Escreva um programa que leia uma string e uma letra e conte quantas vezes a letra informada ocorre na string. 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. Considere que palavra é qualquer conjunto de caracteres delimitados por um espaço em branco. 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. 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. Este valor deverá ser passado como parâmetro para um módulo denominado Quadrado. Este módulo imprime na tela o quadrado do valor passado como parâmetro.
5) O mesmo exercício anterior (número 4), mas agora o módulo deverá retornar para uma segunda variável do programa principal o quadrado do valor passado como parâmetro. Imprimir o valor calculado (estando no programa principal).
6) O mesmo exercício anterior (número 5), 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.
program exercicio04; {simples}
uses crt;
var pot_lamp, larg_com, comp_com, area_com, pot_total : real; num_lamp: integer; {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; writeln; write ('Qual a potencia da lampada (em watts)? '); readln (pot_lamp); writeln; write ('Qual a largura do comodo (em metros)? '); readln (larg_com); writeln; write ('Qual o comprimento do comodo (em metros)? '); readln (comp_com); writeln;
area_com := larg_com * comp_com; pot_total := area_com * 18; num_lamp := round (pot_total / pot_lamp); {round = arredonda o valor}
writeln; writeln ('Numero de lampadas necessarias para iluminar esse comodo: ', num_lamp); end.
program exercicio05; {simples}
uses crt;
var comp, larg, alt, area : real; caixas : integer;
{comp: comprimento, alt: altura}
begin comp := 0; {inicializar variaveis} larg := 0; alt := 0; area := 0; caixas := 0;
clrscr; writeln; write ('Qual o comprimento da cozinha? '); readln (comp); writeln; write ('Qual a largura da cozinha? '); readln (larg); writeln; write ('Qual a altura da cozinha? '); readln (alt); writeln;
area := (compalt2) + (largalt2); caixas := round (area/1.5); {Tem q ser ponto em vez de virgula}
writeln; writeln ('Quantidade de caixas de azulejos para colocar em todas as paredes: ', caixas); writeln; end.