quarta-feira, 27 de outubro de 2010
Cobra Norato
Exercício Estruturado 2
Desafio 1
{***********PROGRAM TEMPERATURACOMPROCEDIMENTO******************}
program temperaturacomprocedimento;
{**programa que faz a conversão de temperaturas Farnenheit, Kelvin e Rankine para Centigrados**}
var temperaturaF, temperaturaK, temperaturaR: real; { temperaturas }
{***********PROCEDURE CONVERTE TEMPERATURA FARNENHEIT EM CELSIUS**************}
procedure converteFemC (tempF: real);
{**Procedimento que converte a temperatura Farnenheit para Celsius**}
var tempCF: real; {temperatura convertida de Farhenheit para Celsius}
begin
{** Conversao - Farhenheit para Celsius**}
tempCF := (5/9)*(tempF-32);
{**Saida de dados**}
writeln(tempF,' graus Farhenheit corresponde a ',tempCF,' graus C');
end;
{***********PROCEDURE CONVERTE TEMPERATURA RANKINE EM CELSIUS******************}
procedure converteRemC (tempR: real);
{**Procedimento que converte a temperatura Rankine para Celsius**}
var tempCR: real; { temperatura convertida de Rankine para Celsius }
begin
{**Conversao - Rankine para Celsius**}
tempCR := (tempR-32-459.67)/1.8;
{**Saida de dados**}
writeln(tempR, ' Rankine corresponde a ', tempCR, ,' graus C'); end;
{***********PROCEDURE CONVERTE TEMPERATURA KELVIN EM CELSIUS******************}
procedure converteKemC (tempK: real);
{Procedimento que converte a temperatura Kelvin para Celsius}
var tempCK: real; {temperatura convertida de Kelvin para Celsius }
begin
{**Conversao - Kelvin para Celsius**}
tempCK := tempK - 273.15;
{**Saida de dados**}
writeln(tempK, ' Kelvin corresponde a ', tempCK, ,' graus C'); end;
{******************Programa principal**************************}
begin
{Entrada de dados}
writeln('Forneca a temperatura em Farhenheit');
readln(temperaturaF);
writeln('Forneca a temperatura em Rankine');
readln(temperaturaR);
writeln('Forneca a temperatura em Kelvin');
readln(temperaturaK);
{************** Chamada dos procedimentos *****************************}
converteFemC (temperaturaF);
converteRemC (temperaturaR);
converteKemC (temperaturaK);
end.
1.1. Identifique onde começa o programa principal (faça uma marcação);
Marcado em amarelo
1.2. Quais são os nomes dos procedimentos utilizados?
Convertefemc; Converteremc; Convertekemc
1.3. Onde os procedimentos são chamados?
No programa principal, Marcado em verde
1.4. Eles podem ser chamados dentro de outro procedimento ou função?
- Sim, apesar de não ocorrer no programa Temperatura, os procedimentos podem ser chamados dentro de outros procedimentos ou funções, e temos um exemplo disso no desafio 2.
1.5. Onde os procedimentos são listados no programa? (no início, no meio, no fim?)
No inicio
1.6. Identifique as variáveis globais (do programa principal); (faça uma marcação);
Marcado em Rosa
1.7. Identifique as variáveis locais (dos procedimentos); (faça uma marcação);
Marcado em vermelho
1.8. As variáveis locais podem ser usadas no programa principal? Por que?
Não, pois as variáveis locais podem ser utlizadas onde forem definidas.
Desafio 2 –Procedimentos– lógica de programação e comentários
O programa abaixo tem como saída um desenho. Qual desenho é produzido após a execução do programa abaixo? Faça seu desenho. Após compreender a execução do programa, inclua as linhas de comentários explicativas.
program desenho;
var j : integer;
{número de repetições do desenho}
procedure desenho
{Procedure cria um quadrado}
var i : integer;
begin
for i := 1 to 4 do
begin
pfrente(100);
pdireita(90);
end;
end;
procedure desenho2;
{Procededure cria outro quadrado}
begin
desenho1;
pesquerda(90);
pfrente(100);
end;
begin
{ Programa Principal}
for j := 1 to 4 do
begin
desenho2;
end;
end.
Desafio 3
poli(100,144,5): o robô inclina-se com um ângulo de 144 graus e desloca-se 100 passos a frente durante 5 vezes O resultado é uma “estrela” de cinco ponta
Poli(100,175,36): o robô inclina-se com um ângulo de 175 graus e desloca-se 100 passos a frente durante 36 vezes. O resultado é um emaranhado de triângulos de pequenos ângulos internos.
Poli(100,90,4): o robô inclina-se com um ângulo de 90 graus e desloca-se 100 passos a frente durante 4 vezes. O resultado é um quadrado.
Poli(100,160,9): o robô inclina-se com um ângulo de 160 graus e desloca-se 100 passos a frente durante 9 vezes. O resultado é uma figura formada por cinco triângulos.
Desafio 4
program desafio4
var i : integer;
procedure poli (cl,ai,nl : integer);
begin
for i:= 1 to nl do
begin
pfrente(cl);
pdireita(ai);
end;
end;
begin
clrscr;
un;
pesquerda(90);
pfrente(450);
pdireita(90);
ul;
poli (100,90,4);
pdireita(90);
un;
pfrente(160);
pesquerda(90);
ul;
poli (100,175,36);
un;
pfrente(100);
pesquerda(90);
pfrente(100);
pesquerda(90);
ul;
poli (100,160,9);
pdireita(90);
un;
pfrente(100);
pesquerda(90);
ul;
poli (100,144,5);
dr;
end.
Desafio 5
A fórmula da hipotenusa (h) de um triângulo é: h2 = a2 + b2
h = √a2 + b2
Passando para a linguagem usada em PascaL, temos:
h := sqrt(sqr(a) + sqr(b) )
Desafio 6
program borboleta;
var x , y , z , D , v ,t:real;
begin
writeln('escreva o comprimento da sala em metros:');
readln(x);
writeln('escreva a largura da sala em metros');
readln(y);
writeln('escreva a altura da sala em metros');
readln(z);
{calculo da diagonal do paralelepípedo}
D:= sqrt(sqr(x) + sqr(y) + sqr(z));
{calculo do tempo gasto para percorrer a distancia d}
v:=10/3.6;
t:= D/v;
writeln('o valor do tempo que a borboleta gasta para percorrer de um canto do chão da sala até a extremidade oposta no alto da parede em segundos e:', t);
end.
Desafio 7
a)
program desafio7a;
{desenha um quadrado em caracol}
procedure quadrado;
{desenha um quadrado em caracol}
var i,j,k,l : real;
begin
writeln('Escreva o valor de i');
readln (i);
writeln ('Escreva o valor de j<i');
readln (j);
writeln('Escreva o valor de k<j');
readln (k);
writeln ('Escreva o valor de l<k');
readln (l);
for i >j>k>l do
begin
pdireita(90);
pfrente(i);
pesquerda(90);
pfrente (i);
pesquerda(90);
pfrente (j);
pesquerda(90);
pfrente (j);
pesquerda(90);
pfrente(k);
pesquerda(90);
pfrente(k);
pesquerda(90);
pfrente(l);
pesquerda(90);
pfrente(l)
end;
end; {desafio7a}
b)
program desafio7b;
{desenha triângulos em caracol}
procedure trangulos;
{desenha triângulos em caracol }
var I,j,k,l : integer;
begin
writeln('Escreva o valor de i');
readln (i);
writeln ('Escreva o valor de j>i');
readln (j);
writeln('Escreva o valor de k>j');
readln (k);
writeln ('Escreva o valor de l>k');
readln (l);
for i <j<k<l do
begin
pfrente(i);
pdireita(120);
pfrente(i);
pdireita(120);
pfrente(j);
pdireita(120);
pfrente(j);
pdireita(120);
pfrente(k);
pdireita(120);
pfrente(k);
pdireita(120);
pfrente(l);
pdireita(120);
pfrente(l);
end;
end; {desafio7b}
c)
program desafio7c;
{desenha um quadrado grande em caracol}
procedure quadradogrande;
{desenha um quadrado em caracol}
var i,j,k,l : real;
begin
writeln('Escreva o valor de i');
readln (i);
writeln ('Escreva o valor de j<i');
readln (j);
writeln('Escreva o valor de k<j');
readln (k);
writeln ('Escreva o valor de l<k');
readln (l);
for i >j>k>l do
begin
pdireita(90);
pfrente(i);
pesquerda(90);
pfrente (i);
pesquerda(90);
pfrente (j);
pesquerda(90);
pfrente (j);
pesquerda(90);
pfrente(k);
pesquerda(90);
pfrente(k);
pesquerda(90);
pfrente(l);
pesquerda(90);
pfrente(l)
end;
béguin
(quadradogrande (i=3i/2, j=3j/2,k=3k/2,l=3l/2))
end; {desafio7c}
d)
program desafio7d;
{desenha triângulos grandes em caracol}
procedure trangulos grandes;
{desenha trangulos em caracol}
var i,j,k,l,m : real;
begin
writeln('Escreva o valor de i');
readln (i);
writeln ('Escreva o valor de j>i');
readln (j);
writeln('Escreva o valor de k>j');
readln (k);
writeln ('Escreva o valor de l>k');
readln (l);
writeln ('Escreva o valor de m>l');
readln (m);
for i <j<k<l < m do
begin
pfrente(i);
pdireita(120);
pfrente(j);
pdireita(120);
pfrente(k);
pdireita(120);
pfrente(l);
pdireita(120);
pfrente(m);
end;
end; {desafio7d}
Exercício Estruturado 1
Desafio 1. Encontrar 7 erros na sintaxe nas estruturas dadas.
1˚ ) For x 1 to 10 do (O correto é For := 1 to 10 do
2˚ ) pfrente(100) ( o correto é pfrente(100);)
3˚) end ( o correto é end.)
4˚) pdireita(90) (o correto é pdireita(90);)
5˚ e 6˚ ) for y = 1 to 9 ( o correto é for y:=1 to 9 do)
7˚) Entre a primeira e a segunda linha do 1.2 falta um begin
Desafio 2
2.1) Estará escrito
1
2
3
4
5
6
7
2.2)
1 é o valor de i
2 é o valor de i
3 é o valor de i
2.3) i=1 i=2 i=3 sucessivamente ate i=10 um resultado em cada linha
Para o contador, começando do zero. 0.2*10=2
Contador = 2 ( é o que aparecerá na tela)
Desafio 3
algoritmo altura
declare anos inteiro; a, c, j,cf, jf: real
c = 1.5;
j = 1.1;
anos = a;
inicio
cf = c + 0.03 * a;
jf = j + 0.02 * a;
anos = a + 1;
fim
enquanto cf = jf
escreva a;
fim algoritmo.
Desafio 4
Desafio 4
4.1)
Dado o preço de fábrica (PRECO), calcula-se
LUCRO = PRECO*PERCENTUAL DE LUCRO
IMPOSTO = PRECO * PERCENTUAL DE IMPOSTO
PRECO FINAL = PRECO+ LUCRO+ IMPOSTO
4.2)
Considerando sacog : Peso do dos sacos de rações de gatos em gramas
Sacoc: peso dos sacos de rações de cachorros em gramas
Racaog: Quantidade de ração fornecida para gatos por dia em gramas
Racaoc: Quantidade de ração fornecida para cães por dia em gramas
Dias: Numero de dias para consumo dos animais
Numsacosc: Maior ou igual número inteiro de sacos que devem ser comprados para cães
Numsacosg; Maior ou igual número inteiro de sacos que devem ser comprados para gatos
Restoc: O quanto restará de ração nos sacos para cães
Restog: o quanto restará de ração nos sacos para gatos
Calcula-se:
Converta kilos para gramas
Sacog <- Sacog*1000
Sacoc<- sacoc*1000
(Racaog*2*dias)/sacog = numsacosg
(Racaoc*2*dias)/sacoc =numsacosc
Que para os valores dados no problema será:
90*2*5/2000 = 0,45 = maior inteiro = 1 saco
200*2*5/5000 = 0,4 = maior inteiro = 1 saco
(Racaoc*numsacosc) - (Racaoc*2*dias) = restoc
(Racaog*numsacosg) - (Racaog*2*dias) = restog
2000*1 – 90*2*5 = 1100g
5000*1 – 200*2*5 = 3000g
4.3)
Entre com um número X
X DIV 100= a
(X - a*100) DIV 10 = b
(X-(a*100+b*10)) = c
Y = c*100 + b*10 + a {Numero invertido}
Programa FONTE PASCAL
Problema 1
program solucaoproblema1;
{Programa feito pelo Grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires e Marlon Xavier }
var
fabrica, perclucro, percimposto, lucro, imposto, preco: real;
begin
{Entrada de Dados}
writeln ('Forneça o valor do preço de fábrica do carro');
readln(fabrica);
Writeln ('Forneça o percentual de lucro do distribuidor');
readln(perclucro);
Writeln ('Forneça o percentual de impostos aplicados ao preço de fábrica');
readln(percimposto);
{Conversão}
lucro:=(perclucro/100)*fabrica;
imposto:=(percimposto/100)*fabrica;
preco:=lucro+imposto+fabrica;
{Saída de dados}
Writeln(lucro, ' reais é o valor do lucro do distribuidor');
writeln(imposto, ' reais é o valor do imposto aplicado ao preço de fábrica');
Writeln(preco,' reais é o valor do preço total do carro');
end.
{Programa feito pelo Grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires e Marlon Xavier }
var
fabrica, perclucro, percimposto, lucro, imposto, preco: real;
begin
{Entrada de Dados}
writeln ('Forneça o valor do preço de fábrica do carro');
readln(fabrica);
Writeln ('Forneça o percentual de lucro do distribuidor');
readln(perclucro);
Writeln ('Forneça o percentual de impostos aplicados ao preço de fábrica');
readln(percimposto);
{Conversão}
lucro:=(perclucro/100)*fabrica;
imposto:=(percimposto/100)*fabrica;
preco:=lucro+imposto+fabrica;
{Saída de dados}
Writeln(lucro, ' reais é o valor do lucro do distribuidor');
writeln(imposto, ' reais é o valor do imposto aplicado ao preço de fábrica');
Writeln(preco,' reais é o valor do preço total do carro');
end.
Problema 2
program solucaoproblema2;
{Programa feito pelo grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires, Marlon Xavier}
{Programa do Exercicio Estruturado 1 Desafio 4.2}
var
pesog, pesoc, quantg, quantc, restoc, restog, sacosc, sacosg:integer;
dias: integer;
begin
{Entrada de Dados}
Writeln('Forneça o peso do saco de ração dos gatos');
readln(pesog);
Writeln('Forneça o peso do saco de ração dos cachorros');
readln(pesoc);
Writeln('Forneça a quantidade de ração fornecida para cada gato por dia');
readln(quantg);
writeln('Forneça a quantidade de ração fornecida para cada cachorro por dia');
readln(quantc);
Writeln('Forneça o número de dias para calculo do consumo de ração');
readln(dias);
{Conversão}
pesog:=pesog*1000;
pesoc:=pesoc*1000;
sacosg:= (quantc*2*dias) div pesog;
restog:= (pesog) - (quantg*2*dias)mod pesog;
sacosc:=(quantc*2*dias)div pesoc;
restoc:= (pesoc) - (quantc*2*dias)mod pesoc;
{Saída de dados}
writeln(restog, 'gramas é o que restará no saco de ração dos gatos');
writeln(restoc, 'gramas é o que restará no saco de ração dos cachorros');
end.
{Programa feito pelo grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires, Marlon Xavier}
{Programa do Exercicio Estruturado 1 Desafio 4.2}
var
pesog, pesoc, quantg, quantc, restoc, restog, sacosc, sacosg:integer;
dias: integer;
begin
{Entrada de Dados}
Writeln('Forneça o peso do saco de ração dos gatos');
readln(pesog);
Writeln('Forneça o peso do saco de ração dos cachorros');
readln(pesoc);
Writeln('Forneça a quantidade de ração fornecida para cada gato por dia');
readln(quantg);
writeln('Forneça a quantidade de ração fornecida para cada cachorro por dia');
readln(quantc);
Writeln('Forneça o número de dias para calculo do consumo de ração');
readln(dias);
{Conversão}
pesog:=pesog*1000;
pesoc:=pesoc*1000;
sacosg:= (quantc*2*dias) div pesog;
restog:= (pesog) - (quantg*2*dias)mod pesog;
sacosc:=(quantc*2*dias)div pesoc;
restoc:= (pesoc) - (quantc*2*dias)mod pesoc;
{Saída de dados}
writeln(restog, 'gramas é o que restará no saco de ração dos gatos');
writeln(restoc, 'gramas é o que restará no saco de ração dos cachorros');
end.
Problema 3
program solucaoproblema3;
{Programa feito pelo grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires, Marlon Xavier}
{Exercicio estruturado 1 - Programa do desafio 4.3}
var x, y, a, b, c: integer;
begin
writeln('Forneça o número para inversão');
readln(x);
{Conversão}
a:= (x div 100);
b:= (x mod 100) div 10;
c:=(x mod 100) mod 10;
y:=(100*c)+(10*b)+(a);
{Saída de dados}
Writeln(y);
end.
{Programa feito pelo grupo formado por Fernanda Morais, Paula Amaral, Ricardo Pires, Marlon Xavier}
{Exercicio estruturado 1 - Programa do desafio 4.3}
var x, y, a, b, c: integer;
begin
writeln('Forneça o número para inversão');
readln(x);
{Conversão}
a:= (x div 100);
b:= (x mod 100) div 10;
c:=(x mod 100) mod 10;
y:=(100*c)+(10*b)+(a);
{Saída de dados}
Writeln(y);
end.
Desafio 5
Caso 1
Obtenha o número X;
Divida x por 3
Dvidida x por 5
Se o resto for diferente de zero não é múltiplo de 5
Se o resto for igual a zero para as duas divisões o numero é múltiplo de 3 e de 5
Se o resto não for igual a zero para nenhuma das divisões o numero não é múltiplo de 3 nem de 5.
Se o resto for igual a zero apenas para Divisão por 3, o numero é apenas múltiplo de 3
Se o resto for igual a zero apenas para Divisão por 5, o numero é apenas múltiplo de 5
Caso 2
Observar
Se a> b+c e b>a+c e c>b+a, é um triangulo
Se não, não é triangulo.
Caso 3
Comparar se um é maior que o outro
Exemplo: dado a, b, c
a>b?
se sim, a> c? se sim, a é o maior número.se não c é o maior numero.
Caso 4
O mesmo do caso 4 porém frisando também o menor numero
Exemplo
a>b? se sim,
a>c? se sim, a é o maior número (1 caso)
se não c é o maior número (2caso)
se a é o maior numero (1)
c>b? se sim, b é o menor número
se não, c é o menor número.
Comentário
Apesar de bem trabalhoso, esse exercicio estruturado foi o que eu mais pude praticar meus conhecimentos de programação.
Assinar:
Postagens (Atom)