Matriz e Registro
Autor: R.Zigs | Publicado: 2010-11-25T12:54:00-08:00

 1.Faça um programa que leia o nome de dez alunos e respectivamente  1ª, 2ª, 3ª e 4ª notas, a seguir calcule a média. Escreva o nome do aluno  e sua média.

2.Calcule o total de pessoas aprovadas e reprovadas no exercício acima.

Program Pzim ;

var
nome:array[1..10]of string;
nota:array[1..10,1..4]of integer;
media,soma:array[1..10]of real;
linha,coluna,aprov,reprov:integer;

Begin
for linha:=1 to 10 do
begin
writeln(linha,'- Informe o nome do aluno:');
readln(nome[linha]);

for coluna:=1 to 4 do
begin

writeln(coluna,'- nota: ' );
readln(nota[linha,coluna]);                     
soma[linha]:= soma[linha]+nota[linha,coluna]   

end;

media[linha]:=(soma[linha])/4;                      
writeln('A média do aluno(a) ',nome[linha],' foi: ',media[linha]:2:2);   
writeln;
end;

clrscr;

for linha:=1 to 10 do
begin
if (media[linha]&gt;=60) then
aprov:=aprov+1
else
reprov:=reprov+1
end;

writeln('Foram aprovados: ',aprov,' alunos.');       
writeln('Foram reprovados: ',reprov,' alunos.');
End.


3.Faça um programa que leia o nome de três cidades e a seguir cadastre e exiba na tela a distância entre essas cidades.

Program Distancia;
var
cidade:array[1..3]of string;
distancia:array[1..3,1..3]of real;
linha,coluna,cont:integer;

Begin
for cont:= 1 to 3 do
begin
writeln(cont,' - Digite o nome da cidades:');
readln(cidade[cont]);
clrscr;
end;  
for cont:= 1 to 3 do
writeln(cont,' - Você digitou as cidades:',cidade[cont]); 

for linha:=1 to 3 do
begin
for coluna:= 1 to 3 do
begin
if (linha = coluna) then
distancia[linha,coluna]:=0
else
begin
writeln(' Agora informe a distancia entre ',cidade[linha],' e ',cidade[coluna]);
readln(distancia[linha,coluna]); 
//            distancia[linha,coluna]):= distancia[coluna,linha];          
end; 
end;  
end;

for coluna:=1 to 3 do
begin
for cont:= 1 to 3 do
begin
writeln('As distancia entre as cidade ',cidade[coluna],' e ',cidade[linha] );  

end;
end; 
End.


4.Faça um programa para criar um cadastro de mercadorias que contenha  os seguintes dados: código da mercadoria, descrição, data de cadastro,  ultima saído, saldo em estoque.
A seguir escreva todos o código da mercadoria e a descrição de todas as  mercadorias cadastradas. A seguir todos os dados da mercadoria que  apresenta o maior saldo em estoque.
Obs.: O programa deve ser feito para cadastro de 1000 produtos diferentes.


Program Pzim ;

type prod = record
codMerc: integer;
descricao:string;
dataCadastro:integer;
ultimaSaida:integer;
saldoEstoque:integer;
end;  

var
cont,m,c:integer;
cadastro: array[1..1000] of prod;

Begin
m:=0;
for cont:=1 to 2 do
begin
writeln('Codigo da mercadoria:');
readln(cadastro[cont].codMerc);
writeln('Descricao:');
readln(cadastro[cont].descricao);
writeln('Data de Cadastro:');
readln(cadastro[cont].dataCadastro);
writeln('Ultima saida:');
readln(cadastro[cont].ultimaSaida);
writeln('Saldo em estoque:');
readln(cadastro[cont].saldoEstoque);
writeln('            ----- ');            
end; 

clrscr;
writeln('TODOS OS PRODUTOS');
for cont:=1 to 2 do
begin
writeln('Codigo da mercadoria: ',cadastro[cont].codMerc);
writeln('Descricao: ',cadastro[cont].descricao);
writeln('Data de Cadastro: ',cadastro[cont].dataCadastro);
writeln('Ultima saida: ',cadastro[cont].ultimaSaida);
writeln('Saldo em estoque: ',cadastro[cont].saldoEstoque);            
writeln('            ----- ');
end;

