Dodaj wpis w tym temacie
Spis tematów | Strona: 1 2 3 4 ... 30 31 Wyślij wiadomość do admina |
Przewiń wpisy ↓ | Turbo Pascal dla zielonych |
2010-04-23 (18:51) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 318 [ CZCIONKA MONOSPACE ] Aby poprawnie program wyświetlał kombinacje bez powtórzeń, musi on w pętli \"a\" przypisywać zmiennej \"a\" liczby od 1 do 37 . Rozpoczyna pętle od a=1 W pętli \"b\" musi być zawsze o jeden więcej więc rozpoczęcie pętli od b=2 . Albo można napisać b=a+1. i to właśnie a+1 rozwiązuje problem, podobnie w \"c\" będzie c=b+1, w \"d\" d=c+1 . W końcu mamy postać finalną (pierwszy etap) : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Program MiniLotto; Uses crt; Var a,b,c,d,e : byte; licznik : longint; begin clrscr; writeln (\'Program MiniLotto\'); for a:=1 to 38 do begin for b:=a+1 to 39 do begin for c:=b+1 to 40 do begin for d:=c+1 to 41 do begin for e:=d+1 to 42 do begin writeln(a,\',\',b,\',\',c,\',\',d,\',\',e,); end; end; end; end; end; writeln(\'Koniec programu\'); delay(3000); end. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
2010-04-23 (18:53) Pasko Data rejestracji: 2003-08-03 00:00:00 Ilość postów: 4407 ADMIN | wpis nr 315 321 [ CZCIONKA MONOSPACE ] Piękny temat, bo sam się uczyłem programować mając cel - zrobić narzędzie do analizy statystyk Lotto. Mariusz od razu chce program do wybierania liczb, które padną, a przecież nie od razu taki musi być cel :) My chcemy narzędzie do robienia statystyk. Po co? Bo niektórzy po prostu kochają się w robieniu i patrzeniu na statystyki. Oczywiście taka statystyka zawsze może prowadzić do wygranej. No bo jeśli obliczymy sobie 10 najczęściej występujących liczb w ostatnich 500 losowaniach i padnie z nich akurat 8/10, to przecież wygramy. Pewnie czysty łut szczęścia w tym wypadku i raz na 3000 losowań coś takiego się może zdarzyć, ale jednak Co do samego tematu, to związek z Lotto ma i tutaj nie będziemy dyskutować. Programowanie można wykorzystać do tworzenia narzędzi do Lotto, co przecież sami wiecie sam praktykowałem i praktykuję. Druga sprawa to czas, którego na pewno nie mam, żeby taki wątek prowadzić. Mariusz ma rację, że dla programistów są wspaniałe fora i strony, gdzie takie rzeczy się omawia i ja nie mogę prowadzić takiego tematu kosztem innych rzeczy, które mogę zrobić na stronie. Nie oszukujmy się też, że każdy może być programistą. Ja polecam dobrą książkę najlepiej coś z serii \"W praktyce\" i przerabianie przykładów. Robienie tutaj podstaw programowania na przykładzie Lotto jest rzeczą dobrą, ale może się w tym realizować KURKA. Pozdrawiam |
2010-04-23 (18:58) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 325 [ CZCIONKA MONOSPACE ] Umieszczę później obraz jak to wygląda . Z programu wyrzuciłam delay(50) -spowalniacz , ale i tak będzie on wykonywał się bardzo długo (może nawet godzinę). Dlatego po uruchomieniu , jak rozpocznie pisanie na ekranie : 1,2,3,4,5, itd. można użyć klawisza \"break\" by zatrzymać program. następny etap do \"zapis nie w ekranie\" a w pliku txt. który otwieramy notatnikiem. Ale to późnym wieczorem , wcześniej dam tu obraz jak wygląda pierwszy etap. |
2010-04-23 (19:14) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 334 [ CZCIONKA MONOSPACE ] http://yfrog.com/2mscreenshot003xpej |
2010-04-23 (19:44) Marco1972 Data rejestracji: 2009-03-22 00:00:00 Ilość postów: 481 | wpis nr 315 351 [ CZCIONKA MONOSPACE ] Kurko, pięknie to wygląda, proponuję dodać jeszcze jedną zmienną, która będzie wyrażała ilość kul. W ten sposób każdy będzie mógł sobie, że tak się wyrażę zmienić czas oczekiwania na końcowy wynik, no bo co tu ukrywać pętle te są dość czasochłonne, a i writeln też robi swoje. Tu w przykładzie ustalam na 10, ale każdy może zmienić na 42, czy 45 i odpowiednio długo czekać na rezultat. Również usuwam delay. program minilotto; uses crt; var a,b,c,d,e,ilosckul:byte; begin qqq ilosckul:=10; qqq writeln(\'proram wyświetla kombinacje w minilotto dla ilości kul=\',ilosckul); qqq for a:=1 to ilosckul-4 do qqq qqq for b:=a+1 to ilosckul-3 do qqq qqq qqq for c:=b+1 to ilosckul-2 do qqq qqq qqq qqq for d:=c+1 to ilosckul-1 do qqq qqq qqq qqq qqq for e:=d+1 to ilosckul do qqq qqq qqq qqq qqq qqq writeln(a,\',\',b,\',\',c,\',\',d,\',\',e); qqq writeln(\'Dalej dowolny klawisz\'); qqq repeat until keypressed; qqq clrscr; end. |
2010-04-23 (21:56) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 417 [ CZCIONKA MONOSPACE ] Marco1972 można jak piszesz, ale ja staram się jak najprościej , bo wbrew pozorom nie jest to łatwy program do nauki . Ale nie będziemy uczyć się jak dodać dwie liczby , bo to bez sensu, nikogo nie wciągnie. Jednak najlepsze są obrazki bo ładnie widać jak wygląda program. My chcemy by wyniki nie pojawiały się na ekranie , ale zostały zapisane w dokumencie tekstowym. Dlatego musimy stworzyć plik i do niego zapisać wyniki a nie na ekranie. Plik będzie na dysku C . |
2010-04-23 (22:02) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 418 [ CZCIONKA MONOSPACE ] To co jest w klamrach {tworzymy plik wynik} - nie piszecie w swym programie. chyba , że chcecie- jest to komentarz który służy do objaśnień i stosuje się go przy nieco bardziej skomplikowanych programach , ale może na razie się przydawać w nauce. writeln(a) czy writeln(a,\',\',b) - wyświetla na ekranie (pisze na ekranie) writeln(wynik,a) - pisze w pliku wynik a nie na ekranie. Teraz program działa błyskawicznie - kilka sekund i mamy na dysku C plik tekstowy o nazwie \"Wyniki MiniLotto\" o wielkości 12MB. |
2010-04-23 (22:27) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 427 [ CZCIONKA MONOSPACE ] Jeszcze mała modyfikacja , dodajemy licznik tzn , numerujemy kolejne 5-tki i w ten sposób wiemy ile ich jest , jak i może to być nam później przydatne. Nie jest to konieczne , ale jak ktoś chce to może ponumerować : a tak wygląda po uruchomieniu Run > Run : i wygląd pliku tekstowego : |
2010-04-23 (22:44) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 443 [ CZCIONKA MONOSPACE ] Umyślnie zapisałam teraz troszkę inaczej , w innej kolejności assing ... i writeln(\'Program..... Nie ma to w tym przypadku znaczenia czy najpierw wyświetli napis czy najpierw utworzy plik tekstowy. Widzę , że można licznik zrobić lepiej. Bardziej zrozumiale. licznik:=1 ; zamieniamy na licznik:=0; oraz zamieniamy miejscami by najpierw zwiększał się licznik a później zapisywał do pliku tekstowego - i TU ważna jest kolejność , czyli zamiast : writeln(wynik,licznik,\' : \',a,\',\',b,\',\',c,\',\',d,\',\',e); licznik:=licznik+1; będzie: licznik:=licznik+1; writeln(wynik,licznik,\' : \',a,\',\',b,\',\',c,\',\',d,\',\',e); Dalej skutkiem tego będzie zmiana w tym co nie widać całego na screnie: writeln(\'Zapisano \',licznik-1,\' wyników w pliku tekstowym \"Wyniki MiniLotto\" na dysku C\'); zmieniamy na : writeln(\'Zapisano \',licznik,\' wyników w pliku tekstowym \"Wyniki MiniLotto\" na dysku C\'); Należy zwrócić uwagę na spacje by napisy się nie zlewały : \'Zapisano \' a nie \'Zapisano\' - po \"o\" na końcu jest spacja. |
2010-04-23 (23:11) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 449 [ CZCIONKA MONOSPACE ] Program znajduje się w folderze FPC\\2.2.4\\bin\\i386-win32. W trakcie pisania i zapisywania Free Pascal IDE pyta o nazwę i w zależności od tego jak go nazwaliśmy , to pod taką nazwą został zapisany . U mnie jest nazwany: mini_lotto Zajmuje 57,8kB , czyli wysłać go znajomemu, czy innemu użytkownikowi to kwestia sekundy + klikanie myszką Natomiast plik który on tworzy dla MiniLotto , razem z licznikiem ma już 19MB. Po małej modyfikacji można go przerobić na Lotto . W tym celu musimy dodać zmienną \"f\" - to jest szósta liczba i oczywiści zmienić 42 na 49 itd. Następnie trzeba zmienić nazwę pliku tekstowego na np: Wyniki Lotto A ten nowy plik \"Wyniki Lotto\" będzie już miał rozmiar dość duży , ponad 300MB i program będzie mielił nie sekundy a już może ponad 30s . Raz jeszcze podaje link do programu: FREE PASCAL : http://www.wrzuc.to/dy8vBVEaW.wt No i powodzenia. Może jeszcze coś prostego zrobimy. |
2010-04-23 (23:50) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 452 [ CZCIONKA MONOSPACE ] Jeszcze raz na wszelki wypadek (a od tego w sumie trzeba było zacząć , lecz nie miałam Free Pascala) screny jak po zainstalowaniu dalej uruchamiać : jeżeli pierwszy raz otwieramy Free Pascala to będzie jak wyżej. Kolejne otwarcia będą już od razu z oknem ostatnio przeglądanego, modyfikowanego, pisanego programu. Gdy będziemy mieć już kilka programów i chcemy któryś edytować to naciskamy OPEN a nie NEW i dalej chyba każdy załapie. |
2010-04-23 (23:54) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 453 [ CZCIONKA MONOSPACE ] tutaj widać (lub nie ) nowe okno i niżej widać (a właściwie nie widać) początek nowego programu , który zapisuje bo nie mam czasu dalej pisać go. poniżej jest dalsza procedura zapisywania : |
2010-04-24 (00:14) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 454 [ CZCIONKA MONOSPACE ] kurs TP : http://www.pascal.eu.org/index2.htm tu widzę że też jest kurs ale chyba bardziej zaawansowany , oraz przykładowe programy : http://4programmers.net/Turbo_Pascal w sieci zapewne jest wiele poradników i kursów. ewentualnie następny prosty programik związany z grami liczbowymi w nowym temacie , by nie wydłużać i nie mieszać w tym temacie. |
2010-04-24 (01:55) Tajemniczy Don Pedro Data rejestracji: 2009-04-18 00:00:00 Ilość postów: 722 | wpis nr 315 458 [ CZCIONKA MONOSPACE ] To, co by się szalenie przydało, to jakieś sposoby do przenoszenie plików do skoroszytów w kolejności według wybranych /zmiennych indeksów zmienianych przez użytkownika/ indeksów oraz sortowanie. Typowe sortowanie opisywane w podręcznikach jest prymitywne a właściwie może inaczej - nie robi tego, z czym mamy do czynienia np. w grach losowych, czy np. w hurtowniach itp. biznesach. Wreszcie ten ciekawy program do stworzenia permutacji a właściwie kodu permutacji. Otóż jak to zrobić, żeby móc utworzony plik potem wprowadzać jako dane do excela, kiedy np. ilość danych w grze 6 z 90 jest pokaźna - 622 614 630. Ale i w DL nie mieści się w jednym arkuszu. No i jak się to wprowadza do excela z pliku .txt. To znaczy jak to dzielić automatycznie w skoroszycie na arkusze, które byłyby otwarte jednocześnie przy takiej ilości danych, żeby kursor działał jednocześnie we wszystkich arkuszach.. U mnie excel 2007 szaleje i pisze, że zasoby komputera są za małe. Wreszcie mam pomysł, czy nie byłoby sposobów, żeby przyspieszyć program. >>Przetwarzanie w locie << - Mariusz o tym pisał - niech ktoś wyjaśni konkretnie jak to robić. Dzięki za to co już za nami, ale proszę o kontynuację. Wszystkiego Dobrego Wszystkim |
2010-04-24 (06:51) Marco1972 Data rejestracji: 2009-03-22 00:00:00 Ilość postów: 481 | wpis nr 315 467 [ CZCIONKA MONOSPACE ] Ja napiszę małe sprostowanie dotyczące assign , rewrite , close. Procedury te należą do modułu system i jest to jedyny moduł, którego nie trzeba deklarować, gdyż jako jedyny dostępny jest dla wszystkich programów, że tak się wyrażę z urzędu, czy jak kto woli automatycznie każdy program, każdy moduł widzi moduł system, chodzi o deklarację uses. Moduł ten zawiera funkcje i procedury dotyczące wejścia, wyjścia, czyli obsługi zbiorów, operacji konwersji liczb i operacji łańcuchowych, porządkowych, oraz operacji służących do dynamicznego przydziału i zwalniania pamięci, ponadto w module tym opisane są wszystkie funkcje arytmetyczne i wskaźnikowe. |
2010-04-24 (10:59) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 500 [ CZCIONKA MONOSPACE ] Tajemniczy Don Pedro poruszasz kilka problemów a to za dużo by wątek był łatwy ,przejrzysty i zrozumiały dla początkującego, kogoś kto chce spróbować napisać pierwszy, czy dziesiąty programik w TP. Możemy plik Lotto (który powstaje na wzór Minilotto) podzielić na mniejsze pliki np: od 1,2,3,4,5,6 do 1,45,46,47,48,49 od 2,3,4,5,6,7 do 2,45,46,47,48,49 itd, lub biorąc pod uwagę licznik od 1 do 1 000 000 , od 1 000 001 do 2 000 000 - i będzie 14 mniejszych plików tekstowych. Przy dzieleniu pliku na mniejsze można poznać dodatkowe funkcje , czego w przypadku pierwszego programu Minilotto chciałam uniknąć (za dużo na raz). |
2010-04-24 (16:09) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 604 [ CZCIONKA MONOSPACE ] Tutaj program Lotto , (przerobione Minilotto) oraz niżej nieco przerobiony : |
2010-04-24 (16:11) KURKA Data rejestracji: 2009-01-23 00:00:00 Ilość postów: 2551 | wpis nr 315 605 [ CZCIONKA MONOSPACE ] Dodanie kilku opisów - writeln(\'.......\'); - czyni go bardziej zrozumiałym. Tak wykonuje się : Ja teraz umieściłam plik z wynikami na dysku G. |
2010-04-24 (16:14) Marco1972 Data rejestracji: 2009-03-22 00:00:00 Ilość postów: 481 | wpis nr 315 607 [ CZCIONKA MONOSPACE ] Tajemniczy Don Pedro, wklejam Ci zakładkę, gdzie można pobrać darmową wersję excel2010 wersja beta, gdzie nie ma limitu rozmiaru pliku do 2 Gb. Mnie plik z samymi kombinacjami gry 6/90 zajął 10 Gb na dysku jako plik txt. http://www.microsoft.com/poland/2010/office/excel/default.aspx# Ja również za chwilę pobiorę i zobaczymy, co się z tym fantem da zrobić. |
2010-04-24 (17:12) 777ch Data rejestracji: 2005-11-07 00:00:00 Ilość postów: 21731 | wpis nr 315 623 [ CZCIONKA MONOSPACE ] Tajemniczy Don Pedro Napisz na mój e-mal ale.....są warunki 1/ załącz bazę gry 6/90 obojętnie czy w pliku txt. czy w excelu. 2/ czekaj CIERPLIWIE 3/ napisz mi coś o tej grze . Odpowiedzi na Twoje pytania są baaaaaa......rdzo proste . Jak dostosuję do 6/90 to dostaniesz : \" NARZĘDZIE ....ZBRODNI\" |
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lotto | Strona: 1 2 3 4 ... 30 31 Wyślij wiadomość do admina |