renan zigs

renan zigs
euuzzz

quinta-feira, 25 de novembro de 2010

Matriz e Registro

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]>=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 > maior) then
begin
maior:=cad[i].idade;
maiorNome:=cad[i].nome;
maiorSaldo:=cad[i].saldoBanc;
end;
end;

writeln('>>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 < menor) then begin menor:=cad[i].idade; menorNome:=cad[i].nome; menorSaldo:=cad[i].saldoBanc; end; end; writeln; writeln('>>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>maisJ)then
timeM:= 'A'
else
timeM:= 'B';

writeln('>>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 > maior) then
begin
maior:=jog[i].salario;
maiorNome:=jog[i].nome;
end;
end;

writeln;
writeln('>>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 < menor) then begin menor:=jog[i].salario; menorNome:=jog[i].nome; end; end; writeln; writeln('>>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] > maiorNota) then
maiorNota:=media[i];

writeln;
writeln(' ---------------------------------------------');
writeln;
writeln('>>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] < menorNota) then menorNota:=media[i]; writeln; writeln('>>A menor media da turma e: ',menorNota:2:2);
end;

Begin
informaDados;
funcaoMadia;
maiorNota;
menorNota;
End.

Procedure

1.Faça um programa que leia dois valores e chame uma sub-rotina (procedure) que receba essa duas variáveis e troque o seu conteúdo, ou seja, esta rotina é chamada passando duas variáveis A e B por exemplo, e após a execução da rotina A conterá p valor de B e B terá o valor de A.

Program Pzim ;
var
x,y:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;

end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);

troca(x,y);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
End.


2.Altere o programa anterior de forma a ler 4 valore em 4 variáveis: A, B C, D. Use a rotina “Troca_valores” implementada no programa anterior para a troca de valores de A com B, depois de C com D, mostre como ficaram os valores da variável, e para concluir destroque seus conteúdos mostrando novamente na tela como ficaram estas variáveis.

Program Pzim ;
var
x,y,z,w:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;
end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);
writeln('Digite o numero C:');
readln(z);
writeln('Digite o numero D:');
readln(w);

troca(x,y);
troca(z,w);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
writeln('O valor de C trocado por D e:',z);
writeln('O valor de D trocado por C e:',w);

troca(x,y);
troca(z,w);

writeln;
writeln('O valor de A inicial:',x);
writeln('O valor de B inicial:',y);
writeln('O valor de C inicial:',z);
writeln('O valor de D inicial:',w);
End.

3.Faça um programa que leia 2 valore e chame uma sub-rotina que receba estes 2 valores de entrada e retorne o maior valor na primeira variável e o segundo maior valor na segunda variável. Escreva o conteúdo dos dois valores na tela.

Program Pzim ;
var
x,y:integer;

