Você está na página 1de 47

1.

Faa um algoritmo para ler trs nmeros inteiros e escrever a mdia dos nmeros lidos } program Media_de_tres_numeros; var numero1,numero2,numero3,media:integer; begin writeln('digite 1 numero'); readln(numero1); writeln('digite outro numero'); readln(numero2); writeln('digite mais outro numero'); readln(numero3); writeln('a media dos 3 numeros sao:',(numero1+numero2+numero3)/3); readln(media); end.

{2. Faa um algoritmo para ler os coeficiente de uma equao do segundo grau e escreve r o valor do seu Delta.} program equacao_do_grau; var a,b,c,delta:real;

begin writeln('informe o valor de a,b e c:'); readln(a,b,c); delta:=(b*b-4*a*c); writeln('O delta e:', delta ); readln; end.

{3. Faa um algoritmo para ler os catetos de um tringulo retngulo e escrever a sua h ipotenusa.} program triangulo_retangulo; var catetoA,catetoB,hipotenusa:real ; begin writeln('digite o cateto a'); readln(catetoA); writeln('digite o cateto b'); readln(catetoB); hipotenusa:=sqrt(catetoa*catetoa+catetob*catetob) ; writeln('A hipotenusa e:',hipotenusa); readln; end.

{4. Faa um algoritmo para ler uma temperatura em graus Celsius e transform-la em f arenheit. Utilize a seguinte frmula: F=180(c+32)/100} program conversao_de_temperatura; var f,c:real; begin writeln('escreva a temperatura em graus celsius') ; readln(c); f:=((180*c)/100)+32; //a formula matematica da apostila esta errada. writeln('temperatura em farenheit e:',f); readln; end. {5. Faa um algoritmo para ler o preo de compra e o percentual de lucro desejado po r um vendedor e

calcular o preo de venda.} program compra_percentual_venda; var compra,lucro,venda:real; begin writeln('informe o preco de compra'); readln(compra); writeln('informe a porcentagem de lucro'); readln(lucro); venda:=(((compra*lucro)/100)+compra); writeln('preco de venda e:',venda); readln; end.

{6. Faa um algoritmo para ler duas variveis inteiras e trocar o seu contedo.} program trocar_numero; uses crt; var num1,num2,auxiliar:integer; begin writeln('informe o primeiro numero'); readln(num1); writeln('informe o segundo numero'); readln(num2); auxiliar:=num1; num1:=num2; num2:=auxiliar; writeln('numero1 =',num1); writeln('numero2 =',num2); readkey;

end.

{7. Faa um algoritmo para ler o horrio de entrada e sada de um cliente na fila de u m banco e seguida calcular o tempo de permanncia do cliente na fila. Cada horrio ser lido em duas var iveis inteiras representando a hora e os minutos. A resposta deve ser dada em horas (e x. 3:10).} program horario_na_fila; uses crt; var horaInicio,horaFim,minInicio,minFim,hora,min:integer; begin writeln(' -------- Horario Inicial -----'); writeln(' HORA:'); writeln(' MINUTOS:'); readln(horaInicio,minInicio); minInicio:=horaInicio*60 + minInicio; writeln(' -------- Horario Final -----'); writeln(' HORA:'); writeln(' MINUTOS:'); readln(horaFim,minFim); minFim:=horaFim*60 + minFim; min:=minFim - minInicio; hora:=min div 60; min:=min mod 60; writeln(' RESULTADO: Hora = ', hora,' : ',min); readkey; end.

{8. Faa um algoritmo para ler o valor do saque realizado pelo cliente de um banco e escrever quantas notas de cada valor sero necessrias para atender ao saque com a menor quantidade d e notas possvel. Sero utilizadas notas de 100, 50, 20, 5 e 1 reais.} program ssaque; uses crt; const um=1; cinco=5; vinte=20; cinquenta=50; cem=100; var saque,minima,auxSaque,maiorNota:integer; begin repeat writeln(' informe o valor do saque'); readln(saque); until saque>0; auxSaque:=saque; repeat minima:=minima + 1; if(auxSaque=um) or (auxSaque=cinco)or(auxSaque=vinte)or(auxSaque=cinquenta)or(a uxSaque=cem)then begin auxSaque:=0;

