Nagrywarki |
Pliki |
Dyski twarde |
Recenzje |
Księgarnia |
Biosy |
Artykuły |
Nagrywanie od A do Z |
Słownik |
FAQ
|
||
|
Komputery - oprogramowanie i sprzęt Pytania i problemy niezwiązane z nagrywaniem, backupem i grami. |
|
Opcje związane z dyskusją | Tryby wyświetlania |
09.12.2006, 23:12 | #16 |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
|
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.
|
#ads | |
CDRinfo.pl
Reklamowiec
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
|
|
09.12.2006, 23:29 | #17 |
Pingwin specjalista.
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,084
|
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;'
__________________
amiga500site |
10.12.2006, 00:32 | #18 | |
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
|
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). |
|
09.10.2007, 19:36 | #19 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
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ć. Kod:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls; type TForm1 = class(TForm) ps2boot: TCheckBox; cdrom: TComboBoxEx; ps2save: TButton; procedure ps2saveClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; cnf: textfile; implementation {$R *.dfm} begin procedure TForm1.ps2saveClick(Sender: TObject); begin if ps2boot.checked then begin assignfile(cnf, '.\SYSTEM.TXT'); try rewrite(cnf); write('BOOT2 = '); writeln('wstawic cdroma'); finally closefile(cnf); end; Application.MessageBox('Plik został pomyślnie zapisany','SYSTEM.CNF',0); end; end. errory: Kod:
[Error] Unit1.pas(31): Statement expected but 'PROCEDURE' found [Error] Unit1.pas(44): ';' expected but '.' found [Error] Unit1.pas(46): Declaration expected but end of file found [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
19.10.2007, 08:44 | #20 |
Jukebox Hero
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
|
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) Ostatnio zmieniany przez sobrus : 19.10.2007 o godz. 08:47 |
01.12.2007, 19:12 | #21 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
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;.
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF Ostatnio zmieniany przez Berion : 01.12.2007 o godz. 19:15 |
01.12.2007, 19:25 | #22 |
Pingwin specjalista.
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,084
|
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 naprawde radze oducz sie _etykietowania_ to z***322;y nawyk i ka***380;dy programista Ci to powie, to nie asembler
__________________
amiga500site |
01.12.2007, 19:34 | #23 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
Wszyscy mi tak mówią, tylko ni cholery nie wiem dlaczego? Jest jakaś lepsza alternatywa?
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
01.12.2007, 19:39 | #24 | |
Pingwin specjalista.
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,084
|
Cytat:
jak juz chcesz miec petle nieskonczona wracajaca do poczatku po nacisnieciu dowolnego klawisza... Kod:
program bleble; uses crt; var zonk:integer; begin zonk:=1; repeat clrscr; writeln('tutaj program...'); readln; until zonk <> 1; end. petla repeat (powtarzaj) until (dop***243;ki) zonk <> 1 - logicznie, ze zawsze bedzie =1 wiec nie bedzie miec konca
__________________
amiga500site Ostatnio zmieniany przez Patrix : 01.12.2007 o godz. 19:43 |
|
01.12.2007, 19:46 | #25 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
Nie pomy***347;la***322;em o tym
Ale powiedz please, czemu etykiety to niedobry pomys***322;?
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
01.12.2007, 20:09 | #26 |
Pingwin specjalista.
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,084
|
bo jest be
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 teraz rozumiesz? Kod:
program bleble; uses crt; var zonk,zonk1:integer; procedure aa; begin writeln('jeden'); end; procedure bb; begin writeln('dwa'); end; procedure menu; begin writeln('[1] procedura aa'); writeln('[2] procedura bb'); writeln('[3] wyjdz'); read(zonk); end; begin clrscr; zonk1 := 1; repeat menu; case zonk of 1: aa; 2: bb; 3: exit; end; until zonk1 <> 1; readln; end. 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
__________________
amiga500site Ostatnio zmieniany przez Patrix : 01.12.2007 o godz. 20:18 |
02.12.2007, 12:17 | #27 |
Jukebox Hero
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
|
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. Ostatnio zmieniany przez sobrus : 02.12.2007 o godz. 12:23 |
02.12.2007, 12:39 | #28 | ||
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
|
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). Ostatnio zmieniany przez pawelblu : 02.12.2007 o godz. 12:47 |
||
02.12.2007, 14:23 | #29 |
Hibernant
CDRinfo VIP
Data rejestracji: 24.06.2004
Posty: 17,115
|
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;...
__________________
Wszystko co chciałbyś wiedzieć o: | PSX | PS2 | PS3 | Xbox | FF000000000003010101010003010000000003010000030000 00000003010000000003010100000003010101010003010000 00000300010101010300000000000301010000000300000001 01030101010100030101000000030000000000030100000000 03000001010103000000000003010100000003000000000103 01000000000301010000000301010000000300000000000301 01010100030000000000030101000000030000000001030003 01000000000301000000030100000000030000000101030100 00000003010000030100000000030100010003010100000003 00000000000300000000000300010301000000000301000003 00000001010301010100000301010000000300000000000301 00000000030000000101030000000001030101000000030101 000000030101000000FF |
02.12.2007, 16:46 | #30 |
Jukebox Hero
Data rejestracji: 17.09.2004
Lokalizacja: Back for the Attack
Posty: 10,800
|
@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 Ostatnio zmieniany przez sobrus : 02.12.2007 o godz. 16:55 |
|
|