Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2389
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Windows 8 Opera

Post28 lip 2012, 15:14

Kod: Zaznacz cały

function suma(a, b : integer) : integer; begin procedure pisz(a : integer); begin writeln(a); end; suma := a+b; pisz(suma); end;
Coś mnie trolujesz to nie działa. Zawsze mi się zdawało, że w pascalu nie ma czegoś takiego jak funkcje zagnieżdżone. Pokaż mi dokładnie gdzie masz napisane, że tak się da i przykład działającego w ten sposób kodu.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post28 lip 2012, 15:40

Nie wiem gdzie tak jest napisane (w mojej głowie :P), ale tutaj masz przykład działającego programu w którym funkcja zawiera w sobie procedurę, napisanego przezemnie na poczekaniu :P

Kod: Zaznacz cały

Program Funkcja; Uses crt; Var a, b : integer; Function suma(a, b : integer) : integer; Procedure Kolor; Begin Textcolor (Green); Textbackground (Yellow); End; Begin suma := a+b; Kolor; Writeln(suma); End; Begin Writeln ('Podaj wartość a: '); Readln (a); Writeln ('Podaj wartość b: '); Readln (b); suma(a,b); End.

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2389
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Windows 8 Opera

Post28 lip 2012, 15:47

Miiiiiiii :3 how amazing. Ale to wszystko nie tłumaczy, dlaczego trzeba pisać najpierw procedury, a potem funkcje, czy odwrotnie i jaki to ma wpływ na dodawanie wartości do tablicy zaraz po begin zamiast w case. I sprawdzę sobie czy da się napisać funkcję w procedurze, bo w sumie nie wiem, kto mi broni tak zrobić w dalszym ciągu.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post28 lip 2012, 15:52

Dlatego piszę się najpierw procedury bo jak później będziesz chciał użyć jakiejś procedury w funkcji to będziesz mógł jej użyć ponieważ Funkcja jest zdefiniowana po procedurze :)
EDIT:
Już wiem skąd wiem że Funkcje mogą zawierać procedury :), ale zapomniałem że na odwrót też może być :(
Na szczęście piszę w zeszycie na lekcji i mam notatki:
Ostatnio zmieniony 28 lip 2012, 16:13 przez TheMediator95, łącznie zmieniany 1 raz.

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2389
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Windows 8 Opera

Post28 lip 2012, 16:12

Ale wywołać funkcje w procedurze i procedurę w funkcji możesz normalnie więc co to za różnica co piszesz wcześniej. Aby nie użyć tworu, który został zadeklarowany po jego użyciu, jedynym wyjątkiem w pascalu, który na to pozwala jest rekurencja.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post28 lip 2012, 16:14

Tak jak poprawiłem post wyżej zapominałem o tym :( A co to jest rekurencja to nie wiem.
I tak lepiej mieć pierwsze Procedury bo wtedy są one globalne i jak chce użyć jej do innej Funkcji to mogę, a nie będę się musiał bawić w procedury lokalne (w funkcji) tysiąc razy.

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2389
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Windows 8 Opera

Post28 lip 2012, 16:35

Yyy to ciebie uczą gdzieś programowania? Po twoich dziwnych problemach to tego jakoś nie widać ^^

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post28 lip 2012, 16:37

Hehe... Dziwnych problemach, nie wiem czy to można nazwać nauką, ale tak chodzę do Technikum Informatycznego :P, a to jest mój największy projekt jaki maiłem do tej pory, a ty ile lat już programujesz?

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2389
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontakt:
    Windows 8 Opera

Post28 lip 2012, 16:39

Ja wiem... od piątej podstawówki z przerwami, głównie hobbistycznie, teraz w liceum na informatyce się rozruszałem, bo się przygotowuję do matury w tym roku.

Bo tak składnie trochę niby znasz, ale brak ci jeszcze takiego "iteracyjnego" myślenia, pewnie nabierzesz z czasem.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post28 lip 2012, 16:48

Ty od piątej podstawówki - widzisz a ja zacząłem programowanie w pierwszej klasie technikum (teraz idę do drugiej) i Pascal jest moim pierwszym językiem programowania (Chyba że HTML chcesz zaliczyć jako język to Pascal byłby drugim). Kur*wa od teraz będę zakładał nowe tematy bo się offtopic robi.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 8 Internet Explorer

Post11 sie 2012, 22:35

OK. Powiem krótko - nie mam zamiaru dalej zmieniać tego programu na masę pętli (Główna przyczyna brak czasu), skończę to co zacząłem bez pętli (Bez pewnych rzeczy które zrobiłbym dzięki pętli). Może kiedyś w odległej przyszłości napiszę ten program od zera i zaimplementuje do niego odpowiednie pętle. Na koniec mam jeszcze tylko jedno pytanie, czy istnieje jakaś procedura predefiniowana z jakiejś biblioteki która przywraca wartości kolorów zmienionych za pomocą procedur "texbackground" i "textcolor"?
P.S. Wszystkim wypowiadającym się tutaj jeszcze raz dziękuje.

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3273
Rejestracja: 01 lip 2010, 11:28
    Series 60 Opera

Post11 sie 2012, 23:47

Przywraca - a na jakie? Nie ma czegoś takiego. Chcesz domyślne kolory konsoli - ustaw przed zakończeniem programu.
There is no cloud. It's just someone else's computer.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 8 Internet Explorer

Post12 sie 2012, 10:30

Czyli nie ma czegoś takiego - szkoda :(
Mogę ustawić przed zakończeniem programu ale np. Windows ma kolory czarny\siwy, a Linux Biały\Czarny więc będę musiał robić dwie wersje tego programu.

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3273
Rejestracja: 01 lip 2010, 11:28
    Macintosh Opera

Post12 sie 2012, 10:46

To zrób wykrywanie systemu na podstawie obecności jakiegoś pliku.
There is no cloud. It's just someone else's computer.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontakt:
    Windows 7 Opera

Post12 sie 2012, 11:36

Dobra, już bez kombinacji :przestraszony:

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości