Você está na página 1de 19

I- PROGRAMA CONTROLE DE ESTOQUE

{ FACA UM PROGRAMA QUE LEIA O CODIGO, NOME, PRECO UNITARIO E QUANTIDADE


EM ESTOQUE DE UMA SERIE DE PRODUTOS E ARMAZENE ESSAS INFORMACOES EM UM
ARQUIVO DE ACESSO DIRETO, QUE ALEM DESSAS INFORMACOES DEVERA CONTER
TAMBEM O VALOR DO ESTOQUE. LEIA O ARQUIVO ANTERIOR E ESCREVA, NO MONITOR,
O CODIGO E O NOME DOS PRODUTOS COM VALOR DE ESTOQUE SUPERIOR A 1000,00 REAIS.}

PROGRAM ESTOQUE_DE_PRODUTOS;
USES crt;
TYPE
ARQUIVO=RECORD
codigo,nome:STRING;
valorestoque,preco,qdade:REAL;

END;
VAR
f :FILE OF ARQUIVO;
n,i :INTEGER;
valorf :ARQUIVO;
BEGIN
TEXTBACKGROUND(1);
TEXTCOLOR(30);
CLRSCR;
ASSIGN(f,'ESTOQUE.FIL');
REWRITE(f);
WRITE('QUANTOS PRODUTOS VOCE QUER LER? ');
READLN(n);
TEXTCOLOR(15);
FOR i:=1 TO n DO
BEGIN
CLRSCR;
WRITE('CODIGO: ');
READLN(valorf.codigo);
WRITE('NOME: ');
READLN(valorf.nome);
WRITE('PRECO: ');
READLN(valorf.preco);
WRITE('QUANTIDADE: ');
READLN(valorf.qdade);
valorf.valorestoque:=valorf.qdade * valorf.preco;
WRITE(f,valorf);
END;
CLOSE(f);
CLRSCR;
TEXTCOLOR(30);
GOTOXY(14,1);WRITE('PRODUTOS COM VALOR DE ESTOQUE ACIMA DOS 1000 REAIS');
TEXTCOLOR(15);
RESET(f);
FOR i:=1 TO n DO
BEGIN
seek(f,i-1);
read(f, valorf);
IF valorf.valorestoque1000 THEN
GOTOXY(1,3+i);
WRITE('CODIGO: ',valorf.codigo,' NOME: ',valorf.nome,
' VALOR DE ESTOQUE: ',valorf.valorestoque:2:0);
END;
CLOSE(f);
GOTOXY(1,24);
WRITE('Pressione quakquer tecla para terminar...');READKEY;
END.

IN�CIO

IN�CIO

II- PROGRAMA INVERTER POSI��O DAS PALAVRAS

PROGRAM invertepalavra;
USES CRT;
VAR
palavra:STRING;
FUNCTION inverte(palavra:STRING;n:INTEGER):STRING;
BEGIN
IF n=1 THEN
inverte:=palavra[1]
ELSE
inverte:=palavra[n]+inverte(palavra,n-1);
END;
BEGIN
CLRSCR;
WRITE('Palavra: ');
READ(palavra);
WRITE(inverte(palavra,LENGTH(palavra)));
READKEY;
END.

III- PROGRAMA ADIVINHA NUMEROS DIGITADOS

{Fazer um programa que faca o computador advinhar o numero que voc� pensou. A cada
tentativa do computador voc� deve responder com ou =}
PROGRAM AdvinharNumero;
USES Dos,Crt;
VAR
Advinhar:Boolean;
Numero,X:Integer;
Resposta:String;
BEGIN
ClrScr;
Advinhar:=False;
Writeln ('# Pense um numero entre 1 e 100 #');
Numero:=50;
X:=25;
Write ('O numero e = , ou ' then
Begin
While Resposta='' do
Begin
Numero:=Numero+X;
Write ('O numero e = , ou ou 0 then
Rewrite(Agenda);
While Not EoF(Agenda) do
Begin
Read(Agenda,X);
Total_Amigos:=Total_Amigos+1;
End;
Repeat
ClrScr;
Total_Amigos:=Total_Amigos+1;
Write('Inclusao de Amigo');
Writeln;
With X do
Begin
Writeln('Cod:',Total_Amigos); Cod:=Total_Amigos;
Write('Nome:'); Readln(Nome);
Write('Idade:'); Readln(Idade);
Write('Telefone:'); Readln (Tel);
End;
Write(Agenda,X);
Writeln;
Write('Deseja inserir mais um amigo?(S/N):'); Readln(Resposta);
Resposta:=UpCase(Resposta);
Until Resposta='N';
Close(Agenda);
End;
Procedure Listar_Amigos;
Var
X:Amigo;
Begin
ClrScr;
Reset(Agenda);
While Not EoF(Agenda) do
Begin
Read(Agenda,X);
With X Do
Begin
Writeln(Cod,' ',Nome,' ',Idade,' ',Tel);
End;
End;
Readln;
End;
Procedure Pesquisar_Amigo;
Var
X:Amigo;
Nom_Amigo:String[15];
Begin
Reset(Agenda);
ClrScr;
Write('Digite o nome do amigo:'); Readln(Nom_Amigo);
Writeln;
While Not EoF(Agenda) do
Begin
Read(Agenda,X);
With X do
If Nome = Nom_Amigo then
Writeln(Cod,' ',Nome,' ',Idade,' ',Tel);
End;
Readln;
End;
BEGIN
ClrScr;
Assign(Agenda,Arquivo_Real);
Repeat
Menu;
Case Opcao of
'I': Begin
Incluir_Amigos;
End;
'L': Begin
Listar_Amigos;
End;
'P': Begin
Pesquisar_Amigo;
End;
End;
Until Opcao='S';
END.

V- PROGRAMA COLE��O DE FIGURINHAS


{Programa que simula um album com 200 figurinhas onde cada pacote de figurinhas
custa R$ 1,00 e contem 5 figurinhas. As figurinhas podem vir repetidas nos pacotes.
Cinco figurinhas repetidas podem ser trocadas por uma nao repetida. Calcular o
custo para preencher o album}
PROGRAM Album_de_Figurinhas;
USES
Dos,Crt;
VAR
Album:Array[1 .. 200] of Boolean;
Pacote:Array[1 .. 5] of Integer;
I,I1,Repetidas,Coladas,Custo:Integer;
Procedure X;
Begin
TextColor(2);
Write ('X');
TextColor(7)
End; {X}
Procedure Tela;
Var
Pi,Pf,J,Pos:Integer;
Begin
ClrScr;
{ Estado do album }
Pi:=1;
Pf:=10;
For J:=1 to 20 do
Begin
For Pos:=Pi to Pf do
Begin
If Album[Pos]=True then
Begin
Write (Pos,'-[');
X;
Write ('] ');
End
Else
Write (Pos,'-[ ] ');
End;
If Pos=5 then
Begin
Repetidas:=Repetidas -5;
I1:=1;
While Album[I1]=True do
I1:=I1+1;
Album[I1]:=True;
Coladas:=Coladas+1;
End;
End;
End;
Tela;
Until Coladas=200;
Writeln;
TextColor(14);
Write ('Completo !!');
Readln;
END.

VI - PROGRAMA CALCULAR �REA


{Programa que calcula a area de piramide, cubo, cilindro, retangulo}
PROGRAM Areas;
USES
Dos,Crt;
CONST
Pi=3.1415;
VAR
Escolha:Char;
NumFaces,
CompBase,CompLado1,CompLado2,Altura,Raio:Real;
PROCEDURE SPiramide;
BEGIN
Write ('Entre com o numero de faces : ');
Readln (NumFaces);
While NumFaces = 50.000m
NOTA: 10 se passou nas tres
9 se passou na 1 e 2
8 se passou na 1
7 demais casos}
PROGRAM Atleta;
USES
Dos,Crt;
VAR
Result,
I:Integer;
PercErro,
DistSalto,
DistPerc:Real;
BEGIN
For I:= 1 to 12 do
Begin
ClrScr;
Result:=0;
Writeln ('Informacoes do ATLETA-',I);
Writeln ('-----------------------');
Write ('Entre com o percentual de erro no tiro : ');
Read (PercErro);
If PercErro 12 then
Result:=Result+2;
Write ('Entre com a distancia percorrida : ');
Readln (DistPerc);
If DistPerc = 50000 then
Result:=Result+3;
Case Result of
6: Writeln ('Nota : 10');
3 or 5: Writeln ('Nota : 9');
1: Writeln ('Nota : 8')
Else
Writeln ('Nota : 7');
End;
Writeln;
Write ('Pressione para o proximo atleta');
Readln;
End;
END.
VIII - PROGRAMA QUANTO TEMPO O B�BADO LEVA PARA CHEGAR EM CASA.
{Um bebado acabou de sair do bar e esta indo para casa. Devido ao seu estado de
embreagues, o bebado esqueceu o caminho de sua casa e adotou a seguinte estrategia
para encontrar sua casa:
OBS:A area e dividida em quarteiroes
1)O bebado pensa durante 1 minuto
2)Escolhe uma direcao a seguir(Norte,Sul,Leste,Oeste)
3)Caminha ate a proxima encruzilhada e torna a pensar novamente
Calcular o tempo que o bebado leva para chegar em casa}
PROGRAM Bebado;
USES
Dos,Crt;
VAR
BY,BX, { Posicoes Y e X do bebado }
CY,CX, { Posicoes Y e X da casa }
Num,
Tempo:Integer;
Procedure Pensa_e_Anda;
{ Define a direcao do bebado fazendo-o andar nesta direcao }
Begin
Num:=Random(100) + 1;
Tempo:=Tempo+1; { Pensa }
Tempo:=Tempo+5; { Anda }
If Num10) and (Num=30) and (Num79 Then
Begin
BX:=79;
Tempo:=Tempo-5;
End;
End;
If (Num=60) then
Begin
BY:=BY+1;
If BY23 Then
Begin
BY:=23;
Tempo:=Tempo-5;
End;
End;
End; { Pensa_e_Anda }
Function Encontrar_Casa:Boolean;
{ Testa se o bebado ja encontrou a casa }
Begin
Encontrar_Casa:=False;
If (BY=CY) and (BX=CX) then
Encontrar_Casa:=True;
End; { Encontrar_Casa }
Procedure Inicializa;
{ Inicializa as variaveis e mostra o menu inicial }
Begin
ClrScr;
TextMode(3);
TextBackGround(0);
TextColor(7);
BY:=1;
BX:=1;
Tempo:=0;
Writeln ('O bebado se encontra na posicao (0,0)');
Writeln ('---------------------------------------');
Write ('Entre com a posicao da coluna onde a casa se encontra (Max-75) : ');
Readln (CX);
Write ('Entre com a posicao da linha onde a casa se encontra (Max-23) : ');
Readln (CY);End;
{ Inicializa }
Procedure Tela_Bebado;
{ Mostra na tela a posicao do bebado e da casa }
Begin
Delay (100);
ClrScr;
Gotoxy (79,23);
TextColor(15);
Write ('�');
TextColor (10);
Gotoxy (CX,CY-1);
Write ('/\');
Gotoxy (CX,CY);
Write ('��');
Gotoxy (BX,BY);
TextColor(14);
Write (':)');
TextColor(7);
End; { Tela_Bebado }
Procedure Mensagem;
{ Armazena as mensagens que podem aparecer durante o programa }
Begin
Gotoxy (1,24);
TextColor(10);
If (BY=CY) and (BX=CX) then
Begin
Sound(200);
Write ('O bebado apanhou da mulher !!');
Delay (1000);
NoSound;
End;
If (BY=CY) and (BX=CX-4) then
Begin
Sound(200);
Write ('Cu de bebado nao tem dono !!');
Delay (1000);
NoSound;
End;
If (BY=CY-4) and (BX=CX-4) then
Begin
Sound(200);
Write ('O bebado esta no bar !!');
Delay (1000);
NoSound;
End;
If (BY=CY+4) and (BX=CX+4) then
Begin
Sound(200);
Write ('O bebado arranjou uma briga !!');
Delay (1000);
NoSound;
End;
If (BY=CY+4) and (BX=CX-4) then
Begin
Sound(200);
Write ('O bebado vomitou a bilis !!');
Delay (1000);
NoSound;
End;
If (BY=CY-4) and (BX=CX+4) then
Begin
Sound(200);
Write ('O bebado tomou um quedao !!');
Delay (1000);
NoSound;
End;
If (BX=CX) and (BY=CY) then
Begin
Gotoxy (1,25);
TextColor(14);
Sound(300);
Write ('O bebado chegou em casa em ',Tempo,' minutos');
Delay(2000);
NoSound;
End;
If (BX=78) and (BY=23) then
Begin
Sound(200);
Write ('O bebado morreu de tanto andar !!');
BX:=CX;
BY:=CY;
Delay (1000);
NoSound;
End;
TextColor(7);
End; { Mensagem }
BEGIN
Inicializa;
Randomize;
Repeat
Tela_Bebado;
Pensa_e_Anda;
Mensagem;
Until Encontrar_Casa;
Readln;
END.

IX - PROGRAMA CONVERS�O DE TEMPERATURA

{O usuario fornece a temperatura em oC e desejamos converte-la para graus oF


(F=5(C-32)/9)}
PROGRAM Conversao;
USES
Dos,Crt;
VAR
C,F:Real;
BEGIN
ClrScr;
Write ('Entre com valor da temperatura em oC:');
Readln (C);
F:=5*(C-32)/9;
Write (C:4:2,' oC correspondem a ',F:4:2,' oF');
END.

X � PROGRAMA CONVERS�O DE UNIDADES M�TRICAS


{Programa que converte unidades metricas (cm-pol),(pol-cm),(m-pes),(pes-
m),1pol=2,54cm , 1pe=0,33m.}
PROGRAM Conversao;
USES
Dos,Crt;
VAR
Cm,Pol,Pes,M:Real;
Escolha:Char;
BEGIN
ClrScr;
Repeat
{ Inicializacao das variaveis }
Cm:=0;
Pes:=0;
Pol:=0;
M:=0;
{ Janela de entrada }
Writeln;
Writeln (' # Entre com a escolha #');
Writeln ('-----------------------------');
Writeln ('Converter de Cm para Pol - (1)');
Writeln ('Converter de Pol para Cm - (2)');
Writeln ('Converter de M para Pes - (3)');
Writeln ('Converter de Pes para M - (4)');
Writeln ('Sair - (S)');
Writeln ('------------------------------');
Write ('Entre com a escolha : ');
Readln (Escolha);
{ Calculo da conversao }
ClrScr;
Escolha:=Upcase(Escolha);
Case Escolha of
'1':
Begin
Write ('Entre com o valor em Cm :');
Readln (Cm);
Pol:=Cm/2.54;
Writeln ('Valor em Pol : ',Pol:4:2);
End;
'2':
Begin
Write ('Entre com o valor em Pol :');
Readln (Pol);
Cm:=Pol*2.54;
Writeln ('Valor em Cm : ',Cm:4:2);
End;
'3':
Begin
Write ('Entre com o valor em M :');
Readln (M);
Pes:=M/0.33;
Writeln ('Valor em Pes : ',Pes:4:2);
End;
'4':
Begin
Write ('Entre com o valor em Pes :');
Readln (Pes);
M:=Pes*0.33;
Writeln ('Valor em M : ',M:4:2);
End;
'S': Writeln ('Saindo ...')
Else
Writeln ('Escolha invalida !!');
End;
Until Escolha = 'S';
END.

XI � PROGRAMA C�DIGO DAS CORES

{Mostra na tela o c�digo de cada cor}


program cores;
uses
dos,crt;
var
i:integer;
begin
clrscr;
textmode(3);
for i:=0 to 15 do
begin
textcolor(i);
Writeln ('Cor-',i);
end;
end.

XII � PROGRAMA DIVISORES DE UM NUMERO


{Dado um numero calcular os seus divisores}
PROGRAM Divisores;
USES
Dos,Crt;
VAR
X,Num,Teste:Integer;
BEGIN
ClrScr;
Write ('Entre com o numero:');
Readln (Num);
Write ('Os divisores sao:');
For X:=1 to Num do
Begin
Teste:=Num MOD X;
If Teste=0 then
Write (X,' ');
End;
END.
XIII - PROGRAMA TORRE DE HAN�I
{Resolver o problema da torre de Hanoi}
Program Hanoi1;
Uses
Dos,Crt;
Var
N : Byte;
Procedure Torre(Disco : Byte; De,Para,Aux : Char);
Begin
If Disco = 1 Then
WriteLn('Mover Disco ',Disco:2, ' Da Estaca ',De,' Para a Estaca ',Para)
Else
Begin
Torre(Disco-1,De,Aux,Para);
WriteLn('Mover Disco ',Disco:2, ' Da Estaca ',De,' Para a Estaca ',Para);
Torre(Disco-1,Aux,Para,De);
End;
End;
Begin
ClrScr;
Torre(3,'A','C','B');
End.

XIV � PROGRAMA N�MEROS PERFEITOS ENTRE 1 E 100


{Quais sao os numeros perfeitos entre 1 e 100?
Numero perfeito e aquele que e igual a soma dos seus divisores}
PROGRAM Divisores;
USES
Dos,Crt;
VAR
X,Num,Teste,Teste1:Integer;
BEGIN
ClrScr;
For Num:=2 to 100 do
Begin
Teste1:=0;
For X:=1 to (Num-1) do
Begin
Teste:=Num MOD X;
If Teste=0 then
Teste1:=Teste1 + X;
End;
If Teste1=Num then
Writeln (Num,' e um numero perfeito');
End;
END.

XV � PROGRAMA LEITURA E COMPARA��O DE IDADES


Fazer um programa que:
. leia um numero indeterminado de linhas contendo cada uma a idade de um
individuo.
A ultima linha, que nao entrara nos calculos, contem a idade igual a zero.
. calcule e escreva a idade media deste grupo de individuos.}
USES
Dos,Crt;
VAR
Idade,Soma,Cont:Integer;
BEGIN
ClrScr;
Soma:=0;
Cont:=0;
Repeat
Write ('Entre com a idade:');
Readln (Idade);
Soma:=Soma+Idade;
Cont:=Cont+1;
Until Idade=0;
Write ('A media das idades e:',(Soma/Cont):3:0);
END.

XVI � PROGRAMA LUCRO DE MERCADORIAS

Um comerciante deseja fazer o levantamento do lucro das mercadorias que ele


comerciaiza. Para isto mandou digitar uma linha para cada mercadoria com nome,
preco de compra e preco de venda das mesmas. Fazer um programa que:
. determine e escreva quantas mercadorias proporcionam:
lucro 20%
. determine e escreva o valor total de compra e de venda de todas as mercadorias
assim como o lucro total.
Observacao: o aluno deve adotar um flag.}
USES
Dos,Crt;
VAR
Nome:String;
PrecoC,PrecoV,Lucro,TotalC,TotalV,LucroT:Real;
Lucro1,Lucro2,Lucro3:Integer;
BEGIN
ClrScr;
Lucro1:=0;
Lucro2:=0;
Lucro3:=0;
Repeat
Write ('Entre com o nome do produto : ');
Readln (Nome);
Write ('Entre com o preco de compra do produto : ');
Readln (PrecoC);
Write ('Entre com o preco de venda do produto : ');
Readln (PrecoV);
If Nome 'FIM' then
Begin
Lucro:=(100*(PrecoV-PrecoC)/PrecoC);
If Lucro20 then
Lucro3:=Lucro3+1
Else
Lucro2:=Lucro2+1;
TotalC:=TotalC+PrecoC;
TotalV:=TotalV+PrecoV;
ClrScr;
End;
Until Nome='FIM';
LucroT:=TotalV-TotalC;
ClrScr;
Writeln (Lucro1,' produtos tem um lucro = 10% e 20%');
Writeln ('O total de compras e : ',TotalC:8:2);
Writeln ('O total de vendas e : ',TotalV:8:2);
Writeln ('O lucro total e : ',LucroT:8:2);
END.
XVII � PROGRAMA POPULA��O
Program Exercicio05;
{ Livro Pascal Estruturado: Exercicio 1.12.5.
Supondo que a populacao de um pais A seja da ordem de 90.000.000 de habitantes
com uma taxa de crescimento anual de 3% e que a populacao de um pais B seja,
aproximadamente, de 200.000.000 de habitantes com uma taxa anual de crescimento
de 1,5%, fazer um programa que calcule e escreva o numero de anos necessarios
para que a populacao do pais A ultrapasse ou iguale a populacao do pais B,
mantidas essas taxas de crescimento.}
USES
Dos,Crt;
CONST
TaxaA=0.03;
TaxaB=0.015;
VAR
Cont:Integer;
PaisA,PaisB:Real;
BEGIN
ClrScr;
Cont:=0;
PaisA:=90000000;
PaisB:=200000000;
Repeat
PaisA:=PaisA+(PaisA*TaxaA);
PaisB:=PaisB+(PaisB*TaxaB);
Cont:=Cont+1;
Until PaisA PaisB;
Write ('O pais A ultrapassa a populacao de B em ',Cont,' anos.');
END.

XVIII � PROGRAMA �NDICE DE AUDI�BNCIA DE UM CANAL DE TV

Foi feita uma pesquisa de audiencia de canal de TV em varias casas de uma


certa cidade, num determinado dia. Para cada casa visitada, e' fornecido o
numero do canal (4,5,7 ou 12) e o numero de pessoas que o estavam assistindo
naquela casa. Se a televisao estivesse desligada, nada era anotado, ou seja,
a casa nao entrava na pesquisa. Fazer um programa que:
. leia um numero indeterminado de dados, sendo que o FLAG corresponde ao
numero do canal igual a zero;
. calcule a porcentagem de audiencia para cada emissora;
. escreva o numero do canal e a sua respectiva porcentagem.}
USES
Dos,Crt;
VAR
Mat:Array [1..4,1..2] of Integer;
{ Quantidade de casas que assistem o canal - Coluna 1 }
QuantP, { Coluna 2 }
L,C:Integer;
Canal, { Linhas da matriz 4(l1), 5(l2), 7(l3), 12(l4) }
LigDes:String;
Audiencia:Real;
BEGIN
ClrScr;
{ Inicializando a matriz }
For L:=1 to 4 do
For C:=1 to 2 do
Mat[L,C]:=0;
{ Fim }
Repeat
Write ('A televisao esta ligada? (S/N) = ');
Readln (LigDes);
If LigDes='S' then
Begin
Write ('Qual canal esta assistindo? (4,5,7,12) = ');
Readln (Canal);
If (Canal='4') or (Canal='5') or (Canal='7') or (Canal='12') then
Begin
Write ('Quantas pessoas estao assistindo? = ');
Readln (QuantP);
If Canal='4' then
Begin
Mat[1,1]:=Mat[1,1]+1;
Mat[1,2]:=Mat[1,2]+QuantP;
End;
If Canal='5' then
Begin
Mat[2,1]:=Mat[2,1]+1;
Mat[2,2]:=Mat[2,2]+QuantP;
End;
If Canal='7' then
Begin
Mat[3,1]:=Mat[3,1]+1;
Mat[3,2]:=Mat[3,2]+QuantP;
End;
If Canal='12' then
Begin
Mat[4,1]:=Mat[4,1]+1;
Mat[4,2]:=Mat[4,2]+QuantP;
End;
End;
ClrScr;
End;
Until Canal = '0';
{ Calculo da audiencia e impressao na tela }
Audiencia:=(100*Mat[1,1])/(Mat[1,1] + Mat[2,1] + Mat[3,1] + Mat[4,1]);
Writeln ('Canal 4: Audiencia = ',Audiencia:4:2,'% , N� Casas = ',Mat[1,1],' , N�
Pessoas =
',Mat[1,2]);
Audiencia:=(100*Mat[2,1])/(Mat[1,1] + Mat[2,1] + Mat[3,1] + Mat[4,1]);
Writeln ('Canal 5: Audiencia = ',Audiencia:4:2,'% , N� Casas = ',Mat[2,1],' , N�
Pessoas = ',Mat[2,2]);
Audiencia:=(100*Mat[3,1])/(Mat[1,1] + Mat[2,1] + Mat[3,1] + Mat[4,1]);
Writeln ('Canal 7: Audiencia = ',Audiencia:4:2,'% , N� Casas = ',Mat[3,1],' , N�
Pessoas =
',Mat[3,2]);
Audiencia:=(100*Mat[4,1])/(Mat[1,1] + Mat[2,1] + Mat[3,1] + Mat[4,1]);
Writeln ('Canal 12: Audiencia = ',Audiencia:4:2,'% , N� Casas = ',Mat[4,1],' , N�
Pessoas =
',Mat[4,2]);
{ Fim }
END.

XIX � PROGRAMA CALCULAR O VALOR DE S

Fazer um programa que calcule e escreva o valor de S:


S = 2**1/50 + 2**2/49 + 2**3/48 + ... + 2**50/1}
USES
Dos,Crt;
CONST
Y=2;
VAR
I1, { Indice }
I2:Integer; { Indice }
Num:Real;
S:Real;
BEGIN
ClrScr;
S:=0;
For I1:= 1 to 50 do
Begin
Num:=1;
For I2:= 1 to I1 do
Num:=Num*Y;
S:=S+(Num/(51-I1));
End;
Write ('O valor de S = 2^1/50 + 2^2/49 + 2^3/48 + ... + 2^50/1 = ',S:4:2);
END.

XX � PROGRAMA CONSTRUINDO UMA TABUADA


Program Tabuada;
{ Livro Pascal Estruturado: Fazer um programa que calcule forne�a a tabuada
multiplicar de um n�mero }
USES
Dos,Crt;
VAR
n,con : integer;
begin
clrscr;
Write ( 'Digite o valor desejado ou 0 para retornar: ' ):
read (n);
while n 0 do
begin
cont : = 1;
while con 0
X 0 do
Begin
Array_Base2[Cont] := (Tmp_Base10 MOD 2);
Cont := Cont - 1;
Tmp_Base10 := Tmp_Base10 div 2;
End;
WriteLn('Numero digitado (decimal)..: ',Num_Base10);
Write('Correspondente em Binario..: ');
For Cont := 0 to 15 do
Begin
IF Array_Base2[Cont]=9 then
CONTINUE;
Write(Array_Base2[Cont]);
End;
WriteLn(' ');
WriteLn('--------------------------------------------------------------');
Until Num_Base10 = 0;
WriteLn(' ');
WriteLn('--------------------------------------------------------------');
end.

XXXI � PROGRAMA CALCULAR AS NOTAS DOS ALUNOS


Program E11212; { Calcular notas dos Alunos }
{ Progamado p/ Leonel Muniz, em 13/10/1998 }
uses crt;
var Nota1,Nota2,Nota3,Nota_Final:Real;
Nota_Media,Nota_Maior,Nota_Menor:Real;
TARepF,TARepN,PARepF,PARepN,TNotaMedia:Real;
Cont,Freq:Integer;
Matricula:String;
begin
clrscr;
Nota_Maior := -1;
Nota_Menor := 101;
for cont := 1 to 100 do
begin
{ pega a matricula do aluno }
WriteLn(' ');
write ('Digite a Matricula do aluno (fim p/ encerrar): ');
readln (Matricula);
{ flag - se a matricula = fim interrompa }
if matricula = 'fim'then break;
{ pega valor das notas }
write ('Digite a 1 Nota: ');
readln (Nota1);
write ('Digite a 2 Nota: ');
readln (Nota2);
write ('Digite a 3 Nota: ');
readln (Nota3);
write ('Digite a aulas frequentadas: ');
readln (Freq);
{ armazenar a maior e menor nota }
if Nota1 Nota_Maior then
Nota_Maior := Nota1;
if Nota2 Nota_Maior then
Nota_Maior := Nota2;
if Nota3 Nota_Maior then
Nota_Maior := Nota3;
if Nota1 0 then
Termo := (Termo - 3) * (-1)
Else
Termo := (Termo + 3) * (-1);
End;
WriteLn('+------------------------------------------------+');
WriteLn('| |');
WriteLn('| Termos Utilizados: |');
WriteLn('| |');
WriteLn('| (1000/1) - (997/2) + (994/3) - (991/4) + ... |');
WriteLn('| |');
WriteLn('+------------------------------------------------+');
WriteLn(' ');
WriteLn('+------------------------------------------------+');
WriteLn('| |');
WriteLn('| Resultado da soma dos 50 primeiros termos |');
WriteLn('| ',Soma:15:2,' |');
WriteLn('| |');
WriteLn('+------------------------------------------------+');
WriteLn('+----------------- By Leonel Muniz --------------+');
end.

XXXIII � PROGRAMA FUN��ES CONTAR CARACTER, DELETAR, INVERTER E CONCTENAR


Program Funcoes;
uses crt;
var c3,c4,c5,i,s:string;
h,x:integer;
function espacos(c:string):string; { remover os espacos em branco }
var c1,c2:string;
cont:integer;
begin
c1:='';
c2:='';
cont:=0;
while c '' do
begin
cont := cont + 1;
c1 := copy(c,1,1);
if c1 ' '
then insert(c1,c2,cont);
delete(c,1,1);
end;
espacos := c2;
end; { fim de remover os espacos em branco }
function elem(c:string):integer; { contar os caracteres }
var cont:integer;
begin
cont := 0;
while c '' do
begin
cont := cont + 1;
delete(c,1,1);
end;
elem := cont;
end; { fim de contar caracteres }
function invert(c:string):string; { inverter a frase }
var c1,c2:string;
begin
c1 := '';
c2 := '';
while c '' do
begin
c2 := copy(c,1,1);
delete(c,1,1);
insert(c2,c1,1);
end;
invert := c1;
end; { fim de inverter a frase }
begin { inicio do programa principal }
repeat
clrscr;
writeln('-------------- Menu Principal ---------------'); { mostrando o menu
principal na tela}
writeln('Digite 1 para contar o n�mero de caracteres,');
writeln('Digite 2 para inverter a frase, e');
writeln('Digite 3 para retirar os espa�os da frase.');
writeln('Digite 4 para sair.');
writeln('');
writeln('Escolha a opcao desejada: ');
readln(x);
case x of { escolher a opcao }
1:begin { se a opcao for 1 = contar o numero de caracter }
clrscr;
writeln('Este programa conta o n�mero ');
writeln('de caracteres de uma frase digitada.');
writeln;
write('Digite a frase: ');
readln(c3);
h := elem(c3);
Write('O resultado �: ');
write(h);
while not keypressed do
end;
2:begin { se a opcao for 2 = inverter a frase }
writeln;
write('Agora digite para inverter: ');
readln(c4);
i := invert(c4);
writeln(i);
while not keypressed do
end;
3:begin { se a opcao for 3 = retirar os espacos em branco }
writeln;
write('Agora � para retirar os espa�os: ');
readln(c5);
s := espacos(c5);
write(s);
while not keypressed do
end;
end;
until x = 4;
end.

XXXIV � PROGRAMA ORDENA��O DE DADOS


Program Ordenar {Ordena��o Tipo Bolha};
Uses CRT;
Var
AA,Z,Y,ZZ : Integer;
X : String;
Nome: Array [1..50] of String;
Begin
Clrscr;
WriteLn ( 'Entre com a quantidade de nomes a serem ordenados ' );
Read ( AA );
ReadLn;
For Z:=1 To AA Do
Begin
Write ( 'Entre Nomes ' );
ReadLn ( Nome[Z] );
End;
{ aqui inicia o processo de ordena��o}
For Z : = 1 To AA Do
Begin
ZZ = 0;
For Y : = 1 To AA-Z Do
Begin
If nome[Y-1] 0 Then
Z : = 1;
End; { aqui termina o processo de ordena��o }
For Z : = 1 To AA Do { mostrar o resultado na tela }
Begin
Writeln(Nome[Z]);
End;
While Not Keypressed Do;
End.

Você também pode gostar