• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

koelho_807

[ajuda] Procedure -> randomize

4 mensagens neste tópico

Boas pessoal vi este forum pela net e pensei ser interesante!! E como agora ando a aprender o "basico" da programaçao, registei-me ;)

tava de volta de um prgrama que me mandaram fazer e so me da erros...... fiz um primeiro mas o prof mandou me "simplificar" utilizando o procedure ou entao function! nem sei bem kual usar....

-> o Programa inicial é este:

program vectores;
uses crt;
Var
  a, b, c, d: array [1..10] of integer;
  i, aux, maior: integer;

Begin
  clrscr;
  randomize;
  for i := 1 to 10 do
  begin
     a[i] := random(98)+1;
     b[i] := random(98)+1;
  end;
  write ('A= [');
  for i:= 1 to 9 do write (a[i]:3,',');
  writeln (a[10]:3,']');
  writeln;
  write ('B= [');
  for i := 1 to 9 do write (b[i]:3,',');
  writeln (b[10]:3,']');
  writeln;

  for i:= 1 to 10 do c[i]:= A[i] + B[i];
  write ('A + B = [');

  for i:= 1 to 9 do write (c[i]:4,',');
  writeln (c[10]:4,']');
  maior:= a[1];
  writeln;
  maior:= A [1];
  aux:= 1;
  for i := 2 to 10 do
  if a[i]> maior then
  begin
     maior:= a[i];
     aux:= i;
  end;
  writeln ('O n£mero ',maior,' ‚ o maior no vector A e est  na posi‡Æo ',aux);
  writeln;

  for i := 1 to 10 do
  d[i] := b[11-i];
  write ('O inverso de B = [');
  for i := 1 to 9 do write (d[i]:3,',');
  writeln (d[10]:3,']');
  readkey;
end.

de seguida fiz este:

program vectores;
uses crt;
Var
  a, b, c, d: array [1..10] of integer;
  i, aux, maior: integer;

procedure fors (x: string; num: integer);
VAR
  y: integer;


  Begin
  write(x, ':= [');
  For y:= 1 to 9 do write (num[y], ' ,');
  write(num[10] , ']');
end;

Begin
  clrscr;
  randomize;
  for i := 1 to 10 do
  begin
     a[i] := random(98)+1;
     b[i] := random(98)+1;
  end;

  // escrever A
  fors ('A', a);
  writeln;

  // escrever B
  fors ('B', b);
  writeln;

  // A+B
  for i:= 1 to 10 do c[i]:= A[i] + B[i];
  write ('A + B = [');
  fors ('A+B=[', c);

  // maior de A
  maior:= a[1];
  writeln;
  maior:= A [1];
  aux:= 1;
  for i := 2 to 10 do
  if a[i]> maior then
  begin
     maior:= a[i];
     aux:= i;
  end;
  writeln ('O n£mero ',maior,' ‚ o maior no vector A e est  na posi‡Æo ',aux);
  writeln;

  // B invertido
  for i := 1 to 10 do
  d[i] := b[11-i];
  write ('O inverso de B = [');
  for i := 1 to 9 do write (d[i]:3,',');
  writeln (d[10]:3,']');
  readkey;
end.

mas nao me saiu muito bem (Só tem erros e nao sei como corrigir) e como voces tem mais anos disto espero ke alguem me ajude :thumbsup: :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Deves usar o Function quando queres receber algum dado de volta, caso contrario usas o Procedure.

   for i := 1 to 10 do
   begin
      a := random(98)+1;
      b := random(98)+1;
   end;

Nao estou a perceber para k eh este FOR, vai fazer o FOR 10 vezes mas o A e o B vao ficar com o valor atribuido no 10º FOR,

para que sao os outros ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipo nao sei se tentas te executar o prgrama..........

mas o k eo program afaz é:

- uma lista A que contem 10 numeros gerados pelo PC

- uma lista B que contem 10 numeros gerados pelo PC

- Soma cada numero "A + B", por ordem: O 1º Nº da lista A com o 1º Nº da lista B e 2º  Nº da lista Ac om 2º Nº da lista B, etc

- Indica o maior numero da lista a e a sua posiçao!

- E volta a escrever a lista B mas invertida!

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

Ja conseegui fazer o programa uzando o Type. EX: Type vectnum = array [1..10] of integer;

e ta a funkar obrigado na mesma pela ajuda :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Entao esses FOR devia estar assim :

for i := 0 to 9 do
begin
   a[i] := random(98)+1;
   b[i] := random(98)+1;
end;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora