Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 3 ... 30 31
Wyślij wiadomość do admina

Przewiń wpisy ↓

Turbo Pascal dla zielonych

2010-04-23 (02:42)

status Tajemniczy Don Pedro
Data rejestracji: 2009-04-18
Ilość postów: 722

4474
wpis nr 315 097
[ CZCIONKA SPECJALNA ]

Ale zmiennymi będą raczej chyba obiekty losowe /zwane przez niektórych niepoprawnych \"liczbami\"/ : 1, 2, 3, 4, 5, ..., 41, 42. Bo 45 to chyba z innej gry?
2010-04-23 (03:01)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 098
[ CZCIONKA SPECJALNA ]

Oki , masz rację



Ja w tej chwili przywiązuje wagę do tłumaczenia a nie do też ważnej w sumie rzeczy . Liczb jest oczywiście jak piszesz od 1 do 42.

MAMY :

_________________________

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

___________________________





teraz najłatwiejsze funkcje które będą przydatne :



begin - to inaczej początek

end - to koniec



między tymi słowami można a nawet trzeba coś wciśnąć



np:

begin;

writeln (\'Program MiniLotto\')

end.





Proszę zauważyć , że po słowie END jest kropka.



program który się wykona to , to co jest między Start (begin) i STOP (end.)



writeln- napisz ( w tym przypadku na ekranie) to co jest w \' \' .



A w \' \' jest Program MiniLotto.



czyli na razie program w postaci :

___________________________

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

begin;

writeln (\'Program MiniLotto\')

end.

_____________________________



po uruchomieniu zrobi :



napisze (wyświetli) na ekranie :



Program MiniLotto

2010-04-23 (03:07)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 099
[ CZCIONKA SPECJALNA ]

Kurcze , muszę uwazać na to co piszę bo wprowadzam w bład :



MA BYĆ :



Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

begin;

writeln (\'Program MiniLotto\');

end.



kto zauważył erratę , ten już powinien wiedzieć dlaczego wcześniej było źle.
2010-04-23 (03:23)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 100
[ CZCIONKA SPECJALNA ]

Teraz myślę , że potrzeba znaleźć kompilator free , aby nie było nieścisłości , a następnie zrobimy pętle, i mały zabieg (a raczej wybieg).



Wybieg polega na tym , że nie jesteśmy w stanie zobaczyć wyniku , tzn tego co wyswietli na ekranie:

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

begin;

writeln (\'Program MiniLotto\')

end.



bo program działa tak, że :



begin- start

writeln (\'Program MiniLotto\') - napisz na ekranie \"Program MiniLotto\"

end. - zakończ.



i jego szybkość jest taka , że napis \"Program MiniLotto\" wyświetli na kilka ns



aby zobaczyć co wyświetla możemy użyć funkji

delay(1000) - 1000 oznacza około 1s





Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

begin;

writeln (\'Program MiniLotto\');

delay(3000);

end.



na około 3 sekundy wyświetli się napis który jest w \'----\' funkcji writeln.







2010-04-23 (03:58)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 101
[ CZCIONKA SPECJALNA ]

A teraz zmusimy program by wyświetlił nam 42 liczby :



__________________________________

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;

begin;

writeln (\'Program MiniLotto\');

for a:=1 to 42 do begin

writeln(a);

end;

delay(3000);

end.

_______________________________



program działa w ten sposób:

begin;

writeln (\'Program MiniLotto\');



wyświetla na ekranie \"\"Program MiniLotto\"\"



i przechodzi do słów:



for a:=1 to 42 do begin



co oznacza że zmiennej \"a\" przypisuje najpierw liczbę 1(później 2, 3 ......42) i idzie do następnej linii

writeln(a);

wyświetla na ekranie \"\"a\"\" czyli 1

i przechodzi do następnej linii

end;



to jest pętla : for >>coś tam>>end; >>for>>coś tam>>end; >>for...itd

aż for a:= 42 .



tak więc pętla będzie wykonywać się od a=1 do a= 42.



czyli 42 razy.



na ekranie pojawi sie :

Program MiniLotto

1

2

3

.

.

.

42

na około 3 sekundy

bo to spowoduje funkcja

delay(3000)

2010-04-23 (08:24)

status SirMavins
Data rejestracji: 2009-05-29
Ilość postów: 3951

4654
wpis nr 315 127
[ CZCIONKA SPECJALNA ]

Witajcie.



Jak rozumiem zdecydowałaś się KURKO podzielić swoją wiedzą z laikami.

I to właśnie im przyda się kilka prostych rad, które dadzą im efekt o którym im chodzi?

I będzie można tę wiedzę zastosować w prognozowaniu liczb do gier?

Czyli jednym słowem - SUPER.



Pzdr



Tak na marginesie to o Office już coś jest, ale jak przeglądałem to raczej nie dla mnie, no chyba że nie rozumiem co piszą, a tak nie jest.



Z mej stron - na pewno skorzystam.
2010-04-23 (08:48)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 21392

1386
wpis nr 315 134
[ CZCIONKA SPECJALNA ]

Marriusz2 >

....nawet gdybym codziennie pisał program ,

to jest moja sprawa, i nie twój zasrany interes.



Ja zrobię w kilkanaście minut..... coś czego Ty nie zrobisz nigdy.....

----------------------------------------------------------------------------------------

Wycieraj sobie dupę ..... papierem , a nie mną.



Pouczasz ludzi........ a sam nic kompletnie nie potrafisz.



2010-04-23 (12:47)

status Marco1972
Data rejestracji: 2009-03-22
Ilość postów: 481

4343
wpis nr 315 195
[ CZCIONKA SPECJALNA ]

Kurka, świetnie tłumaczysz. Po słowie kluczowym begin nigdy nie ma średnika,po słowie kluczowym end , który zamyka instrukcje zawarte między begin i end na ogół jest średnik, wyjątkiem jest instrukcja

if warunek then

begin

instrukcje do wykonania, gdy warunek spełniony;

end

else

begin

instrukcje do wykonania, gdy warunek nie jest spełniony;

end;

Ostatni end w programie zakończony jest tylko kropką.

Instrukcja repeat until keypressed; zatrzymuje wykonywanie programu

do chwili naciśnięcia dowolnego klawisza, jest wygodniejsza dla użytkownika, bowiem sam użytkownik decyduje, kiedy przejść dalej.
2010-04-23 (13:05)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 201
[ CZCIONKA SPECJALNA ]

Oki Marco1972



Niestety nie ma możliwości edycji postu więc muszę sprostować co do średnika.



Na razie przyjmujemy że zawsze na końcu dajemy średnik.

Wyjątek to słowo Begin (po nim nic nie ma)

Oraz End na końcu programu (po ostatnim end jest kropka).



Tyle wystarczy , instrukcje warunkowe później .



Delay(1000) - przemawia bardziej (opóźnienie) i na razie tak zostawmy , bo w pierwszym programie za dużo to nie zdrowo.



mamy więc na razie :

__________________________________

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;



begin

writeln (\'Program MiniLotto\');

for a:=1 to 42 do begin

writeln(a);

end;

delay(3000);

end.

__________________________________________



możemy nieco zmodyfikować sposób wyświetlania na ekranie,

zamiast writeln(a);

write(a,\',\');

wówczas program wyświetla :

=========================

Program MiniLotto

1,2,3,4,5,6 .....42,

=========================



2010-04-23 (13:25)

status Marriusz2
Data rejestracji: 2009-06-02
Ilość postów: 2236

4670
wpis nr 315 209
[ CZCIONKA SPECJALNA ]

Leo



Głupota Twoja poraża .



Pięć lat temu opisałem tutaj na Forum zasadę ONT czyli Ostatniej Niewypadniętej Liczby .



Każdy zna post o ostatnim autobusie i Ostatniej Niewypadniętej Liczbie .



Od tego momentu przyswoiłeś sobie to pojęcie i w kazdym arkuszu korzystasz z tego pojęcia .



Ja nie liczę na objaw wdzięcznosci -bo ty tego nie znasz .



Dobrze ,że cokolwiek sobie z tego co pisze przyswoiłeś .



Jak na 5 lat to i tak duzo.

Wprawdzie liczyłem ,że ruszysz głową i pójdziesz troszeczkę dalej -bo nie doczytałes ,ze ONT nie dotyczy liczb zywych -bo sie nie nadaje jako model .

Ale trudno .



Natomiast takie zachowanie ,że uczysz sie ode mnie -powoli ale zawsze a później wyzywasz -to złe zachowanie Leo.



2010-04-23 (13:32)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 214
[ CZCIONKA SPECJALNA ]

Teraz zajmijmy się pętlą for . Jedna pętla

for a:=1 to 42 do begin

end;

Dwie pętle:

for a:=1 to 42 do begin

for b:=1 to 42 do begin

end;

end;



Teraz mielibyśmy :

_________________________

Program MiniLotto;

Uses crt;



Var a,b,c,d,e : byte;

licznik : longint;



begin

writeln (\'Program MiniLotto\');

for a:=1 to 42 do begin

for b:=1 to 42 do begin

writeln(a,b);

delay(50);

end;

end;

delay(3000);

end.

__________________________________



Program wyświetla:



Program MiniLotto

1,1

1,2

1,3

.

.

2,1

2,2

2,3

.

.

3,1

3,2

.

itd.



Niestety nie wyświetla kombinacji bez powtórzeń.

Delay(50) po to by widzieć co po kolei wyświetla - spowolnić program na tyle byśmy widzieli na ekranie co robi.

Z tego powodu zdecydowałam się na delay.



2010-04-23 (13:39)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 219
[ CZCIONKA SPECJALNA ]

Gdy dodamy trzecią , czwartą i piątą pętle :

for a:=1 to 42 do begin

for b:=1 to 42 do begin

for c:=1 to 42 do begin

for d:=1 to 42 do begin

for e:=1 to 42 do begin

end;

end;

end;

end;

end;

end;



program będzie wyświetlał :

1,1,1,1,1,1

1,1,1,1,1,2

1,1,1,1,1,3

itd.



Musimy nieco zmienić .



I jescze errata :



writeln(a,\',\',b);



by wyświetlił :

1,2

a nie

12

między a i b musi być przecinek w apostrofie (a , \' , \' , b);





2010-04-23 (13:46)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 224
[ CZCIONKA SPECJALNA ]

Aby program wyświetlał kombinacje bez powtórzeń musimy zrobić tak by \"a\" zmieniało się od 1 do 38

\"b\" zmienia się od 2 do 39

\"c\" zmienia się od 3 do 40

\"d\" od 4 do 41

\"e\" od 5 do 42



for a:=1 to 38 do begin

for b:=2 to 39 do begin

for c:=3 to 40 do begin

for d:=4 to 41 do begin

for e:=5 to 42 do begin

end;

end;

end;

end;

end;

end;



Ale jak zobaczycie nadal nie będzie prawidłowo.



Myślę że teraz na tym zakończymy , i musimy przejść do obsługi kompilatora, ktorego jeszcze nie mamy.

2010-04-23 (13:53)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 21392

1386
wpis nr 315 226
[ CZCIONKA SPECJALNA ]

Marriusz2 > bo każdego pouczasz ,

ja nie napisałem ,że nic od Ciebie nie skorzystałem,

WPISY MERYTORYCZNE TO CO INNEGO,

a co innego POUCZANIE ....... i przywoływanie mojego nicku ,

leo to, leo tamto .... czy ja w swoich postach piszę Mariusz to,Mariusz tamto...

WEŹ TY SIĘ ODCZEP .......



Permanentnie przeginasz pałę , stosując wobec inteligentnych osób,

które mają ochotę coś ..... napisać,

demonstrację jakiejś .....wiedzy ,która jest WYZNACZNIKIEM >PRAWDY,

a prawda jest naga ........ i zupełnie inna niż ci się wydaje,

bo PRIMO nie jest ....... jedna , prawd jest wiele.



Tak jak ......kłamstw.





2010-04-23 (14:02)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 228
[ CZCIONKA SPECJALNA ]

Nie mam kompilatora jeszcze , ale kolega ze szkoły ma mi przesłać więc jak będę mieć to dam link i sama też go sobie zainstaluje by nie było wpadek z średnikami, przecinkami , składnią .



Myślę , że za godzinę lub dwie będzie link do kompilatora.
2010-04-23 (14:40)

status Marco1972
Data rejestracji: 2009-03-22
Ilość postów: 481

4343
wpis nr 315 240
[ CZCIONKA SPECJALNA ]

To tylko opisze wyjaśnienie odnośnie tych pętli, należy rozumować tak:

wykonuj pętle ze zmienną e w pętli za zmienną d, całość w pętli ze zmienną c, całość w pętli ze zmienną b, całość w pętli ze zmienną a.

W turbo pascalu stosuje się wcięcia w celu łatwiejszego odczytywania programu, ja stosuję trzy spacje jako wcięcie, niestety, tu przy wklejaniu jakoś je zjada i słabo przez to widać. Ale można umówić się, że ciąg znaków dla przykładu qqq oznacza trzy spacje i wówczas wyglądało by to tak:



for a:=1 to 42 do

qqq for b:=1 to 42 do

qqq qqq for c:=1 to 42 do

qqq qqq qqq for d:=1 to 42 do

qqq qqq qqq qqq for e:=1 to 42 do

qqq qqq qqq qqq begin

qqq qqq qqq qqq qqq writeln(a,\',\',b,\',\',c,\',\',d,\',\',e);

qqq qqq qqq qqq qqq delay(50);

qqq qqq qqq qqq end;



2010-04-23 (14:50)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 247
[ CZCIONKA SPECJALNA ]

Myślę że zrobię screna i wtedy będzie widać wcięcia i po co one są.



Teraz plik :



http://www.wrzuc.to/dy8vBVEaW.wt



należy pobrać i zainstalować, domyślnie instaluje się na \"C:\\FPC\\2.2.4\"



2010-04-23 (15:05)

status Marco1972
Data rejestracji: 2009-03-22
Ilość postów: 481

4343
wpis nr 315 256
[ CZCIONKA SPECJALNA ]

W pętli for po słowie do jeżeli występuje jedna instrukcja nie musimy pisać begin i end, tą jedną instrukcją może być oczywiście następna instrukcja for, i jeżeli po słowie do występuje więcej niż jedna instrukcja, wówczas należy zamknąć je słowami begin i end; W praktyce jednak lepiej od razu pisać begin i end, nawet gdy mamy tylko jedną instrukcję, pisanie programu, to przecież ciągła jego modyfikacja, w każdej chwili możemy chcieć powtarzać więcej niż jedną instrukcję, a instrukcja for bez słów begin i end powtórzy tylko jedną instrukcję, to błąd, który zwłaszcza początkującej osobie trudno wykryć.
2010-04-23 (15:23)

status KURKA
Data rejestracji: 2009-01-23
Ilość postów: 2551

4098
wpis nr 315 259
[ CZCIONKA SPECJALNA ]

Marco musimy ograniczyć się do minimum.

Oczywiście twe uwagi są bardzo przydatne.

Chcę zrobić ten programik tak by nie zniechęcić zbyt dużą ilością informacji.



Na początek to w sumie jest nawet dość skomplikowany programik.



http://www.wrzuc.to/5UOQ0xeGRH.wt



tak to na razie wygląda.



by uruchomić go naciskamy na pasku \"run\" i ponownie w rozwinięciu \"Run\".



będzie chodził powoli ponieważ delay(50) spowalnia go.

by przerwać naciskamy \"break\" na klawiaturze.



zapisujemy : File >> Save



Później dodamy : \"clrscr\" - to znaczy \"wyczyść ekran\", by było przejrzyście na ekranie , ale tym głowy sobie nie zawracać.







Dalej dodamy \"
2010-04-23 (18:39)

status Marco1972
Data rejestracji: 2009-03-22
Ilość postów: 481

4343
wpis nr 315 310
[ CZCIONKA SPECJALNA ]

Dla ścisłości, aby program wyświetlał kombinacje bez powtórzeń program powinien wyglądać tak: ( oczywiście qqq oznacza trzy spacje jako wcięcia)



program minilotto;

uses crt;

var a,b,c,d,e:byte;

begin

qqq writeln(\'proram wyświetla kombinacje w minilotto\');

qqq for a:=1 to 38 do

qqq qqq for b:=a+1 to 39 do

qqq qqq qqq for c:=b+1 to 40 do

qqq qqq qqq qqq for d:=c+1 to 41 do

qqq qqq qqq qqq qqq for e:=d+1 to 42 do

qqq qqq qqq qqq qqq begin

qqq qqq qqq qqq qqq qqq writeln(a,\',\',b,\',\',c,\',\',d,\',\',e);

qqq qqq qqq qqq qqq qqq delay(50);

qqq qqq qqq qqq qqq end;

qqq writeln(\'Dalej dowolny klawisz\');

qqq repeat until keypressed;

qqq clrscr;

end.



Pętle for oprócz pierwszej działają od wartości następnej z poprzedniej pętli for, w ten sposób pozbywamy się kombinacji z powtórzeniami.
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 3 ... 30 31
Wyślij wiadomość do admina