end else begin // maior nota menor que auxSaque if (um < auxSaque ) and (cinco >auxSaque) then begin maiorNota:=um; end else begin if (cinco < auxSaque ) and (vinte >auxSaque) then begin maiorNota:=cinco; end else begin if (vinte < auxSaque ) and (cinquenta > auxSaque) then begin maiorNota:=vinte; end else begin if (cinquenta < auxSaque ) and (cem > auxSaque) then begin maiorNota:=cinquenta; end else begin // auxSaque > cem maiorNota:=cem; end; end; end; end; // aqui sei quem a maior nota auxSaque:= auxSaque - maiorNota; if auxSaque < 0 then begin

auxSaque:= 0 - auxSaque; end; end; until (auxSaque=0); writeln('a quantidade minima de notas = ',minima); readkey; end.

{9. Faca um algoritmo para ler o horrio (hora, min e seg) de inicio e a durao, em s egundos, de uma experincia biolgica, em seguida informar o horrio (hora, min, seg) de termino da me sma.} program horario_esperienca_biologica; uses crt; var horaInicio,horaFim,minInicio,minFim,segInicio,segFim:integer; hsegInicio,hsegFim,intervalo:integer; begin writeln(' -------- Horario Inicial -----'); writeln(' HORA:'); writeln(' MINUTOS:'); writeln(' SEGUNDOS:'); readln(horaInicio,minInicio,segInicio); writeln(' -------- Horario Final -----'); writeln(' HORA:'); writeln(' MINUTOS:'); writeln(' SEGUNDOS'); readln(horaFim,minFim,segFim);

// transforma tudo para segundos hsegInicio:=horaInicio*60*60 + minInicio*60 + segInicio; hsegFim:=horaFim*60*60 + minFim*60 + segFim*60; intervalo:= hsegFim - hsegInicio; writeln(' RESULTADO: Hora = ', intervalo,' s'); readkey; end.

Segunda lista: {1. Faa um algoritmo para ler um nmero inteiro e informar se este maior que 10.} program numero_maior_que_10; uses crt; var numero:integer; begin writeln('escreva um numero'); readln(numero); if(numero>10) then writeln('e maior que 10!!!!!!'); readkey ; end.

{2. Faa um algoritmo para ler dois nmeros inteiros e informar se estes nmeros so igu ais ou diferentes.} program dois_numeros_inteiros ;

var numero1, numero2:integer; begin writeln('digite o numero 1'); readln(numero1); writeln('digite o numero 2'); readln(numero2); if(numero1=numero2) then begin writeln('R: Os numeros sao iguais') end else writeln('R: os numeros sao de diferentes'); readln; end.

{3. Faa um algoritmo para ler um nmero inteiro e informar se o nmero par ou mpar.} program n_par_impar; var numero:integer; begin writeln('escreva um numero'); readln(numero); if(numero mod 2)=0 then writeln('o numero digitado eh par!!!!') else begin writeln('o numero digitado eh impar!!!!'); end;

readln; end.

{4. Faa um algoritmo para ler dois nmeros inteiros A e B e informar se A divisvel p or B.} program inteiro_a_b; var a,b:integer; resto:real; begin writeln('informe a'); readln(a); writeln('informe b'); readln(b); resto:=(a mod b); if(resto=0)then writeln('R:A e divisel por b') else writeln('R:impossivel dividir A por B'); readln; end.

{5. Faa um algoritmo para ler dois nmeros inteiros e escrever o maior.} program o_maior_numero; uses crt; var num1,num2:integer; begin writeln('escreva A') ; readln(num1);

writeln('escreva B'); readln(num2); if(num1>num2) then begin writeln('O numero A eh o maior, A= ',num1); end else begin if (num1<num2) then begin writeln(' O numero B eh o maior, B= ',num2); end else begin writeln('O numero A e B sao iguais, A e B sao= ',num2); end; end; readkey; end.

{6. Faa um algoritmo para ler dois nmeros inteiros e escrev-los em ordem crescente. } program numero_ordem; var num1,num2,x:integer; begin writeln('informe A'); readln(num1); writeln('informe B'); readln(num2); writeln;

