Buscar

Exercícios de Programação em Pascal

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fundamentos da 
Computação 
Priscilla Fonseca de Abreu Braz 
turmas_uerj@yahoo.com.br 
 
Universidade do Estado do Rio de Janeiro 
Instituto de Matemática e Estatística 
Resolução da P1 
Construa um programa em Pascal que leia 
100 valores e determine: 
• A soma dos números pares; 
• A quantidade de valores negativos. 
• A média dos números positivos. 
Program P1Q1; 
var 
 num,i,somap,qtdneg, qtdpos:integer; 
 medpos:real; 
 Begin 
 somap:=0; 
 qtdneg:=0; 
 medpos:=0; 
 qtdpos:=0; 
 for i:=1 to 100 do 
 begin 
 writeln('Informe um número: '); 
 readln(num); 
 if(num>=0)then 
 begin 
 medpos:=medpos+num; 
 qtdpos:=qtdpos+1; 
 end 
 else 
 qtdneg:=qtdneg+1; 
 if(num mod 2 = 0)then 
 somap:=somap+num; 
 end; 
 writeln('Resultados:'); 
 writeln('Soma de pares lidos: ',somap); 
 writeln('Qtde de valores negativos: ',qtdneg); 
 writeln('Média de números positivos: ',(medpos/qtdpos):5:2); 
 End. 
Resolução da P1 – Questão 2 
O que será impresso pelo programa abaixo, caso sejam fornecidos os valores 
18 e 36? Justifique!!! 
Program questao2; 
Uses crt; 
Var 
 a,b,m,i:integer; 
Begin 
Writeln( ‘Digite dois números inteiros: ’); 
readln(a, b); 
if ( a > b) then 
 m :=b 
else 
 m := a; 
for i:= 1 to m do 
 if (a mod i = 0) and (b mod i = 0) then 
 writeln(i); 
readkey; 
1,2,3,6, 9, 18 
Resolução da P1 – Questão 2 
Program *XYZ; 
Var 
 x,y,z: real; 
Begin 
Write(‘Digite o valor de x, y e z: ’); 
Readln(x,y,z); 
While (x<>0) do 
 If (x>y) or (z<=30) then 
 x:=x*x; 
 else 
 x:= x/2; 
 z:= z/5; 
 write(‘Digite o valor de x,y e z: ’); 
 readln(x,y,z); 
 readkey; 
end. 
Program XYZ; 
Uses crt; 
Var 
 x,y,z: real; 
Begin 
Write(‘Digite o valor de x, y e z: ’); 
Readln(x,y,z); 
While (x<>0) do 
begin 
 If (x>y) or (z<=30) then 
 x:=x*x 
 else 
 begin 
 x:= x/2; 
 z:= z/5; 
 end; 
 write(‘Digite o valor de x,y e z: ’); 
 readln(x,y,z); 
 end; 
 readkey; 
end. 
Resolução da P1 – Questão 3 
 
Faça um programa em Pascal para receber 
dois números inteiros do usuário e mostrar 
o seu MMC (mínimo múltiplo comum). 
Exemplo: MMC(30,15)=30; MMC(12, 5) = 
60. 
Program p1q3; 
Var 
 mmc,n1,n2,i:integer; 
 achou:boolean; 
Begin 
Writeln( 'Digite dois números inteiros: '); 
readln(n1, n2); 
if (n1>n2) and (n1 mod n2 = 0) then 
begin 
 mmc:=n1; 
end 
else 
begin 
 if (n2>n1) and (n2 mod n1 = 0) then 
 mmc:=n2 
 else 
 begin 
 if (n1>n2) then 
 i:=n1 
 else 
 i:=n2; 
 achou:=false; 
 while (achou=false)do 
 begin 
 
if (i mod n1 = 0) and (i mod n2=0) then 
 begin 
 achou:=true; 
 mmc:=i; 
 end; 
 i:=i+1; 
 end; 
 end; 
end; 
writeln('mmc(',n1,', ',n2,')= ',mmc); 
end. 
Resolução da P1 – Questão 4 
 
Faça um programa em Pascal que leia 50 
valores inteiros e armazene-os em um 
vetor. Ao final, o algoritmo deve apresentar 
o maior e o menor elemento e as 
respectivas posições em que os mesmos 
foram encontrados. Considere que o vetor 
não possui elementos repetidos. 
Program p1q4; 
Var 
 i,ma,me,pma,pme:integer; 
 vet:array[1..5] of integer; 
