Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida pascal RESOLVIDO


ucastro

Pergunta

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

Editado por ucastro
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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;
o erro tá aqui, você não está pegando o valor de a só isso deixa assim e sim de i ou seja ao invés de 2,4,6,8 você está pegando 1,2,3,4,5,6,7,8,9 e 10 entendeu??
for :=1 to 10 do
begin
if (a[I]) mod 2=0 then
B[I]:=A[I]*5
else
B[I]:=A[I]+5;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Rafael!!!

Agora ficou perfeito segue como ficou abaixo.

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.

Editado por ucastro
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...