x-kom hosting

Tablice W Pascalu

Quentin1
utworzono
utworzono

Napisałem taki oto kod programu w IDE:

pascalllvc9.png

W KŚ Ekspert pisze, żeby odwołać się do tablicy należy wpisać jej nazwę (np. pookyfan) i w nawiasach podać indeks elementu do którego chcemy się odwołać. Cóż, zrobiłem tak i gdy po skompilowaniu uruchomię program nic się nie dzieje... Czy ktoś mógłby mi jaśniej wytłumaczyć do czego służą te tablice? Aha - i co to są te tablice wielowymiarowe? Z góry, dzięki z pomoc ;)

marcinz17
komentarz
komentarz
Napisałem taki oto kod programu w IDE:
pascalllvc9.png

W KŚ Ekspert pisze, żeby odwołać się do tablicy należy wpisać jej nazwę (np. pookyfan) i w nawiasach podać indeks elementu do którego chcemy się odwołać. Cóż, zrobiłem tak i gdy po skompilowaniu uruchomię program nic się nie dzieje... Czy ktoś mógłby mi jaśniej wytłumaczyć do czego służą te tablice? Aha - i co to są te tablice wielowymiarowe? Z góry, dzięki z pomoc ;)

Żeby coś Ci wyświetliło musisz najpierw coś do tej tablicy wprowadzić np tab[1]:=4; i w tedy writeln(tab[1]);

Tablice wielowymiarowe mogą służyć na przykład do działań na macierzach

A tablice służą do przechowywania większych ilości danych, rekordów ogólnie ułatwiają życie:)

Gość
komentarz
komentarz

przed end. napisz readln; !

readln;

end.

Quentin1
komentarz
komentarz

mistrzu, to pobiera dane od usera podobno. Jak to dam to będzie czekało na coś (xD) i program się nie zamknie po wykonaniu czynności - mam rację :) ?

grucha
komentarz
komentarz

1. Ten program nie pobiera danych od użytkownika, ani sam program nie wypełnia jakoś tej tablicy danymi.

2. Twój program nie wyświetli żadnej wartości tablicy, ponieważ odwołanie do tablicy umieściłeś w apostrofach.

Możesz napisać sobie takie coś:

Program Tablice;Uses CRT;vartab:array [0..100] of integer;i:integer;begin Randomize; for i:=0 to 100 do  begin   tab[i]:=Random(1000);  end; for i:=100 downto 0 do begin WriteLn('Tablica o indeksie ',i,' :',tab[i]); end;Readln;end.
luq
komentarz
komentarz
mistrzu, to pobiera dane od usera podobno. Jak to dam to będzie czekało na coś (xD) i program się nie zamknie po wykonaniu czynności - mam rację :) ?

Na końcu każdego programu daje się readln; po to aby wyłączyć program dopiero po naciśnięciu jakiegoś klawisza. Bez tego program ci tylko mrugnie i sie wyłączy, nie zobaczysz jego wyniku. Pyzatym jak już napisałeś pobiera dane od użytkownika, oczywiście gy jest zapisany w ten sposób readln(a); .

Quentin1
komentarz
komentarz

Hmm, a mógłbym na przykład dać:

var pookyfan : array[1..100] of String

? Chyba tak, ale czym by się to różniło od Integera ?

luq
komentarz
komentarz
Hmm, a mógłbym na przykład dać:
var pookyfan : array[1..100] of String

? Chyba tak, ale czym by się to różniło od Integera ?

String służy do znaków (tekstu), natomiast Integer do liczb. W przykładzie gruch`y program sam losuje liczby i wpisuje je do tablicy, następnie je wypisuje.Chodź jeśli napisałbyś zamiast Integer String to chyba by zadziałało (nie sprawdzałem), wtedy liczby były by interpretowane jak znaki. Spróbuj.

Quentin1
komentarz
komentarz

luq - działa :) Czyli tak samo jak w zmiennych: Integer, Real, Char, Word i Byte - liczby, a String do znaków ?

luq
komentarz
komentarz

Dokładniej

Integer - liczby

Real - liczby (większy zakres)

Byte - liczby (mniejszy zakres, od 0 do 255)

Char - znak, litera

String - ciąg znaków

Word - krótki ciąg (slowo)

jeszcze taką podstawową jest

boolean - który przyjmuje wartość true lub false.

po prostu w:

var pookyfan : array[1..100] of String

String oznacza jakiego typy zmienne będą przechowywane w tablicy.

grucha
komentarz
komentarz
Na końcu każdego programu daje się readln; po to aby wyłączyć program dopiero po naciśnięciu jakiegoś klawisza.

Dokładnie to po naciśnięciu klawisza Enter. Aby program kończył działanie po naciśnięciu dowolnego klawisza, trzeba zrobić coś takiego:

Program prg;Uses crt;var {część deklaracyjna}begin {instrukcje} repeat  until KeyPressed;end.
Czyli tak samo jak w zmiennych: Integer, Real, Char, Word i Byte - liczby, a String do znaków ?

Tablice to nic innego jak zmienne. Jeżeli potrzebujesz więcej zmiennych tego samego typu, to możesz stosować tablice. Na tablicach możesz znacznie łatwiej wykonywać operacje na zbiorze danych, tak, że mają one bardzo duże zastosowanie, i lepiej je dobrze poznać :)

Dokładniej

Integer - liczby

Real - liczby (większy zakres)

No sorry lug, ale za bardzo dokładniej to nie było :P Warto dodać:

Integer- tylko liczby całkowite

Real- liczby rzeczywiste (zmiennoprzecinkowe) np. 2.1, 2152.1251501, 1.8213333333333E+0003

:)

luq
komentarz
komentarz
No sorry lug, ale za bardzo dokładniej to nie było :P

luq :D.

Dałem tylko taki ogólny zarys. ;)

PS. Dlaczego w każdym programie deklarujesz moduł CRT, nawet gdy z niego nie korzystasz w tym programie??

Bo chyba KeyPressed nie potrzebuje crt, tak samo jak Randomize.

Chyba że się mylę.

onna
komentarz
komentarz
Dlaczego w każdym programie deklarujesz moduł CRT, nawet gdy z niego nie korzystasz w tym programie??

Ja również zawsze deklaruje uses crt gdyż nie znam programu w którym nie był by on potrzebny (mowa o tych zaawansowanych programach).

grucha
komentarz
komentarz
Bo chyba KeyPressed nie potrzebuje crt, tak samo jak Randomize

Randomize akurat nie potrzebuje crt, ale KeyPressed potrzebuje. Chociaż w 100% pewny nie mogę być, bo w czystym pascalu nie programowałem już jakieś 2 lata, więc trochę rzeczy już mi wyleciało z głowy. Teraz jedynie delphi i najwyżej aplikacje konsolowe :]

luq biggrin.gif.

Sorry za pomyłkę, już późno było :)

luq
komentarz
komentarz
Ja również zawsze deklaruje uses crt gdyż nie znam programu w którym nie był by on potrzebny (mowa o tych zaawansowanych programach).

Hmm. A co można wpisać poza:

clrscr (nie wiem czy to dobrze napisałem, ale chyba wiadomo o co chodzi)

sound

goto(x,y)

jeszcze zmiana kolorków tekstu i background`a

a i jeszcze delay

Quentin1
komentarz
komentarz

luq, chodzi Ci o to co jeszcze obsługuje

Uses CRT;

?

luq
komentarz
komentarz
luq, chodzi Ci o to co jeszcze obsługuje
Uses CRT;

?

Dokładnie.

Quentin1
komentarz
komentarz

luq - dużo innych rzeczy, np. :)

ClrEol - Czyszczenie bieżącej linii,

NoSound - Przerywa wydawanie dźwięku,

WhereX - Zwraca współrzędną x położenia kursora,

WhereY - Zwraca współrzędną y położenia kursora.

To by było chyba tyle :D

luq
komentarz
komentarz

No wiesz ale to są takie funkcje co bardziej poprawiające wygląd programu niż jakieś jego możliwości, więc pytam do czego w zaawansowanych programach deklarować crt. (Jedynie clrscr wydaje mi się przydatny, bo wątpię że ktoś używa WhereX)

Chyba że się ma nawyk dbania o wygląd

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.