sfinkss Opublikowano 14 Marca 2010 Udostępnij Opublikowano 14 Marca 2010 przerobiłem program zamieniajacy dec na dowolny sys. liczbowy. jednak wywala mi błąd (stała S) GML Program zamiana; uses crt; const S='0123456789ABCDEFGHIJKLMNOPQRTSUWXYZ'; var wynik:string; naco,co:integer; pyt:char; label poczatek, koniec,pytanie; begin wynik:=''; repeat poczatek: clrscr; gotoxy(20,14); textcolor(yellow); write('Na jaki system liczbowy chcesz zamienic (maksymalnie 36): '); readln(naco); until(naco>=2) and (naco<=36); textcolor(red); write('podaj jakas liczbe dziesietna, kt chcesz zamienic: '); readln(co); repeat wynik:=S[co mod naco+1] + wynik; co:=co div naco; until co=0; textcolor(green); writeln('Twoja liczba to: ',wynik); delay(1000); gotoxy(20,31); textcolor(white); readkey:=pyt; pytanie: writeln('Chcesz policzyc jeszcze raz? t/n '); if pyt='t' then goto poczatek; if pyt='n' then goto koniec; else write('blad') and goto pytanie; koniec: clrscr; gotoxy(20,14); textcolor(green); Write('Program '); delay(300); textcolor(blue); write('napisal '); delay(300); textcolor(white); write('pan '); delay(300); textcolor(yellow); write('Graszk '); delay(150); textcolor(green); write(' :) '); readkey; end. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 14 Marca 2010 Udostępnij Opublikowano 14 Marca 2010 może const nazwa-zmiennej : typ = wartość-początkowa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 14 Marca 2010 Autor Udostępnij Opublikowano 14 Marca 2010 kurcze.. ale jak.. cos takiego? S:char='0123456789ABCDEFGHIJKLMNOPQRTSUWXYZ'; ? ale tak to nie moze byc. ale w orgyinale było tak SYSTEM='0123456789ABCDEFGHIJKLMNOPQRTSUWXYZ'; i tam dalej tez w programie, ale jak jest tak to wyskakuje ze zmienna jest zdublowana. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 14 Marca 2010 Udostępnij Opublikowano 14 Marca 2010 Ja bym Cię prosił o podanie treści błedu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 15 Marca 2010 Autor Udostępnij Opublikowano 15 Marca 2010 wyskakuje przed tą tablicą S[..... ] a treść " invalid qualifier" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 20 Marca 2010 Autor Udostępnij Opublikowano 20 Marca 2010 nikt nie ma pomysłu?;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kamilek Opublikowano 21 Marca 2010 Udostępnij Opublikowano 21 Marca 2010 A moze wystarczy dac := ? ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 21 Marca 2010 Udostępnij Opublikowano 21 Marca 2010 Niestety składnia Pascala jest dla mnie powalona ; ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 21 Marca 2010 Udostępnij Opublikowano 21 Marca 2010 Stała jest dobrze zadeklarowana i przy deklarowaniu stałych nie używa się żadnego := tylko =. Błędy są w poniższych linijkach: readkey:=pyt; Dlaczego do funkcji przypisujesz zmienną to ja nie wiem. Jak już to: pyt:=readkey; Następne co zauważyłem: if pyt='n' then goto koniec; else write('blad') and goto pytanie; Nie daje się średnika, gdy chcesz dać do warunku ELSE. Poza tym - co to do jasnej cholery jest "write(...) and ..."?! Masz zerowe pojęcie o Pascalu. Prawidłowo: if pyt='n' then goto koniec else begin write('blad'); goto pytanie; end; A czemu to wszystko zrobiłeś na labelach to jest dla mnie wielką zagadką. Szczerze mówiąc, pierwszy raz widzę, żeby ktoś używał tego. Poza tym, ten program jest pełen różnych błędów. Do tego, momentami nie wiem co chciałeś osiągnąć, bo czytelność kodu jest zerowa, przez to że wcięcia zrobiłeś w cały świat. Przerobiłem ten kod na ludzko wyglądający, zrobiony tradycyjną metodą (bez labelów i goto). Wywaliłem też wszelkie ubajerowania graficzne, jak chcesz to sobie je dodaj potem. Program zamiana; uses crt; const S='0123456789ABCDEFGHIJKLMNOPQRTSUWXYZ'; var wynik:string; naco,co:integer; pyt:char; wyjsc:boolean; begin wyjsc:=false; repeat wynik:=''; clrscr; repeat write('Na jaki system liczbowy chcesz zamienic (maksymalnie 36): '); readln(naco); until(naco>=2) and (naco<=36); writeln('Podaj liczbe dziesietna, ktora chcesz zamienic: '); readln(co); repeat wynik:=S[co mod naco+1] + wynik; co:=co div naco; until co=0; writeln('Twoja liczba to: ',wynik); repeat writeln('Chcesz policzyc jeszcze raz? t/n '); pyt:=readkey; if pyt='t' then wyjsc:=false; if pyt='n' then wyjsc:=true; until (pyt = 't') or (pyt = 'n'); until wyjsc; end. Kod jest teraz o wiele krótszy i czytelny dla każdego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pieter Opublikowano 22 Marca 2010 Udostępnij Opublikowano 22 Marca 2010 marmot, że też Ci się chciało, ja dawno wiedziałem co z tym jest nie tak, ale nie pisałem bo nie było sensu naprawiać kogoś głupoty i zerowej wiedzy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 22 Marca 2010 Administratorzy Udostępnij Opublikowano 22 Marca 2010 A ja uważam, że warto. Od tego jesteśmy. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 22 Marca 2010 Udostępnij Opublikowano 22 Marca 2010 pieter, dla kogos kto nie zna składni pascala nie jest to oczywiste. :S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 22 Marca 2010 Autor Udostępnij Opublikowano 22 Marca 2010 doceniam odkryciie mojego zerowego pojęcia o pascalu, no chociaz az takie 'zerowe' nie jest. ;p i doceniam prace marmota, ale dalej mi wywala błąd w tym miejscu GML wynik:=S[co mod naco+1] + wynik; tresc błędu "invalid qualifier " Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marmot Opublikowano 23 Marca 2010 Udostępnij Opublikowano 23 Marca 2010 Dziwne, we Free Pascalu mi się skompilowało bez problemu. Z jakiego kompilatora korzystasz? Bo jak z Borland Pascala, to możliwe, że musisz zrobić coś takiego: const S: string = '0123456789ABCDEFGHIJKLMNOPQRTSUWXYZ'; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 23 Marca 2010 Autor Udostępnij Opublikowano 23 Marca 2010 borland :) o, i już wszystko działa;) jeszcze raz dzięki wielkie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się