if(num1>num2)then begin x:=num1; num1:=num2; num2:=x end; write('Os valores em ordem sao => '); writeln(num1,' ; ',num2); readln; end.

{7. Faa um algoritmo para ler duas variveis inteiras A e B e garantir que A e B fi quem em ordem crescente, ou seja, a varivel A dever armazenar o menor valor fornecido e a varivel B o maior.} program ordemCrescenteDeAaB; uses crt; var a,b,auxiliar:integer; begin writeln('escreva A') ; readln(a); writeln('escreva B'); readln(b); if(a>b) then begin auxiliar:=a; a:=b; b:=auxiliar; end else

begin if(a<=b)then a:=a; b:=b; end; writeln('Na ordem A e B sao => ','a=',a,' ; ','b=' ,b) ; readkey; end.

{8. Faa um algoritmo para ler os coeficiente de uma equao do segundo grau e escreve r as suas razes.} program equacao_2_grau; var a,b,c,x1,x2,Delta:real ; begin writeln('digite os coficientes -> A,B e C'); readln(a,b,c); if (a<>0) then begin Delta:=(b*b-4*a*c); if Delta>0 then begin x1:=(-b-sqrt(Delta))/(2*a); //sqrt = raiz quadrada x2:=(-b+sqrt(Delta))/(2*a); writeln('As raizes da equacao sao: '); writeln('X1=',x1:2:2,' e ','X2=',x2:2:2)

end else if delta=0 then begin x1:=(-b/2*a);x2:=(-b/2*a); writeln('as raizes sao iguais e possuem valor= '); writeln('X1=',x1:2:2,' e ','X2=',x2:2:2) end else writeln('a equacao nao tem raizes!'); end else begin writeln('a equacao nao eh do segundo grau!!!'); end; readln; end.

{9. Faa um algoritmo para ler trs valores reais e informar se estes podem ou no for mar os lados de um tringulo. Para que trs valores possam formar os lados de um tringulo cada lado d eve ser menor que a soma dos outros dois.} program formar_triangulo; uses crt; var valor1, valor2, valor3:real; begin writeln('Informe o valor 1 '); readln(valor1); writeln(' Informe o valor 2 '); readln(valor2); writeln(' Informe o valor 3'); readln(valor3);

if (valor1 < (valor2 + valor3)) and (valor2 < (valor1 + valor3)) and (valor3 < (valor1 + valor2)) then begin writeln(' formam um triangulo'); end else begin writeln(' Nao formam um triangulo'); end; readkey; end. {10. Faa um algoritmo para ler trs valores reais e informar se estes podem ou no fo rmar os lados de um tringulo e qual tipo de tringulo seria: Equiltero, issceles ou Escaleno.} program fomarTriangulos; uses crt; var a, b, c:real; begin writeln('Informe o valor 1 '); readln(a); writeln(' Informe o valor 2 '); readln(b); writeln(' Informe o valor 3'); readln(c); if(a <( b + c))and( b <( a + c))and( c <( a + b))then begin writeln(' formam um triangulo:'); if ( a = b) and (a = c) and (b = c) then begin writeln('O triangulo eh equilatero'); end else begin

if (( a = b) and (a <> c) and (b <> c)) or ( ( a = c) and (a <> b) and (c <> b) ) or ( ( b = c) and (b <> a) and (a <> c) ) then begin writeln('O triangulo eh isosceles'); end else begin writeln(' O triangulo eh Escaleno'); end; end; end else begin writeln(' Nao formam um triangulo'); end; readkey; end. {11. Faa um algoritmo para ler trs nmeros positivos e escrev-los em ordem crescente. } program Ordem_de_3; var x,y,z,auxiliar:integer; begin writeln('digite 3 variaveis x,y e z =>'); readln(x,y,z); writeln(' numeros digitados: x=',x,' y=',y,' z=',z); if(x>y)or(x>z) then if(z>y) then begin auxiliar:=x; x:=y; y:=auxiliar;

