ferdziu 01.11.05, 20:18 Czy ktos wie jak zrobić tablicę w paskalu o wymiarach powiedzmy 1000 na 1000 bo mi wywala błąd jak wpiszę normalnie tzn: tab:array [1..1000,1..1000] of integer; Tylko proszę jak do początkującego programisty. Odpowiedz Link Obserwuj wątek Podgląd Opublikuj
alsor Re: Tablice w Pascalu 02.11.05, 00:25 Robisz w 16 bitowym paskalu a tam jest ograniczenie rozmiaru tablic do 64KB. 1000*1000*2 to prawie 2000KB. Podziel tą tablicę na kawałki, albo najlepiej przerzuć się na delphi lub inny 32 bitowy system. Odpowiedz Link
alsor Re: Tablice w Pascalu 07.11.05, 17:51 Pewnie tak, ale takich wielkich tablic nigdy się nie deklaruje, zawsze jest inny i lepszy sposób na załatwianie takich rzeczy. Odpowiedz Link
mx-5 Re: Tablice w Pascalu 11.11.05, 22:37 We Free Pascalu taki motyw przejdzie - on jest 32 bitowy ;) Takie tablice owszem deklaruje sie , ale w celach raczej naukowych - fizycy operuja na macierzach milion x milion - tysiac to dla nich pryszcz :D Jak sie ma Cray`e w piwnicach hehe ... A tak poza tym to faktycznie w typowych zastosowaniach tablica dwuwymiarowa 1000 x 1000 to straszne marnotrastow pamieci.Czepiajac sie tak juz to staraj sie pisac tak: const rozmiar=1000; type index=1..rozmiar; tablica=array[index,index]; var a:tablica; To bardzo dobry nawyk- jesli potem przyjdzie Ci ochota zmienic 1000 na np:10 to nie przeprawiasz calego programu tylko zmieniasz rozmiar stalej ;] Pozdr! Odpowiedz Link
alsor Re: Tablice w Pascalu 12.11.05, 17:59 milion razy milion = trylion - ciekaw jestem kto wpisuje ten trylion współczynników. Zakładając 4 bajtowe elementy mamy: 10^12*4 = 10^9*4000 - jest to prawie 4000GB. Jeżeli ta macierz zawiera mniej niż 99.9% zer to wątpię w to, aby istniał taki komputer, który coś tam policzy w sensownym czasie. Jedyna szansa to rozdzielenie obliczeń na tysiące komputerów - ale i to marnie widzę. Dla układu równań liniowych można policzyć czas obliczeń: liczba operacji wynosi ponad: n^3/3, dla n = milion daje to 10^18/3, jedna operacja (tu jest to mnożenie i dodawanie oraz odczyt i zapis do pamięci) niech trwa 10^-9s (miliard na sekundę - pentium 4GHz ma około 10 razy mniej), wtedy: t = 10^18/3*10^-9 = 10^9/3s = 10.5 lat. Odpowiedz Link
mx-5 Re: Tablice w Pascalu 12.11.05, 22:00 Tak wlasnie jest - wykladowca nam opowiadal ;] Na UW maja wlasnie pare Cray`ow ( kosztowaly podobno kupe szmalu ) i one obliczaja takie macierze - oczywiscie milion x milion na milion zdarza sie rzadko, ale takie 100 000 x 100 000 to czesto i sie liczy pare miesiecy ;]] Ale sa to naprawde naukowe zastosowania ;] Wogole to maja tam jeszcze jakis reaktor czasteczek starch sie bac co sie tam czai jeszcze w tych podziemiach UW :>> Odpowiedz Link