quarta-feira, 26 de outubro de 2011
SIMULADOR DE LOTERIA
{Escrever um programa que simule um jogo da loto. O computador deve gerar 5 números aleatórios
entre 50 possíveis (0 a 49), armazenando-os em um vetor (dez_sort) de 5 posições. Em seguida,
o usuário deverá ler um vetor (aposta)com 10 posições (que representa uma aposta).
O programa deve, então, verificar e imprimir uma mensagem mostrando quantos números o usuário acertou.
De acordo com o exemplo abaixo o usuário acertou 4 dezenas.
}
Program Exer_99 ;
var
dez_sort :array[1..5]of integer; //vetor para receber as dezenas geradas aleatoriamente
aposta :array[1..10]of integer; //vetor para receber as dezenas apostadas
a, acerto,posi,i,j:integer;
Begin
acerto:=0;
for j:= 1 to 5 do // for para gerar as cinco dezenas aleatórias
begin
a:=(random(50))-1; //o -1 é para gera de 0 a 49
dez_sort[j]:=a; //o vetor recebe na posição j de 1 ate 5, as 5 dezenas geradas
writeln(dez_sort[j]); // motra das dezenas geradas, para comparação,
end; // não precisa ter no programa
for i:= 1 to 10 do
begin // for para receber no vetor as dezenas apostadas
writeln('Digite 1 numero de 0 a 49');
readln (aposta[i]); // o indice i vai de 1 ate 10
end;
for j:= 1 to 10 do //esse for é para receber as dezenas apostadas
begin
for i:= 1 to 5 do //esse é para comparar as sorteadas com a apostada, testa as 5 sorteadas com cada apostada
begin
if aposta[j]=dez_sort[i] then //se for iguais ...
acerto:=acerto+1; // acrescenta mais 1
end;
end;
writeln('Os acertos foram: ', acerto ); //no final mostra quantas foram acertadas.
End.
sexta-feira, 14 de outubro de 2011
ALGORITMO QUE RECEBA 3 VALORES INTEIROS
ALGORITMO QUE RECEBA 3 VALORES INTEIROS
( CONSIDERE QUE NÃO SERÃO INFORMADOS VALORES IGUAIS )
- ESCREVA A SOMA DOS DOIS NÚMEROS MAIORES.
Program Soma_Maiores;
var X, Y, Z, S1, S2, S3, Soma: Integer;
Begin
write ('Informe um número inteiro: ');
read (X);
write ('Informe outro número diferente do anterior: ');
read (Y);
write ('Informe outro número diferente dos anteriores: ');
read (Z);
S1:=X+Y;
S2:=Y+Z;
S3:=X+Z;
IF ((S1>S2) AND (S1>S3)) Then
Soma:= S1;
IF ((S2> S1) AND (S2>S3)) Then
Soma:= S2;
IF ((S3>S1) AND (S3>S2)) THEN
Soma:= S3;
write ('A soma dos números é ',Soma);
End.
( CONSIDERE QUE NÃO SERÃO INFORMADOS VALORES IGUAIS )
- ESCREVA A SOMA DOS DOIS NÚMEROS MAIORES.
Program Soma_Maiores;
var X, Y, Z, S1, S2, S3, Soma: Integer;
Begin
write ('Informe um número inteiro: ');
read (X);
write ('Informe outro número diferente do anterior: ');
read (Y);
write ('Informe outro número diferente dos anteriores: ');
read (Z);
S1:=X+Y;
S2:=Y+Z;
S3:=X+Z;
IF ((S1>S2) AND (S1>S3)) Then
Soma:= S1;
IF ((S2> S1) AND (S2>S3)) Then
Soma:= S2;
IF ((S3>S1) AND (S3>S2)) THEN
Soma:= S3;
write ('A soma dos números é ',Soma);
End.
sábado, 3 de setembro de 2011
Exercício com Vetores
O usuário informa 2 vetores (a e b)
Montar o vetor c "oscilando" entre o vetor (a e b).
conforme abaixo
VETOR a
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
VETOR b
11, 12, 13, 14, 15, 16, 17, 18, 19, 20
tendo como resposta o
VETOR c
1, 11, 2, 12, 3, 13, 4, 14...
------------------------------------------------
Program Ex7 ;
Var
a,b:array [1..10] of integer;
c:array [1..20] of integer;
i,j:integer;
Begin
for i:=1 to 10do
begin
writeln('informe o vetor1 V[',i,']:');
readln(a[i]);
end;
for i:=1 to 10 do
begin
writeln('informe o vetor2 V[',i,']:');
readln(b[i]);
end;
j:=1;
for i:=1 to 10 do
begin
c[j]:=a[i];
j:=j+2;
end;
j:=2;
for i:=1 to 10 do
begin
c[j]:=b[i];
j:=j+2;
end;
for i:=1 to 20 do
begin
write(c[i],' ');
end;
End.
quarta-feira, 10 de agosto de 2011
quarta-feira, 29 de junho de 2011
Consulta nome em um vetor
Program Pzim ;
{1. Faça um programa que armazene 5 nomes em um vetor.
Apos ser digitado um nome, se for encontrado no vetor
mostrar a posição desse nome no vetor, caso contrario
mostrar a mensagem: Não enconteri!.}
var
nome:array[1..5] of string; //variavel vetor para armazanar os nomes
i:integer; //contador
cons_nome:string; //variavel para receber o nome a ser consultado no vetor
Begin
for i:=1 to 5 do //cadastra os 5 nomes no vetor
begin
writeln('Digite o ',i,'o. nome : ');
readln(nome[i]);
clrscr; //limpa a tela
end;
writeln(' C O N S U L T A N O M E ');
writeln;
writeln('Digite um nome para consulta : '); //recebe o nome a ser consultadp
readln(cons_nome);
for i:=1 to 5 do
begin
if (nome[i]=cons_nome) then //se no vetor na posição i, o nome for igual a consulta de nome,
begin
writeln('O nome : ',cons_nome,', aparece na posição ',i);
end // mostra
else
begin
writeln('Nome não encontrado');
end;
end;
// se digitar o nome em mais de uma posição, ele mostra todos
End.
{1. Faça um programa que armazene 5 nomes em um vetor.
Apos ser digitado um nome, se for encontrado no vetor
mostrar a posição desse nome no vetor, caso contrario
mostrar a mensagem: Não enconteri!.}
var
nome:array[1..5] of string; //variavel vetor para armazanar os nomes
i:integer; //contador
cons_nome:string; //variavel para receber o nome a ser consultado no vetor
Begin
for i:=1 to 5 do //cadastra os 5 nomes no vetor
begin
writeln('Digite o ',i,'o. nome : ');
readln(nome[i]);
clrscr; //limpa a tela
end;
writeln(' C O N S U L T A N O M E ');
writeln;
writeln('Digite um nome para consulta : '); //recebe o nome a ser consultadp
readln(cons_nome);
for i:=1 to 5 do
begin
if (nome[i]=cons_nome) then //se no vetor na posição i, o nome for igual a consulta de nome,
begin
writeln('O nome : ',cons_nome,', aparece na posição ',i);
end // mostra
else
begin
writeln('Nome não encontrado');
end;
end;
// se digitar o nome em mais de uma posição, ele mostra todos
End.
segunda-feira, 27 de junho de 2011
Diárias em um Hotel
{Um hotel cobra R$ 300,00 por diária e mais uma taxa adicional de serviços.
Se a diária for menor que 15 a taxa e de R$ 20,00. Se o número de diárias for igual a 15 a
taxa é de R$ 14,00 e se o número for maior que 15 a taxa é de R$ 12,00. Considerando-se
que se tenha 200 pessoas e para cada pessoa tenha-se um registro contendo seu nome e o
número de diárias.
Faça um algoritmo que imprima o nome e o total a pagar de cada pessoa e
imprimir também o total ganho pelo hotel e o número total de diárias.}
{O exercicio está feito para rodar com 5 entradas, pois duzentas seria inviável o teste,
é só mudar onde tem 5 para 200.}
Program Pzim ;
var
hospede:array[1..5] of string;
diarias:array[1..5] of integer;
i, dias:integer;
soma:real;
Begin
for i:=1 to 5 do
begin
writeln('Digite os dados do apartamento No.: ',i);
writeln('Nome do Hospede : ');
readln(hospede[i]);
writeln('Diarias : ');
readln(diarias[i]);
clrscr;
end;
for i:=1 to 5 do
begin
if (diarias[i]<15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*20)));
soma:=soma+(diarias[i]*320);
dias:=dias+diarias[i];
end
else
if (diarias[i]=15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*14)));
soma:=soma+(diarias[i]*314) ;
dias:=dias+diarias[i];
end
else
if (diarias[i]>15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*12)));
soma:=soma+(diarias[i]*312);
dias:=dias+diarias[i];
end;
end;
writeln('A arrecadação do hotel foi de R$ : ',soma:1:2);
writeln('O total de diárias foi de : ',dias);
End.
Se a diária for menor que 15 a taxa e de R$ 20,00. Se o número de diárias for igual a 15 a
taxa é de R$ 14,00 e se o número for maior que 15 a taxa é de R$ 12,00. Considerando-se
que se tenha 200 pessoas e para cada pessoa tenha-se um registro contendo seu nome e o
número de diárias.
Faça um algoritmo que imprima o nome e o total a pagar de cada pessoa e
imprimir também o total ganho pelo hotel e o número total de diárias.}
{O exercicio está feito para rodar com 5 entradas, pois duzentas seria inviável o teste,
é só mudar onde tem 5 para 200.}
Program Pzim ;
var
hospede:array[1..5] of string;
diarias:array[1..5] of integer;
i, dias:integer;
soma:real;
Begin
for i:=1 to 5 do
begin
writeln('Digite os dados do apartamento No.: ',i);
writeln('Nome do Hospede : ');
readln(hospede[i]);
writeln('Diarias : ');
readln(diarias[i]);
clrscr;
end;
for i:=1 to 5 do
begin
if (diarias[i]<15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*20)));
soma:=soma+(diarias[i]*320);
dias:=dias+diarias[i];
end
else
if (diarias[i]=15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*14)));
soma:=soma+(diarias[i]*314) ;
dias:=dias+diarias[i];
end
else
if (diarias[i]>15) then
begin
writeln('O hospede : ',hospede[i],', do quarto : ',i,', gastou R$ : ',((diarias[i]*300)+(diarias[i]*12)));
soma:=soma+(diarias[i]*312);
dias:=dias+diarias[i];
end;
end;
writeln('A arrecadação do hotel foi de R$ : ',soma:1:2);
writeln('O total de diárias foi de : ',dias);
End.
quarta-feira, 22 de junho de 2011
Divisores de um número
Program Pzim ;
Var
x,num,teste:integer;
Begin
Writeln('Digite um numero:'); //solicita que seja digitado um numero
Read(Num); //lê o número
Write ('São divisores de ',num,', :'); //exibe a mensagem uma vez
For x:=1 to num do //faz de 1 até o numero ( processo de divisão)
Begin //teste verifica se é divisor.
teste:=num mod X; //um numero é divisor quando o resto é igual a zero
If teste=0 then
Write (X,', '); // se for divisor, mostra o numero, todos na mesma linha
End;
End.
Var
x,num,teste:integer;
Begin
Writeln('Digite um numero:'); //solicita que seja digitado um numero
Read(Num); //lê o número
Write ('São divisores de ',num,', :'); //exibe a mensagem uma vez
For x:=1 to num do //faz de 1 até o numero ( processo de divisão)
Begin //teste verifica se é divisor.
teste:=num mod X; //um numero é divisor quando o resto é igual a zero
If teste=0 then
Write (X,', '); // se for divisor, mostra o numero, todos na mesma linha
End;
End.
terça-feira, 21 de junho de 2011
Exercicio 2 com matriz
Program Pzim ;
{2. Faça um algoritmo em que o usuario informe os valores para uma matriz 4x4
e em seguida efetive a soma dos valores que estão abaixo da diagonal secundária.
O algoritmo deve mostrar os valores que estão abaixo da diagonal secundária e sua soma.
Ex.:
1-5-2-2
7-5-3-2
8-4-6-1
5-4-3-1
Valores a serem usados, mostrados e somados:
- - - -
- - -2
- -6-1
-4-3-1
}
var
m:array[1..4,1..4] of integer;
i,j, soma:integer;
Begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
writeln('Digite a matriz : '); //recebe os elementos da matriz
readln(m[i,j]);
end;
end;
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
if ((i+j)>= 6) then // se i+j >= 6, = condição para o elemento pertencer
begin //a parte inferior da diagonal secundaria
soma:=soma+m[i,j]; //soma os elementos
end;
end;
end;
writeln('A soma dos elementos abaixo da diagonal é igual a : ',soma); //mostra
end.
{2. Faça um algoritmo em que o usuario informe os valores para uma matriz 4x4
e em seguida efetive a soma dos valores que estão abaixo da diagonal secundária.
O algoritmo deve mostrar os valores que estão abaixo da diagonal secundária e sua soma.
Ex.:
1-5-2-2
7-5-3-2
8-4-6-1
5-4-3-1
Valores a serem usados, mostrados e somados:
- - - -
- - -2
- -6-1
-4-3-1
}
var
m:array[1..4,1..4] of integer;
i,j, soma:integer;
Begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
writeln('Digite a matriz : '); //recebe os elementos da matriz
readln(m[i,j]);
end;
end;
for i:=1 to 4 do
begin
for j:=1 to 4 do
begin
if ((i+j)>= 6) then // se i+j >= 6, = condição para o elemento pertencer
begin //a parte inferior da diagonal secundaria
soma:=soma+m[i,j]; //soma os elementos
end;
end;
end;
writeln('A soma dos elementos abaixo da diagonal é igual a : ',soma); //mostra
end.
Exercicio 1 com matriz
Program Pzim ;
var
m:array[1..6,1..6] of integer;
a,n,i,j,l,c:integer;
Begin
a:=1;
n:=1;
l:=1;
c:=6;
while a<4 do
begin
for i:=l to c do
begin
for j:=l to c do
begin
m[i,j]:=n;
end;
end;
n:=n+1;
a:=a+1;
l:=l+1;
c:=c-1;
end;
for i:=1 to 6 do
begin
for j:=1 to 6 do
begin
write(m[i,j],' ');
end;
writeln;
end;
End.
var
m:array[1..6,1..6] of integer;
a,n,i,j,l,c:integer;
Begin
a:=1;
n:=1;
l:=1;
c:=6;
while a<4 do
begin
for i:=l to c do
begin
for j:=l to c do
begin
m[i,j]:=n;
end;
end;
n:=n+1;
a:=a+1;
l:=l+1;
c:=c-1;
end;
for i:=1 to 6 do
begin
for j:=1 to 6 do
begin
write(m[i,j],' ');
end;
writeln;
end;
End.
quinta-feira, 16 de junho de 2011
Digita um numero na Base10 e mostra na Base2 - (Converte Decimal em Binário)
{Elabore um algoritmo que o usuario forneça um número inteiro (que é decimal),
calcule e mostre este numero em binario.}
Program Pzim ;
var
binario:array[1..15]of integer;
i,j,num,y:integer;
Begin
writeln('Digite um número : '); {solicita que seja digitado um numero}
read(y); {armazena o numero na variavel y}
num:=y; {armazena a var Y na var NUM}
for i:=1 to 15 do
begin {atribui zeros no vetor binario}
binario[i]:=0;
end;
for j:=15 downto 1 do {faz do ultimo, 8 até o primeiro, armazena os ddos no vetor binario
de forma inversa, devido a forma de converter decimal em binario}
begin
binario[j]:=(y mod 2); {o vetor binario recebe o valor do resto da var y (mode 2), e coloca na ultima posição}
y:= (y div 2); {a var y recebe o valor do quociente e repete o processo anterior }
{até terminar o processo de divisão, qdo o quociente de y for indivisivel por 2(parte inteira)}
end;
writeln('O numero ',num, ', base 10'); {exibe mensagem}
writeln('tem como correspondente');
for i:=1 to 15 do
begin
write(binario[i],' '); {mostra o vetor binario e seus valores de 0 e 1}
end;
write(', na base 2'); {exibe mensagem}
End.
calcule e mostre este numero em binario.}
Program Pzim ;
var
binario:array[1..15]of integer;
i,j,num,y:integer;
Begin
writeln('Digite um número : '); {solicita que seja digitado um numero}
read(y); {armazena o numero na variavel y}
num:=y; {armazena a var Y na var NUM}
for i:=1 to 15 do
begin {atribui zeros no vetor binario}
binario[i]:=0;
end;
for j:=15 downto 1 do {faz do ultimo, 8 até o primeiro, armazena os ddos no vetor binario
de forma inversa, devido a forma de converter decimal em binario}
begin
binario[j]:=(y mod 2); {o vetor binario recebe o valor do resto da var y (mode 2), e coloca na ultima posição}
y:= (y div 2); {a var y recebe o valor do quociente e repete o processo anterior }
{até terminar o processo de divisão, qdo o quociente de y for indivisivel por 2(parte inteira)}
end;
writeln('O numero ',num, ', base 10'); {exibe mensagem}
writeln('tem como correspondente');
for i:=1 to 15 do
begin
write(binario[i],' '); {mostra o vetor binario e seus valores de 0 e 1}
end;
write(', na base 2'); {exibe mensagem}
End.
Lê a media e diz se o aluno foi aprovado, reprovado ou está em recuperação
Program Pzim ;
{Dado Nome e notas ( total de 6 ) alunos, faça um algoritmo que:
a) Imprima Nome e média dos alunos aprovados com Média > = 7.0.
b) Imprima Nome e média dos alunos em recuperação com 5.0 >= Média <7.0.
c) Imprima Nome e média dos alunos reprovados com Média <5.0
eu nao sei como faser para aparecer todos os nomes , por exemplo dos (aprovados).}
var
nome:array[1..6] of string; {vetor onde vai ser armazenado os nomes}
nota:array[1..6] of real; {vetor onde vai ser armazenado as notas}
i:integer;
Begin
for i:=1 to 6 do {for para entrada dos nados}
begin
write('Digite o nome : ');
readln(nome[i]); {recebe os nomes e armazena no vetor nome na posição i de 1 até 6}
write('Digite a nota : '); {recebe as notas e armazena no vetor nota na posição i de 1 até 6}
read(nota[i]);
clrscr; //limpa a tela a cada vez que é digitado um nome e nota
end;
clrscr; //limpa a tela
writeln('Alunos APROVADOS : '); //exibe a mensagem fora do for para aparecer somente uma vez
for i:=1 to 6 do // faz de 1 até o 6
begin
if (nota[i]>=7) then
begin
writeln('Nome : ',nome[i],' - com nota : ',nota[i]:1:2);
end
end;
writeln; //insere uma linha em branco, para organizar
writeln('Alunos em RECUPERAÇÃO'); //exibe a mensagem
for i:=1 to 6 do
begin
if ((nota[i]>=5) and (nota[i]<7)) then
begin
writeln('Nome : ',nome[i],' - com nota : ',nota[i]:1:2);
end
end;
writeln; //insere uma linha em branco, para organizar
writeln('Alunos REPROVADOS'); //exibe a mensagem
for i:=1 to 6 do
begin
if (nota[i]<5) then
begin
writeln('Nome ',nome[i],' - com nota : ',nota[i]:1:2);
end;
end;
{é preciso fazer um for para cada opção de nota}
End.
{Dado Nome e notas ( total de 6 ) alunos, faça um algoritmo que:
a) Imprima Nome e média dos alunos aprovados com Média > = 7.0.
b) Imprima Nome e média dos alunos em recuperação com 5.0 >= Média <7.0.
c) Imprima Nome e média dos alunos reprovados com Média <5.0
eu nao sei como faser para aparecer todos os nomes , por exemplo dos (aprovados).}
var
nome:array[1..6] of string; {vetor onde vai ser armazenado os nomes}
nota:array[1..6] of real; {vetor onde vai ser armazenado as notas}
i:integer;
Begin
for i:=1 to 6 do {for para entrada dos nados}
begin
write('Digite o nome : ');
readln(nome[i]); {recebe os nomes e armazena no vetor nome na posição i de 1 até 6}
write('Digite a nota : '); {recebe as notas e armazena no vetor nota na posição i de 1 até 6}
read(nota[i]);
clrscr; //limpa a tela a cada vez que é digitado um nome e nota
end;
clrscr; //limpa a tela
writeln('Alunos APROVADOS : '); //exibe a mensagem fora do for para aparecer somente uma vez
for i:=1 to 6 do // faz de 1 até o 6
begin
if (nota[i]>=7) then
begin
writeln('Nome : ',nome[i],' - com nota : ',nota[i]:1:2);
end
end;
writeln; //insere uma linha em branco, para organizar
writeln('Alunos em RECUPERAÇÃO'); //exibe a mensagem
for i:=1 to 6 do
begin
if ((nota[i]>=5) and (nota[i]<7)) then
begin
writeln('Nome : ',nome[i],' - com nota : ',nota[i]:1:2);
end
end;
writeln; //insere uma linha em branco, para organizar
writeln('Alunos REPROVADOS'); //exibe a mensagem
for i:=1 to 6 do
begin
if (nota[i]<5) then
begin
writeln('Nome ',nome[i],' - com nota : ',nota[i]:1:2);
end;
end;
{é preciso fazer um for para cada opção de nota}
End.
Digita 10 numeros e soma somente os numeros pares
{faça um algoritmo que escreva numeros na tela de 1 até 10
e depois some somente os numeros pares e exiba o resultado}
Program Pzim ;
var
i, num:integer;
soma:real;
Begin
soma:=0;
for i:=1 to 10 do {faz de 1 até 10}
begin
writeln('Digite um número: ' ); {solicita que digite um numero}
readln(num); {lê o numero}
clrscr; {limpa a tela a cada vez que digita um numero e dá enter}
if (num mod 2 = 0) then {se o numero dividido por 2 (condição pra ser par) é igual a zero}
begin
soma:=soma+num; {soma o numero}
end;
end;
writeln('A soma dos numeros pares é : ',soma); {mostra o resultado}
End.
e depois some somente os numeros pares e exiba o resultado}
Program Pzim ;
var
i, num:integer;
soma:real;
Begin
soma:=0;
for i:=1 to 10 do {faz de 1 até 10}
begin
writeln('Digite um número: ' ); {solicita que digite um numero}
readln(num); {lê o numero}
clrscr; {limpa a tela a cada vez que digita um numero e dá enter}
if (num mod 2 = 0) then {se o numero dividido por 2 (condição pra ser par) é igual a zero}
begin
soma:=soma+num; {soma o numero}
end;
end;
writeln('A soma dos numeros pares é : ',soma); {mostra o resultado}
End.
quarta-feira, 15 de junho de 2011
Exercicio com função - soma
{Elabore um algoritmo que o usuário forneça um número inteiro positivo N e,
atravês da função FORMULA(N), retorne o valor H, conforme abaixo:
H = 1 + 1/2 + 3 + 1/4+...+(N + 1/N)}
Program Pzim ;
var
n:integer;
h:real;
function formula(x:integer):real;
var
soma1,soma2:real;
i:integer;
begin
for i:=1 to x do
begin {se i mod 2 for diferente de zero - IMPAR}
if (i mod 2 <> 0) then
begin
soma1:=(soma1+i);
end
else
if (i mod 2 = 0 ) then {se i mod 2 for igual a zero - PAR}
begin
soma2:=(soma2+(1/i));
end;
end;
formula:=(soma1+soma2); {soma os dois valores}
end;
Begin
writeln('Digite um número : ');
readln(n);
if (n>0) then {condiciona a função se n maior que zero}
begin
h:=formula(n); {chama a função}
writeln('A soma é igual a : ',h:1:2); {mostra o resultado}
end
else {se não for, mostra a mensagem}
writeln('Digite um número maior que zero');
End.
atravês da função FORMULA(N), retorne o valor H, conforme abaixo:
H = 1 + 1/2 + 3 + 1/4+...+(N + 1/N)}
Program Pzim ;
var
n:integer;
h:real;
function formula(x:integer):real;
var
soma1,soma2:real;
i:integer;
begin
for i:=1 to x do
begin {se i mod 2 for diferente de zero - IMPAR}
if (i mod 2 <> 0) then
begin
soma1:=(soma1+i);
end
else
if (i mod 2 = 0 ) then {se i mod 2 for igual a zero - PAR}
begin
soma2:=(soma2+(1/i));
end;
end;
formula:=(soma1+soma2); {soma os dois valores}
end;
Begin
writeln('Digite um número : ');
readln(n);
if (n>0) then {condiciona a função se n maior que zero}
begin
h:=formula(n); {chama a função}
writeln('A soma é igual a : ',h:1:2); {mostra o resultado}
end
else {se não for, mostra a mensagem}
writeln('Digite um número maior que zero');
End.
Pesquisa entre habitantes
{Foi realizada uma pesquisa entre 150 habitantes de uma cidade. de cada habitante foram
coloetadas dos dados: IDADE, SEXO, RENDA FAMILIAR E NUMERO DE FILHOS. elabore um algoritmo
que o usuario forneça estes dados. Calcule e mostre :
= A média salarial entre os habitantes(entrevistados)
= O total gasto em filhos, sabendo que cada habitante entrevistado dó podera gastar com ele mesmo e
com seus filhos, onde a distribuição de renda deverar ser igual entre todos, por exemplo:
Antonio tem 3 filhos e ganha R$ 1600,00, então cada um deles podera gastar R$ 400,00 ou seja, o gasto
com os filhos fois de R$ 1200,00
= e a quantidade de mulheres com mais de 2 filhos e renda superior a 3 salarios minimos; salario = R$ 545,00}
Program Pzim ;
type
r_hab = record
idade:integer;
sexo:string;
sal:real;
filhos:integer;
end;
var
v_hab:array[1..5] of r_hab;
qtmm2f, pessoas, qtdf, qtdh, i:integer;
gpp, gpf, v_total:real;
Begin {na solução, tem somente 5 entradas, }
for i:=1 to 5 do {pois digitar 150 ficaria inviavel}
begin
writeln('Digite a idade : ');
readln(v_hab[i].idade);
writeln('Digite o sexo : ');
readln(v_hab[i].sexo);
writeln('Digite o salário : ');
readln(v_hab[i].sal);
writeln('Digite a quantidade de filhos : ');
readln(v_hab[i].filhos);
clrscr;
end;
for i:=1 to 5 do
begin
v_total:=v_total+v_hab[i].sal;
qtdh:=qtdh+1;
end;
writeln('A média salario dos habitantes é : R$ ',v_total/qtdh:1:2);
writeln;
for i:=1 to 5 do
begin
pessoas:=v_hab[i].filhos+1; {calcula a quantidade de filhos mais a quantidade de entrevistados}
gpp:= v_hab[i].sal/pessoas; {calcula o valor de gasto por pessoa, a renda de cada grupo familiar}
gpf:=gpp*v_hab[i].filhos; {calcula o gasto com os filhos}
writeln('O ',i,'o. entrevistado, gastou com os ',v_hab[i].filhos,' filho(s) foi de R$ ',gpf:1:2);
end;
for i:=1 to 5 do
begin
if ((v_hab[i].sexo='F') and (v_hab[i].sal>1635)) then
begin
qtmm2f:=qtmm2f+1; {Conta quantas mulheres ganham mais de 3 salarios}
end;
end;
writeln;
writeln('Existem ',qtmm2f,' mulheres com renda salarial maior que 3 Sal. min.');
End.
coloetadas dos dados: IDADE, SEXO, RENDA FAMILIAR E NUMERO DE FILHOS. elabore um algoritmo
que o usuario forneça estes dados. Calcule e mostre :
= A média salarial entre os habitantes(entrevistados)
= O total gasto em filhos, sabendo que cada habitante entrevistado dó podera gastar com ele mesmo e
com seus filhos, onde a distribuição de renda deverar ser igual entre todos, por exemplo:
Antonio tem 3 filhos e ganha R$ 1600,00, então cada um deles podera gastar R$ 400,00 ou seja, o gasto
com os filhos fois de R$ 1200,00
= e a quantidade de mulheres com mais de 2 filhos e renda superior a 3 salarios minimos; salario = R$ 545,00}
Program Pzim ;
type
r_hab = record
idade:integer;
sexo:string;
sal:real;
filhos:integer;
end;
var
v_hab:array[1..5] of r_hab;
qtmm2f, pessoas, qtdf, qtdh, i:integer;
gpp, gpf, v_total:real;
Begin {na solução, tem somente 5 entradas, }
for i:=1 to 5 do {pois digitar 150 ficaria inviavel}
begin
writeln('Digite a idade : ');
readln(v_hab[i].idade);
writeln('Digite o sexo : ');
readln(v_hab[i].sexo);
writeln('Digite o salário : ');
readln(v_hab[i].sal);
writeln('Digite a quantidade de filhos : ');
readln(v_hab[i].filhos);
clrscr;
end;
for i:=1 to 5 do
begin
v_total:=v_total+v_hab[i].sal;
qtdh:=qtdh+1;
end;
writeln('A média salario dos habitantes é : R$ ',v_total/qtdh:1:2);
writeln;
for i:=1 to 5 do
begin
pessoas:=v_hab[i].filhos+1; {calcula a quantidade de filhos mais a quantidade de entrevistados}
gpp:= v_hab[i].sal/pessoas; {calcula o valor de gasto por pessoa, a renda de cada grupo familiar}
gpf:=gpp*v_hab[i].filhos; {calcula o gasto com os filhos}
writeln('O ',i,'o. entrevistado, gastou com os ',v_hab[i].filhos,' filho(s) foi de R$ ',gpf:1:2);
end;
for i:=1 to 5 do
begin
if ((v_hab[i].sexo='F') and (v_hab[i].sal>1635)) then
begin
qtmm2f:=qtmm2f+1; {Conta quantas mulheres ganham mais de 3 salarios}
end;
end;
writeln;
writeln('Existem ',qtmm2f,' mulheres com renda salarial maior que 3 Sal. min.');
End.
segunda-feira, 13 de junho de 2011
Vetor ordem crescente
Program Pzim ;
{recebe 10 numeros inteiros e ordena de forma crescente}
var
vet:array[1..10] of integer;
aux,i,j:integer;
Begin
aux:=0;
for i:=1 to 10 do
begin
writeln('Preencha o vetor de 10 posições : ');
read(vet[i]);
end;
for i := 10 downto 2 do {faz o for com i de 10 até 2, decrementando, isto é 10, 9, 8, ...}
begin
for j := 1 to i-1 do {faz o for com j de 1 até a posição atual do i menos 1}
begin
if vet[j] > vet[j+1] then {se vet, na posição j, for maior que vet na posição j+1, faça}
begin
aux := vet[j]; {a var aux, recebe o valor de vet na posição j}
vet[j] := vet[j+1]; {vet na posição j, recebe o valor de vet na posição seguinte, que seria j + 1}
vet[j+1] := aux; {e vet na posição j mais 1, recebe o valor que está na var aux, que era o valor de vet na posição j}
end; {resumindo, se o valor na posição vet[j] for maior que}
end; {o valor na posição vet[j+1], ele faz a troca desses valores}
end; {a função desse programa é ordenar um vetor }
{seria o seguinte:}
{preencha um vetor de 10 posições ´com numeros inteiros}
{e depois ordene de forma crescente}
for i:=1 to 10 do
begin
writeln(vet[i]);
end;
end.
{recebe 10 numeros inteiros e ordena de forma crescente}
var
vet:array[1..10] of integer;
aux,i,j:integer;
Begin
aux:=0;
for i:=1 to 10 do
begin
writeln('Preencha o vetor de 10 posições : ');
read(vet[i]);
end;
for i := 10 downto 2 do {faz o for com i de 10 até 2, decrementando, isto é 10, 9, 8, ...}
begin
for j := 1 to i-1 do {faz o for com j de 1 até a posição atual do i menos 1}
begin
if vet[j] > vet[j+1] then {se vet, na posição j, for maior que vet na posição j+1, faça}
begin
aux := vet[j]; {a var aux, recebe o valor de vet na posição j}
vet[j] := vet[j+1]; {vet na posição j, recebe o valor de vet na posição seguinte, que seria j + 1}
vet[j+1] := aux; {e vet na posição j mais 1, recebe o valor que está na var aux, que era o valor de vet na posição j}
end; {resumindo, se o valor na posição vet[j] for maior que}
end; {o valor na posição vet[j+1], ele faz a troca desses valores}
end; {a função desse programa é ordenar um vetor }
{seria o seguinte:}
{preencha um vetor de 10 posições ´com numeros inteiros}
{e depois ordene de forma crescente}
for i:=1 to 10 do
begin
writeln(vet[i]);
end;
end.
Múltiplos de 2 e 3
{faca um programa que carregue um vetor com sete numeros inteiro,
calcule e mostre: os numeros multiplos de 2; os numeros multiplos de 3;
os numeros multiplos de 2 e 3.}
Program Pzim ;
var
num: array [1..7] of integer;
mult2, mult3, mult2e3:integer;
i: integer;
Begin
{a entrada de dados deve ser feita dentro de um FOR}
for i := 1 to 7 do
begin
writeln ('Digite o ',i,'o. numero: '); {solicita e recebe os numeros para preencher o vetor}
readln (num[i]);
end;
clrscr;
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 2, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do {faz de 1 até 7}
begin
if (num[i] mod 2 = 0 ) then
begin
mult2 := num[i]; {registra o numero e ...}
writeln(mult2); {...mostra os numeros}
end;
end;
writeln; {insere uma linha em branco}
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 3, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do
begin
if (num[i] mod 3 = 0 ) then
begin
mult3 := num[i]; {registra o numero e ...}
writeln(mult3); {...mostra os numeros}
end;
end; {insere uma linha em branco}
writeln;
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 2 e de 3, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do
begin
if (num[i] mod 2 = 0) and (num[i] mod 3 = 0) then
begin
mult2e3 := num[i]; {registra o numero e ...}
writeln (mult2e3); {...mostra os numeros}
end;
end;
End.
calcule e mostre: os numeros multiplos de 2; os numeros multiplos de 3;
os numeros multiplos de 2 e 3.}
Program Pzim ;
var
num: array [1..7] of integer;
mult2, mult3, mult2e3:integer;
i: integer;
Begin
{a entrada de dados deve ser feita dentro de um FOR}
for i := 1 to 7 do
begin
writeln ('Digite o ',i,'o. numero: '); {solicita e recebe os numeros para preencher o vetor}
readln (num[i]);
end;
clrscr;
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 2, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do {faz de 1 até 7}
begin
if (num[i] mod 2 = 0 ) then
begin
mult2 := num[i]; {registra o numero e ...}
writeln(mult2); {...mostra os numeros}
end;
end;
writeln; {insere uma linha em branco}
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 3, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do
begin
if (num[i] mod 3 = 0 ) then
begin
mult3 := num[i]; {registra o numero e ...}
writeln(mult3); {...mostra os numeros}
end;
end; {insere uma linha em branco}
writeln;
{cada verificação deve ser feita dentro de um FOR separado}
writeln('Os números multiplos de 2 e de 3, são : '); {exibe a mensagem "uma única vez"}
for i:= 1 to 7 do
begin
if (num[i] mod 2 = 0) and (num[i] mod 3 = 0) then
begin
mult2e3 := num[i]; {registra o numero e ...}
writeln (mult2e3); {...mostra os numeros}
end;
end;
End.
Conta uma determinada letra
{recebe uma palavra ou frase, e uma letra, e diga quantas letras tem na cadeia de
caracteres}
Program Pzim ;
var
frase:string; {variavel que recebe a cadeia de caracteres}
letra:char;
i, conta, j:integer; { "i", contador do for, "j" recebe a quant. de
caracteres da cadeia e conta, recebe a quantidade de letraas a}
Begin
writeln('Digite uma palavra ou frase : '); {solicita que digite os caracteres}
readln(frase); {usar o readln, pois o read para no primeiro espaço e em frases}
writeln('Digite uma letra'); {nçao ia receber todos os caracteres}
read(letra);
j:=length(frase); {a função length vai contar quantos caractes existe na variavel
frase e atribuir esse numero a variavel j}
for i:=1 to j do {'i' vai de um até 'j'}
begin
if (frase[i] = letra) then {se na posição [i], de 1 até 'j' ,
for igual a letra 'a', conta recebe +1}
conta:=conta+1;
end;
writeln('na expressão : "',frase,'"'); {mostra a frase digitada}
writeln('Existem ',conta, ' letras "', letra,' "'); {mostra quantos caracteres "a" existe}
End.
caracteres}
Program Pzim ;
var
frase:string; {variavel que recebe a cadeia de caracteres}
letra:char;
i, conta, j:integer; { "i", contador do for, "j" recebe a quant. de
caracteres da cadeia e conta, recebe a quantidade de letraas a}
Begin
writeln('Digite uma palavra ou frase : '); {solicita que digite os caracteres}
readln(frase); {usar o readln, pois o read para no primeiro espaço e em frases}
writeln('Digite uma letra'); {nçao ia receber todos os caracteres}
read(letra);
j:=length(frase); {a função length vai contar quantos caractes existe na variavel
frase e atribuir esse numero a variavel j}
for i:=1 to j do {'i' vai de um até 'j'}
begin
if (frase[i] = letra) then {se na posição [i], de 1 até 'j' ,
for igual a letra 'a', conta recebe +1}
conta:=conta+1;
end;
writeln('na expressão : "',frase,'"'); {mostra a frase digitada}
writeln('Existem ',conta, ' letras "', letra,' "'); {mostra quantos caracteres "a" existe}
End.
sábado, 11 de junho de 2011
Inteiro para caractere
as variaveis são iniciadas no início do programa:
VAR
conta:integer; //variavel numérica
t_conta:string; //variavel de texto
str(conta,t_conta);{converte o valor que tem na variavel conta em texto e salva na variavel t_conta}
VAR
conta:integer; //variavel numérica
t_conta:string; //variavel de texto
str(conta,t_conta);{converte o valor que tem na variavel conta em texto e salva na variavel t_conta}
3 notas com media ponderada
Program Pzim ;
{4- Escreva um programa que leia o código de um aluno e suas três notas.
Calcule a média ponderada do aluno, considerando que o peso para a maior
nota seja 4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas,
a média calculada e uma mensagem "APROVADO" se a média for maior ou
igual a 5 e "REPROVADO" se a média for menor que 5. }
var
cod:integer;
n1, n2, n3, nm1, nm2, nm3, media:real;
Begin
media:=0;
writeln('Digite o código do aluno : ');
read(cod);
write('digite a 1o. nota : ');
read(n1);
write('digite a 2o. nota : ');
read(n2);
write('digite a 3o. nota : ');
read(n3);
{aproveitando a mesma estrutura para ordenar a maior nota, as
outras duas não tem importançia na ordem, pois tem o mesmo peso}
if ((n1 > n2) and (n1 > n3)) then
begin
nm1:=n1;
nm2:=n2;
nm3:=n3;
end
else
if ((n2 > n1) and (n2 > n3)) then
begin
nm1:=n2;
nm2:=n1;
nm3:=n3;
end
else
if ((n3 > n1) and (n3 > n1)) then
begin
nm1:=n3;
nm2:=n1;
nm3:=n2;
end;
media:=(((nm1*4) + (nm2*3) + (nm3*3))/10);
if (media >= 5) then
begin
writeln('O aluno de código ',cod,' foi APROVADO com média : ',media:1:2);
end;
if (media < 5) then
begin
writeln('O aluno de código ',cod,' foi REPROVADO com média : ',media:1:2);
end;
End.
{4- Escreva um programa que leia o código de um aluno e suas três notas.
Calcule a média ponderada do aluno, considerando que o peso para a maior
nota seja 4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas,
a média calculada e uma mensagem "APROVADO" se a média for maior ou
igual a 5 e "REPROVADO" se a média for menor que 5. }
var
cod:integer;
n1, n2, n3, nm1, nm2, nm3, media:real;
Begin
media:=0;
writeln('Digite o código do aluno : ');
read(cod);
write('digite a 1o. nota : ');
read(n1);
write('digite a 2o. nota : ');
read(n2);
write('digite a 3o. nota : ');
read(n3);
{aproveitando a mesma estrutura para ordenar a maior nota, as
outras duas não tem importançia na ordem, pois tem o mesmo peso}
if ((n1 > n2) and (n1 > n3)) then
begin
nm1:=n1;
nm2:=n2;
nm3:=n3;
end
else
if ((n2 > n1) and (n2 > n3)) then
begin
nm1:=n2;
nm2:=n1;
nm3:=n3;
end
else
if ((n3 > n1) and (n3 > n1)) then
begin
nm1:=n3;
nm2:=n1;
nm3:=n2;
end;
media:=(((nm1*4) + (nm2*3) + (nm3*3))/10);
if (media >= 5) then
begin
writeln('O aluno de código ',cod,' foi APROVADO com média : ',media:1:2);
end;
if (media < 5) then
begin
writeln('O aluno de código ',cod,' foi REPROVADO com média : ',media:1:2);
end;
End.
idade de dias para ano/mes/dia
Program Pzim ;
{2- Construa um programa que leia a idade de uma pessoa expressa em dias e
expresse-a em anos, meses e dias.}
var
idade, anos, mes, meses, dias:integer;
{todas variaveis do tipo inteiro, uma pra receber a idade em dias
uma pra ano, duas pra meses e uma pra dia, duas pra meses, pois precisa de uma auxiliar}
{a questão vai ser feita considerando o mes com 30 dias, consequentemente o ano com 360 dias}
Begin
writeln('Digite a idade em dias : ');
read(idade); {recebe a idade em dias}
dias:=(idade mod 30); {mod é o resto da divisão, entao se dividir a quant de dias
por 30 o resto é a quantidade de dias }
mes:=(idade div 30); {div é a parte inteira da divisão, então quando eu divido
a quant. de dias por 30, me dá a quant de meses}
meses:=(mes mod 12); {mod é o resto da divisão. então se dividir a quant de meses
por 12, o resto é a quantidade de meses}
anos:=(idade div 360); {div é a parte inteira da divisão, então quando em divido
a quant. de dias por 360 eu acho a quant de anos}
{a exibição é feita com as variaveis e texto}
writeln(anos,' anos, ',meses, ' meses e ',dias,' dias.');
End.
{2- Construa um programa que leia a idade de uma pessoa expressa em dias e
expresse-a em anos, meses e dias.}
var
idade, anos, mes, meses, dias:integer;
{todas variaveis do tipo inteiro, uma pra receber a idade em dias
uma pra ano, duas pra meses e uma pra dia, duas pra meses, pois precisa de uma auxiliar}
{a questão vai ser feita considerando o mes com 30 dias, consequentemente o ano com 360 dias}
Begin
writeln('Digite a idade em dias : ');
read(idade); {recebe a idade em dias}
dias:=(idade mod 30); {mod é o resto da divisão, entao se dividir a quant de dias
por 30 o resto é a quantidade de dias }
mes:=(idade div 30); {div é a parte inteira da divisão, então quando eu divido
a quant. de dias por 30, me dá a quant de meses}
meses:=(mes mod 12); {mod é o resto da divisão. então se dividir a quant de meses
por 12, o resto é a quantidade de meses}
anos:=(idade div 360); {div é a parte inteira da divisão, então quando em divido
a quant. de dias por 360 eu acho a quant de anos}
{a exibição é feita com as variaveis e texto}
writeln(anos,' anos, ',meses, ' meses e ',dias,' dias.');
End.
Programa para calcular o maior e o menor de 3 números inteiros
Program Pzim ;
{Escreva um programa para calcular o maior e o menor
de três números inteiros.}
var
n1, n2, n3, maior, menor:integer; {varriaveis para receber os 3 numeros e o maior e o menor}
Begin
writeln('Digite o 1o. número : ');
read(n1);
writeln('Digite o 2o. número : ');
read(n2);
writeln('Digite o 3o. número : ');
readln(n3);
{compara dois a dois pra confirmar quem é o maior}
if ((n1 > n2) and (n1>n3)) then
begin { o primeiro com o 2º e o 3º}
maior:=n1;
end;
if ((n2 > n1) and (n2>n3)) then { o segundo com o 1º e o 3º}
begin
maior:=n2;
end;
if ((n3 > n1) and (n3>n2)) then {por ultimo o terceiro com o 1º e o 2º}
begin
maior:=n3;
end;
if ((n1 < n2) and (n1<n3)) then
begin
menor:=n1;
end;
if ((n2 < n1) and (n2<n3)) then {a mesma coisa com o menor}
begin
menor:=n2;
end;
if ((n3 < n1) and (n3<n2)) then
begin
menor:=n3;
end;
writeln(' o maior número é : ',maior,', e o menor é : ',menor); {mostra o resultado}
End.
{Escreva um programa para calcular o maior e o menor
de três números inteiros.}
var
n1, n2, n3, maior, menor:integer; {varriaveis para receber os 3 numeros e o maior e o menor}
Begin
writeln('Digite o 1o. número : ');
read(n1);
writeln('Digite o 2o. número : ');
read(n2);
writeln('Digite o 3o. número : ');
readln(n3);
{compara dois a dois pra confirmar quem é o maior}
if ((n1 > n2) and (n1>n3)) then
begin { o primeiro com o 2º e o 3º}
maior:=n1;
end;
if ((n2 > n1) and (n2>n3)) then { o segundo com o 1º e o 3º}
begin
maior:=n2;
end;
if ((n3 > n1) and (n3>n2)) then {por ultimo o terceiro com o 1º e o 2º}
begin
maior:=n3;
end;
if ((n1 < n2) and (n1<n3)) then
begin
menor:=n1;
end;
if ((n2 < n1) and (n2<n3)) then {a mesma coisa com o menor}
begin
menor:=n2;
end;
if ((n3 < n1) and (n3<n2)) then
begin
menor:=n3;
end;
writeln(' o maior número é : ',maior,', e o menor é : ',menor); {mostra o resultado}
End.
Operação Aritmética
Program Pzim ;
{5. Escreva um programa que leia um carácter '+', '-', '*' ou '/' que indica uma
operação aritmética a efetuar com os dois números que são introduzidos a seguir
e apresente o resultado da operação. }
var
sinal:char;
n1, n2:integer;
res:real;
Begin
writeln('Qual operação deseja realizar ? ');
writeln(' soma = "+", subtração = "-", Multiplicação "*" ou divisão "/"');
readln(sinal);
writeln('Digite o 1o. Número : ');
readln(n1);
writeln('Digite o 2o; Número : ');
readln(n2);
if (sinal='+') then
begin
res:=n1+n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='-') then
begin
res:=n1-n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='*') then
begin
res:=n1*n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='/') then
begin
res:=n1/n2;
writeln('O resultado da soma é : ',res:1:2);
end;
End.
{5. Escreva um programa que leia um carácter '+', '-', '*' ou '/' que indica uma
operação aritmética a efetuar com os dois números que são introduzidos a seguir
e apresente o resultado da operação. }
var
sinal:char;
n1, n2:integer;
res:real;
Begin
writeln('Qual operação deseja realizar ? ');
writeln(' soma = "+", subtração = "-", Multiplicação "*" ou divisão "/"');
readln(sinal);
writeln('Digite o 1o. Número : ');
readln(n1);
writeln('Digite o 2o; Número : ');
readln(n2);
if (sinal='+') then
begin
res:=n1+n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='-') then
begin
res:=n1-n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='*') then
begin
res:=n1*n2;
writeln('O resultado da soma é : ',res:1:2);
end;
if (sinal='/') then
begin
res:=n1/n2;
writeln('O resultado da soma é : ',res:1:2);
end;
End.
Ordenamento
Program Pzim ;
{2. Escrever um programa que lê um conjunto de 4 valores i, a, b, c, onde i é um
valor inteiro e positivo (faça a validação) e a, b, c, são quaisquer valores reais e
os escreva.
A seguir:
a) Se i=1 escrever os três valores a, b, c em ordem crescente.
b) Se i=2 escrever os três valores a, b, c em ordem decrescente.
c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a, b, c fique
entre os outros dois.}
var
i:integer;
n1, n2, n3, a, b, c:real;
Begin
writeln('Digite o código do ordenamento (1, 2 ou 3) : ');
writeln(' 1 - para ordem CRESCENTE');
writeln(' 2 - para ordem DECRESCENTE');
writeln(' 3 - para ordem MAIOR NO MEIO');
read(i);
if ((i>0) and (i<4)) then {condição pra fazer entre 1 e 3}
begin {se atender a condição ...}
write('digite o 1o. número : ');
read(a);
write('digite o 2o. número : ');
read(b);
write('digite o 3o. número : ');
read(c); {recebe os tres numeros, a, b, c}
if ((a > b) and (b > c)) then
begin
n1:=a;
n2:=b;
n3:=c;
end
else
if ((a > c) and (c >b)) then
begin
n1:=a;
n2:=c;
n3:=b;
end
else
if ((b > a) and (a > c)) then
begin
n1:=b;
n2:=a;
n3:=c;
end
else
if ((b > c) and (c > a)) then
begin
n1:=b;
n2:=c;
n3:=a;
end
else
if ((c > a) and (a > b)) then
begin
n1:=c;
n2:=a;
n3:=b;
end
else
if ((c > b) and (b > a)) then
begin
n1:=c;
n2:=b;
n3:=a;
end; {ordena os tres numeros}
if (i=1) then {condição de exibição de acordo com o 'i'}
writeln('Sequencia escolhida - CRESCENTE : ', n3:1:2, ' - ', n2:1:2, ' - ', n1:1:2)
else
if (i=2) then
writeln('Sequencia escolhida - DECRESCENTE : ', n1:1:2, ' - ', n2:1:2, ' - ', n3:1:2)
else
if (i=3) then
writeln('Sequencia escolhida - MAIOR NO MEIO : ', n2:1:2, ' - ', n1:1:2, ' - ', n3:1:2)
end {o :1:2, é pra formatar a quant de decimal de um numero real}
else
writeln('Digite um número entre " 1 e 3 "'); {se não atender a condição de 'i', entre 1 e 3, mostra a mensagem}
End.
{2. Escrever um programa que lê um conjunto de 4 valores i, a, b, c, onde i é um
valor inteiro e positivo (faça a validação) e a, b, c, são quaisquer valores reais e
os escreva.
A seguir:
a) Se i=1 escrever os três valores a, b, c em ordem crescente.
b) Se i=2 escrever os três valores a, b, c em ordem decrescente.
c) Se i=3 escrever os três valores a, b, c de forma que o maior entre a, b, c fique
entre os outros dois.}
var
i:integer;
n1, n2, n3, a, b, c:real;
Begin
writeln('Digite o código do ordenamento (1, 2 ou 3) : ');
writeln(' 1 - para ordem CRESCENTE');
writeln(' 2 - para ordem DECRESCENTE');
writeln(' 3 - para ordem MAIOR NO MEIO');
read(i);
if ((i>0) and (i<4)) then {condição pra fazer entre 1 e 3}
begin {se atender a condição ...}
write('digite o 1o. número : ');
read(a);
write('digite o 2o. número : ');
read(b);
write('digite o 3o. número : ');
read(c); {recebe os tres numeros, a, b, c}
if ((a > b) and (b > c)) then
begin
n1:=a;
n2:=b;
n3:=c;
end
else
if ((a > c) and (c >b)) then
begin
n1:=a;
n2:=c;
n3:=b;
end
else
if ((b > a) and (a > c)) then
begin
n1:=b;
n2:=a;
n3:=c;
end
else
if ((b > c) and (c > a)) then
begin
n1:=b;
n2:=c;
n3:=a;
end
else
if ((c > a) and (a > b)) then
begin
n1:=c;
n2:=a;
n3:=b;
end
else
if ((c > b) and (b > a)) then
begin
n1:=c;
n2:=b;
n3:=a;
end; {ordena os tres numeros}
if (i=1) then {condição de exibição de acordo com o 'i'}
writeln('Sequencia escolhida - CRESCENTE : ', n3:1:2, ' - ', n2:1:2, ' - ', n1:1:2)
else
if (i=2) then
writeln('Sequencia escolhida - DECRESCENTE : ', n1:1:2, ' - ', n2:1:2, ' - ', n3:1:2)
else
if (i=3) then
writeln('Sequencia escolhida - MAIOR NO MEIO : ', n2:1:2, ' - ', n1:1:2, ' - ', n3:1:2)
end {o :1:2, é pra formatar a quant de decimal de um numero real}
else
writeln('Digite um número entre " 1 e 3 "'); {se não atender a condição de 'i', entre 1 e 3, mostra a mensagem}
End.
programa para somar os N primeiros termos
Program Pzim ;
{Faça um programa para somar os N primeiros
termos da série abaixo:
1 + 3/1 + 5/3 + 7/5 + 9/7 + ...}
var
n,i:integer;
n1, n2, soma:real; {variaveis}
Begin
n1:=3;{inicia as variaveis com 3 e 1, }
n2:=1;
soma:=1; {inicia a soma com 1, por isso o for, faz até n-1, pois como o primeiro termo é um, ele já vem incrementado}
write('Digite um numero : ');
readln(n);
for i:=1 to n-1 do {faz de 1 até n-1, pois a soma é iniciado já com 1}
begin
soma:=soma+(n1/n2);
writelnl('1');
writeln(n1,'/',n2); {essa linha é facultativa, é só pra visualizar as divisoes}
n1:=n1+2; {incrementa n1 mais 2}
n2:=n2+2; {incrementa n2 mais 2}
end;
writeln('A soma dos ',n,' termos de "1+ 3/1 + ... N" é: ',soma); {mostra a resposta}
End.
{Faça um programa para somar os N primeiros
termos da série abaixo:
1 + 3/1 + 5/3 + 7/5 + 9/7 + ...}
var
n,i:integer;
n1, n2, soma:real; {variaveis}
Begin
n1:=3;{inicia as variaveis com 3 e 1, }
n2:=1;
soma:=1; {inicia a soma com 1, por isso o for, faz até n-1, pois como o primeiro termo é um, ele já vem incrementado}
write('Digite um numero : ');
readln(n);
for i:=1 to n-1 do {faz de 1 até n-1, pois a soma é iniciado já com 1}
begin
soma:=soma+(n1/n2);
writelnl('1');
writeln(n1,'/',n2); {essa linha é facultativa, é só pra visualizar as divisoes}
n1:=n1+2; {incrementa n1 mais 2}
n2:=n2+2; {incrementa n2 mais 2}
end;
writeln('A soma dos ',n,' termos de "1+ 3/1 + ... N" é: ',soma); {mostra a resposta}
End.
Divisores
Program Pzim ;
{1. Escrever um programa para ler um número inteiro
e maior ou igual a 4 (faça a verificação), e mostre
todos os seus divisores exceto 1 e o numero lido.}
var
num, i:integer;
Begin
writeln('digite um numero maior que 4 : '); {solicita que seja digitado um numero}
readln(num); {lê o numero digitado}
if (num>=4) then {se numero for igual ou maior que 4 entra no FOR}
begin
for i:=2 to num-1 do {faz de 2 até o numero lido}
begin
if (num mod i=0) then {se o numero for divisivel ...}
begin
write(i,', '); {... exibe os numeros}
end;
end;
end {se o numero for menor que 4, exibe a mensagem}
else
begin
writeln('O número digitado dever ser igual ou maior que 4');
end;
End.
{1. Escrever um programa para ler um número inteiro
e maior ou igual a 4 (faça a verificação), e mostre
todos os seus divisores exceto 1 e o numero lido.}
var
num, i:integer;
Begin
writeln('digite um numero maior que 4 : '); {solicita que seja digitado um numero}
readln(num); {lê o numero digitado}
if (num>=4) then {se numero for igual ou maior que 4 entra no FOR}
begin
for i:=2 to num-1 do {faz de 2 até o numero lido}
begin
if (num mod i=0) then {se o numero for divisivel ...}
begin
write(i,', '); {... exibe os numeros}
end;
end;
end {se o numero for menor que 4, exibe a mensagem}
else
begin
writeln('O número digitado dever ser igual ou maior que 4');
end;
End.
quinta-feira, 9 de junho de 2011
Conta as letras A ou a
{contar a quantidade de letras "a" existente na cadeia de caracteres}
Program Pzim ;
var
frase:string; {variavel que recebe a cadeia de caracteres}
i, conta, j:integer; { "i", contador do for, "j" recebe a quant. de
caracteres da cadeia e conta, recebe a quantidade de letraas a}
Begin
writeln('Digite uma palavra ou frase : '); {solicita que digite os caracteres}
readln(frase); {usar o readln, pois o read para no primeiro espaço e em frases
nçao ia receber todos os caracteres}
j:=length(frase); {a função length vai contar quantos caractes existe na variavel
frase e atribuir esse numero a variavel j}
for i:=1 to j do {'i' vai de um até 'j'}
begin
if ((frase[i] = 'A') or (frase[i] = 'a')) then {se na posição [i], de 1 até 'j' ,
for igual a letra 'a', conta recebe +1}
conta:=conta+1;
end;
writeln('na expressão : "',frase,'"'); {mostra a frase digitada}
writeln('Existem ',conta, ' letras "A"'); {mostra quantos caracteres "a" existe}
End.
Program Pzim ;
var
frase:string; {variavel que recebe a cadeia de caracteres}
i, conta, j:integer; { "i", contador do for, "j" recebe a quant. de
caracteres da cadeia e conta, recebe a quantidade de letraas a}
Begin
writeln('Digite uma palavra ou frase : '); {solicita que digite os caracteres}
readln(frase); {usar o readln, pois o read para no primeiro espaço e em frases
nçao ia receber todos os caracteres}
j:=length(frase); {a função length vai contar quantos caractes existe na variavel
frase e atribuir esse numero a variavel j}
for i:=1 to j do {'i' vai de um até 'j'}
begin
if ((frase[i] = 'A') or (frase[i] = 'a')) then {se na posição [i], de 1 até 'j' ,
for igual a letra 'a', conta recebe +1}
conta:=conta+1;
end;
writeln('na expressão : "',frase,'"'); {mostra a frase digitada}
writeln('Existem ',conta, ' letras "A"'); {mostra quantos caracteres "a" existe}
End.
quarta-feira, 8 de junho de 2011
Questão 3 da prova
Program Pzim ;
var
a, b, pote:integer;
function pot(x,y:integer):integer;
var
i,z:integer;
begin
z:=1; {inicio a var z, com valor 1, pois se colocar 0, qq numero multiplicado por zero dá zero}
for i:=1 to y do {faz de um até y, que recebe o valor de b no program principal}
begin
z:=z*x;
end;
pot:=z; {pot, que é a função, recebe o valor de z}
end;
procedure primo(j:integer);
var {para ser primo o numero so pode ser divisivel por 1 e por ele mesmo: cont<=2}
cont, i:integer;
begin
cont:=0; // inicia o contador com zero
for i:=1 to j do {fazer de 1 até o numero resultade da função potencia}
begin
if (j mod i <> 0 ) then {se a divisão do numero por 1,..,j, for diferente de zero
o contadot é incrementado, +1}
begin
cont:=cont+1;
end;
end;
if (cont<=2) then {como numero primo, só pode ser dividido no maximo
por dois, pelo numero 1 e por ele mesmo, se for maior que 1
, então para ser primo a condição é que o cont seja no maximo 2}
writeln('O número ',j,' é primo') {se for}
else
writeln('O número ',j,' não é primo'); {se não for}
end;
Begin {a estrutura do programa de entrada de dados é simples}
writeln('Digite o 1o. número : ');
readln(a);
writeln('Digite o 2o. número : ');
readln(b);
pote:=pot(a,b); {chama a função pote e atribui a variavel pote}
writeln('O numero ',a,' elevado a ',b,' é igual a : ',pote); {mostra o resultado}
primo(pote); {chama o procedimento primo, o resutado é mostrado dentro do procedimento}
End.
var
a, b, pote:integer;
function pot(x,y:integer):integer;
var
i,z:integer;
begin
z:=1; {inicio a var z, com valor 1, pois se colocar 0, qq numero multiplicado por zero dá zero}
for i:=1 to y do {faz de um até y, que recebe o valor de b no program principal}
begin
z:=z*x;
end;
pot:=z; {pot, que é a função, recebe o valor de z}
end;
procedure primo(j:integer);
var {para ser primo o numero so pode ser divisivel por 1 e por ele mesmo: cont<=2}
cont, i:integer;
begin
cont:=0; // inicia o contador com zero
for i:=1 to j do {fazer de 1 até o numero resultade da função potencia}
begin
if (j mod i <> 0 ) then {se a divisão do numero por 1,..,j, for diferente de zero
o contadot é incrementado, +1}
begin
cont:=cont+1;
end;
end;
if (cont<=2) then {como numero primo, só pode ser dividido no maximo
por dois, pelo numero 1 e por ele mesmo, se for maior que 1
, então para ser primo a condição é que o cont seja no maximo 2}
writeln('O número ',j,' é primo') {se for}
else
writeln('O número ',j,' não é primo'); {se não for}
end;
Begin {a estrutura do programa de entrada de dados é simples}
writeln('Digite o 1o. número : ');
readln(a);
writeln('Digite o 2o. número : ');
readln(b);
pote:=pot(a,b); {chama a função pote e atribui a variavel pote}
writeln('O numero ',a,' elevado a ',b,' é igual a : ',pote); {mostra o resultado}
primo(pote); {chama o procedimento primo, o resutado é mostrado dentro do procedimento}
End.
segunda-feira, 6 de junho de 2011
Questão 4 da prova
Program Pzim ;
{FAÇA UM ALGORITMO PARA O USUARIO FORNECER O CÓDIGO, O SEXO (M OU F) E O NUMERO DE HORAS/AULA
DADAS NO MES PELO PROFESSOR DE UMA ESCOLA, SABENDO QUE O PROFESSOR GANHA R$ 12,50 HORA/AULA
E QUE A ESCOLA POSSUI 10 PROFESSORES MOSTRE
A) UMA LISTAGEM CONTENDO O CODIGO, O SLARI BRUTO E O SALARIO LIQUIDO DE TODOS OS PROFESSORES
B) A MEDIA ARITMETICA DOS SALARIOS BRUTO DOS PROFESSORES DO SEXO FEMININO}
type
r_professor=record
cod:integer;
sexo:char;
haula:integer;
end;
var
v_professor:array[1..4] of r_professor;
h_aula, pf, i:integer;
salbruto,salliq,desc, salf, somasf, mediasf:real;
{se houver variaveis para inicia, isso deve ser feito no inicio do programa}
Begin
pf:=0;
salf:=0;
somasf:=0;
mediasf:=0;
for i:=1 to 4 do
begin
writeln('Digite o cógido : ');
readln(v_professor[i].cod);
writeln('Digite o sexo : ');
readln(v_professor[i].sexo);
writeln('Digite a quantidade de hora-aulas : ');
readln(v_professor[i].haula);
end;
{acima é feita a entrada dos dados no registro}
{a partir daqui é feito a parte A do problema, com as condições dada na tabela}
{foi criadas variveis para receber o salario bruto, o desconto e o salario liquido}
for i:=1 to 4 do
begin
{se até 70 horas e do sexo masculino}
if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'M')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.1);
salliq:=(salbruto-desc);
end
else
{se até 70 horas e do sexo feminino}
if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'F')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.07);
salliq:=(salbruto-desc);
end
else
{mais que 70 horas e do sexo masculino}
if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'M')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.08);
salliq:=(salbruto-desc);
end
else
{mais que 70 horas e do sexo feminino}
if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'F')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.05);
salliq:=(salbruto-desc);
end;
{aqui mostramos a relação, note que usamos tanto dados no registro como das variaveis criadas}
writeln('Cód: ',v_professor[i].cod,' - Sal. bruto : ',salbruto:1:2,' - Desc : ',desc:1:2,' - Sal. Liq. : ',salliq:1:2);
end;
{a partir daqui é feito a parte B do problema}
for i:=1 to 4 do
begin
if (v_professor[i].sexo = 'F') then // se for do sexo feminino
begin
pf:=pf+1; //conta a quant. de professores do sexo feminino
h_aula:=v_professor[i].haula; //
salf:=h_aula*12.5; //calcula o salario feminino
somasf:=somasf+salf; // soma o salario feminino
end;
mediasf:=(somasf/pf); // calcula a media
end;
{exibe o resultado}
writeln('A media dos salarios dos prof. de sexo feminino é : ',mediasf:1:2);
End.
{FAÇA UM ALGORITMO PARA O USUARIO FORNECER O CÓDIGO, O SEXO (M OU F) E O NUMERO DE HORAS/AULA
DADAS NO MES PELO PROFESSOR DE UMA ESCOLA, SABENDO QUE O PROFESSOR GANHA R$ 12,50 HORA/AULA
E QUE A ESCOLA POSSUI 10 PROFESSORES MOSTRE
A) UMA LISTAGEM CONTENDO O CODIGO, O SLARI BRUTO E O SALARIO LIQUIDO DE TODOS OS PROFESSORES
B) A MEDIA ARITMETICA DOS SALARIOS BRUTO DOS PROFESSORES DO SEXO FEMININO}
type
r_professor=record
cod:integer;
sexo:char;
haula:integer;
end;
var
v_professor:array[1..4] of r_professor;
h_aula, pf, i:integer;
salbruto,salliq,desc, salf, somasf, mediasf:real;
{se houver variaveis para inicia, isso deve ser feito no inicio do programa}
Begin
pf:=0;
salf:=0;
somasf:=0;
mediasf:=0;
for i:=1 to 4 do
begin
writeln('Digite o cógido : ');
readln(v_professor[i].cod);
writeln('Digite o sexo : ');
readln(v_professor[i].sexo);
writeln('Digite a quantidade de hora-aulas : ');
readln(v_professor[i].haula);
end;
{acima é feita a entrada dos dados no registro}
{a partir daqui é feito a parte A do problema, com as condições dada na tabela}
{foi criadas variveis para receber o salario bruto, o desconto e o salario liquido}
for i:=1 to 4 do
begin
{se até 70 horas e do sexo masculino}
if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'M')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.1);
salliq:=(salbruto-desc);
end
else
{se até 70 horas e do sexo feminino}
if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'F')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.07);
salliq:=(salbruto-desc);
end
else
{mais que 70 horas e do sexo masculino}
if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'M')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.08);
salliq:=(salbruto-desc);
end
else
{mais que 70 horas e do sexo feminino}
if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'F')) then
begin
salbruto:=(v_professor[i].haula*12.5);
desc:=(salbruto*0.05);
salliq:=(salbruto-desc);
end;
{aqui mostramos a relação, note que usamos tanto dados no registro como das variaveis criadas}
writeln('Cód: ',v_professor[i].cod,' - Sal. bruto : ',salbruto:1:2,' - Desc : ',desc:1:2,' - Sal. Liq. : ',salliq:1:2);
end;
{a partir daqui é feito a parte B do problema}
for i:=1 to 4 do
begin
if (v_professor[i].sexo = 'F') then // se for do sexo feminino
begin
pf:=pf+1; //conta a quant. de professores do sexo feminino
h_aula:=v_professor[i].haula; //
salf:=h_aula*12.5; //calcula o salario feminino
somasf:=somasf+salf; // soma o salario feminino
end;
mediasf:=(somasf/pf); // calcula a media
end;
{exibe o resultado}
writeln('A media dos salarios dos prof. de sexo feminino é : ',mediasf:1:2);
End.
domingo, 5 de junho de 2011
Exercicio 5 de funções
Program Pzim ;
{criar um programa para ler dois numeros e chamar uma função que retorne se os valores
recebidos são iguais ou diferentes. o programa será finalizado se por digirado um valor
negtivo para o primeiro numero}
var
num1, num2:integer;
r_compara:string;
//inicio da função
function compara(x1,x2:integer):string;
begin
if (x1=x2) then
compara:='Os números são iguais'
else
compara:='Os números são diferentes'
end;
//fim da função
//inicio do algoritmo
Begin
writeln('Digite o primeiro número : ');
readln(num1);
if (num1>=0) then
begin
writeln('Digite o segundo número : ');
readln(num2);
r_compara:=compara(num1,num2);
writeln(r_compara);
end
else
begin
writeln('Finalizando o Algoritmo');
end;
End.
{criar um programa para ler dois numeros e chamar uma função que retorne se os valores
recebidos são iguais ou diferentes. o programa será finalizado se por digirado um valor
negtivo para o primeiro numero}
var
num1, num2:integer;
r_compara:string;
//inicio da função
function compara(x1,x2:integer):string;
begin
if (x1=x2) then
compara:='Os números são iguais'
else
compara:='Os números são diferentes'
end;
//fim da função
//inicio do algoritmo
Begin
writeln('Digite o primeiro número : ');
readln(num1);
if (num1>=0) then
begin
writeln('Digite o segundo número : ');
readln(num2);
r_compara:=compara(num1,num2);
writeln(r_compara);
end
else
begin
writeln('Finalizando o Algoritmo');
end;
End.
Exercicio 4 de funções
{Desenvolver um programa para ler dois numeros e chamar
uma função que retorna a potência do 1º numro elevado
ao 2º.}
Program Pzim ;
var
n1,n2:integer;
r_pot:real;
//inicio da função
function pot(x1,x2:integer):real; // recebe variaveis inteiras e a resposta é do tipo real
begin
pot:= exp(x2*ln(x1)); // função de potencia existente no pascal
end;
//fim da função
//inicio do algoritmo
Begin
writeln('Digite o primeiro número : '); // solicita o primeiro numero
readln(n1); // recebe n1
writeln('Digite o segundo número : '); // solicita o segundo numero
readln(n2); // recebe n2
r_pot:=pot(n1,n2); // atribui a variavel r_pot, o resultado da função pot;
// em função, chamamos a função e atribuimos o seu resultado,
// direto na variavel
writeln(' - ',n1,' elevado a ',n2,' é = ',r_pot:4:2);
{exibe o a rsposta}
End.
uma função que retorna a potência do 1º numro elevado
ao 2º.}
Program Pzim ;
var
n1,n2:integer;
r_pot:real;
//inicio da função
function pot(x1,x2:integer):real; // recebe variaveis inteiras e a resposta é do tipo real
begin
pot:= exp(x2*ln(x1)); // função de potencia existente no pascal
end;
//fim da função
//inicio do algoritmo
Begin
writeln('Digite o primeiro número : '); // solicita o primeiro numero
readln(n1); // recebe n1
writeln('Digite o segundo número : '); // solicita o segundo numero
readln(n2); // recebe n2
r_pot:=pot(n1,n2); // atribui a variavel r_pot, o resultado da função pot;
// em função, chamamos a função e atribuimos o seu resultado,
// direto na variavel
writeln(' - ',n1,' elevado a ',n2,' é = ',r_pot:4:2);
{exibe o a rsposta}
End.
Exercicio 3 de funções
Program Pzim ;
{Escrever um programa que, utilizado de funções, leia um valor e retorne
a) se é multiplo de 5 ou não -retorno string;
b) fatorial (1*2*...*n) retorno integer.}
{variaveis globais}
var
r_fatorial, num:integer;
r_multiplo:string;
//inicio da função multiplo
function multiplo(x:integer):string; // a função recebe um valor de inteiro e retorna ma string
begin
if (x mod 5 = 0) then // verifica se é multiplo de 5, se fim
multiplo:='O número é multiplo de 5' //a função multiplo recebe a frase como resposta
else // se não
multiplo:='O número NÃO é multiplo de 5' //recebe a frase informando que não
end;
//inicio da função fatorial
function fatorial(y:integer):integer; // a funçaõ recebe e retorna um valor de inteiro
var
fat,i:integer;
begin
fat:=1;
for i:= 1 to y do
begin
fat:= fat * i;
end;
fatorial:=fat;
end;
//fim das funçoes
//inicio do algoritmo
{quando fazemos algoritmos com funções e procedimentos devemos primeiro começar perlo algoritmo, depois
é que fazemos as funções e ou procedimentos }
Begin
writeln('Digite um número: '); // solicita que seja digitado um numero
readln(num); // recebe o numero digitado
r_multiplo:=multiplo(num); // atribui a variavel r_multiplo o valor retornado da função multiplo
r_fatorial:=fatorial(num); // atribui a variavel r_fatorial o valor retornado da função fatorial
{em função, ao mesmo tempo chamamos a função e atribuimos o resultado
a uma varivel, esse resultado pode ter a variavel do mesmo tipo ou de tipo diferente}
writeln(r_multiplo); //exibe os resultados
writeln('O fatorial de ',num, ' é : ',r_fatorial);
End.
{Escrever um programa que, utilizado de funções, leia um valor e retorne
a) se é multiplo de 5 ou não -retorno string;
b) fatorial (1*2*...*n) retorno integer.}
{variaveis globais}
var
r_fatorial, num:integer;
r_multiplo:string;
//inicio da função multiplo
function multiplo(x:integer):string; // a função recebe um valor de inteiro e retorna ma string
begin
if (x mod 5 = 0) then // verifica se é multiplo de 5, se fim
multiplo:='O número é multiplo de 5' //a função multiplo recebe a frase como resposta
else // se não
multiplo:='O número NÃO é multiplo de 5' //recebe a frase informando que não
end;
//inicio da função fatorial
function fatorial(y:integer):integer; // a funçaõ recebe e retorna um valor de inteiro
var
fat,i:integer;
begin
fat:=1;
for i:= 1 to y do
begin
fat:= fat * i;
end;
fatorial:=fat;
end;
//fim das funçoes
//inicio do algoritmo
{quando fazemos algoritmos com funções e procedimentos devemos primeiro começar perlo algoritmo, depois
é que fazemos as funções e ou procedimentos }
Begin
writeln('Digite um número: '); // solicita que seja digitado um numero
readln(num); // recebe o numero digitado
r_multiplo:=multiplo(num); // atribui a variavel r_multiplo o valor retornado da função multiplo
r_fatorial:=fatorial(num); // atribui a variavel r_fatorial o valor retornado da função fatorial
{em função, ao mesmo tempo chamamos a função e atribuimos o resultado
a uma varivel, esse resultado pode ter a variavel do mesmo tipo ou de tipo diferente}
writeln(r_multiplo); //exibe os resultados
writeln('O fatorial de ',num, ' é : ',r_fatorial);
End.
Exercicio 2 de funções
Program soma ;
{Fazer um programa para ler três numeros e chamar uma função que retorna
a soma dos numeros}
{variaveis globlais, usadas no algoritmo}
var
n1,n2,n3:integer; // variaveis do numeros que serão digitados
r_soma:real; // variavel que recebe o retorno da função
{lembrando que primeiro fazemos o algoritmo, depois é que inserimos a função
recomendamos o uso de rascunho e detalhar cada parte antes de montar o programa}
//inicio da função
function soma(x1,x2,x3:integer):real;
begin
soma:=(x1 + x2 + x3);
end;
//fim da função
{começamos por aqui, depois fazemos a função
a função está em cima, pois ela deve está entre as variaveis e o begin do algoritmo}
//inicio do algoritmo
Begin
writeln('Digite 3 numeros a serem somados: '); // solicita os 3 numeros
readln(n1,n2,n3); // recebe os 3 numeros
r_soma:=soma(n1,n2,n3); // atribui a variavel r_soma o resultado da função chamada
writeln(' A soma dos numeros ', n1,',',n2,',',n3,' é : ',r_soma:5:2);
//exibe o resultado
End.
{Fazer um programa para ler três numeros e chamar uma função que retorna
a soma dos numeros}
{variaveis globlais, usadas no algoritmo}
var
n1,n2,n3:integer; // variaveis do numeros que serão digitados
r_soma:real; // variavel que recebe o retorno da função
{lembrando que primeiro fazemos o algoritmo, depois é que inserimos a função
recomendamos o uso de rascunho e detalhar cada parte antes de montar o programa}
//inicio da função
function soma(x1,x2,x3:integer):real;
begin
soma:=(x1 + x2 + x3);
end;
//fim da função
{começamos por aqui, depois fazemos a função
a função está em cima, pois ela deve está entre as variaveis e o begin do algoritmo}
//inicio do algoritmo
Begin
writeln('Digite 3 numeros a serem somados: '); // solicita os 3 numeros
readln(n1,n2,n3); // recebe os 3 numeros
r_soma:=soma(n1,n2,n3); // atribui a variavel r_soma o resultado da função chamada
writeln(' A soma dos numeros ', n1,',',n2,',',n3,' é : ',r_soma:5:2);
//exibe o resultado
End.
Assinar:
Postagens (Atom)