Video aula de algoritmo e de pascal
Estas video aulas estão no youtube, e tem um material muito bom para quem quer aprender a programar: algoritmo, pascal, c, java, delphi e outros. Este professor do vídeo tem um material muito bom. Vale apena conferir.
exemplos:
http://www.youtube.com/watch?v=f1v101iiKks
http://www.youtube.com/watch?v=BJLCfFls2-M
http://www.youtube.com/watch?v=Fqq3Bi4YEX4
As video aulas tem numero iniciando com o número:
aula 946 e vai ate a aula 1239 de Algorit e log
Nestas aulas ele dá exemplos inciciando com algorítmo e passa o mesmo exercício para pascal, c e java
Vale apena.
Esta é uma dica de material para estudo de linguagens de programação. Espero que eu tenha ajudado.
terça-feira, 23 de outubro de 2012
segunda-feira, 22 de outubro de 2012
Programas para cadastramento e ordenação de 5 alunos
Exemplo 1 de 2:
program cad_alunos;
uses crt;
var
mat : array [1..5] of integer;
nome : array [1..5] of string [30];
notas : array [1..5,1..3] of real;
media : array [1..5] of real;
i,j,k,l : integer;
soma : real;
aux_mat : string [30];
aux_nota : real;
begin
soma:=0;
clrscr;
writeln ('Cadastramento de Alunos');
writeln;
{*** Cadastramento de Alunos ***}
for i:= 1 to 5 do
begin
write ('Matricula: '); readln (mat);
write ('Nome : '); readln (nome);
for i:= 1 to 5 do
begin
writeln ('Notas do ',i,'o. trimestre: ');
for l:= 1 to 3 do
begin
write ('Informe a ',l,'a. nota: '); readln (nota[i,l]);
soma:= soma + nota[i,l];
end;
media[i]:= soma / 3;
end;
{*** Ordenacao dos alunos Cadastrados ***}
for i:= 1 to 4 do
for j:= i+1 to 5 do
if mat[i] > mat[j] then
begin
{*** Troca Matricula ***}
aux_mat:=mat[i];
mat[i]:=mat[j];
mat[j]:=aux_mat;
{*** Trocar Notas ***}
for l:= 1 to 3 do
begin
aux_nota:= nota[i,l];
nota[i,l]:= nota[j,l];
nota[j,l]:= aux_nota;
end;
{*** Troca Media ***}
aux_nota:= media[i];
media[i]:= media[j];
media[j]:= aux_nota;
end;
end.
Exemplo 2 de 2:
program cad_alunos;
uses crt;
var
mat : array [1..5] of integer;
nome : array [1..5] of string [30];
nota : array [1..5,1..3] of real;
media : array [1..5] of real;
i,j,k,l : integer;
soma : real;
aux_mat : integer;
aux_nota : real;
begin
soma:=0;
clrscr;
writeln ('Cadastramento de Alunos');
writeln;
{*** Cadastramento de Alunos ***}
for i:= 1 to 5 do
begin
write ('Matricula: '); readln (mat[i]);
write ('Nome : '); readln (nome[i]);
for i:= 1 to 5 do
begin
writeln ('Notas do ',i,'o. trimestre: ');
for l:= 1 to 3 do
begin
write ('Informe a ',l,'a. nota: '); readln (nota[i,l]);
soma:= soma + nota[i,l];
end;
end;
media[i]:= soma / 3;
end;
{*** Ordenacao dos alunos Cadastrados ***}
for i:= 1 to 4 do
for j:= i+1 to 5 do
if mat[i] > mat[j] then
begin
{*** Troca Matricula ***}
aux_mat:=mat[i];
mat[i]:=mat[j];
mat[j]:=aux_mat;
{*** Trocar Notas ***}
for l:= 1 to 3 do
begin
aux_nota:= nota[i,l];
nota[i,l]:= nota[j,l];
nota[j,l]:= aux_nota;
end;
{*** Troca Media ***}
aux_nota:= media[i];
media[i]:= media[j];
media[j]:= aux_nota;
end;
{*** Relatorio dos Alunos Cadastrados ***}
for i:= 1 to 5 do
begin
write ('Matricula: ',mat[i]);
write ('Nome : ',nome[i]);
for i:= 1 to 5 do
begin
writeln ('Notas do ',i,'o. trimestre: ');
for l:= 1 to 3 do
writeln (l,'a. nota: ',nota[i,l]);
writeln ('Media : ',media[i]);
end;
end;
writeln;
writeln ('Tecle <ENTER> para sair ... '); readln;
end.
quarta-feira, 17 de outubro de 2012
Vetor - Listagem de Exercícios Resolvidos
Vetor - Listagem de Exercícios Resolvidos
{1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j : integer;
soma, media : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-----------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
soma := 0;
FOR i := 1 TO 6 DO
begin
soma := soma + temp[i];
media := soma / 6;
end;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{1.1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j : integer;
soma, media : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-------------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
soma := 0;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
soma := soma + temp[i];
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
media := soma / 6;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{1.2. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade, depois disso o programa devera:
1. Exibir uma listagem ordenada de forma crescente de todas as temperaturas
armazenadas nov vetor
2. Calcular a media dessas temperaturas
3. Indicar quais as temperaturas que tiveram valores acima da media }
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j,x : integer;
soma, media, aux : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-------------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
soma := 0;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
soma := soma + temp[i];
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
media := soma / 6;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Ordenar as temperaturas em ordem crescente ****}
FOR i:= 1 TO 5 DO
FOR x:=i+1 TO 6 DO
if (temp[i] > temp[x]) then
begin
aux:= temp[i];
temp[i]:= temp[x];
temp[x]:= aux;
end;
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
{**** Listagem das temperaturas em ordem crescente ****}
gotoxy (10,14); write ('Temperaturas listadas em ordem crescente:');
j:= 10;
FOR i := 1 TO 6 DO
begin
gotoxy (j,16); write(' ',i,'a.: ',temp[i]:3:1);
j:=j+10;
end;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{2. Criar um Programa que, utilizando vectores, solicite ao
utilizador as classificacoes de 10 alunos, calcule a sua media e a
escreva no ecran[tela] .}
PROGRAM EX_VECTORES;
uses crt;
CONST
N_ALUNOS=10; {A constante NALUNOS e substituida pelo seu valor no programa antes da
compilação}
VAR
NOTA : ARRAY [1..N_ALUNOS] OF INTEGER;
I, SOMA : INTEGER;
MEDIA : REAL;
BEGIN
clrscr;
{**** Cadastramento ds 10 Notas ****}
FOR I:=1 TO N_ALUNOS DO
BEGIN
WRITE ('Introduza a Nota do Aluno ', I, ' : ');
READLN (NOTA[I]);
END;
{**** Calculo da Média das 10 notas armazenadas ****}
SOMA := 0;
FOR I:=1 TO N_ALUNOS DO
SOMA := SOMA + NOTA[I];
MEDIA := SOMA / N_ALUNOS;
{**** Exibir o resultado ****}
WRITELN ('A Media e : ', MEDIA:4:1); {A MEDIA é apresentada com 1 casa decimal (4 digitos,
1 decimal)}
writeln ('Tecle [ENTER] para sair..'); READLN;
END.
{3. Programa que mostra o calculo do factorial com repeticoes}
PROGRAM FACTORIAL ;
uses crt;
VAR
Fac : integer ;
i : integer ;
N : Integer;
Begin
gotoxy (10,06); write ('Calculo do Fatorial:');
{*** Entrada de dados *** }
gotoxy (10,10); WRITE ('Informe o Valor de N: '); READLN (N);
{*** Calculo do fatorial ***}
Fac := 1;
for i:= 1 to N do
Begin
Fac :=Fac * i;
end;
{*** Exibir o resultado ***}
gotoxy (10,14); WRITE ('O Valor de ', N, ' Factorial e: ', fac);
gotoxy (10,18); write ('Tecle [ENTER] para sair...'); readln;
End.
{4. Programa que demonstra a utilização de Arrays, Procedures e
Functions em PASCAL. Este programa em Pascal atraves de vectores, solicita
ao utilizador a classificacao de 15 alunos, atraves de um procedimento que as
armazena num array, e calcula a media das classificacoes, atraves de uma
funcao, fazendo o seu display no ucran;}
PROGRAM EXEMPLO_ARRAY;
uses crt;
CONST
NALUNOS=15; {A constante NALUNOS e substituida pelo seu valor no programa
antes da compilacao}
VAR
NOTA : ARRAY [1..NALUNOS] OF Real; {poderiamos alterar o array para
valores reais , nesse caso a soma também terá de passar a ser real, no
entanto o indice do array "I" tera de continuar inteiro}
MEDIA : REAL; {Nao ha indices reais para arrays }
i,j : integer;
{*** Procedimento de cadastrameto das notas ***}
PROCEDURE PEDEDADOS;
BEGIN
gotoxy (10,01); write ('Cadastramento das Notas dos 15 alunos: ');
J:=2;
FOR I:=1 TO NALUNOS DO
BEGIN
gotoxy (10,J+i); WRITE ('Nota do ',I,' aluno: ');
READLN (NOTA[I]);
END;
END;
{*** funcao para CALCULO DA MEDIA ***}
FUNCTION CALCULAMEDIA:REAL;
VAR
SOMA : Real ;
BEGIN
SOMA := 0 ;
FOR I:=1 TO NALUNOS DO
SOMA := SOMA + NOTA[i];
CALCULAMEDIA := SOMA / NALUNOS ;
END;
{*** Procedimento para ordenar de forma crescente as notas ***}
procedure ordenar_notas;
var
aux : real;
begin
for i:=1 to 14 do
for j:=i+1 to 15 do
if nota[i] > nota[j] then
begin
aux := nota[i];
nota[i] := nota[j];
nota[j] := aux;
end;
end;
{*** Procedure de listagem de notas em ordem crescente ***}
procedure listagem_notas;
BEGIN
gotoxy (10,16); write ('Notas dos 15 alunos em ordem crescente: ');
J:=9;
FOR I:=1 TO NALUNOS DO
BEGIN
gotoxy (J+i,18); WRITE ('Nota do ',I,' aluno: ',NOTA[I]);
END;
END;
{*** PROGRAMA PRINCIPAL ***}
BEGIN
clrscr;
gotoxy (10,01); write ('Cadastramento dos dados de alunos: ');
PEDEDADOS ; {executa o procedimento de cadastramento}
MEDIA := CALCULAMEDIA ;
{*** Escreve o Resultado ***}
gotoxy (10,20); WRITE ('A Media da turma e: ', MEDIA:4:1); {A MEDIA e apresentada com 1
casa
decimal (2 inteiros + "." + 1decimal)}
gotoxy (10,24); write ('Tecle [ENTER] para sair....'); READLN;
END.
{1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j : integer;
soma, media : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-----------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
soma := 0;
FOR i := 1 TO 6 DO
begin
soma := soma + temp[i];
media := soma / 6;
end;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{1.1. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade e que calcule a media dessas temperaturas. O programa tambem
deve indicar quais as temperaturas que tiveram valores acima da media.}
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j : integer;
soma, media : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-------------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
soma := 0;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
soma := soma + temp[i];
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
media := soma / 6;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{1.2. Cria um programa que registe 6 temperaturas ocorridas diariamente numa
localidade, depois disso o programa devera:
1. Exibir uma listagem ordenada de forma crescente de todas as temperaturas
armazenadas nov vetor
2. Calcular a media dessas temperaturas
3. Indicar quais as temperaturas que tiveram valores acima da media }
PROGRAM TEMP_MEDIA ;
uses crt;
VAR
i,j,x : integer;
soma, media, aux : real;
temp : array [1..6] of real;
BEGIN
clrscr;
gotoxy (10,02); write ('Controle de Temperaturas');
gotoxy (10,03); write ('-------------------------------------------------');
{*** Digitar as 6 temperaturas e armazenar em um vetor de 6 posicoes ***}
gotoxy (10,05); write ('Introduza os valores das 6 temperaturas');
j:= 10;
soma := 0;
FOR i := 1 TO 6 DO
begin
gotoxy (j,06); write(' ',i,'a.: '); readln (temp[i]);
j:=j+10;
soma := soma + temp[i];
end;
{**** Calculo da media das temperaturas armazenadas no vetor ****}
media := soma / 6;
gotoxy (10,08); write ('Media das 6 temperaturas : ',media:3:1);
{**** Ordenar as temperaturas em ordem crescente ****}
FOR i:= 1 TO 5 DO
FOR x:=i+1 TO 6 DO
if (temp[i] > temp[x]) then
begin
aux:= temp[i];
temp[i]:= temp[x];
temp[x]:= aux;
end;
{**** Listagem das temperaturas acima da media ****}
j:=10;
gotoxy (10,10); write ('Temperatura acima da media: ');
FOR i := 1 TO 6 DO {Valores acima da media}
BEGIN
IF temp[i] > media THEN
begin
gotoxy (j,12); write (' ',temp[i]:3:1);
j:=j+10;
end;
END;
{**** Listagem das temperaturas em ordem crescente ****}
gotoxy (10,14); write ('Temperaturas listadas em ordem crescente:');
j:= 10;
FOR i := 1 TO 6 DO
begin
gotoxy (j,16); write(' ',i,'a.: ',temp[i]:3:1);
j:=j+10;
end;
gotoxy (10,24); write ('Tecle [ENTER] para sair'); readln;
END.
{2. Criar um Programa que, utilizando vectores, solicite ao
utilizador as classificacoes de 10 alunos, calcule a sua media e a
escreva no ecran[tela] .}
PROGRAM EX_VECTORES;
uses crt;
CONST
N_ALUNOS=10; {A constante NALUNOS e substituida pelo seu valor no programa antes da
compilação}
VAR
NOTA : ARRAY [1..N_ALUNOS] OF INTEGER;
I, SOMA : INTEGER;
MEDIA : REAL;
BEGIN
clrscr;
{**** Cadastramento ds 10 Notas ****}
FOR I:=1 TO N_ALUNOS DO
BEGIN
WRITE ('Introduza a Nota do Aluno ', I, ' : ');
READLN (NOTA[I]);
END;
{**** Calculo da Média das 10 notas armazenadas ****}
SOMA := 0;
FOR I:=1 TO N_ALUNOS DO
SOMA := SOMA + NOTA[I];
MEDIA := SOMA / N_ALUNOS;
{**** Exibir o resultado ****}
WRITELN ('A Media e : ', MEDIA:4:1); {A MEDIA é apresentada com 1 casa decimal (4 digitos,
1 decimal)}
writeln ('Tecle [ENTER] para sair..'); READLN;
END.
{3. Programa que mostra o calculo do factorial com repeticoes}
PROGRAM FACTORIAL ;
uses crt;
VAR
Fac : integer ;
i : integer ;
N : Integer;
Begin
gotoxy (10,06); write ('Calculo do Fatorial:');
{*** Entrada de dados *** }
gotoxy (10,10); WRITE ('Informe o Valor de N: '); READLN (N);
{*** Calculo do fatorial ***}
Fac := 1;
for i:= 1 to N do
Begin
Fac :=Fac * i;
end;
{*** Exibir o resultado ***}
gotoxy (10,14); WRITE ('O Valor de ', N, ' Factorial e: ', fac);
gotoxy (10,18); write ('Tecle [ENTER] para sair...'); readln;
End.
{4. Programa que demonstra a utilização de Arrays, Procedures e
Functions em PASCAL. Este programa em Pascal atraves de vectores, solicita
ao utilizador a classificacao de 15 alunos, atraves de um procedimento que as
armazena num array, e calcula a media das classificacoes, atraves de uma
funcao, fazendo o seu display no ucran;}
PROGRAM EXEMPLO_ARRAY;
uses crt;
CONST
NALUNOS=15; {A constante NALUNOS e substituida pelo seu valor no programa
antes da compilacao}
VAR
NOTA : ARRAY [1..NALUNOS] OF Real; {poderiamos alterar o array para
valores reais , nesse caso a soma também terá de passar a ser real, no
entanto o indice do array "I" tera de continuar inteiro}
MEDIA : REAL; {Nao ha indices reais para arrays }
i,j : integer;
{*** Procedimento de cadastrameto das notas ***}
PROCEDURE PEDEDADOS;
BEGIN
gotoxy (10,01); write ('Cadastramento das Notas dos 15 alunos: ');
J:=2;
FOR I:=1 TO NALUNOS DO
BEGIN
gotoxy (10,J+i); WRITE ('Nota do ',I,' aluno: ');
READLN (NOTA[I]);
END;
END;
{*** funcao para CALCULO DA MEDIA ***}
FUNCTION CALCULAMEDIA:REAL;
VAR
SOMA : Real ;
BEGIN
SOMA := 0 ;
FOR I:=1 TO NALUNOS DO
SOMA := SOMA + NOTA[i];
CALCULAMEDIA := SOMA / NALUNOS ;
END;
{*** Procedimento para ordenar de forma crescente as notas ***}
procedure ordenar_notas;
var
aux : real;
begin
for i:=1 to 14 do
for j:=i+1 to 15 do
if nota[i] > nota[j] then
begin
aux := nota[i];
nota[i] := nota[j];
nota[j] := aux;
end;
end;
{*** Procedure de listagem de notas em ordem crescente ***}
procedure listagem_notas;
BEGIN
gotoxy (10,16); write ('Notas dos 15 alunos em ordem crescente: ');
J:=9;
FOR I:=1 TO NALUNOS DO
BEGIN
gotoxy (J+i,18); WRITE ('Nota do ',I,' aluno: ',NOTA[I]);
END;
END;
{*** PROGRAMA PRINCIPAL ***}
BEGIN
clrscr;
gotoxy (10,01); write ('Cadastramento dos dados de alunos: ');
PEDEDADOS ; {executa o procedimento de cadastramento}
MEDIA := CALCULAMEDIA ;
{*** Escreve o Resultado ***}
gotoxy (10,20); WRITE ('A Media da turma e: ', MEDIA:4:1); {A MEDIA e apresentada com 1
casa
decimal (2 inteiros + "." + 1decimal)}
gotoxy (10,24); write ('Tecle [ENTER] para sair....'); READLN;
END.
terça-feira, 2 de outubro de 2012
{ Funcao : Faca um programa que permita a usuario incluir, alterar, excluir, pesquisar e listar as informacoes num vetor de no maximo 200 clientes de uma agencia bancaria. Tendo as seguintes informacoes: numero da conta, nome, saldo e senha de 6 digitos.
Autor :
Data : 4/9/2012
Seção de Declarações }
Autor :
Data : 4/9/2012
Seção de Declarações }
Program Banco_Novo;
uses crt;
const
max = 200;
type
TContaCorrente = record
num: integer;
nome: string[40];
saldo: real;
senha: string[6];
end;
TContas = array[1.. max] of TContaCorrente;
var
contas : TContas; { *** upos - ultima posicao *** }
p, i, op, upos, pesq, erro : integer;
resp : char;
teste_senha,nova_senha,vsenha,senha_digitada : string[6];
{*** PROCEDURE MOSTRAR DADOS DA CONTA - UTILIZADO EM QUASE TODAS AS PARTES DESTE PROGRAMA ***}
procedure MostrarConta(conta: TContaCorrente);
begin
gotoxy (10,06); write (' Cliente Cadastrado - Banco PASCAL: ');
gotoxy (10,07); write ('-----------------------------------------------------');
gotoxy (10,08); write ('N£mero Nome Saldo');
gotoxy (10,09); write ('-------+-------------------------------+-------------');
writeln;
gotoxy (10,10); write (conta.num);
gotoxy (18,10); write (conta.nome);
gotoxy (53,10); write ('R$ ',conta.saldo:10:2);
end;
procedure criptografar_senha;
var
s : char;
begin
i:= 1;
while i <= 6 do
begin
s:=readkey;
i:= i + 1;
if (s <> ' ') then
begin
senha_digitada:= concat(senha_digitada+s);
write ('*');
end;
end;
end;
function localizar: integer;
var
achou: boolean;
begin
p:= 1;
achou := false;
while (p <= upos) and (not achou) do {not achou = achou = false}
if pesq = contas[p].num then
achou := true
else
p := p + 1;
if achou then {if achou then = if achou = true then}
localizar := p
else
localizar := -1; { numero negativo ira interrompoer as procedures: }
end; { alterar, excluir, pesquisar, listar }
{*** CADASTRAMENTO DE CLIENTES - Incluir ***}
procedure incluir;
begin
clrscr;
gotoxy (10,01); write (' Abertura de nova conta ');
gotoxy (10,02); write ('---------------------------------------- ');
gotoxy (10,04); write ('Ate o momento o banco tem ',upos,' clientes cadastrados');
gotoxy (10,06); write ('Podendo chegar a numero ',max,' de clientes');
if upos < max then
begin
gotoxy (10,24); write ('Deseja realmente cadastrar uma nova conta [S/N] : ');
readln (resp);
if (resp = 's') or (resp = 'S') then
begin
gotoxy (10,24); write (' ');
upos := upos + 1; { upos - ultima posicao }
gotoxy (10,08); write ('N£mero: '); readln (contas[upos].num);
gotoxy (10,09); write ('Nome : '); readln (contas[upos].nome);
gotoxy (10,10); write ('Saldo Inicial: R$ '); readln (contas[upos].saldo);
gotoxy (10,12); write ('Digite a senha: ');
criptografar_senha;
contas[upos].senha:=senha_digitada;
gotoxy (10,22); write ('Cadastramento de conta concluido com sucesso!!');
delay (2500);
end
else
begin
gotoxy (10,22); write ('Nao foi registrado uma conta nova.');
end;
gotoxy (10,22); write ('Tecle [ENTER] para retornar oa menu principal');
end
else
begin
gotoxy (10,17); write ('Nosso numero de clientes ja esta complento');
gotoxy (10,18); write ('Foi atingido o numero maximo de clientes');
gotoxy (10,19); write ('Um total de ',upos,' de ',max);
gotoxy (10,20); write ('Tecle [ENTER] para continuar.');
readkey;
end;
end;
{**** Procedimento para efetuar alteracoes nos dados dos clientes ****}
procedure alterar;
var
opl: integer;
begin
clrscr;
gotoxy (10,01); write ('Alterarcao de dados no registro do cliente cadastrado: ');
gotoxy (10,02); write ('---------- -- ----- -- -------- -- ------- ----------- ');
gotoxy (10,04); write ('Digite o n£mero da conta a ser alterada: ');
readln(pesq);
p := localizar; {aciona a procedure localizar e recebe um informacao }
if p > 0 then {se encontrou ou nao o numero da conta no registro de clientes }
begin
MostrarConta(contas[p]);
gotoxy (10,12); write ('Qual o campo que deseja alterar?');
gotoxy (10,13); write ('1 - Nome');
gotoxy (10,14); write ('2 - Saldo');
gotoxy (10,15); write ('3 - Senha');
gotoxy (10,16); write ('9 - Voltar ao menu principal');
gotoxy (10,18); write ('Digite a Opcao: '); readln(opl);
if opl = 1 then
begin
gotoxy (14,20); write ('Nome: ');
readln(contas[p].nome);
end
else
if opl = 2 then
begin
gotoxy (14,20); write ('Saldo: R$');
readln(contas[p].saldo);
end
else
if opl = 3 then
begin
gotoxy (14,20); write ('Digite a nova senha: ');
criptografar_senha;
contas[upos].senha:=senha_digitada;
end
else
if opl = 9 then
begin
gotoxy (14,24); write ('Tecle [ENTER] para voltar ao MENU PRINCIPAL')
end;
gotoxy (10,22); write ('Alera‡Æo de conta concluido com sucesso!!');
delay (2500);
end
else
begin
gotoxy (14,24); write ('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end;
{ *** PROCEDIMENTO PARA EXCLUIR CONTA DE CLIENTE *** }
procedure excluir;
begin
clrscr;
if upos > 0 then
begin
gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
gotoxy (10,03); write ('------- -------- -- ------- ----------- ');
gotoxy (10,05); write ('Digite o n£mero da conta a ser excluida: ');
readln(pesq);
p := localizar;
if p > 0 then
begin
MostrarConta(contas[p]);
gotoxy (10,24); write('Comfirma a exclusao <S/N>: ');
readln(resp);
resp := upcase(resp);
if resp = 'S' then
begin
for i := p to upos - 1 do
contas[i] := contas[i + 1];
upos := upos - 1;
end;
gotoxy (10,24); write ('Conta excluida com sucesso!!');
delay (2500);
end
else
begin
gotoxy (10,24);write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end
else
begin
gotoxy (07,08); write ('Banco Pascal');
gotoxy (07,24); write ('NÆo existe informa‡Æo a excluir. Tecle [ENTER] para continuar.');
readkey;
end;
end;
procedure pesquisar;
begin
clrscr;
gotoxy (10,02); write ('Excluir Registro de Cliente Cadastrado: ');
gotoxy (10,03); write ('------- -------- -- ------- ----------- ');
gotoxy (10,05); write('Didite o n£mero da conta a ser localizada: ');
readln(pesq);
p := localizar;
if p > 0 then
begin
MostrarConta(contas[p]);
gotoxy (10,24); write('Tecle [ENTER] para continuar.');
readkey;
end
else
begin
gotoxy (10,24); write('Conta nÆo localizada. Tecle [ENTER] para continuar.');
readkey;
end;
end;
procedure listar;
var
l, x: integer;
begin
X:=7;
clrscr;
if upos > 0 then
begin
l := 2;
gotoxy (10,02); write ('Listagem dos Cliente Cadastrados - Banco PASCAL: ');
gotoxy (10,03); write ('-------- --- ------- ----------- ----- ------- ');
gotoxy (10,05); write ('N£mero Nome Saldo');
gotoxy (10,06); write ('-------+--------------------------------+-----------------');
writeln;
for i := 1 to upos do
begin
gotoxy (10,x); write (contas[i].num:7);
gotoxy (18,x); write (contas[i].nome);
gotoxy (53,x); write ('R$ ',contas[i].saldo:10:2);
x:=x+1;
if l < 22 then
l := l + 1
else
begin
gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
readkey;
l := 1;
clrscr;
writeln('N£mero Nome Saldo : ');
end
end;
gotoxy (10,24); write ('Tecle [ENTER] para continuar.');
readkey;
end
else
begin
gotoxy (10,24); write ('NÆo exitem contas cadastradas. Tecle [ENTER] para continuar.');
readkey;
end;
end;
{
procedure extrato_bancario;
Type
extrato = record
operacao : integer;
var }
{ *** Principal parte do programa *** }
begin
repeat
clrscr;
{Comandos do programa}
gotoxy (05,05); write (' Banco Pascal');
gotoxy (05,06); write ('----------------------------');
gotoxy (05,10); write (' MENU PRINCIPAL ');
gotoxy (05,12); write ('----------------------------');
gotoxy (13,14); write ('1 - Incluir');
gotoxy (13,15); write ('2 - Alterar');
gotoxy (13,16); write ('3 - Excluir');
gotoxy (13,17); write ('4 - Pesquisar');
gotoxy (13,18); write ('5 - Listar');
gotoxy (13,19); write ('6 - Extrato');
gotoxy (13,20); write ('9 - Sair');
gotoxy (10,22); write ('Digite a opcao: ');
val(readkey,op,erro);
clrscr;
case op of
1: incluir;
2: alterar;
3: excluir;
4: pesquisar;
5: listar;
6: begin
gotoxy (26,19); writeln ('EM CONSTRUCAO'); readkey;
end;
end;
until op = 9;
end.
Assinar:
Postagens (Atom)