Begin 
 writeln('Informe o elemento ',1,' do vetor: '); 
 readln(vet[1]); 
 ma:=vet[1]; 
 me:=vet[1]; 
 pma:=1; 
 pme:=1; 
 for i:=2 to 50 do 
 begin 
 writeln('Informe o elemento ',i,' do vetor: '); 
 readln(vet[i]); 
 if (vet[i]>ma)then 
 begin 
 ma:=vet[i]; 
 pma:=i; 
 end; 
 if (vet[i]<me)then 
 begin 
 me:=vet[i]; 
 pme:=i; 
 end; 
 end; 
 
writeln('Maior elemento: ',ma,' - posição: 
',pma); 
 writeln('Maior elemento: ',me,' - 
posição: ',pme); 
end. 
 
Exercício – Pesquisa em vetores 
(pesquisa sequencial) 
• Elabore um programa que leia um vetor 
com 10 nomes e depois verifique se um 
nome lido se encontra na tabela 
Solução 
• 1º. Passo preencher o vetor com os 
nomes; 
 
• 2º. Passo estabelecer uma estrutura de 
repetição que irá parar quando: 
– Encontrar o valor procurado, ou 
– Chegar ao final dos dados; 
 
• 3º. Passo verificar se foi encontrado o 
valor. 
Program pesqseq ; 
uses crt; 
var 
 nome:array[1..10] of string; 
 achei:boolean; 
 nomep:string; 
 i,j:integer; 
 Begin 
 writeln('valores da tabela'); 
 for i:=1 to 10 do 
 begin 
 write('digite o ',i,#167,' nome '); 
 readln(nome[i]); 
 end; 
 achei:=false; 
 write('nome a procurar '); 
 readln(nomep); 
 j:=0; 
 while(j<10) and (achei=false) do 
 begin 
 j:=j+1; 
 if nome[j]=nomep then 
 achei:=true; 
 end; 
 if achei=true then 
 write('nome achado') 
 else 
 write('nome nao achado'); 
 readkey; 
 End. 
Pesquisa em Tabela 
 
• Quando os elementos de um vetor estão 
previamente ordenados (classificados) 
segundo algum critério, então, técnicas 
mais eficientes de pesquisa podem ser 
empregadas. 
 
• Entre elas destaca-se o método 
de pesquisa binária. 
 
 
Exercício - Classificação 
 
 
• Elabore um programa que leia 10 valores 
inteiros e classifique-os em ordem 
crescente. 
Solução 
• Criar uma tabela com 10 valores inteiros 
• Ler os 10 valores 
• Comparar cada valor com os demais 
elementos do vetor. Caso esteja fora de 
ordem, realizar a troca. 
 
Simulação (1) 
pos valor 
1 6 
2 5 
3 4 
4 3 
Compara pos(1) com pos(2) 
Verifica se está em ordem 
Troca se não estiver na ordem 
Aux:= 6 
(1) 
(3) 
pos valor 
1 5 
2 6 
3 4 
4 3 
Simulação (2) 
pos valor 
1 5 
2 6 
3 4 
4 3 
Compara pos(1) com pos(3) 
Verifica se esta em ordem 
Troca se não estiver na ordem 
Aux:= 5 
(1) 
(3) 
pos valor 
1 4 
2 6 
3 5 
4 3 
Simulação (3) 
posição valor 
1 4 
2 6 
3 5 
4 3 
Compara pos(1)com pos(4) 
Verifica se esta em ordem 
Troca se não estiver na ordem 
Aux:= 4 
(1) 
(3) 
pos valor 
1 3 
2 6 
3 5 
4 4 
Simulação (4) 
posição valor 
1 3 
2 6 
3 5 
4 4 
Compara pos(2) com pos(3) 
Verifica se esta em ordem 
Troca se não estiver na ordem 
Aux:= 6 
(1) 
(3) 
pos valor 
1 3 
2 5 
3 6 
4 4 
Simulação (5) 
posição valor 
1 3 
2 5 
3 6 
4 4 
Compara pos(2) com pos(4) 
Verifica se esta em ordem 
Troca se não estiver na ordem 
Aux:= 5 
(1) 
(3) 
pos valor 
1 3 
2 4 
3 6 
4 5 
Simulação (6) 
pos valor 
1 3 
2 4 
3 6 
4 5 
Compara pos(3) com pos(4) 
Verifica se esta em ordem 
Troca se não estiver na ordem 
Aux:= 6 
(1) 
(3) 
pos valor 
1 3 
2 4 
3 5 
4 6 
Responda 
• Quantos valores tinha a tabela? 
• Na primeira passada comparou-se pos(1) 
com que outros valores? 
• Depois, quais foram as comparações?

Outros materiais