readln;
for cont:=1 to 2 do
if(m
5.Faça um programa para criar um cadastro de dados bancários e a seguir  escreva o nome a idade e o saldo do cliente mais novo e mais velho.
Obs.: O programa deve ser feito para cadastrar 10000 clientes. Os dados  dos clientes a serem cadastrados são: Conta corrente, agencia, banco,  nome, endereço, telefone, e-mail, idade e saldo bancário.


Program Pzim ;

type dodos = record
contaCorrente:integer;
agencia:integer;
banco:string;
nome:string;
idade:integer;
endereco:string;
tel:integer;
email:string;
saldoBanc:real;    
end;

var
cad: array[1..3] of dodos; //1000
i:integer;  

procedure  cadastro;
begin
for i:=1 to 3 do
begin
writeln(' ::CADASTRO DE CLIENTE::');
writeln;
write('Conta Corrente: ');
readln(cad[i].contaCorrente);
write('Agencia: ');
read(cad[i].agencia);
write('Banco: ');
read(cad[i].banco);
write('Nome: ');
read(cad[i].nome);
write('Idade: ');
read(cad[i].idade);
write('Endereco: ');
read(cad[i].endereco);
write('Telefone: ');
read(cad[i].tel);
write('E-mail: ');
read(cad[i].email);
write('Saldo bancario: ');
read(cad[i].saldoBanc);
clrscr;
end; 
end; 

procedure clienteMaisVelho;
var
maior:integer;
maiorNome:string;
maiorSaldo:real;
begin
maior:=1;

for i:=1 to 3 do
begin  
if (cad[i].idade &gt; maior) then
begin
maior:=cad[i].idade;
maiorNome:=cad[i].nome;
maiorSaldo:=cad[i].saldoBanc;
end;   
end;

writeln('&gt;&gt;Pessoa com maior idade:');
writeln('Nome: ',maiorNome);
writeln('Idade: ',maior);
writeln('Saldo bancario: ',maiorSaldo:2:2);   
end;

procedure clienteMaisNovo;
var
menor:integer;
menorNome:string;
menorSaldo:real;
begin
menor:=150;

for i:=1 to 3 do
begin  
if (cad[i].idade &lt; menor) then      begin         menor:=cad[i].idade;         menorNome:=cad[i].nome;         menorSaldo:=cad[i].saldoBanc;      end;       end;        writeln;        writeln('&gt;&gt;Pessoa com menor idade:');
writeln('Nome: ',menorNome);
writeln('Idade: ',menor);
writeln('Saldo bancario: ',menorSaldo:2:2);   
end;

Begin
cadastro;
clienteMaisVelho;
clienteMaisNovo;
End.

6.Faça um programa que leia nome do jogador, camisa, time e saldo de  22 jogadores.  Escreva o time que contém mais jogadores na lista, o nome  do jogador com salário mais alto e mais baixo

Program Pzim ;
type dados=record
nome:string;
camisa:integer;
time:char;
salario:real;
end; 

var
jog:array[1..5] of dados; //22
i:integer;

procedure cadastro;
begin
for i:=1 to 5 do
begin
writeln('::CADASTRO DE JOGADORES::');
writeln;
writeln('TIMES DESPONIVEIS: A e B');
writeln(i,' - Faca o cadastro:');
writeln('_________________________'); 
writeln;
write('Nome: ');
read(jog[i].nome);
write('Camisa: ');
read(jog[i].camisa);
write('Time: ');
read(jog[i].time);
write('Salario: ');
read(jog[i].salario);
clrscr;
end;  
end;

procedure maisJogadores;
var
TA,TB,maisJ: integer;
timeM:char;

begin
maisJ:=1;

for i:=1 to 5 do
begin
case jog[i].time of
'A': TA:=TA+1;
'B': TB:=TB+1;
end;
end;

if (TA&gt;maisJ)then
timeM:= 'A'
else
timeM:= 'B'; 

writeln('&gt;&gt;O time com mais joadores e o time: ',timeM); 
end;

procedure maiorSalario;
var
maior:real;
maiorNome:string;
begin
maior:=1;

for i:=1 to 5 do
begin  
if (jog[i].salario &gt; maior) then
begin
maior:=jog[i].salario;
maiorNome:=jog[i].nome;
end;   
end;

writeln;
writeln('&gt;&gt;O jogador com maior salario:');
writeln('Nome: ',maiorNome);
writeln('Salario: ',maior:2:2); 
end;

procedure menorSalario;
var
menor:real;
menorNome:string;
begin
menor:=999999999;

for i:=1 to 5 do
begin  
if (jog[i].salario &lt; menor) then      begin         menor:=jog[i].salario;         menorNome:=jog[i].nome;      end;       end;            writeln;        writeln('&gt;&gt;O jogador com menor salario:');
writeln('Nome: ',menorNome);
writeln('Salario: ',menor:2:2); 
end;


Begin
cadastro;
maisJogadores;
maiorSalario;
menorSalario;
End.

7.Faça um programa que leia nome, turma, matricula, sexo, e as três  notas de um aluno e a seguir escreva a média de cada aluno, a maior e a  menor nota daturma.  

Program Pzim ;
type dados=record
nome:string;
turma:string;
matricula:integer;
sexo:char;
nota: array[1..3] of real;
end;
var
aluno:array[1..4] of dados;
i,j:integer;
media:array[1..4] of real;

procedure informaDados;
begin
for i:=1 to 4 do
begin
writeln('::DADOS DOS ALUNOS::');
WRITELN;
write('Nome:');
read(aluno[i].nome);
write('Turma:');
read(aluno[i].turma);
write('Matricula:');
read(aluno[i].matricula);
write('Sexo:');
read(aluno[i].sexo);

for j:=1 to 3 do
begin
write('Nota ',j,'= ');
read(aluno[i].nota[j]);
end;

clrscr; 
end;
end; 

procedure funcaoMadia;
var
soma:real;
begin
for i:=1 to 4 do
begin
soma:=0;
for j:=1 to 3 do
begin
soma:= soma + aluno[i].nota[j];
end;

media[i]:=soma/3;

writeln('A media do(a) aluno(a) ',aluno[i].nome,' e: ',media[i]:2:2);
end;
end;

procedure maiorNota;
var
maiorNota:real;                   

begin
maiorNota:=1;

for i:=1 to 4 do
if (media[i] &gt; maiorNota) then
maiorNota:=media[i];

writeln;
writeln(' ---------------------------------------------');
writeln;
writeln('&gt;&gt;A maior media da turma e: ',maiorNota:2:2);
end;  

procedure menorNota;
var
menorNota:real;

begin
menorNota:=1200;

for i:=1 to 4 do
if (media[i] &lt; menorNota) then        menorNota:=media[i];            writeln;        writeln('&gt;&gt;A menor media da turma e: ',menorNota:2:2);
end;  

Begin
informaDados;
funcaoMadia;
maiorNota;
menorNota;
End.