Kriptosgeek Posted November 4, 2006 at 07:09 PM Report #62097 Posted November 4, 2006 at 07:09 PM 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!
Cypher Posted November 5, 2006 at 04:30 AM Report #62166 Posted November 5, 2006 at 04:30 AM 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!
TheDark Posted November 5, 2006 at 05:18 PM Report #62244 Posted November 5, 2006 at 05:18 PM 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.
Cypher Posted November 6, 2006 at 11:32 AM Report #62393 Posted November 6, 2006 at 11:32 AM 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 ????
TheDark Posted November 6, 2006 at 01:10 PM Report #62407 Posted November 6, 2006 at 01:10 PM 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.
Cypher Posted November 6, 2006 at 01:25 PM Report #62409 Posted November 6, 2006 at 01:25 PM exacto tu se quizeres até podes por tudo numa única linha! Que não fica nada legivel.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now