![]() |
Oszukalem szybciej php:
Kod:
for ($i = 1; $i <= $ile; $i++) {PS Jak ju***380; pisa***263; w pascalu to z randomize i liczby we wszystkich tablicach maja byc te same tylko inaczej poukladane :) poza tym zadanie juz dawno zrobione ale fajnie, ze na tym forum zawsze kto***347; jaki***347; przyk***322;ad walnie od siebie :) |
tak na szybko:
malej***261;co: n - liczba element***243;w tablicy k - skok k=200000/n for od i=1 do n tab[i]=200000-k*(i-1) rosn***261;co: k=200000/n for od i=1 do n tab[i]=1+k*(i-1) |
Cytat:
mialem to robic w freepascalu mialem tu na mysli program :) |
Cytat:
|
Cytat:
Obowi***261;zuje tam j***281;zyk Pascal/ObjectPascal |
dzieki za rady ale ja niestety juz nie ten poziom jestem ch***322;opaki :D
mam to zapelnic 20k/40k/80k/160k elementowa tablice liczbami z przedzialu od 1 do 200 000 w 3 wersjach: malejaco, rosnaco i losowo :) 20k, 40k, 160k losowo juz zapelnilem teraz ustawic w kodzie funkcje gettime i podliczyc moj celeron m wlasnie przekabaca rozne wersje - troche to trwa :D jak skoncze przygotowywac materialy to potem przetestowac na tym kazdy algorytm sortujacy to juz tylko chwilka bedzie :) acha i to ma byc robione w free pascalu a nie delphi, w delphi to bym sobie szybko poradzil z tym tam taki przyjemny timer jest... oczywiscie nie powiem mu ze oszukuje z tym generowaniem napisalem w php funkcje i wywala mi gotowy kod do pascala hehe... |
Kod:
FOR i:= Tablica[1] TO Tablica[40] DOTablice deklarujesz tak Kod:
VAR |
a nie ma p***281;tli for ? :)
|
no to kozacko bo mi zadali zapelnic tablice kolejno 20k, 40k, 80k i 160k elementow aby przetestowac w sekundach algorytm sortowania babelkowego :szczerb:
musze wygenerowac jakos inaczej te zapelnianie, zastrzele sie ! PS na lycosie mnie juz chyba zbanowali za uzywanie funkcji rand do generowania tego badzewia :D |
o ile pamietam nie da sie zrobic w pascalu czegos takiego (wypisywanie elementow podczas deklaracji)
|
mam pytanie, do tej pory w ten sposob nic nie deklarowalem wiec bylo z glowy ale mam taka deklaracje:
Kod:
constwiec pytanie jak z automatu zapelnic tablice w pascalu ? |
Aaaaaa no racja, przecie***380; przypisa***322;em j***261; do cnf-a. Tak to jest jak si***281; ma p*k w kodzie :czar: My***347;la***322;em, ***380;e sobie u***380;yje jej "przy okazji" i po powrocie do pocz***261;tku nie b***281;dzie "u***380;ywana". Ehhh...
THX po raz kolejny!. |
sprawd***378; co si***281; dzieje ze zmienn***261; margines :) - to jest rozwi***261;zanie, linia 104 :)
|
Ilość załączników: 1
Ale***380; prosz***281; uprzejmie.
Wersja zubo***380;ona, ale b***322;***261;d ten wyst***281;puje nadal. |
no chyba najszybciej wyczy***347;ci***263; clrscr
daj pe***322;ny kod, wszystko co napisa***322;e***347; to lukn***281; jak pracuje i co robi |
Racja, o tym nie pomy***347;la***322;em ehhh.
Co do drugiego pytania: da si***281; co***347; z tym zrobi***263;? Mo***380;e jest jaki***347; "clear memory" lub co***347; w tym stylu? Pomy***347;la***322;em, ***380;e clear screenem to usun***281; :szczerb:. Wydaje mi si***281;, ***380;e to problem zwi***261;zany z niezamkni***281;ciem pliku, ale przecie***380; jest close(cnf); |
bo pierwszy parametr w readln to jest uchwyt do pliku, drugi zmienna to ta do kt***243;rej wczytujemy dane z pliku
wi***281;c jak zmienisz kolejno***347;***263; to kompilator krzyczy ***380;e ***378;le, nie ten typ zmiennej proponuj***281; przez writeln (...) wstawi***263; odpowiednie gotoxy lub napisa***263; tak writeln(' ',margines); |
Kod jest taki sam jak poprzednio. Powy***380;szy wynalazek (czyli od assign) napisa***322;em na ko***324;cu "procedure psx_cnf".
|
poka***380; pe***322;ny kod, tylko sformatowany wg odg***243;rnie przyj***281;tych regu***322; :)
poza tym, to co ja tu widz***281; to: czytanie z pliku po linijce, ka***380;da linijka zapisywana jest do 'margines' a potem wy***347;wietlana i tak do usranej ***347;mierci czyli ko***324;ca pliku |
Ilość załączników: 1
Cytat:
Kod:
varDrugi problem to taka Hiroshima po powrocie do menu głównego: |
ka***380;dy si***281; wysypuje na g***322;upich rzeczach tak to ju***380; jest. to sie nazywa do***347;wiadczenie.
ja kiedy***347; si***281; 2 dni gania***322;em z b***322;***281;dem kt***243;rego nie by***322;o. Debugowa***322;em, bada***322;em itd i w ko***324;cu zg***322;upia***322;em bo wysz***322;o ***380;e program po prostu gubi wska***378;niki (gubi***322; dane przechowywane w zmiennych). Przejrza***322;em program na wylot i nie znalaz***322;em nic co by mog***322;o je nadpisywa***263;. ***379;adnych wyciek***243;w pami***281;ci ***380;adnych b***322;***281;d***243;w. Program by***322; idealny a sie wysypywa***322;. W ko***324;cu skompilowa***322;em go na uczelni na innej wersji GCC i poszed***322;. Dzia***322;a***322; idealnie. Co za baran da***322; jakiego***347; zabugowanego GCC w najnowszym wtedy stabilnym Mandrake to nie wiem. A pytania w stylu "czemu to *(@#&*( mi sie nie kompiluje/dzia***322;a" to chyba ka***380;dy programista wykrzycza***322; setki razy... |
te***380; nie mog***322;em tego zrozumie***263;, ale jak co***347; nie wiem to pr***243;buj***281; inn***261; drog***261;
np. nie wiem jak napisa***263; ku(***243;)ra - pisz***281; kokoszka :D |
Dzi***281;kuj***281; - dzia***322;a :)
Nie rozumiem tylko jaki ma (mia***322;o) zwi***261;zek read(powrot1); z pomijaniem pierwszej linijki z wprowadzaniem zmiennej w procedurze psx_cnf. W ***380;yciu sam bym tego nie wymy***347;li***322;. Chyba si***281; do tego nie nadaj***281;, skoro wysypuj***281; si***281; na tak prostych rzeczach. :| |
Ilość załączników: 1
czy to kolega miał na myśli: :D
Załącznik 43966 |
Ilość załączników: 1
Uprościłem nieco.
Wydawało mi się, że jest ok. |
jak napiszesz ten kod tak jak si***281; zaleca, to wtedy lukn***281;, teraz to ja w nim nic nie widz***281;
to nie jest trudne naucz si***281; naciska***263; enter - po jakiego takie d***322;ugie linie ? popraw to lukn***281; |
Ilość załączników: 1
Wróciłem :}
Dobrzy ludzie, oświeci mnie ktoś, czemu program nie wykonuje: Kod:
gotoxy(32,4); readln(psx_nazwa); |
w domu mam chyba przyk***322;ad, jak znajd***281; to wy***347;l***281;
edit: nie wy***347;l***281;, bo tutaj masz wszystko co potrzeba |
Cytat:
Ja tego kodu nie pisa***322;em. Nie wiem czy tak jest dobrze, niedobrze, dlaczego i czy mo***380;na zrobi***263; lepiej. Dopiero zaczynam zabaw***281; z pascalem (z programowaniem w og***243;le). Cytat:
Cytat:
Cytat:
Mam nadziej***281;, ***380;e mi zalicz***261;. Mam kolejne proste pytanie: Kod:
//zapis do plikuOczywi***347;cie to fragment kodu i wszystkie zmienne psx_co***347;tam wprowadza u***380;ytkownik. a tak to przyk***322;adowo wygl***261;da po zapisaniu: Kod:
BOOT = cdrom:\NAZWA.EXE;1 |
Cytat:
Cytat:
Kod:
Cytat:
Żeby to wyglądało ładnie, to raczej widziałbym to tak: w programie głównym iterujesz po znakach (jakimś forem lub whilem z licznikiem) i wywołujesz funkcje drukuj(licznik, znak), która to wylicza sobie z licznika (najlepiej inną funkcją) odpowiednie miejsce, ustawia się tam i drukuje ramkę ze znakiem. |
Ilość załączników: 2
nie wiem czy o to Ci biegało, ale działa
Twój problem polegał na tym, iż zwykłe okno dosowskie ma tylko 25 wierszy i wszystkie indeksy gotoxy powyżej max wierszy były obcinane do tego maksimum Załącznik 43903 edit: nie usuwałem z kodu readkeyów aby było łatwiej testować :) edit: poprawiłem i teraz wyświetla wszystkie znaki z tablicy ASCII :) Załącznik 43904 |
w domu lukn***281; na to, bo w pracy nie b***281;d***281; mia***322; zbyt wiele czasu
|
A przepraszam, nie zrozumia***322;em Ciebie.
O jeden wiersz nie zupe***322;nie. Podczas gdy tabela jest rysowana do 13 wierszy jest ok. Kiedy zaczynaj***261; by***263; rysowane kolejne, nadpisuj***261; stare na pocz***261;tku. Nie wiem jak to wyja***347;ni***263;. Zmniejsz liczb***281; wierszy w kodzie (na pocz***261;tku ***378;r***243;d***322;a) to chyba zczaisz o co mi chodzi ;]. Te ***347;miecie to kolejne koordynaty i kolejne znaki jak i ich warto***347;ci w ASCII, kt***243;re si***281; napa***263;ka***322;y w jednym wierszu, z racji faktu, ***380;e s***261; "wk***322;adane" od (0,0), a tabela "posz***322;a" dalej. |
ten screen widzia***322;em, chcia***322;em zobaczy***263; poprawy uk***322;ad
wg. mnie najlepiej jakby wy***347;wietla***322;o ka***380;dy znak o jedno pole wy***380;ej, tylko nie wiem co to s***261; za ***347;miecie w ostatnim wierszu |
Post nr. 21 ;)
http://forum.cdrinfo.pl/attachment.p...2&d=1196536483 Co***347; takiego tylko, tak aby nie ogranicza***322;a si***281; w wy***347;wietlaniu do bodaj***380;e 13 wierszy. W og***243;le nie rozumiem tego czemu tak robi. Powinien normalnie wy***347;wietli***263; ca***322;o***347;***263;, w***243;wczas wszystkie warto***347;ci i znaki "trafi***322;yby" w ramk***281;. |
@Berion: mo***380;esz narysowa***263; jak dok***322;adnie ma wygl***261;da***263; ta tabela po wygenerowaniu
albo za***322;***261;cz plik tekstowy |
Cytat:
Co wg. Ciebie jest w nim takiego, cytuję: "straszne"? Co to znaczy, że kod jest ładny/uporządkowany? Czy nie jest tak, że każdy programista ma "swój własny porządek"? |
Cytat:
Cytat:
|
@pawe***322;blu
nie m***243;wie jak to wygl***261;da w sprz***281;towej realizacji na procesorze tylko z punktu widzenia algorytmiki. Oczywi***347;cie ***380;e while jest t***322;umaczony na instrukcje testu i skoku (a tak***380;e na ca***322;***261; mas***281; innych typu wrzucenie zmiennej do rejestru) bo taka jest budowa obecnych procesor***243;w. Dlatego w asseblerze oczywi***347;cie etykiety s***261;. Kiedy***347; na wyk***322;adzie by***322;a maszyna kt***243;ra mia***322;a kilka strasznie prymitywnych instrukcji typu skok, zwi***281;kszenie warto***347;ci o 1 itp. I by***322;a ca***322;kowicie r***243;wnowa***380;na wszystkim obecnym komputerom. Tylko ***380;e zrobienie na niej czegokolwiek na poziomie 3+5 to by***322;a masakra. Ale kompilator pewnie zrobi***263; by si***281; da***322;o :P |
Za odpowiedzi wszystkim dzi***281;kuj***281;. Goto wykre***347;lam ze s***322;ownika ;]
//nikt nie wie co jest zr***261;bane w rysowaniu tych tabelek? Zlitujcie si***281; nad moj***261; biedn***261; dusz***261;... :szczerb: |
Cytat:
Nieformalnie te***380; jest gorzej - du***380;o gorsza czytelno***347;***263;. Pami***281;taj ***380;e z za***322;o***380;enia oprogramowania nie pisze jedna osoba. Natomiast je***380;eli chodzi o optymalno***347;***263; to dobre zrobienie goto jest bardziej efektywne od zwyk***322;ych p***281;tli, ale trudno jest zrobi***263; dobre i przemy***347;lane labele i instrukcje goto, cho***263; mo***380;na. Tak jest np. w niekt***243;rych fragmentach kodu w j***261;drze linuxa (albo by***322;o, przynajmniej w 2.4). Cytat:
p***281;tle i ify s***261; t***322;umaczone na test rekord***243;w (inst. procesora) i odpowiedni skok do odpowiedniej etykiety (inst. procesora). |
etykiety i goto to paskudny pomys***322;. ka***380;dy rozs***261;dny programista opieprzy za ich stosowanie i z***322;apie si***281; za g***322;owe jak przyjdzie mu czyta***263; taki kod...
u mnie na studiach stosowanie tego by***322;o ca***322;kowicie zabronione i te***380; na pocz***261;tku si***281; dziwi***322;em czemu bo jako dziecko stosowa***322;em goto nagminnie w basicu (C64 ;) ). Nie spotka***322;em ani jednej rzeczy kt***243;r***261; wygodniej by***322;oby zrobi***263; przez goto. Z teoretycznego punktu widzenia dawno jest udowodnione ***380;e wszystko da si***281; napisa***263; trzema typami instrukcji - sekwencji ( ; ), iteracji (while) i selekcji (if). Reszta to tylko dodatki. |
Cytat:
za pomoc***261; goto nie mo***380;na skoczy***263; do innej procedury, p***281;tli... poza tym estetyka... tworzenie menu za pomoca goto jest kozackie... i tak wyglada... zamiast je robic za pomoca goto/etykiet i if'ow to lepiej podzielic program na procedury i wywolywac je za pomoca case... wygl***261;da ***322;adniej i logiczniej... napisalem Ci na kolanie menu... teraz zr***243;b to samo na goto :D teraz rozumiesz? :> Kod:
program bleble;jesli bedziesz miec kilkanascie etykiet to stracisz kontrole nad programem... np. masz w programie kolejno (gdzies tam miedzy kodem) label zonk1; (...) label zonk2; (...) label zonk3 (...) label zonkN i teraz tak jak wywolasz etykiete zonk1; to wykona sie wszystko w innych etykietach nizej czy tego chcesz czy nie... jesli wywolasz zonk2; to tez za kazdym razem wykona sie wszystko co pod nia... wywolujac procedure case'm _wyjmujesz_ do wykonania potrzebny Ci FRAGMENT programu, tego nie uzyskasz za pomoca goto |
Nie pomy***347;la***322;em o tym :D
Ale powiedz please, czemu etykiety to niedobry pomys***322;? |
Cytat:
jak juz chcesz miec petle nieskonczona wracajaca do poczatku po nacisnieciu dowolnego klawisza... Kod:
program bleble;petla repeat (powtarzaj) until (dop***243;ki) zonk <> 1 - logicznie, ze zawsze bedzie =1 wiec nie bedzie miec konca :) |
Wszyscy mi tak mówią, tylko ni cholery nie wiem dlaczego? Jest jakaś lepsza alternatywa? :hmm:
|
w rysowanie tabelek nigdy sie nie bawilem (na szczescie belfrzy dali se siana z tym)
pisze tego posta aby opieprzyc Cie za stosowanie komendy goto :D naprawde radze oducz sie _etykietowania_ to z***322;y nawyk i ka***380;dy programista Ci to powie, to nie asembler :) |
Ilość załączników: 2
THX za pomoc, ale jeszcze sobie delphi odpuszcz***281; - jednak.
Tymczasem mam problem z czym innym. Jak tu zrobi***263;, aby w poni***380;szym wynalazku program sam powpisywa***322; wszystkie warto***347;ci z ASCII do tabeli. Przesuni***281;cia s***261; ok, problem w tym, ***380;e tabela nie rysuje si***281; ca***322;a od pocz***261;tku do ko***324;ca. Nie wiem jak kto wyja***347;ni***263;. |
Dawno juz w delphi nic nie robi***322;em .... ale nie pownienie***347; da***263; procedury przed beginem? ( po {R...} )?
edit: albo po prostu wyrzuci***263; ten begin przed procedur***261; ca***322;kowicie (end. na ko***324;cu zostaje) |
Ilość załączników: 1
Pozwolę sobie odkopać topik ;]
Czy znalazłby się jakiś "fachman od Delphi" i mógłby mnie oświecić czemu nie mogę skompilować tego wynalazku. Dodam, że jestem newbie co pewnie od razu widać. :D Kod:
unit Unit1;errory: Kod:
[Error] Unit1.pas(31): Statement expected but 'PROCEDURE' found |
Cytat:
Nie rozumiem PS, ale wydaje mi sie ze dobrze myslisz. Zrob moze lepiej ten stos nil <- elem6 <- elem3 <- elem8 <- elem2 <- stos dodanie elem5 (elem5 pokazuje na elem2, stos pokazuje na elem5) nil <- elem6 <- elem3 <- elem8 <- elem2 <- elem 5 <- stos wypsanie - tak jak masz. szukanie - tak jak masz. usuwanie. sprawdzasz czy stos nie jest nil. sprawdzasz czy stos^.wart = co trzeba jak tak to temp1=stos^.poprz stos^.poprz = nil, stos = temp1 jak nie znalazles to teraz temp2 = stos. i potem lecimy i sprawdzamy temp2^.poprz^.wartosc (dana to dziwna nazwa BTW). Jak znajdziemy to przepinamy jak wyzej temp1=temp2^.poprz^.poprz; temp2^.poprz^.poprz = nil; temp2^.poprz = temp1. i tak lecisz dopoki temp2^.poprz nie bedzie nilem Proponuje poprzerabiac na funkcje i zastanowic sie jakie wartosci powinny byc zwracane. Np. jezeli usun moze zwracac liczbe usunietych wezlow (w szczegolnosci mozesz napisac tak zeby wszystkie wystapienia usuwal, ale tak czy inaczej powinienes zzewnatrz wiedziec czy cokolwiek udalo sie wyrzucic). |
ok wypisywanie i szukanie sobie zrobi***322;em/poprawi***322;em - a jak wygl***261;da***322;oby usuwanie elementu listy, bo to chyba bedzie wygl***261;da***263; r***243;***380;nie w zale***380;no***347;ci czy to b***281;dzie pocz***261;tek listy (temp^.poprzednia = nil), ***347;rodek listy (temp^.dana) czy koniec listy (temp^.nastepna = nil)
PS Tak ale jak to zrozumiem na typie dwukierunkowym to jednokierunkowy wystarczy 'odchudzi***263;' :) |
BTW. Narazie do tej funcjonalnosci nie potrzeba Ci listy dwukierunkowej. Korzystasz jedynie z jednego kierunku reprezentujacego stos - masz najnowszy wierzcholek i schodzisz poprzednikami. Narazie zbedna wiec wydaje sie byc pozycja 'nastepny' - chyba ze gdzies indziej jej bedziesz uzywal.
|
Cytat:
|
Cytat:
Nigdy nie sprawdzasz najstarszego elementu. czyli tego co mam poprz=nil |
Cytat:
no tak, mo***380;e teraz liczba wchodzi do listy ale jako***347; nie umiem jej wy***347;wietli***263;, pisa***322;em nawet procedure aby ja znale***378;***263; ale chyba jej tam nie ma :| Kod:
{-----------------------------------------------------} |
Cytat:
|
Odkopuj***281; temat, poziom po kilku latach troszk***281; si***281; zmieni***322; wi***281;c...
mam napisa***263; program, kt***243;ry b***281;dzie dodawa***263; (wpisane przez u***380;ytkownika) do listy dwukierunkowej liczby a potem je wy***347;wieta***263; kolejno... zrobi***322;em co***347; takiego: Kod:
program test1;Wiem, ***380;e jestem blisko ale co***347; mi nie wychodzi... |
Cytat:
Teraz powiedz mi jak odwołać się do jakiejś konkretnej zakładki??? thx ...::Update::... OK, już mam ... poprostu "Show" ;) Dzięki Ziele :piwo: Działa tak jak chciałem... BTW: Czym się rózni PageControl od TabControl??? |
Pewnie masz dużo obiektów i zmieściłeś je na 4 panelach żeby okno nie było duże... a nie lepiej było do tego użyć PageControl? :D
|
Cytat:
|
Ja mam pytanie dotyczące Delphi:
Mam formatkę na której umieszczam 4 obiekty typu "Panel" (panele są tych samych rozmiarów i w tych samych miejscach, w ten sposób że się pokrywają). Pytanie: czy istnieje jakaś instrukcja, żeby dany panel odrazu "wywalić" na samą górę??? (bez komend ukrywających pozostałe panele) Dotychczas robiłem to w ten sposób, że w kodzie jakiegoś przycisku wpisywałem np. Kod:
Form1.Panel2.Visible:=False; //ukrywa drugi panel |
MacGyver i cyki
- dzięki, działa :) PS reputy poszły.... ;) |
Cytat:
IF ((a+b>=0) AND (-1*(a+b)>=0)) THEN Begin [...] End Cytat:
|
Cytat:
chodzi mi o to jaki ma być znaczek między dwoma nierównościami po IF (chce to zrobić w jednym warunku)... |
Jak dla mnie to będzie:
IF a+b >= 0 AND -1*(a+b) >= 0 THEN Begin [...] End; |
W Pascalu wstawiasz je między BEGIN a END (zaraz po THEN)
...bynajmniej tak jest w Delphi - a to też Pascal ...::Update::... QRde, zle zrozumiałem :ysz: ...dajesz w nawiasach pierwszy warunek potem wpisujesz AND i drugi warunek |
Pascal...pytanie
Chodzi mi o warunek w Pascalu:
Kod:
IF a+b<0 THEN WriteLn('blabla (blabla): ', -1*(a+b), ' blabla !!!')np: 'a+b>=0' i np '-1*(a+b)>=0' Jeśli ktoś nie kuma o co mi chodzi to podam przykałd na C++: Kod:
if((a>=5)&&(a<=21))Jak to jest w Pascalu ?? |
| Wszystkie czasy w strefie CET. Aktualna godzina: 00:17. |
Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.