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

lolasher

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

Post28 lip 2012, 16: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, 10:35
    Windows 7 Opera
Kontakt:

Post28 lip 2012, 16: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: 2432
Rejestracja: 10 paź 2008, 19:28
Lokalizacja: Zadupie pod Siedlcami ;)
    Windows 8 Opera

Post28 lip 2012, 16: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, 10:35
    Windows 7 Opera
Kontakt:

Post28 lip 2012, 16: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, 17:13 przez TheMediator95, łącznie zmieniany 1 raz.

Awatar użytkownika

lolasher

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

Post28 lip 2012, 17: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, 10:35
    Windows 7 Opera
Kontakt:

Post28 lip 2012, 17: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: 2432
Rejestracja: 10 paź 2008, 19:28
Lokalizacja: Zadupie pod Siedlcami ;)
    Windows 8 Opera

Post28 lip 2012, 17: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, 10:35
    Windows 7 Opera
Kontakt:

Post28 lip 2012, 17: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: 2432
Rejestracja: 10 paź 2008, 19:28
Lokalizacja: Zadupie pod Siedlcami ;)
    Windows 8 Opera

Post28 lip 2012, 17: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, 10:35
    Windows 7 Opera
Kontakt:

Post28 lip 2012, 17: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, 10:35
    Windows 8 Internet Explorer
Kontakt:

Post11 sie 2012, 23: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: 3276
Rejestracja: 01 lip 2010, 12:28
    unknown Opera Mini

Post12 sie 2012, 0: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, 10:35
    Windows 8 Internet Explorer
Kontakt:

Post12 sie 2012, 11: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: 3276
Rejestracja: 01 lip 2010, 12:28
    Mac OS X Opera

Post12 sie 2012, 11: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, 10:35
    Windows 7 Opera
Kontakt:

Post12 sie 2012, 12: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 5 gości