Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ucastro

pascal

Recommended Posts

Tem um exercício para eu fazer que manda efetuar a leitura de 10 elementos de uma matriz A.

Construir também uma matriz B onde se o índice for par, o valor deverá ser multiplicado por 5, sendo ímpar, deverá ser somado com 5. Ao final , mostrar o conteúdo das duas matrizes.

Bem segue o modo como fiz:

program indice_par_ou_impar;

uses crt;

var

A,B:array[1..10]of real;
I:integer;

Begin

clrscr;

for I:=1 to 10 do
begin
writeln('Escreva os 10 valores: ');readln(A[I]);
end;

for I:=1 to 10 do
begin
if I mod 2=0 then
B[I]:=A[I]*5
else
B[I]:=A[I]+5;
end;
for I:=1 to 10 do
begin
Writeln(A[I]:6:0,B[I]:6:0);
end;

end.

 

 

O problema está no resultado que quando digito por exemplo só números pares não multiplica todos os números por 5, não sei qual a razão.

Segue o resultado do programa.

 

Escreva os 10 valores:
2
Escreva os 10 valores:
4
Escreva os 10 valores:
6
Escreva os 10 valores:
8
Escreva os 10 valores:
2
Escreva os 10 valores:
4
Escreva os 10 valores:
6
Escreva os 10 valores:
8
Escreva os 10 valores:
2
Escreva os 10 valores:
4

	 2	 7
	 4	20
	 6	11
	 8	40
	 2	 7
	 4	20
	 6	11
	 8	40
	 2	 7
	 4	20

Já foi sugerido que eu colocasse onde está o 'if I mod 2=0 then' no lugar do I a variável A, só que dá mensagem de erro Imcompatible types: got 'Real' expected 'LongInt'.

 

Alguém tem uma sujestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu mesmo achei a solução com a ajuda do rafael em outro fórum. Segue a solução:

 

program Par_ou_impar;
uses crt;
var
A, B :array[1..10] of integer;
I:integer;
begin
{ *** Entrada dos Dados ***}
clrscr;
for I := 1 to 10 do
begin
write('Informe o valor ', I,'= ');readln(A[I]);
end;
{ *** Teste Par ou Ímpar ***}
for I:= 1 to 10 do
if (A[I] mod 2 = 0) then
B[I]:= A[I]* 5
else
B[I]:= A[I]+ 5;
writeln;
{ *** Apresentação das matrizes ***}
for I := 1 to 10 do
writeln(A[I]:2,'   ', B[I]:2 );
writeln;
writeln('Tecle <ENTER> para encerrar: ');
readln;
end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.