end else begin auxiliar:=x; x:=z; z:=auxiliar; end; if(y>z) then begin auxiliar:=y; y:=z; z:=auxiliar; end; writeln; //para obter um espaco maior dos numeros digitados da resposta! writeln(' numeros ordenados: x=',x,' y=',y,' z=',z); readln; end.

{12. Faa um algoritmo para ler o nome, as trs notas e o nmero de faltas de um aluno e escrever qual a sua situao final: Aprovado, Reprovado por Falta ou Reprovado por Mdia. A mdia para

aprovao 5,0 e o limite de faltas 27. A reprovao por falta sobrepe a reprovao por M 1} program mediaAluno; uses crt; var n1,n2,n3,media:real; faltas:integer;

nome:string; begin writeln(' ------- Situacao do aluno ---------'); writeln('Informe os dados:'); writeln('NOME:'); readln(nome); writeln('NOTA1:'); readln(n1); writeln('NOTA2:'); readln(n2); writeln('NOTA3:'); readln(n3); writeln(' Frequencia (numero de faltas):'); readln(faltas); media:=(n1 + n2 + n3)/3; clrscr;//limpa tela writeln('-------------- Resultado -------------'); writeln('Aluno: ', nome); writeln('Media: ',media); writeln('Faltas: ',faltas); if ( media < 5.0) or (faltas >27) then begin //reprovado if (faltas < 27)then begin writeln('SITUACAO: Reprovado por media'); end else begin writeln('SITUACAO: Reprovado por faltas'); end; end else begin

//aprovado writeln('SITUACAO: Aprovado'); end; readkey; end.

{13. Faa um algoritmo para ler um salrio e atualiz-lo de acordo com a tabela abaixo .} program atualizacaoSalario; uses crt; var salario:real; begin writeln(' ------- Atualizacao de salario ----------------- '); writeln('_________________________________________________ '); writeln('| FAIXA SALARIAL (R$) | aum.porc. (%) |'); writeln('| ate 500.00 | 50 |'); writeln('|500,01 a 1.000,00 | 40 |'); writeln('|1000,01 a 2.000,00 | 30 |'); writeln('|2000,01 a 2.500,00 | 20 |'); writeln('|axima de 2.500,00 | 10 |'); writeln('------------------------------------------------- '); writeln; writeln('Informe o salario:'); readln(salario); if (salario <=500) then begin salario:= salario + (salario*50/100); end else

begin if (salario > 500) and (salario <=1000) then begin salario:=salario + (salario*40/100); end else begin if (salario > 1000) and (salario <= 2000) then begin salario:=salario + (salario*30/100); end else begin if ( salario > 2000) and (salario <= 2500) then begin salario:=salario + (salario*20/100); end else begin // salario > 2500 salario:=salario + (salario*10/100); end; end; end; end; //mostra o salario atualizado writeln(' ---------------Novo Salario -------------- '); writeln(' salario = ',salario); readkey; end.

{1. Faa um algoritmo para escrever os nmeros entre 1 e 1000 } program um_a_mil; var i:integer; begin for i:=1 to 1000 do begin write(i,','); end; readln(); end.

{2. Faa um algoritmo para escrever os nmeros pares entre 1 e 1000} program pares1_1000; var i,j:integer; begin j:=0; for i:=1 to 500 do begin j:=2*i; write(j,','); end;

readln; end.

{ 3. Faa um algoritmo para ler dois nmeros inteiros representando um intervalo e esc rever em ordem crescente todos os nmeros mpares do intervalo. } program doisNumeros; var num1,num2,n,i:integer; begin writeln(' Informe o primeiro numero (inteiro!)'); readln(num1); writeln(' Informe o segundo numero (inteiro)'); readln(num2); // num1 ficar com o menor valor if (num1 > num2) then begin n:=num1; num1:=num2; num2:=n; end; // aqui: est em ordem crescente

for i:=num1 to num2 do begin if (i mod 2 <> 0) then begin write(i,','); end; end; readln; end.

{4. Faa um algoritmo para ler 100 nmeros inteiros e escrever a soma e a mdia dos nme ros lidos.} program cemNumero; uses crt; var i,soma,numero:integer; media:real; begin writeln('Algoritmo para obter a soma e a media de cem numeros inteiro'); soma:=0; for i:=1 to 100 do begin writeln(' Informe o numero',i ,' : '); readln(numero); soma:=soma + numero; end; media:= soma / 100;

