pascal!!!!!!??????

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
Oto przykładowy program:
Program text;
Begin;
write('wwww');
end.
Wyskakuje syntax error (wlaczam spod windy)
Jak wprowadzic do pascala klawiature polski programisty???
ł mam na sredniku a jak mam zrobic ' - to musze cisnac alt plus tylda :!:
 

siro

Użytkownik
Dołączył
Sierpień 24, 2003
Posty
245
jesli chodzi o błąd to nie wiem, możesz spróbować nie dawać średnika po begin, bo tego się nie robi, ale sprawdziłem, dałem średnik po begin i mi elegancko chodzi, co do klawiatury to wcisnij ctrl+alt+F1, powinno być dobrze.
 

siro

Użytkownik
Dołączył
Sierpień 24, 2003
Posty
245
widzę, ze masz tp 7.0, tak begin powinno być białe, bo to program tak rozpoznaje, że to początek i po prostu go wyróżnia.
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
dobra już jest wszystko w pożo ale jak wziołem ctrl alt f1 to teraz nie mam polskich liter.
1.alt + te cyferki z prawej :wink: ,
Chyba jednak nie ma polskich liter.
Topic do zamknięcia.
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Originally posted by bobi
begin powinno byc zolte??
beg mam zolte dopisuje n i jest biale.
Co do tej kwesti to Turbo Pascal automatycznie na bialo zaznacza slowa kluczowe takie jak np. Begin, czy End. (przynajmniej tak u mnie bylo
smile.gif
)
Co do klawiatury to nie spotkalem sie z takim problemem i zawsze pisalem programy nie uzywajac polskich literowek takich jak ąćź. Tobie takze to polecam
smile.gif
 

siro

Użytkownik
Dołączył
Sierpień 24, 2003
Posty
245
a no tak, sorry, bo ja to tak bardiej odnioslem do dosa, jeszcze do niedawna miałem pod odsem właśnie tą starą klawiaturę i niedawno na forum wyczytałem żeby cisnąć ctrl+alt+F1, zrobiłem tak i elegancko teraz mam klawire, ale nie pomyślałem, ze przecież naciskając w pacalu alt+literka to wyświetla się menu z odpowiednikiem tej literki 8)
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
skoro juz sie zaczol taki topic to zadam pyanie dotyczace dzielenia :wink:
(zaczynam od poczatku).
PROGRAM mnozenie;
var
L1, L2: integer;

begin
writeln('Podaj liczby');
readln(L1);
writeln('/');
readln(L2);
writeln('=');
writeln(L1/L2);
readln;
end.
Kompiluje i jest spoko , ale jak dochodzi do działania
4
/
2
=
2,0000000000000000E 00 takie dziwne wyniki wychodza (wziolem 6 i 3 taki sam wyszedl) czy to spowodu tej zmiennej integer??????
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Masz tutaj moj przyklad programu ktory dzieli Liczbe 1 przez Liczbe 2:

program dziel;
uses crt;
var
L1,L2:integer;
Begin
clrscr;
writeln('Podaj pierwsza liczbe');
readln(L1);
writeln('Podaj druga liczbe');
readln(L2);
writeln(L1/L2:2);
readln;
end.

Zauwaz 3 linike od dolu writeln(L1/L2:2) tutaj okreslamy szerokosc pola. Oznacza to ze podzielona liczba bedzie zapisana w polu 2- znakowym. Mozesz oczywiscie dac tam inna liczbe. Wybor nalezy do ciebie. Zajrzyj do dzialu "Czeste pytania i odpowiedzi" tam takze znajdziesz cos o Turbo Pascalu.
 

siro

Użytkownik
Dołączył
Sierpień 24, 2003
Posty
245
w pascalu nusisz zdefiniować przy wyniku ile ten dany wynik będzie miał cyfr i ile cyfr po przecinku czyli jak dajesz
writeln(L1/L2); to on ci wypisuje to co napisałeś więc musisz zastosowac cos takiego :
writeln(L1/L2:x:y);
x - ilość znaków (cyfr) które się wyswietlą, ja zawsze daję 0 to wtedy on sam robi)
y - ilość miejsc po przecinku, np.
writeln(L1/L2:0:0) to ci wyjdzie normalnie 2
a jak writeln(L1/L2:0:2) to wyjdzie 2.00

fleja znowu mnie wyścignąłes, hehe
smile.gif
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
juz tam bylem co to jest uses crt a clrscr -czysci ekran???????
Sorki ze sie tak o wszystko dopytuje ale poczatki zawsze sa trudne. :wink:
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Uses crt jest to zadeklarowanie modulu.
Crt jest to modul obslugujacy ekran, klawiature glosnik.
siro nie staram sie ciebie wyprzedzac, tylko staram sie odpowiadac na posty. Choc mowiac szczerze tez ladnie to wytlumaczyles
smile.gif
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
czyli z tych modulow bede kozystal dopiero jak bede pisal progsa z dzwiekiem np.
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Originally posted by bobi
czyli z tych modulow bede kozystal dopiero jak bede pisal progsa z dzwiekiem np.
Modul crt nalezy do najczesciej stosowanych modulow w Turbo Pascalu. W jego sklad wchodza rozne procedury (np. wlasnie clrscr- czysc ekran, Textcolor- kolor tekstu itp.) Pozwala to na "upiekszanie" programow wlasnie o np. dzwieki, kolory itp.

