Introdução à programação/Exercícios
Este módulo tem a seguinte tarefa pendente: Reescrever os códigos abaixo para linguagem C ou pseudo-código. |
Exercício 1
editarVerdadeiro ou falso
editar
Crie algoritmos
editar1. Crie um algoritmo próximo ao de máquina para a seguinte frase:
"Se estiver no estado A tem que decifrar o código B e somar 2 ao resultado de B. Se não estiver no estado A passe para o estado C e pare."
2. Decifre para o português o seguinte algoritmo:
IF Livro 1 GOTO Page 251 SOMA 2 NA Page = VAR SAÍDA VAR ELSE Livro 2 GOTO Page 23 SUBTRAI 2 NA Page = VAR SAÍDA VAR
Exercício 2
editarVerdadeiro ou falso
editar
Crie algoritmos
editar1. Crie um algoritmo para esta situação da empresa "Pacheco-Car":
"O problema encontrado pelos nossos funcionários é que ao encomendar uma peça de automóvel, inserir a marca e requisitar o endereço, o programa não detecta se o registro termina em X ou em Y. Se terminar em Y não podemos encomendar diretamente. Temos que inserir o código de escape (que termina ou em 00 ou em 01 ou em 02) para o programa enviar a encomenda para os endereços A, B ou C, respectivamente.
2. Decifre o algoritmo apresentado abaixo:
Y = " polígono" E = " não " GET X IF X=0 MOSTRAR "Não posso aceitar o número!" END-IF ELSE SWITCH X CASE 1: "Eu sou" Y CASE 2: "Eu" E "sou" Y CASE 3: "Como podes aceitar" Y "aqui?" END-SWITCH END-ELSE
Exercícios de introdução
editar1) Crie um programa que mostre na tela a frase "Olá Mundo!".
uses crt;
begin
writeln(‘Olá Mundo!’);
end
2) Crie um programa que pede para o usuário digitar seu nome e, em seguida, escreve o nome na tela.
uses crt;
var
nome:string;
begin
writeln(‘Escreva seu nome: ’);
readln(nome);
writeln(‘Seu nome é: ’,nome);
end
3) Crie um programa que lê nome e idade e mostra na tela.
uses crt;
var
nome:string;
idade:integer;
begin
writeln(‘Escreva seu nome: ’);
readln(nome);
writeln(‘Escreva sua idade: ’);
readln(idade);
writeln(‘Seu nome é ’,nome,‘ e você tem ’,idade,‘ anos.’);
end
4) Crie um programa que lê nome, idade e altura e mostra na tela as informações.
uses crt;
var
nome:string;
idade:integer;
altura:real;
begin
write(‘Escreva seu nome: ’);
readln(nome);
write(‘Escreva sua idade: ’);
readln(idade);
write(‘Entre com sua altura: ‘);
readln(altura);
writeln(‘Seu nome é ’,nome,‘, você tem ’,idade,‘ anos e ’,altura:4:2,‘m de altura.’);
end
5) Crie um programa que lê o nome e duas notas de um aluno, e em seguida calcula a sua média.
Algoritmo:
- Ler o nome;
- Ler as duas notas;
- Calcular a media:
- Somar as duas notas;
- Dividir a soma por dois;
- Exibir a media;
uses crt;
var
nome:string;
n1,n2,m:real;
begin
writeln(‘Entre com o nome: ’);
readln(nome);
writeln(‘Entre com as duas notas: ’);
readln(n1,n2);
m:=(n1+n2)/2;
writeln(‘A média é: ’,m:4:2);
end
6) Três massas m1, m2, m3 estão separadas por distâncias r12, r13 e r23, como mostra a figura:
Se G é a constante de gravitação universal, a força de coesão mantendo a massa das partículas juntas é dada pela formula:
Crie um programa para ler os valores de m1, m2, m3, r12, r13, r23; calcular e imprimir a força de coesão. Para massa em quilogramas e distância em metros, G = 6,67 × 10−11 N·m2/kg2. Assumir que todos os valores são reais.
uses crt;
const
G=6.67E-11;
var
F,m1,m2,m3,r12,r13,r23:real;
begin
writeln(‘Entre com as três massas: ’);
readln(m1,m2,m3);
writeln(‘Entre com as três distâncias: ’);
readln(r12,r13,r23);
F:=G*((m1*m2/r12*r12)+(m1*m3/r13*r13)+(m2*m3/r23*r23));
writeln(‘A força de coesão é: ’,F:4:15,‘ N.’);
end
7) Dados os comprimentos dos lados de um triângulo (lado1 e lado2), crie um programa para calcular a hipotenusa.
uses crt;
var
L1,L2,H:real;
begin
writeln(‘Escreva o valor de um lado: ’);
readln(L1);
writeln(‘Escreva o valor do outro lado: ’);
readln(L2);
H:=sqrt(sqr(L1)+sqr(L2));
writeln(‘O valor da hipotenusa é: ’,H:2:2);
end
8) Crie um programa que lê a duração de uma tarefa em segundos e transforma para hora, minuto e segundo.
uses crt;
var
s,m,h:longint;
begin
writeln(‘Entre com o tempo em segundos: ’);
readln(s);
h:=(s)div(3600);
m:=((s)mod(3600))div(60);
s:=((s)mod(3600))mod(60);
writeln(s,‘ segundos é: ’,h,‘ hora(s) ’,m,‘ minutos e ’,s,‘ segundos’);
end
Exercícios de decisão
editar1) Crie um programa que lê dois números inteiros distintos e diz qual desses dois números é o maior.
uses crt;
var
a,b:longint;
begin
writeln(‘Entre com dois números inteiros distintos: ’);
readln(a,b);
if a>b then
writeln(a,‘>’,b)
else
writeln(b,‘>’,a);
end
2) Crie um programa que lê três números distintos e mostra o maior dos 3.
uses crt;
var
a,b,c:longint;
begin
writeln(‘Escreva três números inteiros e distintos: ’);
readln(a,b,c);
if (a>b)and(a>c) then
writeln(‘O maior número é ’,a);
if (b>c)and(b>a) then
writeln(‘O maior número é ’,b);
if (c>a)and(c>b) then
writeln(‘O maior número é ’,c);
end
3) Crie um programa que lê os coeficientes de uma equação do 2º grau e calcula suas raízes. O programa deve mostrar, quando possível, o valor das raízes calculadas e a classificação das raízes (imaginárias, única, distintas)
uses crt;
var
a,b,c,d:real;
begin
writeln(‘Toda equação do 2ª grau é do tipo: ax² + bx +c’);
writeln(‘Atribua valores a: a, b, c: ’);
readln(a,b,c);
d:=(sqr(b))-(4*a*c);
if d<0 then
begin
writeln(‘Raízes Imaginárias’);
if d=0 then
begin
x1:=(-b)/(2*a);
writeln(‘A raiz é única e é: ’x1);
end;
if d>0 then
begin
x1:=((-b)+sqrt(d))/(2*a);
x2:=((-b)-sqrt(d))/(2*a);
writeln(‘As raízes são distintas e são: ’,x1,‘ e ’,x2);
end;
end;
end
4) Dados 3 valores x, y e z, verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verificar se é um triângulo equilátero, isósceles ou escaleno.
uses crt;
var
a,b,c:real;
begin
writeln(‘Entre com os 3 lados: ’);
readln(a,b,c);
if (a+b>c)and(a+c>b)and(b+c>a) then
begin
if (a=b)and(b=c) then
writeln(‘Triângulo Equilátero’)
else
if (a=b)or(a=c)or(b=c) then
writeln(‘Triângulo Isósceles’)
else
writeln(‘Triângulo Escaleno’);
end
else
writeln(‘Este triângulo não existe!’);
end
5) Crie um programa para verificar se o número é par.
uses crt;
var
a:integer;
begin
writeln(‘Entre com um número inteiro: ’);
readln(a);
if ((a)mod(2)=0) then
writeln(‘Par’)
else
writeln(‘Ímpar’);
end
Exercícios de repetição
editar1) Crie um programa que lê dois números inteiros e faz a multiplicação sem utilizar o operador de multiplicação *.
uses crt;
var
a,b,i,n:longint;
begin
writeln('Entre com dois valores positivos: ');
readln(a,b);
if (a>0)and(b>0) then
begin
n:=0;
i:=0; {Se i:=1, i<b}
while (i<=b) do
begin
n:=a+n;
i:=i+1;
end;
writeln(a,' x ',b,' = ',n);
end
else
writeln('Valor(es) Incorreto(s)');
end
2) Crie um programa que lê dois números inteiros e faz a multiplicação sem utilizar o operador *.
uses crt;
var
a,b,i,n:longint;
begin
writeln('Entre com dois valores: ');
readln(a,b);
if (a>=0)and(b>=0) then
begin
n:=0;
i:=1;
repeat
n:=n+a;
i:=i+1;
until i>b;
writeln(a,' x ',b,' = ',n);
end
else
writeln('Valor(es) Incorreto(s)!');
end