procedure maior(var a,b:integer);
var
temp:integer;
begin
temp:=a;
if (a4.Faça um programa que leia três valores e chame uma sub-rotina que receba estes 3 valores de entrada e retorne o maior valor entre estes três valores na primeira variável, o segundo maior valor da segunda variável e o terceiro maior valor na terceira variável. Exiba os valores ordenados na tela (sugestão: use a sub-rotina troca-valores).

Program Pzim ;
var
x,y,z:integer;

procedure maior(var a,b:integer);
var
temp:integer;
begin
temp:=a;
if (a5.Faça um programa que leia um número e gere todos os números primos entre 1 e este número fornecido, exibindo-os na tela. O programa deve ter uma sub-rotina que determine se o determinado número é ou não primo.

Program Pzim ;
var
k,nm,num: integer;
ehPrimo: boolean;

procedure testaPrimo(a:integer);
var
cont,j,i :integer;

begin
for i:=1 to a do
begin
j:=(a mod i);
if(j=0)then
cont:= cont+1;
end;
if(cont=2)then
ehPrimo:=true
else
ehPrimo:=false;
end;


Begin
writeln('Digite um numero:');
readln(nm);
ehPrimo:=false;
for k:=1 to nm do
begin
testaPrimo(k);
if (ehPrimo) then
write(k ,'-');
end;

End.

6.Usando uma sub-rotina que exiba uma moldura na tela em uma janela definida pelo usuário, faça outra sub-rotina que escreva uma mensagem na tela pedindo para ler 2 números (um de cada vez), leia estes números e retorne para o programa principal. A mensagem e as leituras dos números devem ser feita dentro de uma janela com moldura. Em seguida exiba a média aritmética simples destes números também usando uma janela com molduras.


--------------

7.Faça um programa que leia 5 números. Este programa deve ter um menu que permita ao usuário escolher qual opção de cálculo ele deve realizar: média aritmética simples, média ponderada, desvio padrão, maior valor e menor valor . A leitura dos valores também deve ser uma das opções do menu.

Program Pzim ;
var
op:integer;
trava:boolean;
n1,n2,n3,n4,n5:integer;


procedure p1;
begin
trava:=false;
writeln('1 - Digite o valor:');
read(n1);
writeln('2- Digite o valor:');
read(n2);
writeln('3 - Digite o valor:');
read(n3);
writeln('4 - Digite o valor:');
read(n4);
writeln('5 - Digite o valor:');
read(n5);
end;

procedure p2;
var
media:real;
begin
media:=(n1+n2+n3+n4+n5)/5;

writeln('Media aritmetica e: ',media:2:2);
readln;
end;

procedure p3;
var
p1,p2,p3,p4,p5:integer;
media:real;
begin
writeln('Digite o peso 1:');
readln(p1);
writeln('Digite o peso 2:');
readln(p2);
writeln('Digite o peso 3:');
readln(p3);
writeln('Digite o peso 4:');
readln(p4);
writeln('Digite o peso 5:');
readln(p5);

media:=((n1*p1)+(n2*p2)+(n3*p3)+(n4*p4)+(n5*p5))/(p1+p2+p3+p4+p5);

writeln('A media ponderada e: ',media:2:2);
readln;
end;

procedure p5;
var
m:integer;
begin
if (n1>n2)and(n1>n3)and(n1>n4)and(n1>n5) then
m:=n1;
if (n2>n1)and(n2>n3)and(n2>n4)and(n2>n5) then
m:=n2;
if (n3>n1)and(n3>n2)and(n3>n4)and(n3>n5) then
m:=n3;
if (n4>n1)and(n4>n2)and(n4>n3)and(n4>n5) then
m:=n4;
if (n5>n1)and(n5>n2)and(n5>n3)and(n5>n4) then
m:=n5;

writeln('O maior numero e: ',m);
readln;

end;

procedure p6;
var
m:integer;
begin
if (n1<>7) do
begin
clrscr;
writeln('# MENU');
writeln('##########');
writeln('1- ENTRAR COM OS DADDOS');
writeln('2- MEDIA SIMPLES');
writeln('3- MEDIA PODERADA');
writeln('4- DESVIO PADRAO');
writeln('5- MAIOR VALOR');
writeln('6- MENOR VALOR');
writeln('7- SAIR');
readln(op);
menu;
end;
End.

8.Faça um jogo no qual o computador desafia dois usuários para ver quem tem mais memória. O jogo deve gerar um número de 0 à 9 e apresentar ao jogador 1 durante 5 segundos. Depois deve repetir esse procedimento para o jogador 2. Em seguida, ele deve pedir ao jogador 1 para informar o numero escolhida, e após pedir o jogador 2 para fazer a mesma coisa. Na segunda rodada, o computador deve gerar mais um numero de 0 a 9, que será “concatenado” à direito do próximo número. Então repetiremos o procedimento de exibição e teste de memorização para os dois usuários. O programa deve continuar adicionando números (casas decimais ao final do numero) até que os dois jogadores não consigam mais memorizar perfeitamente o número. Para concluir , o programa deve informar qual dos dois jogadores ganhou, quantas casa foram memorizadas ao total, e em que casa foi que o jogador perdedor errou (Primeira casa errada começando da esquerda para a direita).

Matriz

1.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]>=60) then
aprov:=aprov+1
else
reprov:=reprov+1
end;

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



2.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

3.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;

4.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 > maior) then
begin
maior:=cad[i].idade;
maiorNome:=cad[i].nome;
maiorSaldo:=cad[i].saldoBanc;
end;
end;