writeln('soma = ',soma); writeln('media = ',media); readkey; end.

{5. Faa um algoritmo para ler um valor N e em seguida ler N nmeros inteiros e escr ever o maior nmero lido.} program Nnumeros; uses crt; var n,i,k,numero:integer; begin repeat writeln('Informe um numero N (inteiro!)'); readln(n); if (n<=0) then begin writeln('ERRO, o numero deve ser maior que zero!'); end; until n>0; for i:=1 to n do begin

k:=numero; writeln('informe o numero',i,' :'); readln(numero); if (k > numero) and (k<>0) then begin numero:=k; end; end; writeln('maior numero informado = ',numero); readkey; end.

{6. Faa um algoritmo para ler nmeros inteiros, onde o Flag ser o valor 0 e sem segu ida escrever o menor valor lido e quantas vezes este ocorreu nos nmeros lidos.} program NumerosInteirosFlag; uses crt; var flag,soma,menor,i:integer; begin soma:=0; i:=0; repeat i:=i+1; writeln(' -----> Se quiser sair digite 0 <-----'); writeln(' informe um numero (inteiro!):'); readln(flag);

if (flag <> 0) then begin // menor:penltimo nmero digitado // flag: ltimo nmero digitado if (flag<>0) and (i = 1) then begin menor:=flag; end else begin if (flag < menor)then begin soma:=0; // vezes que o menor numero foi digitado menor:=flag; end; if (menor = flag) then begin soma:=soma + 1; end; end; end; until (flag = 0); if i>1 then begin writeln(' menor = ',menor); if (soma = 0) then begin soma:=1; end; writeln(' quantidade de vezes que saiu =', soma ); readkey;

end; end.

{7. Faa uma algoritmo para ler salrios, onde o Flag ser um Salrio igual a 0 e escrev a quais os trs maiores valores dos salrios lidos.} program salariosLer; uses crt; var i,flag,primeiro,segundo,terceiro,auxiliar:integer; begin writeln('********************'); writeln('* Salarios *'); writeln('********************'); writeln('informe no minimo 3 valores de salario'); flag:=1; i:=0; while (flag<>0) do begin i:=i + 1; writeln('---> 0 para sair <----'); writeln('informe o salario:'); repeat readln(flag); if (flag <0) then begin writeln('Invalido! deve ser maior que 0.'); end;

until flag>=0; if (flag <> 0) then begin if (i <= 3) then begin case i of 1: primeiro:=flag; 2: segundo:=flag; 3: terceiro:=flag; end; end else begin if (flag >= primeiro) then begin auxiliar:=primeiro; primeiro:=flag; terceiro:=segundo; segundo:=auxiliar; end else begin if (flag >=segundo) then begin auxiliar:=segundo; segundo:=flag; terceiro:=auxiliar; end else begin if (flag >= terceiro) then begin terceiro:=flag; end; end; end;

end; //ordenao de 3 numeros if (i =3) then begin if(primeiro > segundo)or( primeiro > terceiro)then begin if(terceiro > segundo) then begin auxiliar:=primeiro; primeiro:=segundo; segundo:=auxiliar; end else begin auxiliar:=primeiro; primeiro:=terceiro; terceiro:=auxiliar; end; end; if(segundo > terceiro)then begin auxiliar:=segundo; segundo:=terceiro; terceiro:=auxiliar; end; // troca primeiro com terceiro auxiliar:=primeiro; primeiro:=terceiro; terceiro:=auxiliar; end; end else begin

i:=i-1; if (i<3)then begin writeln('ERRO: quantidade de salario menor que 3'); end else begin writeln('maior salario informado = ',primeiro); writeln('segundo maior salario informado = ',segundo ); writeln('terceiro maior salario informado = ',terceiro); end; end; end; readkey; end.

