Prévia do material em texto
Lista de exercícios em Pascal, envolvendo apenas “Sequencia e Seleção”. Alguns destes exercícios podem ser resolvidos com vetores, por exemplo, mas não é a abrangência devido ao andamento da disciplina (não foram vistos laços, vetores, matrizes, etc). 1. Fornecida a quantidade e o preço unitário de determinada peça, calcular e imprimir o total a pagar, sabendo que haverá um desconto de 10%. program ex1; var qnt:integer; pco:real; begin write('Informe a quantidade: '); readln(qnt); write('Informe o preco: '); readln(pco); writeln('Total= ', qnt*(pco*0.9):0:2); end. 2. Fornecido um número N (N>=0), imprimir o dígito mais à direita do valor. program ex2; var n,q,x,r:integer; begin write('Digite N: '); readln(n); q:= n div 10; x:= q*10; r:= n-x; writeln('O digito e: ',r); end. Otimizando o código: program ex2; var n:integer; begin write('Digite N: '); readln(n); writeln('O digito e: ',n-(n div 10)*10); end. 3. Observe as seguintes características: O número 2025 tem: 20+25=45 e 45x45=2025 O número 1063 tem: 10+63=73 e 73X73 <> 1065 (<> significa "diferente") Dado um número inteiro positivo N de quatro dígitos, verificar se N e um número cuja raiz quadrada e formada pela soma de suas dezenas. Caso positivo, imprimir 'sim', caso contrário, imprimir 'não'.} program ex3; var n,d,e,x,y:integer; begin write('Digite N:'); readln(n); d:= n div 100; e:= n mod 100; x:= e+d; y:= x*x; if n=y then writeln('sim') else writeln('nao'); end. 4. Fornecidos dois números inteiros A e B (A>0 e B>0), verificar se A é divisível por B. Imprimir a mensagem “divisível” ou “não divisível”, conforme o caso. program ex4; var a,b,c,x,r:integer; begin write('Digite A: '); readln(a); write('Digite B: '); readln(b); c:= a div b; x:= c*b; r:= a-x; if r=0 then writeln('divisivel') else writeln('nao divisivel'); end. Otimizando o código: program ex4; var a,b:integer; begin write('Digite A: '); readln(a); write('Digite B: '); readln(b); if a mod b = 0 then writeln('divisivel') else writeln('nao divisivel'); end. 5. Fornecido um número N e um intervalo fechado de A at‚ B (A<B), verificar se N está no intervalo. Imprimir a mensagem "no intervalo" ou "fora do intervalo", conforme o caso. program ex5; var a,b,n:integer; begin write('Informe A B N: '); readln(a,b,n); {os valores podem ser inseridos\lidos de uma vez digitados com um espa‡o entre o outro ex.: 10 5 20} if (n>a) and (n<b) then writeln('no intervalo') else writeln('fora do intervalo'); end. 6. Fornecidos os três segmentos de reta A, B e C (a>0, b>0 e c>0), verificar se formam um triângulo. Imprimir a mensagem "formam um triangulo" ou "não formam um triângulo", conforme o caso. program ex6; var a,b,c:real; begin write('Digite A B C: '); readln(a,b,c); if (a<b+c) and (b<a+c) and (c<a+b) then writeln('formam um triangulo') else writeln('nao formam um triangulo'); end. 7. Fornecido o preço e o ajuste (em porcentagem), imprimir o preço atualizado e o valor do aumento. program ex7; var pco,n,aj,tot:real; begin write('Digite o preco e percentual de ajuste: '); readln(pco,n); n:=n/100; aj:= pco * n; tot:= pco + aj; writeln('Total: R$', tot:0:2); writeln('Ajuste de R$',aj:0:2); end. Otimizando o código: program ex7; var pco,n:real; begin write('Digite o preco e o percentual de ajuste: '); readln(pco,n); writeln('Total: R$',pco+(pco*(n/100)):0:2); writeln('Ajuste de R$',pco*(n/100):0:2); end. 8. Fornecida a quantidade, o preço unitário e o desconto (em porcentagem), imprimir o total a pagar sabendo que o desconto será aplicado se ao menos dez unidades forem compradas. program ex8; var qnt,pco,desc,n,tot:real; begin write('Digite a quantidade, o preco e o desconto: '); readln(qnt,pco,n); if qnt>=10 then begin desc:= n/100; tot:= qnt*pco-((qnt*pco)*desc); writeln('Total: R$',tot:0:2); end else writeln('Total: R$',pco*qnt:0:2); end. 9. Fornecidos os coeficientes de uma equação de segundo grau (com a<>0, ou seja, não ‚ necessário verificar a existência da equação), imprimir suas raízes. program ex9; var a,b,c,delt,x1,x2:real; begin write('Digite A B C: '); readln(a,b,c); delt:=(b*b)-(4*a*c); x1:=(-b+sqrt(delt))/(2*a); x2:=(-b-sqrt(delt))/(2*a); writeln('x1= ',x1:0:2, ' ', 'x2= ' ,x2:0:2); end. 10. Fornecida uma letra, verificar se é vogal. Imprimir "vogal" ou "não vogal", conforme o caso. program ex10; var l:char; begin write('informe a letra: '); readln(l); if (l='a') or (l='A') or (l='e') or (l='E') or (l='i') or (l='I') or (l='o') or (l='O') or (l='u') or (l='U') then writeln('vogal') else writeln('nao vogal'); end. 11. Fornecidos três números inteiros distintos A, B e C, imprimir o maior valor. program ex11; var a,b,c:integer; begin write('Digite A B C: '); readln(a,b,c); if (a>b) and (a>c) then writeln(a) else if (b>a) and (b>c) then writeln(b) else writeln(c); end. 12. Fornecidos os coeficientes de uma equação de segundo grau (com a <>0, ou seja, não é preciso verificar a existência da equação), imprimir suas raízes. Obs.: Caso o delta seja negativo, imprimir as raízes no formato: x-yi e x+yi, após calcular x e y. program ex12; var a,b,c,delt,x1,x2,x,y:real; begin write('Digite A B C: '); readln(a,b,c); delt:=(b*b)-(4*a*c); if delt>=0 then begin x1:=(-b+sqrt(delt))/(2*a); x2:=(-b-sqrt(delt))/(2*a); writeln('x1= ',x1:0:2,'x2= ',x2:0:2); end else begin x:=-b/(2*a); y:=sqrt(-delt)/(2*a); writeln(x,'+',y:0:2,'i, ',x,'-',y:0:2,'i'); end; end.