writeln('>>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 < menor) then begin menor:=cad[i].idade; menorNome:=cad[i].nome; menorSaldo:=cad[i].saldoBanc; end; end; writeln; writeln('>>Pessoa com menor idade:');
writeln('Nome: ',menorNome);
writeln('Idade: ',menor);
writeln('Sald5.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>maisJ)then
timeM:= 'A'
else
timeM:= 'B';

writeln('>>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 > maior) then
begin
maior:=jog[i].salario;
maiorNome:=jog[i].nome;
end;
end;

writeln;
writeln('>>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 < menor) then begin menor:=jog[i].salario; menorNome:=jog[i].nome; end; end; writeln; writeln('>>O jogador com menor salario:');
writeln('Nome: ',menorNome);
writeln('Salario: ',menor:2:2);
end;


Begin
cadastro;
maisJogadores;
maiorSalario;
menorSalario;
End o bancario: ',menorSaldo:2:2);
end;

Begin
cadastro;
clienteMaisVelho;
clienteMaisNovo;
End

Matriz e Registro

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]>=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 > maior) then
begin
maior:=cad[i].idade;
maiorNome:=cad[i].nome;
maiorSaldo:=cad[i].saldoBanc;
end;
end;

writeln('>>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 < menor) then begin menor:=cad[i].idade; menorNome:=cad[i].nome; menorSaldo:=cad[i].saldoBanc; end; end; writeln; writeln('>>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>maisJ)then
timeM:= 'A'
else
timeM:= 'B';

writeln('>>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 > maior) then
begin
maior:=jog[i].salario;
maiorNome:=jog[i].nome;
end;
end;

writeln;
writeln('>>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 < menor) then begin menor:=jog[i].salario; menorNome:=jog[i].nome; end; end; writeln; writeln('>>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] > maiorNota) then
maiorNota:=media[i];

writeln;
writeln(' ---------------------------------------------');
writeln;
writeln('>>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] < menorNota) then menorNota:=media[i]; writeln; writeln('>>A menor media da turma e: ',menorNota:2:2);
end;

Begin
informaDados;
funcaoMadia;
maiorNota;
menorNota;
End.

Procedimentos e Funções

1.Faça um programa que leia dois valores e chame uma sub-rotina (procedure) que receba essa duas variáveis e troque o seu conteúdo, ou seja, esta rotina é chamada passando duas variáveis A e B por exemplo, e após a execução da rotina A conterá p valor de B e B terá o valor de A.

Program Pzim ;
var
x,y:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;

end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);

troca(x,y);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
End.


2.Altere o programa anterior de forma a ler 4 valore em 4 variáveis: A, B C, D. Use a rotina “Troca_valores” implementada no programa anterior para a troca de valores de A com B, depois de C com D, mostre como ficaram os valores da variável, e para concluir destroque seus conteúdos mostrando novamente na tela como ficaram estas variáveis.

Program Pzim ;
var
x,y,z,w:integer;

procedure troca(var a,b:integer);
var
temp:integer;
begin
temp:=a;
a:=b;
b:=temp;
end;

Begin
writeln('Digite o numero A:');
readln(x);
writeln('Digite o numero B:');
readln(y);
writeln('Digite o numero C:');
readln(z);
writeln('Digite o numero D:');
readln(w);

troca(x,y);
troca(z,w);

writeln('O valor de A trocado por B e:',x);
writeln('O valor de B trocado por A e:',y);
writeln('O valor de C trocado por D e:',z);
writeln('O valor de D trocado por C e:',w);

troca(x,y);
troca(z,w);

writeln;
writeln('O valor de A inicial:',x);
writeln('O valor de B inicial:',y);
writeln('O valor de C inicial:',z);
writeln('O valor de D inicial:',w);
End.

3.Faça um programa que leia 2 valore e chame uma sub-rotina que receba estes 2 valores de entrada e retorne o maior valor na primeira variável e o segundo maior valor na segunda variável. Escreva o conteúdo dos dois valores na tela.

Program Pzim ;
var
x,y:integer;

procedure maior(var a,b:integer);
var
temp:integer;
begin
temp:=a;
if (a4.Faça um programa que leia três valores e chame uma sub-rotina que receba estes 3 valores de entrada e retorne o maior valor entre estes três valores na primeira variável, o segundo maior valor da segunda variável e o terceiro maior valor na terceira variável. Exiba os valores ordenados na tela (sugestão: use a sub-rotina troca-valores).

Program Pzim ;
var
x,y,z:integer;

procedure maior(var a,b:integer);
var
temp:integer;
begin
temp:=a;
if (a5.Faça um programa que leia um número e gere todos os números primos entre 1 e este número fornecido, exibindo-os na tela. O programa deve ter uma sub-rotina que determine se o determinado número é ou não primo.

Program Pzim ;
var
k,nm,num: integer;
ehPrimo: boolean;

procedure testaPrimo(a:integer);
var
cont,j,i :integer;

begin
for i:=1 to a do
begin
j:=(a mod i);
if(j=0)then
cont:= cont+1;
end;
if(cont=2)then
ehPrimo:=true
else
ehPrimo:=false;
end;


Begin
writeln('Digite um numero:');
readln(nm);
ehPrimo:=false;
for k:=1 to nm do
begin
testaPrimo(k);
if (ehPrimo) then
write(k ,'-');
end;

End.

6.Usando uma sub-rotina que exiba uma moldura na tela em uma janela definida pelo usuário, faça outra sub-rotina que escreva uma mensagem na tela pedindo para ler 2 números (um de cada vez), leia estes números e retorne para o programa principal. A mensagem e as leituras dos números devem ser feita dentro de uma janela com moldura. Em seguida exiba a média aritmética simples destes números também usando uma janela com molduras.


--------------

7.Faça um programa que leia 5 números. Este programa deve ter um menu que permita ao usuário escolher qual opção de cálculo ele deve realizar: média aritmética simples, média ponderada, desvio padrão, maior valor e menor valor . A leitura dos valores também deve ser uma das opções do menu.

Program Pzim ;
var
op:integer;
trava:boolean;
n1,n2,n3,n4,n5:integer;


procedure p1;
begin
trava:=false;
writeln('1 - Digite o valor:');
read(n1);
writeln('2- Digite o valor:');
read(n2);
writeln('3 - Digite o valor:');
read(n3);
writeln('4 - Digite o valor:');
read(n4);
writeln('5 - Digite o valor:');
read(n5);
end;

procedure p2;
var
media:real;
begin
media:=(n1+n2+n3+n4+n5)/5;

writeln('Media aritmetica e: ',media:2:2);
readln;
end;

procedure p3;
var
p1,p2,p3,p4,p5:integer;
media:real;
begin
writeln('Digite o peso 1:');
readln(p1);
writeln('Digite o peso 2:');
readln(p2);
writeln('Digite o peso 3:');
readln(p3);
writeln('Digite o peso 4:');
readln(p4);
writeln('Digite o peso 5:');
readln(p5);

media:=((n1*p1)+(n2*p2)+(n3*p3)+(n4*p4)+(n5*p5))/(p1+p2+p3+p4+p5);

writeln('A media ponderada e: ',media:2:2);
readln;
end;

procedure p5;
var
m:integer;
begin
if (n1>n2)and(n1>n3)and(n1>n4)and(n1>n5) then
m:=n1;
if (n2>n1)and(n2>n3)and(n2>n4)and(n2>n5) then
m:=n2;
if (n3>n1)and(n3>n2)and(n3>n4)and(n3>n5) then
m:=n3;
if (n4>n1)and(n4>n2)and(n4>n3)and(n4>n5) then
m:=n4;
if (n5>n1)and(n5>n2)and(n5>n3)and(n5>n4) then
m:=n5;

writeln('O maior numero e: ',m);
readln;

end;

procedure p6;
var
m:integer;
begin
if (n1<>7) do
begin
clrscr;
writeln('# MENU');
writeln('##########');
writeln('1- ENTRAR COM OS DADDOS');
writeln('2- MEDIA SIMPLES');
writeln('3- MEDIA PODERADA');
writeln('4- DESVIO PADRAO');
writeln('5- MAIOR VALOR');
writeln('6- MENOR VALOR');
writeln('7- SAIR');
readln(op);
menu;
end;
End.

8.Faça um jogo no qual o computador desafia dois usuários para ver quem tem mais memória. O jogo deve gerar um número de 0 à 9 e apresentar ao jogador 1 durante 5 segundos. Depois deve repetir esse procedimento para o jogador 2. Em seguida, ele deve pedir ao jogador 1 para informar o numero escolhida, e após pedir o jogador 2 para fazer a mesma coisa. Na segunda rodada, o computador deve gerar mais um numero de 0 a 9, que será “concatenado” à direito do próximo número. Então repetiremos o procedimento de exibição e teste de memorização para os dois usuários. O programa deve continuar adicionando números (casas decimais ao final do numero) até que os dois jogadores não consigam mais memorizar perfeitamente o número. Para concluir , o programa deve informar qual dos dois jogadores ganhou, quantas casa foram memorizadas ao total, e em que casa foi que o jogador perdedor errou (Primeira casa errada começando da esquerda para a direita).

terça-feira, 5 de outubro de 2010


Bombeiro uma filosofiadevida2
View more presentations from RenanZigs.

http://www.mediafire.com/?aj37a07zaeeno1v  esse e o link do download

quarta-feira, 22 de setembro de 2010

Exercicio -Numeros aleatorios 1000

Construa um algoritmo para gerar aleatório 1000 números, calcular o somatório, a média, o maior e o menor número gerado.

Program 1000_numeros;

var

x,menor,maior,n: integer;

media:real;

Begin

maior:=0;

menor:=1001;

for x:=1 to 1000 do

begin

delay(3);

n:=random(1001);

Writeln(n);

if n

menor:=n;

if n>maior then

maior:=n;

media:=media+n;

end;

Writeln('Maior numero ',maior);

Writeln('Menor numero: ',menor);

Writeln('Somatorio ',media:7:1);

Writeln('Media ',media/1000:4:2);

Writeln(' ');

Readln;

End.