{8. Faa um algoritmo para ler o nome, sexo ("M" =Masculino e "F"=Feminino), trs no tas e o nmero de faltas dos alunos de uma turma, onde o Flag ser um nome igual a "fim" e escrev er: a. A mdia e a situao final de cada aluno; b. A mdia das notas dos homens e a mdia das notas das mulheres; c. O percentual de homem e o percentual de mulheres reprovados; d. O percentual geral de reprovao da turma.} program SexoNotasFaltasFlagFim; uses crt; type escola=record nome:string; sexo:char; nota1,nota2,nota3,media:real; falta:integer;

sit:string; end; var aluno:array[1..1000]of escola; flag:string; i,j,q:integer; somah,somaM,media,qmr,qhr:real; begin writeln(' ------ Uma turma escolar -------'); writeln('media: 5.0 falta:27 '); flag:='naofim'; i:=0; while (flag <> 'fim') do begin i:=i+1; writeln('_____________ ALUNO ',i,' _____________'); writeln('==> Informe "fim" ou o NOME do aluno:'); readln(aluno[i].nome); flag:=aluno[i].nome; if flag<>'fim' then begin writeln('==> Informe o sexo do aluno M ou F:'); repeat aluno[i].sexo:=readkey; until (aluno[i].sexo = 'M') or (aluno[i].sexo='F') or (aluno[i].sexo = 'm') or (aluno[i].sexo='f'); writeln('==> Informe as 3 notas do aluno:'); readln(aluno[i].nota1,aluno[i].nota2,aluno[i].nota3); writeln('==> Informe o numero de faltas do aluno:'); readln(aluno[i].falta);

end; end; //a. A mdia e a situao final de cada aluno; if (i>1) then begin clrscr; writeln(' ------------ A media e a situacao final de cada aluno -----------'); for j:=1 to i-1 do begin aluno[j].media:=(aluno[j].nota1 + aluno[j].nota2 + aluno[j].nota3)/3; if (aluno[j].media>= 5) and (aluno[j].falta<=27) then begin aluno[j].sit:='AP'; end else begin if (aluno[j].media>= 5) and (aluno[j].falta>27) then begin aluno[j].sit:='RF'; end else begin aluno[j].sit:='RM'; end; end; writeln('nome:',aluno[j].nome,' media:',aluno[j].media,' situacao:',aluno[j].si t); end; //b. A mdia das notas dos homens e a mdia das notas das mulheres; writeln('--- media das notas dos homens e media das notas das mulheres ----'); q:=0; somah:=0; somaM:=0; qhr:=0; qmr:=0; for j:= 1 to i-1 do begin if (aluno[j].sexo ='m') or (aluno[j].sexo ='M') then

begin q:=q+1; somah:=somah + aluno[j].media; if (aluno[j].sit='RM') or (aluno[j].sit ='RF') then begin qhr:= qhr + 1; end; end else begin somaM:=somaM + aluno[j].media; if (aluno[j].sit='RM') or (aluno[j].sit ='RF') then begin qmr:=qmr +1; end; end; end; if (q <> 0)then begin media:= somah /q; writeln(' Homens:', media); end else begin writeln(' Homens: nao existe homem na turma'); end; if (i-1-q)<>0 then begin media:=somaM/(i - 1 - q); writeln(' Mulheres:',media); end else begin writeln(' Mulheres: nao existe mulher na turma'); end;

//c. O percentual de homem e o percentual de mulheres reprovados; writeln(' -------------- percentual de reprovacoes ----------------------------'); if (q <> 0)then begin writeln(' Homens:',(qhr/q)*100); end else begin writeln(' Homens: nao existe homem na turma'); end; if (i-1-q)<>0 then begin writeln(' Mulheres:',((qmr)/(i-1-q)*100)); end else begin writeln(' Mulheres: nao existe mulher na turma'); end; // d. O percentual geral de reprovao da turma. writeln(' ------------ percentual geral de reprovacoes ------------ '); writeln(' percentual =',((qhr + qmr)/(i-1))*100); writeln('______________________________________________________________________ _____'); readkey; end; end.

{9. Faa algoritmo para escrever a srie de Fibonacci = (0,1,1,2,3,5,8,13,21,34,?) e nquanto o termo a ser impresso for menor que 5000.} Program fibonacci ; Var n1,n2,n3: integer;

