fresh_matt Napisano Styczeń 25, 2011 Zgłoś Share Napisano Styczeń 25, 2011 Witam serdecznie, Mój problem polega na wylosowaniu pięciu liczb ze z góry zadeklarowanej konkretnymi wartościami tablicy, w dodatku wylosowane liczby nie powinny sie powtarzać. Wiem, że zadanie nie jest skomplikowane, ale widocznie gorączka nie pozwala mi myśleć, dlatego program nie działa tak jak powinien. Będę bardzo wdzięczny za pomoc. Pozdrawiam program Project1; {$APPTYPE CONSOLE} uses SysUtils; const tab: array [0..23] of integer = (2,34,54,6,37,12,11,18,20,21,29,99,44,61,55,51,22,9,4,78,3,49,16,83); var i:integer; begin i:=0; repeat random(tab[i]); writeln(i); i:=i+1; until i>=5; readln; end. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 25, 2011 Zgłoś Share Napisano Styczeń 25, 2011 random powinien losowac index z zakresu 0..dlugosc tablicy a nie tak jak teraz 0..wartosc z tablicy o indexie i. Po wyl9osowaniu wartosci z tablicy trzeba ja usunac, (najlepiej skopiowac reszte tablicy od tego indexu o jeden w "lewo") Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
fresh_matt Napisano Styczeń 25, 2011 Autor Zgłoś Share Napisano Styczeń 25, 2011 Nie wiem czy dobrze to rozumiem, wiem już, że to musi być wielkość tablicy, czyli: random(tab[23]); writeln(tab[i]); ale zgodnie z tym co jest zakodowane program wypisał mi 5 kolejnych wartości indexów od 1 do 5, a nie losował. Mógłbyś mi pokazać co w tym kodzie powinienem zmienić? Naprawdę nie wychodzi mi dzisiaj algorytmiczne myślenie. Link do komentarza Udostępnij na innych stronach More sharing options...
fresh_matt Napisano Styczeń 25, 2011 Autor Zgłoś Share Napisano Styczeń 25, 2011 Chyba zaczyna to do mnie docierać, widzę, że to naprawdę są podstawy podstaw i przepraszam, że zawracam Wam tym głowy. Stworzyłem już coś takiego i programik rzeczywiście losuje liczby aczkolwiek oprócz tych, ktore są zainicjowane w tablicy pojawiają sie inne... mógłby mi ktoś wytłumaczyć dlaczego tak jest? const tab: array [0..23] of integer = (2,34,54,6,37,12,11,18,20,21,29,99,44,61,55,51,22,9,4,78,3,49,16,83); var i,a:integer; begin i:=0; repeat a:=0; randomize; a:=random(tab[23]); writeln(a); i:=i+1; until i>=5; Link do komentarza Udostępnij na innych stronach More sharing options...
olesio Napisano Styczeń 25, 2011 Zgłoś Share Napisano Styczeń 25, 2011 Nie wiem jakiego efektu oczekujesz, ale kod który wkleileś wylosuje liczbę z zakresu od 0 do 82 włącznie, wypisze ją na ekranie, a operację tę powtórzy pięć razy. A i inicjowanie zmiennej a przez ustawienie zera jest niepotrzebne. Pozdrawiam: olesio Link do komentarza Udostępnij na innych stronach More sharing options...
jozekkg Napisano Styczeń 26, 2011 Zgłoś Share Napisano Styczeń 26, 2011 fresh_mat Nie random(tab[23]); writeln(a); ORZąĆqB&ćF#2GWFwf6&RŚśb7?6\"7&vGŚć7FćĆ7Ś&[w7K6\0Ś6&ćF&Ć6R6VĆVVFvV\"Ś7VvW'VŚRF7FW\"W7WvF&Ć7wĆ6vĆ7Ś.ĆRwFVGŚśG&ŚVW67ŚVćbŚ&W2Ć6vć7/6'V76ŚGŚR&ćF#2w&FVĆF%ś Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Styczeń 26, 2011 Zgłoś Share Napisano Styczeń 26, 2011 Ja bym zamiast jakiegoś bajerowania z przesuwaniem tablicy itp. zastosował jakąś strukturę dynamiczną, np. liste, i po prostu bym w przypadku wylosowania danego elementu, po prostu ściągał go z tej struktury (pop). Link do komentarza Udostępnij na innych stronach More sharing options...
jozekkg Napisano Styczeń 26, 2011 Zgłoś Share Napisano Styczeń 26, 2011 Można i tak, tylko dynamiczna lista to już wyższa szkoła jazdy dla początkującego programisty. Poza tym fresh_matt pewnie dostał odgórne wytyczne, że ma to zrobić wykorzystując tablice. Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Styczeń 26, 2011 Zgłoś Share Napisano Styczeń 26, 2011 Można i tak, tylko dynamiczna lista to już wyższa szkoła jazdy dla początkującego programisty. Poza tym fresh_matt pewnie dostał odgórne wytyczne, że ma to zrobić wykorzystując tablice. A Delphi nie ma gotowego mechanizmu do struktur dynamicznych? Np. w Python'ie mogę sobie zadeklarować tablicę, a tablice w Python'ie są zadeklarowane jako lista. KODtab=[4,2,6,7,10] tab.pop(1) Wiem, że Python to język wyższego poziomu, ale np. C++ ma w swojej bibliotece standardowej pewne konstrukcje pozwalające na łatwiejszą implementację list, więc w Delphi też powinien mieć, skoro jest lepszy od C++ Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 27, 2011 Zgłoś Share Napisano Styczeń 27, 2011 paskal ma tyle wspolnego z delphi co C z C++ Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.