Toster Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 Pytanie jak w temacie czyli Kto wie ile razy wykona sie ponizsza petla bez uruchamiania Delphi. var t: integer; begin t := 10; for t := 1 to t do begin end; end; Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 Pytanie jak w temacie czyli Kto wie ile razy wykona sie ponizsza petla bez uruchamiania Delphi. var t: integer; begin t := 10; for t := 1 to t do begin end; end; 0 razy zakręciłem się Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Cubixmeister Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 10, z tego co pamiętam to kompilator oblicza warunki kończenia przed warunkami początkowymi i rozpoczęciem pętli Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 10 razy. A czemu? Bo kod z kompilatora ma postać (idąc od góry): Kod wyrażenia inicjującego Kod wyrażenia końcowego przypisanie to iteracyjnej wyrażenie początkowe y:przepisanie wartości wyrażenia końcowego do drugiego rejestru Porównianie rejestru ze zmienną Skok do komendy będącej na pozycji x jeśli zmienna jest większa/mniejsza Wykonanie instrukcji z fora Zwiekszenie/Zmniejszenie zmiennej iteracyjnej skok do y x: to co po forze Edit: Ech ubiegł Edit2: Swoją drogą FSL tak samo robi np. z KODprogram kod0c; var t : integer; begin t:=10; for t:=1 To t Do Writeln(t); end. Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 void __fastcall TForm1::Button1Click(TObject *Sender) { int t; t=10; for(t=1;t<t;t++) { MessageBox(NULL,"","",MB_OK); } } a ile razy wykona się ta pętla? Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 30, 2009 Autor Zgłoś Share Napisano Styczeń 30, 2009 0 Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 xevil: 0 razy w C++ kod wygląda tak: Kod instrukcji inicjującej y:Kod instrukcji finalizaującej jesli na stosie fałsz skocz do x skok do z m:kod instrukcji t++ skok do y z:Kod instrukcji iterowanej Skok do m x: nowa komenda po forze Edit: Ech i znowu ubiegli, same chamy Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 Tak, też byłem pewien że 10. Swego czasu kłóciłem się z nauczycielką, bo kazała mi robić: int s = w.size(); for (int i = 0; i < s; i++) {} %Ś-nh&'ŚŚjYr$)ĄąŹŹ Na co oczywiście odpowiedziałem, że Delphi bym tak nie musiał. Na co ona odpowiedziała, że bym musiał - więc się z nią założyłem. No i oczywiście wyszło na moje W C++ "for" to po prostu inny zapis "while"... Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 Nvm: nie for i while to nie to samo. While ma kod: y:kod warunku jak fałsz to skocz do x kod instrukcji skok do y x: bla bla W sumie najmniej skoków ma repeat..until i do.. while I się nie kłócić, miałem w środę z tego kolokwium Edit: Nvm, na pewno nieoptymalne (no chyba, że użyłeś ironii ). w C++ warunek końcowy jest sprawdzany co przejście, dlatego też gdy masz napis na którym np. usuwasz znaki a warunek jest i Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 30, 2009 Autor Zgłoś Share Napisano Styczeń 30, 2009 I się nie kłócić, miałem w środę z tego kolokwium Nikt nie powiedzial czy zaliczysz to kolowkium wiec sam rozumiesz ze ten arg. jest bez pokrycia Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 30, 2009 Zgłoś Share Napisano Styczeń 30, 2009 Ty się nie bój, myślisz, że jak rodził się FSL, trzeba było wiedzieć co i jak:P Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Juhas Napisano Luty 9, 2009 Zgłoś Share Napisano Luty 9, 2009 Pytanie jak w temacie czyli Kto wie ile razy wykona sie ponizsza petla bez uruchamiania Delphi. var t: integer; begin t := 10; for t := 1 to t do begin end; end; Obstawiam, że wykona się 0 razy. Pod warunkiem, że włączona jest optymalizacja. Z tego względu, że w ciele pętli nie ma nic. Link do komentarza Udostępnij na innych stronach More sharing options...
ktoś Napisano Luty 18, 2009 Zgłoś Share Napisano Luty 18, 2009 IMO 1 raz. Ewentualnie 0, ale wydaje mi się, że warunek jest sprawdzany po wykonaniu przebiegu, a nie przed. A ponieważ porównujemy zmienną z nią samą, to warunek zakończenia musi być prawdziwy, czyli na tym etapie przerywamy jak by co to nie bijcie, dawno nie bawiłem się delphi Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Luty 18, 2009 Zgłoś Share Napisano Luty 18, 2009 ...ale już po wszystkim chłopaki przeczytajcie posty wyżej Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.