Dodatkowo sa jeszcze moduly System, DOS, Graph.
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
Nowa dawka pytan :wink:
jak zadeklaruje zmienne np. L1 i L2 a potem wpisze L1:=2 to robie z niej stalą(przynajmniej tak rozumiem)
Gdybys był tak miły fleja i podal mi wszystkie komendy do modulu crt
znam juz ten sound(ale to jest ze spikera
smile.gif
) daley no sound.
Oczywiscie z jakims drobnym opisem(moze jakis link do tego)
Jakie sa wedlug ciebie najlepsze i najbardzej przydatne moduły.
Podaj nazwy sam sobie poszukam :wink:
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Jak zadeklarowac zmienne ???
oto kawalek kodu zrodlowego:
begin jakistam;
uses crt;
var {tutaj deklaruj zmienne}
L1, L2: integer;

Oczywiscie w miejsce typu zmiennej integer mozesz dac inna np, word, byte itp.

Jezeli z tego L1:=2 chcesz zrobic stala musisz ja poprzedzic slowem kluczowym const. Bedzie to wygladalo tak:
const
L1:=2;

Co do modulow w jezyku turbo Pascal to sa to:
System- zawiera standardowe procedury np: writeln
Crt- zawiera procedury obslugi ekranu, klawaitury, glosnika
DOS- zawiera procedury wspolpracujace z systemem operacyjnym
Graph- zawiera procedury przydatne do tworzenia grafiki

Jakie sa najlepsze? To zalezy jaki program robisz, ja tam caly czas pracowalem w crt.

Jeszcze raz polecam poczytac jakies faq (Dzial czeste pytania i odpwoedzi), rozejrzec sie na www.binboy.org i www.4programmers.net a w razie watpliwosci tutaj pytac
<
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
ok znam juz var ale mi chodzilo o to ze jak L1: longint;
a potem dam L1:=2 to to bedzie przeciez stala a nie zmienna bo L1
zawsze bedzie 2
Czy graph jest juz z pascalem??
Juz naprawde ostatnie
robie kalku. no zrobilem 3 zmienne na znak L1 L2 jak je odzielic??
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Masz tutaj przyklad kalkulatora przeanalizuj go i nie bedziesz mial problemu
smile.gif


program kalkulator;
var
L1, L2, wynik: integer;
dzialanie: char;
Blad: boolean;

begin
writeln('Podaj pierwsza liczbe');
readln(L1);
writeln('Podaj druga liczbe');
readln(L2);
writeln('Podaj rodzaj dzialania [+,-,*,/]');
readln(dzialanie);
blad:false;
case Dzialanie of
'+' : wynik := L1+L2;
'-' : wynik := L1-L2;
'*' : wynik := L1*L2;
'/' : if L2 <> 0 then
wynik:= L1/L2
else
Blad:= true;
else
Blad:= true
end;
if not Blad then
writeln(L1,' ',Dzialanie,L2,' = ',Wynik)
readln;
end.

Zaczerpniete z jakiegos faq nie pamietam z jakiego. Nie za bardzo rozumiem o co ci chodzi z tym kalkulatorem, napisz dokladnie gdzie tkwi problem.
Modul graph raz jest z Pascalem raz nie ma
smile.gif
[www.binboy.org pollokaj tam].
Nie za bardzo tez rozumiem o co ci chodzi z tym L1:=2 ty chcesz, aby L1 byla rowna 2 chyba. Jezeli tak to przypisz jej ta wartosc po prostu.
Opisz dokladnie problem dlaczego chcesz aby L1 rownalo sie 2. Moze da sie to zrobic w inny prostszy sposob.

Podany przyklad kalkulatora wyzej jest troche rozbudowany o zabezpieczenie dzielenia przez zero, dlatego mozesz sie go przestraszyc jezeli dopiero zaczynasz programowac. Ale pamietaj ze mozna zrobic z niego okrojona wersje.
 

bobi

Użytkownik
Dołączył
Czerwiec 21, 2003
Posty
114
a tak sie nie da Write (L1',,'Znak',,'L2);
tylko nie wiem jak przedzieliz zmienne (chyba tak jak napisalem?)
 

FLEJA

Użytkownik
Dołączył
Marzec 9, 2003
Posty
253
Czy sie da tego nie wiem. Pascala dawno nie odpalalem i nie mam go na dysku niestety. Ja ci proponuje Zreobic jak ci napisalem.

writeln('Podaj pierwsza liczbe...');
readln(L1);
writeln('Podaj druga liczbe...');
readln(L2);
writeln('Rodzaj dzialania');
readln(dzialanie);
case dzialanie of
+' : wynik := L1+L2;
'-' : wynik := L1-L2;
'*' : wynik := L1*L2;
'/' : wynik := L1/L2;
else
writeln('blad');
end;

Oczywiscie jest to moja propozycja. Jezeli nie podoba ci sie zapis takiego programu probuj dalej swoj, moze sie uda. Aha to kawalek kodu zrodlowego zawiera on pewien blad. Otorz nie ma w nim tzw. bezpiecznego dzielenia przez zero. (np 0/2 itp.)

Przedzielic zmienne nie bardzo wiem o co chodzi, ale kmin dalej napewno sie uda.
smile.gif
 
Do góry Bottom