You are on page 1of 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);

VAR Advinhar:Boolean.n:INTEGER):STRING. END..GOTOXY(1. ou ' then Begin While Resposta='' do Begin Numero:=Numero+X. WRITE('Palavra: '). BEGIN CLRSCR. READ(palavra). END. END.24).n-1).X:Integer. BEGIN IF n=1 THEN inverte:=palavra[1] ELSE inverte:=palavra[n]+inverte(palavra.PROGRAMA ADIVINHA NUMEROS DIGITADOS {Fazer um programa que faca o computador advinhar o numero que voc� pensou. WRITE('Pressione quakquer tecla para terminar.'). BEGIN ClrScr.PROGRAMA INVERTER POSI��O DAS PALAVRAS PROGRAM invertepalavra. ou ou 0 then Rewrite(Agenda). X:=25. While Not EoF(Agenda) do . Write ('O numero e = .READKEY.Crt.. Numero:=50. A cada tentativa do computador voc� deve responder com ou =} PROGRAM AdvinharNumero. READKEY. USES Dos. VAR palavra:STRING.LENGTH(palavra))). USES CRT. Advinhar:=False. III. Write ('O numero e = . Writeln ('# Pense um numero entre 1 e 100 #'). FUNCTION inverte(palavra:STRING. WRITE(inverte(palavra. Numero. IN�CIO IN�CIO II. Resposta:String.

Var X:Amigo.' '.Nome. Write('Inclusao de Amigo').X).X).' '. BEGIN ClrScr. Resposta:=UpCase(Resposta). Reset(Agenda). Write(Agenda. Procedure Listar_Amigos. Total_Amigos:=Total_Amigos+1. With X do If Nome = Nom_Amigo then Writeln(Cod.Tel).' '.' '. Readln (Tel). Close(Agenda). End.Begin Read(Agenda.X). End. Readln. With X Do Begin Writeln(Cod. Readln(Idade).' '. While Not EoF(Agenda) do Begin Read(Agenda.Total_Amigos).Idade. With X do Begin Writeln('Cod:'. Begin ClrScr. .X). Write('Idade:'). Total_Amigos:=Total_Amigos+1. Write('Deseja inserir mais um amigo?(S/N):'). Write('Digite o nome do amigo:'). Readln(Nome). While Not EoF(Agenda) do Begin Read(Agenda. End. Readln. Readln(Nom_Amigo). Begin Reset(Agenda). Writeln. End. Write('Nome:'). Var X:Amigo. End.Tel).Nome.Idade. Write('Telefone:'). End. Writeln. ClrScr. End. Procedure Pesquisar_Amigo. Repeat ClrScr. Cod:=Total_Amigos. Until Resposta='N'. Writeln. Nom_Amigo:String[15].' '. Readln(Resposta). End.

Begin ClrScr. 'P': Begin Pesquisar_Amigo.. End Else Write (Pos. I.Pos:Integer.Pf.Repetidas.Coladas. End. VAR Album:Array[1 . Procedure X. Case Opcao of 'I': Begin Incluir_Amigos. { Estado do album } Pi:=1. End. .Arquivo_Real). End. Cinco figurinhas repetidas podem ser trocadas por uma nao repetida. End. X. 5] of Integer.00 e contem 5 figurinhas. TextColor(7) End. Calcular o custo para preencher o album} PROGRAM Album_de_Figurinhas. V. Var Pi.PROGRAMA COLE��O DE FIGURINHAS {Programa que simula um album com 200 figurinhas onde cada pacote de figurinhas custa R$ 1. If Pos=5 then Begin Repetidas:=Repetidas -5. Begin TextColor(2). Write ('X').Crt. Until Opcao='S'.Assign(Agenda. For J:=1 to 20 do Begin For Pos:=Pi to Pf do Begin If Album[Pos]=True then Begin Write (Pos. Pf:=10. USES Dos.'-[ ] '). End.J. {X} Procedure Tela.Custo:Integer. END.. Repeat Menu.I1. 200] of Boolean. Pacote:Array[1 . As figurinhas podem vir repetidas nos pacotes. Write ('] ').'-['). 'L': Begin Listar_Amigos.

1415. Readln (NumFaces). Until Coladas=200. Write ('Entre com a distancia percorrida : '). I:Integer. USES Dos.Altura. End. While NumFaces = 50. USES Dos.000m NOTA: 10 se passou nas tres 9 se passou na 1 e 2 8 se passou na 1 7 demais casos} PROGRAM Atleta. retangulo} PROGRAM Areas. Writeln ('Informacoes do ATLETA-'. NumFaces. Readln (DistPerc). Result:=0. END. Writeln ('-----------------------').I). VI .CompLado2. Writeln. If PercErro 12 then Result:=Result+2. BEGIN For I:= 1 to 12 do Begin ClrScr. CONST Pi=3. VAR Result. cilindro. While Album[I1]=True do I1:=I1+1. DistSalto.Crt. DistPerc:Real. TextColor(14). Album[I1]:=True.Raio:Real. Coladas:=Coladas+1.PROGRAMA CALCULAR �REA {Programa que calcula a area de piramide. If DistPerc = 50000 then . cubo. CompBase. PROCEDURE SPiramide.Crt. VAR Escolha:Char. Read (PercErro).I1:=1. End. Tela. Readln. BEGIN Write ('Entre com o numero de faces : '). PercErro. Write ('Entre com o percentual de erro no tiro : ').CompLado1. End. Write ('Completo !!').

End.Leste.Sul. 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. End. End. Writeln. 1: Writeln ('Nota : 8') Else Writeln ('Nota : 7'). If (Num=60) then Begin BY:=BY+1. End.Result:=Result+3. { Anda } If Num10) and (Num=30) and (Num79 Then Begin BX:=79. If (BY=CY) and (BX=CX) then Encontrar_Casa:=True. Case Result of 6: Writeln ('Nota : 10').BX.PROGRAMA QUANTO TEMPO O B�BADO LEVA PARA CHEGAR EM CASA. Tempo:=Tempo+1. VIII . { Testa se o bebado ja encontrou a casa } Begin Encontrar_Casa:=False. USES Dos. End. VAR BY. { Define a direcao do bebado fazendo-o andar nesta direcao } Begin Num:=Random(100) + 1. Devido ao seu estado de embreagues. Tempo:Integer. Readln. END. { Pensa_e_Anda } Function Encontrar_Casa:Boolean. Tempo:=Tempo-5. { Posicoes Y e X do bebado } CY. Tempo:=Tempo-5.CX.Crt. If BY23 Then Begin BY:=23. 3 or 5: Writeln ('Nota : 9'). End. Write ('Pressione para o proximo atleta').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. {Um bebado acabou de sair do bar e esta indo para casa. { Encontrar_Casa } . { Posicoes Y e X da casa } Num. End. { Pensa } Tempo:=Tempo+5. End. Procedure Pensa_e_Anda.

If (BY=CY-4) and (BX=CX-4) then Begin Sound(200). Delay (1000). BY:=1. Write ('Entre com a posicao da coluna onde a casa se encontra (Max-75) : '). NoSound.0)'). Gotoxy (CX. Write ('�'). Readln (CY).BY).23). Delay (1000).CY-1). TextColor(10). End. Delay (1000). TextColor(15). If (BY=CY) and (BX=CX) then Begin Sound(200).Procedure Inicializa. Writeln ('---------------------------------------'). End. Tempo:=0. Write ('Cu de bebado nao tem dono !!'). TextColor(7). Writeln ('O bebado se encontra na posicao (0. Write ('/\'). Write (':)'). TextBackGround(0). { Inicializa as variaveis e mostra o menu inicial } Begin ClrScr. { Armazena as mensagens que podem aparecer durante o programa } Begin Gotoxy (1.End. If (BY=CY) and (BX=CX-4) then Begin Sound(200). { Mostra na tela a posicao do bebado e da casa } Begin Delay (100). End. { Tela_Bebado } Procedure Mensagem. Gotoxy (79. ClrScr. NoSound. TextColor (10). . Readln (CX). Write ('O bebado esta no bar !!'). TextColor(14). Write ('��'). TextMode(3). TextColor(7). BX:=1. Write ('Entre com a posicao da linha onde a casa se encontra (Max-23) : '). Gotoxy (BX. { Inicializa } Procedure Tela_Bebado.24). Gotoxy (CX. Write ('O bebado apanhou da mulher !!').CY).

Write ('O bebado morreu de tanto andar !!'). If (BY=CY+4) and (BX=CX-4) then Begin Sound(200). Readln. NoSound. { Mensagem } BEGIN Inicializa. BY:=CY. NoSound. Randomize. NoSound. End. Delay (1000). Pensa_e_Anda.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. If (BX=78) and (BY=23) then Begin Sound(200). End. If (BY=CY+4) and (BX=CX+4) then Begin Sound(200). END.NoSound. Mensagem. Write ('O bebado vomitou a bilis !!'). If (BX=CX) and (BY=CY) then Begin Gotoxy (1. . TextColor(7). Write ('O bebado arranjou uma briga !!').' minutos'). End. NoSound. End. If (BY=CY-4) and (BX=CX+4) then Begin Sound(200). Delay (1000). Write ('O bebado tomou um quedao !!'). TextColor(14). End.25).Tempo. Delay (1000). Until Encontrar_Casa. Delay(2000). End. Delay (1000). Write ('O bebado chegou em casa em '. End. Repeat Tela_Bebado. NoSound. BX:=CX. IX . Sound(300).

Pol. X � PROGRAMA CONVERS�O DE UNIDADES M�TRICAS {Programa que converte unidades metricas (cm-pol).F:Real. { Janela de entrada } Writeln.(m-pes). Write ('Entre com a escolha : ').' oC correspondem a '. Case Escolha of '1': Begin Write ('Entre com o valor em Cm :').Cm:4:2). '2': Begin Write ('Entre com o valor em Pol :'). USES Dos. Writeln ('Converter de Pol para Cm . { Calculo da conversao } ClrScr.USES Dos.(pol-cm). Readln (C). END. Readln (Escolha).Pol:4:2). VAR C. End. F:=5*(C-32)/9. Writeln ('Valor em Cm : '.54.Pes. M:=0. Writeln ('Sair .Crt. End. Readln (Cm).(3)').(2)').54.(pes- m). Writeln ('Converter de Pes para M .(1)'). Readln (Pol). 1pe=0.54cm . Escolha:=Upcase(Escolha).} PROGRAM Conversao. Pol:=0. Escolha:Char.1pol=2. Cm:=Pol*2. . Pes:=0. Writeln (' # Entre com a escolha #').(4)'). BEGIN ClrScr. Writeln ('Converter de Cm para Pol .(S)').F:4:2. Writeln ('Converter de M para Pes .' oF'). Write (C:4:2. Pol:=Cm/2. VAR Cm.M:Real. Write ('Entre com valor da temperatura em oC:'). Writeln ('Valor em Pol : '. Writeln ('------------------------------'). Writeln ('-----------------------------'). Repeat { Inicializacao das variaveis } Cm:=0.33m.Crt. BEGIN ClrScr.

end. uses dos. Write ('Os divisores sao:').Pes:4:2). end.. End. Writeln ('Valor em Pes : '. 'S': Writeln ('Saindo . VAR X. textmode(3). Readln (Num). USES Dos. Pes:=M/0. For X:=1 to Num do Begin Teste:=Num MOD X.crt. If Teste=0 then Write (X.Num. var i:integer.Teste:Integer. M:=Pes*0. XII � PROGRAMA DIVISORES DE UM NUMERO {Dado um numero calcular os seus divisores} PROGRAM Divisores.33. Readln (Pes).'3': Begin Write ('Entre com o valor em M :'). End. END.33. Readln (M). '4': Begin Write ('Entre com o valor em Pes :'). BEGIN ClrScr.') Else Writeln ('Escolha invalida !!').. Until Escolha = 'S'. Write ('Entre com o numero:'). END. begin clrscr.Crt. . Writeln ('Valor em M : '. End.i). XI � PROGRAMA C�DIGO DAS CORES {Mostra na tela o c�digo de cada cor} program cores. for i:=0 to 15 do begin textcolor(i).' ').M:4:2). Writeln ('Cor-'. End.

calcule e escreva a idade media deste grupo de individuos.Aux.' Para a Estaca '.Teste1:Integer. If Teste=0 then Teste1:=Teste1 + X. END. A ultima linha. BEGIN ClrScr.Disco:2. VAR X. XV � PROGRAMA LEITURA E COMPARA��O DE IDADES Fazer um programa que: . ' Da Estaca '. Begin ClrScr.Crt.Para) Else Begin Torre(Disco-1.Teste.' Para a Estaca '. End. BEGIN ClrScr.Para.Para).Para. Torre(3.} USES Dos.De.De.PROGRAMA TORRE DE HAN�I {Resolver o problema da torre de Hanoi} Program Hanoi1.De. Uses Dos.XIII .Num. que nao entrara nos calculos. De. WriteLn('Mover Disco '. ' Da Estaca '.'C'. End. leia um numero indeterminado de linhas contendo cada uma a idade de um individuo. USES Dos.' e um numero perfeito'). Var N : Byte.Crt.Aux : Char).'A'.'B'). End. Procedure Torre(Disco : Byte. Begin If Disco = 1 Then WriteLn('Mover Disco '. For Num:=2 to 100 do Begin Teste1:=0.De). 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.Cont:Integer.Soma. .Crt.Para). If Teste1=Num then Writeln (Num.Disco:2. Torre(Disco-1. End. VAR Idade. contem a idade igual a zero. .Aux. End. For X:=1 to (Num-1) do Begin Teste:=Num MOD X.

End. Lucro1:=0. determine e escreva quantas mercadorias proporcionam: lucro 20% . Cont:=Cont+1. If Lucro20 then Lucro3:=Lucro3+1 Else Lucro2:=Lucro2+1. Readln (Idade). Writeln ('O lucro total e : '. Fazer um programa que: . PrecoC. BEGIN ClrScr. Repeat Write ('Entre com a idade:'). ClrScr. XVI � PROGRAMA LUCRO DE MERCADORIAS Um comerciante deseja fazer o levantamento do lucro das mercadorias que ele comerciaiza. preco de compra e preco de venda das mesmas. Lucro3:=0. Readln (Nome). Observacao: o aluno deve adotar um flag.Soma:=0. Until Idade=0.LucroT:Real. Writeln ('O total de vendas e : '. Writeln (Lucro1. Lucro1.TotalV:8:2).Lucro3:Integer. LucroT:=TotalV-TotalC. Write ('Entre com o preco de venda do produto : ').Crt. Readln (PrecoC).TotalC.TotalV. Until Nome='FIM'. Write ('Entre com o preco de compra do produto : ').TotalC:8:2).Lucro.(Soma/Cont):3:0). If Nome 'FIM' then Begin Lucro:=(100*(PrecoV-PrecoC)/PrecoC). Lucro2:=0.' produtos tem um lucro = 10% e 20%'). Repeat Write ('Entre com o nome do produto : '). determine e escreva o valor total de compra e de venda de todas as mercadorias assim como o lucro total. END. Readln (PrecoV). TotalC:=TotalC+PrecoC.LucroT:8:2).PrecoV. Cont:=0. VAR Nome:String. Soma:=Soma+Idade. TotalV:=TotalV+PrecoV. ClrScr. END. Write ('A media das idades e:'.Lucro2. . Para isto mandou digitar uma linha para cada mercadoria com nome.} USES Dos. Writeln ('O total de compras e : '.

Until PaisA PaisB. Audiencia:Real. ou seja.C]:=0.').. END.PaisB:Real. Se a televisao estivesse desligada. escreva o numero do canal e a sua respectiva porcentagem.000. sendo que o FLAG corresponde ao numero do canal igual a zero. VAR Cont:Integer. BEGIN ClrScr. de 200. Repeat PaisA:=PaisA+(PaisA*TaxaA).000.} USES Dos.015. 7(l3). Canal. 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. { Coluna 2 } L. leia um numero indeterminado de dados. .5.Crt. { Linhas da matriz 4(l1). 5(l2).7 ou 12) e o numero de pessoas que o estavam assistindo naquela casa.12. PaisA:=90000000. 12(l4) } LigDes:String.Cont.5. { Inicializando a matriz } For L:=1 to 4 do For C:=1 to 2 do Mat[L. 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..' anos. .XVII � PROGRAMA POPULA��O Program Exercicio05. Write ('O pais A ultrapassa a populacao de B em '.C:Integer. Fazer um programa que: .000 de habitantes com uma taxa anual de crescimento de 1. BEGIN ClrScr. { Quantidade de casas que assistem o canal .Coluna 1 } QuantP. TaxaB=0. calcule a porcentagem de audiencia para cada emissora. VAR Mat:Array [1. nada era anotado. Supondo que a populacao de um pais A seja da ordem de 90. PaisB:=PaisB+(PaisB*TaxaB).000 de habitantes com uma taxa de crescimento anual de 3% e que a populacao de um pais B seja. PaisB:=200000000.4.5%. Para cada casa visitada. PaisA. a casa nao entrava na pesquisa. e' fornecido o numero do canal (4.1.Crt. aproximadamente. CONST TaxaA=0. { Livro Pascal Estruturado: Exercicio 1.03. Cont:=Cont+1. mantidas essas taxas de crescimento. num determinado dia.} USES Dos. Cont:=0. { Fim } .2] of Integer.

1]+1.1] + Mat[2.Mat[3.1])/(Mat[1.12) = ').1]:=Mat[3.2]+QuantP.1] + Mat[4. N� Casas = '.1]+1.1] + Mat[4.Mat[3.' .1] + Mat[4. End.Audiencia:4:2.2]). ClrScr.Repeat Write ('A televisao esta ligada? (S/N) = ').1]:=Mat[2.1] + Mat[2.1]). If Canal='7' then Begin Mat[3.1] + Mat[2.Mat[1.1].1] + Mat[3. Mat[2. N� Pessoas = '. End. N� Pessoas = '.1]+1.1].' .Audiencia:4:2.'% . Writeln ('Canal 4: Audiencia = '.1] + Mat[3.1]:=Mat[1. Writeln ('Canal 5: Audiencia = '.. 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 + . End. N� Casas = '.2]). N� Casas = '. If Canal='4' then Begin Mat[1.2]).2]:=Mat[4.Mat[4.Mat[4.7.Mat[1. End. If Canal='12' then Begin Mat[4.'% .1] + Mat[4.2]+QuantP. End. If Canal='5' then Begin Mat[2. Readln (QuantP). Mat[4. + 2**50/1} USES .1]:=Mat[4.'% . Audiencia:=(100*Mat[3.' .1]).5.2]). If LigDes='S' then Begin Write ('Qual canal esta assistindo? (4.1])/(Mat[1.2]+QuantP.. If (Canal='4') or (Canal='5') or (Canal='7') or (Canal='12') then Begin Write ('Quantas pessoas estao assistindo? = ').Audiencia:4:2. N� Casas = '.1].1] + Mat[2. Mat[3. Readln (Canal). Until Canal = '0'.Mat[2. Readln (LigDes). { Fim } END.1] + Mat[3.Audiencia:4:2. End. N� Pessoas = '. Writeln ('Canal 7: Audiencia = '.1] + Mat[3.Mat[2.2]+QuantP.1]).1]).1]+1.2]:=Mat[2. Audiencia:=(100*Mat[4.' . Audiencia:=(100*Mat[2. Writeln ('Canal 12: Audiencia = '.2]:=Mat[1.2]:=Mat[3. N� Pessoas = '.'% .1].1])/(Mat[1. { Calculo da audiencia e impressao na tela } Audiencia:=(100*Mat[1.1])/(Mat[1. Mat[1.

XXXI � PROGRAMA CALCULAR AS NOTAS DOS ALUNOS .. + 2^50/1 = '.. Cont := Cont . CONST Y=2. VAR n. end. BEGIN ClrScr. XX � PROGRAMA CONSTRUINDO UMA TABUADA Program Tabuada.con : integer. while n 0 do begin cont : = 1. For Cont := 0 to 15 do Begin IF Array_Base2[Cont]=9 then CONTINUE. Until Num_Base10 = 0.: '). while con 0 X 0 do Begin Array_Base2[Cont] := (Tmp_Base10 MOD 2). S:=0. End. WriteLn('Numero digitado (decimal).S:4:2). S:Real.Crt..Crt. Write ( 'Digite o valor desejado ou 0 para retornar: ' ): read (n). WriteLn('--------------------------------------------------------------'). S:=S+(Num/(51-I1)). End. Write ('O valor de S = 2^1/50 + 2^2/49 + 2^3/48 + . begin clrscr.Num_Base10). END.1. Tmp_Base10 := Tmp_Base10 div 2. WriteLn(' '). VAR I1. Write('Correspondente em Binario. For I1:= 1 to 50 do Begin Num:=1. { Livro Pascal Estruturado: Fazer um programa que calcule forne�a a tabuada multiplicar de um n�mero } USES Dos.: '. WriteLn(' ').. { Indice } Num:Real.Dos. Write(Array_Base2[Cont]). { Indice } I2:Integer. End. WriteLn('--------------------------------------------------------------'). For I2:= 1 to I1 do Num:=Num*Y.

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

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

2:begin { se a opcao for 2 = inverter a frase } writeln. End. i := invert(c4).Y.'). Uses CRT. XXXIV � PROGRAMA ORDENA��O DE DADOS Program Ordenar {Ordena��o Tipo Bolha}. while not keypressed do end. writeln('Este programa conta o n�mero ').clrscr.Z. readln(c4). s := espacos(c5). write('Agora � para retirar os espa�os: '). readln(c5). while not keypressed do end.ZZ : Integer. WriteLn ( 'Entre com a quantidade de nomes a serem ordenados ' ). X : String. End. readln(c3). write('Digite a frase: '). end. 3:begin { se a opcao for 3 = retirar os espacos em branco } writeln. writeln('de caracteres de uma frase digitada. write('Agora digite para inverter: '). { aqui inicia o processo de ordena��o} For Z : = 1 To AA Do Begin ZZ = 0. Write('O resultado �: '). For Y : = 1 To AA-Z Do Begin If nome[Y-1] 0 Then Z : = 1. Var AA.50] of String. writeln. Read ( AA ). while not keypressed do end.. Begin Clrscr. write(s). write(h). until x = 4. ReadLn ( Nome[Z] ). { aqui termina o processo de ordena��o } For Z : = 1 To AA Do { mostrar o resultado na tela } Begin . writeln(i). h := elem(c3). end. Nome: Array [1. For Z:=1 To AA Do Begin Write ( 'Entre Nomes ' ). ReadLn.

End. End.Writeln(Nome[Z]). . While Not Keypressed Do.