Begin n1 := 0; n2 := n1+1; n3 := n1+n2; while (n1 < 5000) do begin writeln (n1); writeln (n2); begin if (n3 < 5000) then writeln (n3); end; n1 := n3+n2; n2 := n1+n3; n3 := n2+n1; end; readln; End.

{10. Faa um algoritmo para ler um nmero inteiro positivo e escrever o seu fatorial .} program fatorial; uses crt; var

n,i,fat:integer; begin writeln(' Informe um numero inteiro:'); readln(n); fat:=n; for i:=1 to (n -1) do begin fat:= fat*i; end; writeln('faltorial de ',n,' = ',fat); readkey; end.

{11. Faa um algoritmo para dado o valor de N calcular o valor de H = 1/1+1/2+1/3+ 1/4+...1/n.} program serie; uses crt; var n,i:integer; h:real; begin writeln(' ************* SERIE ***************'); repeat writeln(' Informe o valor de N:'); readln(n); if (n = 0) then begin

writeln(' Digite um valor diferente de 0!'); end; until n<>0; h:=0; for i:=1 to n do begin h:= h + (1/i); end; writeln(' h = ', h); readkey; end.

{12. Faa um algoritmo para calcular o valor da srie S = 0+1/2!-2/4!+3/6!-4/8!+5/10 !-6/12! ...utilizando 100 termos.} program serie_s_100_termos; uses crt; var s,termo:real; i,j,k:integer; begin writeln('S = 0+1/2!-2/4!+3/6!-4/8!+5/10!-6/12! utilizando 100 termos'); s:=0; for i:=1 to 100 do begin j:=2*i;

termo:=i; for k:=j downto 1 do begin termo:= termo/k; end; if (i mod 2 = 0) then //termo par begin termo:=-termo; end; s:=s + termo; end; writeln('S =',s); readkey; end. //fim do programa

{14. Faa um algoritmo para ler um nmero inteiros positivo e informar se este nmero primo ou no.} Program numero_primo ; Var N, i: integer; verdade: boolean; Begin writeln('Informe um numero: '); readln(N); if (N < 2) then begin writeln('Ola,', N ,' nao eh numero primo'); end else

begin i:=2; verdade:= true ; while (i<N) and (verdade) do begin if (N mod i = 0) then begin verdade:= false ; end ; i:= i+1 ; end; if (verdade) then Begin writeln(N, ' eh um numero primo'); End else Begin writeln(N, ' nao eh um numero primo, porque eh divisivel por ', i-1); End; end; readln; End.

{15. Faa um algoritmo para ler um valor inteiro N e escrever os N primeiros nmeros primos.} Program project1 ; Var N, i,k: integer;

verdade: boolean; Begin writeln('Informe um numero: '); readln(N); if (N < 2) then begin writeln('informe N maior que 2'); end else begin for k:=2 to N do begin i:=2; verdade:= true ; while (i< k) and (verdade=true) do begin if (k mod i = 0) then begin verdade:= false ; end ; i:= i+1 ; end; if (verdade=true) then Begin writeln(' primo: ', k ); End; end; end; readln;

End.

{16. Faa um algoritmo para ler um nmero inteiro e gerar outro nmero inteiro formado pelos dgitos invertidos do nmero lido. Ex: NmeroLido = 12345; NmeroGerado = 54321. Dica: Observe os resultados das funes Quociente e Resto de um nmero por 10.} program numero_invertido; uses crt,math; var n1,n2,aux_n1,resto,quociente,k,i,j,q:integer; begin writeln(' Informe um numero inteiro:'); readln(n1); aux_n1:=n1; // descobre a quantidade de restos q:=0; quociente:=1; // para entrar no lao while (quociente <> 0) do begin q:=q+1; quociente:= n1 div 10; n1:= quociente; resto:= n1 mod 10; end; n1:=aux_n1; n2:=0; quociente:=1; // para entrar no lao

resto:= n1 mod 10; i:=q-1; while (quociente <> 0) do begin k:=1; for j:=1 to i do begin k:=k*10; end; i:=i - 1; n2:= n2 + (k*resto); quociente:= n1 div 10; n1:= quociente; resto:= n1 mod 10; end; writeln('----------------------------------------------'); // writeln(' Resto = ',resto); // writeln(' quociente = ',quociente); writeln(' numero gerado = ',n2); readln; end.

