Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.08.08
Prihlásený: 28.10.11
Príspevky: 152
Témy: 42
Príspevok NapísalOffline : 14.08.2009 18:34

Caute, pokusal som sa naplnit pole nahodnymi cislami, pri kompilacii mi ukaze, ze prebehla uspesne, ale ked to spustim, tak naskoci iba cierna obrazovka a nic sa nedeje, pritom som dal pole vypisat. Skuste najst chybu. :oops:

Kód:
uses crt;
var a:array[1..10] of integer;
    i,s:integer;
    nebolo: boolean;
begin
clrscr;
randomize;


i:=1;
a[i]:= random(21) + 11;

for i:=2 to 10 do
begin

  repeat
    a[i] := random(21) + 11;

    nebolo:=true;
    for s:=1 to 10 do
    begin
      if a[s] = a[i] then
        nebolo:=false;
    end;
  until nebolo=true;

end;

for i:=1 to 10 do write(a[i]);

readln;
end.


Offline

Skúsený užívateľ
Skúsený užívateľ
pascal - pole

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 14.08.2009 19:58

Máš zle riešené nastavenie premennej "nebolo" a program sa do nekonečna opakuje.

Kód:
for i:=2 to 10 do  {* i=2 začína sa porovnávať druhý prvok poľa *}

...

for s:=1 to 10 do
  begin
  if a[s] = a[i] then nebolo:=false;

{* pri prvom prejdení slučky sa nestane nič nekalé, pri druhom prejdení sa bude s=i (s=2) a teda aj a[s]=a[i] a potom "nebolo" bude false. Nikde ďalej sa potom neprepíše na true, takže vnikne nekonečná slučka *}


Riešenie ti nenapíšem, pretože jednak neviem, čo to má robiť a ďalej si myslím, že celý algoritmus je troška zvláštny. Skús popísať svoj problém.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.08.08
Prihlásený: 28.10.11
Príspevky: 152
Témy: 42
Príspevok Napísal autor témyOffline : 14.08.2009 20:15

ten algoritmus porovnava hodnoty, ci sa v poli nenachadza rovnake cislo...preco by mala vzniknut nekonecna slucka, ved tam je cyklus repeat..until...a ked sa mi do danej priehradky pola vygeneruje taka hodnota, ktora sa v inej priehradke pola nenachadza, tak prem. nebolo bude nastavena na true, a cyklus tympadom konci.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 14.08.2009 20:25

Skus zmenit riadok
Kód:
a[i] := random(21) + 11;

na
Kód:
a[i] := random(1000) + 11;

(alebo tam daj lubovolnu vacsiu hodnotu).
Znie to sice dost nepravdepodobne, ale mozno sa v nejakom kroku generuje stale taka hodnota, ktora sa uz v poli nachadza(vygeneruje sa teda potom nova hodnota, ta tam je ale znova atd.) Generoval si tie cisla totiz z dost maleho intervalu (<11, 31>). Nemam teraz bohuzial kompilator, takze to skusit nemozem. Ostatne vyzera byt v poriadku...







_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Skúsený užívateľ
Skúsený užívateľ
pascal - pole

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 14.08.2009 20:39

Skús si ten program odkrokovať, keď ti robí problém prejsť ho očami a sleduj premennú i a s, keď mi neveríš ... :roll:

Rozšírenie poľa ti nepomôže.


Naposledy upravil Fico dňa 14.08.2009 20:40, celkovo upravené 1

Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.08.08
Prihlásený: 28.10.11
Príspevky: 152
Témy: 42
Príspevok Napísal autor témyOffline : 14.08.2009 20:40

ked som to zmenil na 1000, to tiez nepomohlo. random(21) + 11 neznamena ze sa generuju hodnoty z int. <11, 20> ? Ak to tak je, tak to vychadza na 10 nahodnych hodnot, preto som dal aj 10 prvkove pole.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.08.08
Prihlásený: 28.10.11
Príspevky: 152
Témy: 42
Príspevok Napísal autor témyOffline : 14.08.2009 22:26

fico: nie zeby som ti neveril, ale nevidel som tu chybu, fakt som ju nemohol najst, konecne to uz vidim, dost hlupa chyba :oops:

a este sa chcem spytat, ze ked som mal random(21) + 11, tak z akeho int. to generuje hodnoty, z <11, 20>, alebo ako sa to berie ?


Offline

Skúsený užívateľ
Skúsený užívateľ
pascal - pole

Registrovaný: 11.01.09
Prihlásený: 28.03.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 15.08.2009 9:38

random(21) -- <0, 20>
random(21) + 11 -- <11, 31>

Vysvetlenie: Predstav si, že sa ti v prvom príklade vygeneruje najmenšie číslo 0. Následne k nemu pripočítaš jedenásť, čiže výsledok je 11. Potom ak sa ti vygeneruje najväčšie číslo 20 a k nemu znova prirátaš jedenásť, dostaneš 31.

(Ak chceš generovať číslo z nejakého intervalu, napríklad z <11, 20> , do funkcie random daj počet prvkov v intevale -> random(10) a pripočítaj prvý prvok množiny -> random(10) + 11 .


Naposledy upravil Fico dňa 15.08.2009 9:50, celkovo upravené 2

Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.08.08
Prihlásený: 28.10.11
Príspevky: 152
Témy: 42
Príspevok Napísal autor témyOffline : 15.08.2009 9:44

ok, diq...


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. pomoc pascal pole

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Assembler, C, C++, Pascal, Java

31

3495

31.01.2009 11:24

neutronmind Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal pole - do utriedenej postupnosti vlozte x

v Assembler, C, C++, Pascal, Java

1

349

06.02.2011 17:06

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Free Pascal a Turbo Pascal

v Assembler, C, C++, Pascal, Java

0

381

19.12.2014 13:18

Styracoz Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. POLE

v Assembler, C, C++, Pascal, Java

10

1493

18.11.2006 10:07

audiotrack Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. raid pole

v Pevné disky a radiče

23

2403

09.07.2008 1:15

Pegas099 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Schovaj pole

v JavaScript, VBScript, Ajax

2

278

05.02.2013 20:32

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. elmag. pole

v Ostatné

3

270

16.09.2014 14:47

logarytmus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dynamicke pole..

v PHP, ASP

3

414

28.09.2011 22:56

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. textove pole

v Redakčné systémy

4

767

04.01.2011 12:22

prohibit Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pole stringov

v Assembler, C, C++, Pascal, Java

2

638

15.11.2012 21:14

Denco1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. textove pole

v JavaScript, VBScript, Ajax

5

577

20.06.2009 15:38

Snacker Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Textové pole

v HTML, XHTML, XML, CSS

2

508

13.09.2012 15:16

janosihelsky Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. RAID pole

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Pevné disky a radiče

54

6422

10.01.2007 20:10

ertin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Dvojrozmerne pole

v Delphi, Visual Basic

2

727

22.01.2013 22:50

Gregi555 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viacrozmerne pole

v PHP, ASP

3

567

07.12.2010 16:41

venom2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [VYRIESENE] ereg, pole

v PHP, ASP

2

505

20.03.2009 15:14

zaciatocnik Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra