Jump to content

Recommended Posts

Posted

Hi!

Eu estava a estudar uma apostila de lógica de programação e reparei que falava no in, e eu nunca o tinha utilizado e resolvi utilizar só mesmo pelo conhecimento.

E depois de ter usado o Google escrevi o seguinte codigo:

Programa P1;
Variáveis a:vetor[1..200] de inteiro;
    n:inteiro;
início
  Para n:=1 até 200 faça
  início
  Randomize;
  a[n]:=Random (200);
  Fim;
n:=15;
Se (n in [1..200])
então Write ('O 15 foi gerado');

  Leia;
Fim.

Ou se quiserem já em Pascal:

Program P1;
var a:array[1..200] of integer;
    n:integer;
begin
  for n:=1 To 200 do
  begin
  Randomize;
  a[n]:=Random (200);
  end;
n:=15;
if (n in [1..200])
then Write ('O 15 foi gerado');

  Readln;
end.

A minha duvida é: no parte do IF eu coloquei n in [i..200] , e se eu tivesse dois vectores que tivessem o mesmo comprimento?

Ja exprimentei criar 2 vectores e no if tentei distinguilos mas não consegui!

E pior ainda! atribuir a todos os elementos do vector o valor zero (0) e o programa escreve a mensagem que so devia escrever se o vecto a tivesse o valor de n que é 15.

Nota:Espero que esta duvida não seja fruto de alguma distracção minha!  😛

Melhor browser game do Mundo!---> Travian Regista-te!

Posted
A minha duvida é: no parte do IF eu coloquei n in [i..200] , e se eu tivesse dois vectores que tivessem o mesmo comprimento?

Ja exprimentei criar 2 vectores e no if tentei distinguilos mas não consegui!

Eu não sei se é isto que pretendes mas aqui vai:

if (n in [0..100]) and (n in [100..200]) then

.

.

E pior ainda! atribuir a todos os elementos do vector o valor zero (0) e o programa escreve a mensagem que so devia escrever se o vecto a tivesse o valor de n que é 15.

Pois é obvio se tu no teu codigo dizes que o n=15 logo quando vais testar mostra sempre a mensagem pois está realmento o 15 entre 0 e 200.

Referente ao teu programa tens dois erros!

1.referente a Identação

2.random

1. e 2.

 

Program P1;
var a:array[1..200] of integer;
      n:integer;
begin

  Randomize;  

  for n:=1 To 200 do
    a[n]:=Random (200);
  n:=15;
  
  if (n in [1..200]) then
    Write ('O 15 foi gerado');

  Readln;
end.

Como podes ver é assim a identação correcta, na estrutura for não é necessário o begin e o end, pois só existe uma instrução a ser executada.

O random é simplesmete para o pontador de numeros aleatório não começar sempre no mesmo sitio! ou seja sempre no mesmo numero inicial! (para isso o random faz uma contas com o relogio do sistema, reduzindo assim a probabilidade de acertar num igual numero inicial!

Posted

Pelo que percebi desta parte

E pior ainda! atribuir a todos os elementos do vector o valor zero (0) e o programa escreve a mensagem que so devia escrever se o vecto a tivesse o valor de n que é 15.

só tens que trocar a linha
if (n in [1..200])

por

if (i[n] in [1..200])

que é a diferença entre perguntares "o valor de n está entre 1 e 200?" e "o valor que está no índice n de i está entre 1 e 200?". Desculpa se estou a tentar explicar demais, mas é só para ilustrar o que está a acontecer.

Pois é obvio se tu no teu codigo dizes que o n=15 logo quando vais testar mostra sempre a mensagem pois está realmento o 15 entre 0 e 200.

O que é óbvio para ti pode não ser para os outros.

Referente ao teu programa tens dois erros!

1.referente a Identação

Não é um erro, é uma falha de desenho 😉

O random é simplesmete para o pontador de numeros aleatório não começar sempre no mesmo sitio! ou seja sempre no mesmo numero inicial! (para isso o random faz uma contas com o relogio do sistema, reduzindo assim a probabilidade de acertar num igual numero inicial!

Suponho que querias dizer o randomize...

Desaparecido.

Posted

Suponho que querias dizer o randomize...

Não é um erro, é uma falha de desenho

y exacto uma pequena lacuna  ? ...

não é um erro ??? não consegues interpretar que a nivel de ciclos quer de raciocio, quer dizer consegues até consegues só que demoras mais tempo  😄

não é um erro , isso é verdade mas tambem vais dizer que eu não tenho razão, quando aprendes "bem" aprendes com identação  senão não existia a palavra identação no mundo da programação, vou te dar um exemplo no visual c++ porque é que existe a ferramenta para a identação ???? 

Posted

Sim, tens razão que com indentação a leitura do código é muito mais fácil e agradável, mas a falta dela não cria erros, nem de sintaxe nem de lógica. A não ser que estejas a programar em python... :👍

Desaparecido.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.