{17. Faa um algoritmo para ler o cdigo, descrio, estoque mnimo e estoque das mercador ias de um supermercado, onde o Flag ser um cdigo igual a 0. Escreva o cdigo e a descrio das

mercadorias como estoque abaixo do mnimo.} program estoque; uses crt; var cod, des:array[1..1000]of string; menu: char; EstMin, EstAtual:array[1..1000]of integer; mostra: boolean; i,flag,j:integer; begin mostra := False; i:=0; flag := 1; //diferente de 0 para entrar no while while (flag <> 0) do begin repeat writeln('--- MENU --------'); writeln; writeln('0 - sair '); writeln('1 - proximo ==>'); menu := readkey; clrscr; until (menu = '0') or (menu = '1'); //daqui para baixo menu s pode ser '0' ou '1' if (menu = '0') then begin flag := 0; end

else begin //menu '1' i:=i+1; writeln('_________________________________________________________'); writeln('Produto ',i,' : '); writeln; writeln('informe o codigo do produto:'); readln(cod[i]); writeln('informe a descricao:'); readln(des[i]); writeln('informe o estoque minimo:'); readln(EstMin[i]); writeln('informe o estoque atual:'); readln(EstAtual[i]); clrscr; writeln('--------------------------------------------------------'); writeln('concluido'); mostra := True; writeln('--------------------------------------------------------'); end; end; //apresentao dos dados if (mostra = True) then begin writeln(' __________________ RELATORIO DE ESTOQUE ____________________'); writeln(' Mercadorias com estoque abaixo do minimo:'); writeln(' codigo Descricao '); for j:=1 to i do

begin if (EstAtual[j] < EstMin[j] ) then begin writeln(cod[j],' ',des[j]); end; end; writeln('________________________________________________________________'); writeln('FIM'); readkey; end; end.

{18. Faa um algoritmo para apurar o resultado do segundo turno da eleio para prefei to de uma cidade. O algoritmo dever ler o nome dos dois candidatos, em seguida todas as zon as (flag zona = 0), onde o Flag ser o valor 0 e para cada zona todas as suas seces (flag seco = 0) e para cada seco sero lidos os nomes de cada candidato e seu nmero de votos. O algoritmo dever escrever o nome e o percentual de votos de cada candidato.} program prfeitos; uses crt; var flag,flag2,i,j:integer; candidato1,candidato2:string; soma1,votosCand1,soma2,votosCand2:integer; perc1,perc2:real;

begin writeln('___________________ ELEICOES DO SEGUNDO TURNO ___________________'); writeln('nome do candidato 1:'); readln(candidato1); writeln('nome do candidato 2:'); readln(candidato2); clrscr; writeln('---------------- computar votos ------------------------------'); flag:=1; i:=1; soma1:=0; soma2:=0; while (flag<>0) do begin writeln('==> 0 sai <=='); writeln('==> outro numero p/ continuar'); writeln(' *********** ZONA ',i,' *******'); readln(flag); if (flag<>0) then begin i:=i+1; flag2:=1; j:=1; while (flag2<>0) do begin writeln('==> 0 sair da sessao <=='); writeln('==> outro numero p/ continuar'); writeln('....................................SESSAO ',j,' : ') ; readln(flag2); if (flag2<>0) then begin

j:=j+1; writeln('candidato:', candidato1,', votos ?'); readln(votosCand1); writeln('candidato:', candidato2,', votos ?'); readln(votosCand2); soma1:=soma1 + votosCand1; soma2:=soma2 + votosCand2; end; end; end; end; writeln('_______________ RESULTADO DA ELEICAO __________________'); writeln('candidato percetual de votos'); if (( soma1 + soma2)<>0) then begin perc1:=(soma1*100)/(soma1 + soma2); perc2:=(100 - perc1); writeln(candidato1,' ',perc1); writeln(candidato2,' ',perc2); end; writeln('________________________________________________________'); writeln('FIM'); readkey; en