S_petle_w_C++.txt

(12 KB) Pobierz
                   o o o        o o
                  M"""" Mo      M"""""M
                  M     o       M     M"
                  M     Mo o   o"     oM o          ooo
                  M     MM" MM ""     MM  ""oo  o""" MM ""o
                 oo     """""  oM     MM     MoM     M     M
                  M     Mo ooo o"     MM      M"     MoooooMo
                  M     MoM   MM"     MM     "Mo     MM"  "M
                  Mo    MMo   oMM     MM      MM     MMo   M
                   ""oo oM"ooM" M o   MM o   "M "ooo M""o "
 R                     "" "     " """""" """""      ""
 E                                                           o
 F            oo                                             MM
 O           MMMMMMMooooo            MMM               ooMoo"MM             w
 R            "MMMMM"MMMMMoo         MMMMo           oMMMM"" MM             w
 M             MMMMMo MMMMMM         MMMMM          MMMM"   oMM             w
 E             MMMMM   MMMMMo       oMMMMo         oMMMM"   MMM             .
 D             MMMMM"  MMMMM        MMMMMM         MMMMM    oMM             r
               MMMMM   MMMMM        MMMMMM"        MMMMM     ""             |
 A             MMMMM  "MMMM        "MMMMMMM        MMMMM                    a
 S             MMMM"  "MMMMo       oMMMMMMMo      oMMMMM                    g
 M             MMMMo  oMMMM        MMMMMMMMo      "MMMMM                    .
               MMMMM  MMMMo        oMMMMMMMM      "MMMMM                    p
 G             MMMMM  MMMM"         MMMMMMMM       MMMM"                    l
 R             MMMM"oMMM"          oMMM"MMMM       MMMMM    ooooo o   oo
 O             MMMMMMMMM"          MMMM MMMMo      "MMMM   MMMMMMMM    MMo
 U             MMMMMMMMooo         MMMM "MMMM       MMM"     MMMMM      "MM
 P             MMMM  "MMMMo        MMMM  MMMM       ooo     "MMMMM       "M
               "MMM   MMMMMo       MMMMMMMMMMM      MMMM    oMMMMM        MM
     oMM"""    "MMMM   MMMMM      "MMM"""""MMMo     MMMMo    MMMMo         Mo
   oM""         MMMM   "MMMMo     oMM"     MMMM     MMMMo    MMMMM         MM
  MM"           MMMM"   "MMM      """      "MMM     "MMMo    MMMM"         MM
 MM             ""M"     MMMMo    oMo       MMMM     MMMo    MMMMo         MM
 MM            ooooooo    MMMMMM oMMMM"    ooMMM     "MMMo   "MMMM         oM
 MM           oMMMMMM"     """"  "" "     "MM""        "MMMMooMMM          MM
 MM                                                      "  MMMM"          oM
 MM                                                          """           MM
 MM                            PROUDLY PRESENTS ...                        "M
 MM                                                                        MM
 MM              AUTHOR:   [ScrVn................................]         oM
 MM              E-MAIL:   [scrvn@wp.pl..........................]         MM
 MM              TOPIC:    [Petle.w.C++..........................]         oM
 MM              LANGUAGE: [C++..................................]         MM
 MM              DATA:     [23.12.2002...........................]         oM
 MM              WWW:      [www.r-ag.prv.pl......................]         "M
 MM                                                                        MM
 MMMMMMoMMMoMMMoMMMoMMMoMMoMMoMMoMMoMMoMMMMoMMMoMMMoMMMoMMMoMMMoMMMoMMMoMMMMM
 
  Na wstepie Merry Christmas ! i smacznego jajka (Oj!!! - to chyba nie 
 ta impreza 8-) Pewnie sie tak troche dziwicie , ze widzicie moj txt w 
 tym dziale , ale jednak to nie jest pomylka . Postanowilem , ze wezme 
 sie za ten dzial , bo cos z nim kiepsko na dzien dzisiejszy - ale to 
 sie zmieni , gwarantuje to wam 8-) . W sumie wszystko to co tutaj 
 napisze , bede popieral przykladami z Pascala , gdyz ten jezyk znam 
 najlepiej ( a kto go dzisiaj nie zna ? 8-) . W C++ w sumie to siedze 
 od niedawna , wiec chcac nie chcac wszystko bedzie wytulmaczone 
 bardzo prosto, jak krowie na rowie , i jeszcze prosciej 8-) . To moze 
 tyle tytulem wstepu ...

 Petelki - instrukcje iteracyjne , ale to madrze brzmi , hehehe . 

 1) Petla while

 Wiec petla "while" wyglada nastepujaca : 
 while (warunek)
     {
     instrukcja
     }
 Czy to czegos wam nie przypomina ? Oczywiscie - jest blizniaczo 
 podobna do pascalowskiej "while... do..."

 W miejsce "warunek" wstawiamy warunek wykonania petli ,czyli to co 
 bedziemy sprawdzac.
 
 Teraz popre to moze stosownym przykladem :
 Chcemy napisac programik , wypisujacy 10 liczb:
 C++:				
 #include<iostream.h>
 #include<conio.h>
 main(void)
 {      				
 int i=0;      			
   while(i<10)						 
	 {				
		i++;     		
		cout<<i<<endl;	
	 }				
 getch();
 }
 Pascal:
 program liczby;
  var i:shortint
 begin
  i:=0
  while i<10 do
  begin
   inc(i);
   writeln(i);
  end;
 end.
 Czyli jescze raz : 
 1. sprawdzamy czy liczba jest mniejsza od 10 
 2. robimy petelke 
 3. sprawdzamy czy liczba jest mniejsza od 10 
 4. ... 
 5. ... 
 W sumie patrzac na jedno src i drugie src to w C++ wyglada to troche 
 krocej , ale w pascalu jest czytelniej (kwestia sporna).

 A tak na marginesie : funkcja getch() powoduje to , ze okno programu 
 zniknie po nacisniecu klawisza , bo bez tej funcjki w windowsie 
 raczej nie zobaczymy wynikow programu , bo zaraz znika jego okno . 
 Zeby korzystac z tej funcji trzeba dolaczyc plik conio.h

 2) Petla do ... while ...

 To teraz na patelnie idzie "do ... while..." . Jej postac wyglada 
 nastepujaco 
 do
 {
 instrukcja
 }
 while (warunek)
 Czy nie przypomina wam ona czasem pascalowskiego "repeat ... until"? 
 Tak ! mi przypomina i to bardzo.

 Ta petla zawsze wykonuje sie przynajmniej 1 raz , gdzyz warunek 
 sprawdzany jest dopiero po wykonaniu 1 obiegu petli .

 No to moze teraz maly przykladzik :

 Chcemy napisac taki sam program jak w poprzednim przykladzie :
 C++:
 #include<iostream.h>
 #include<conio.h>
 main(void)				
 {					
 int i=0;				
   do					
	 {			          	
		i++;  		
		cout<<i<<endl;
	 }
  while (i<10);
 getch();
 }
 Pascal:
 program liczba;
 var
   i:shortint;
 begin
   i:=0;
 repeat
   inc(i);
  witeln(i);
 until i=10;
 end.
 Widzicie teraz - najpierw wykonujemy petle , a dopiero potem 
 sprawdzamy czy warunek jest prawda czy nie .

 3) Petla for

 Co nam jeszcze zostalo ? Ach ! juz wiem , petelka "for" 8-)

 Jej postac : 
 for (wyrazenie1;wyrazenie2;wyrazenie3)
 {
 instrukcja
 }
 I tutaj jest mala roznica , z pascalowskim "for". W miejsca 
 wyrazenie1,2,3 wstawiamy parametry wykonania petli ( ale to madrze 
 zabrzmialo 8-) jednak to bardzo proste . Chodzi o to ze musimy podac 
 licznik petli (moze byc ich kilka) , warunek wykonywania petli (czyli 
 kiedy petla bedzie przerwana) , no i czy licznik petli zwiekszamy czy 
 zmniejszamy - to jest tak samo jak w pascalu:

 mamy np. 
         for i:=1 to 10 do ... {licznik zwiekszamy}
         {oraz}
	 for i:=10 downto 1 do ...{licznik zmniejszamy}
 No to se walniemy moze jakis przykladzik ? 

 Napiszemy sobie to co w poprzednim przykladzie , ale z inna petelka , 
 z petelka FOR 8-)

 Teraz napiszemy z licznikiem rosnacym ...
 C++:					
 #include<iostream.h>			
 #include<conio.h>			
 main(void)				
 {					
						
  for(int i=0;i<10;i++)					
  {						
	cout<<i<<endl;			
  }
 getch();
 }
 Pascal:
 program liczba;
 var
  i:shortint;
 begin
  for i:=0 to 10 do
      begin
       writeln(i);
      end;
  end.
 A teraz napiszemy z licznikiem malejacym... 
 C++:					
 #include<iostream.h>>
 #include<conio.h>>		
 main(void)				
 {				 
					
 for(int i=10;i>0;i--)			
   {					
 	cout<<i<<endl;			
   }
 getch();
 }
 Pascal:
 program liczba;
 var
  i:shortint;
 begin
  for i:=10 downto 1 do
      begin
       writeln(i);
      end;
 end.
 Chcialem jeszcze dodac : w petli "for" mozna w warunku1 , czyli tam 
 gdzie deklarujemy licznik petli od razu go zadeklarowac , tzn. ze nie 
 musimy o nim wspominac we wczesniejszej czesci programu . No i 
 jeszcze chcialem nadmienic , ze tych licznikow moze byc kilka , a 
 odzielamy je od sienie przecinkiem.
 
 To moze maly przykladzik z kilkoma licznikami:
 C++				
 #include<iostream.h>
 #include<conio.h>	
 main(void)
 {
   for(int a=1,b=5;a<10;a++,b++)
   {
 	cout<< a <<" "<< b<<endl;
   }
 getch();
 }
 Pascal:
 Jak sie zapewne domyslacie w pascalu nie jest dostepna taka
 konstrukcja petli "for" , czyli z dwoma licznikami 8-(

 4) Instrukcje: continue i break
 
 No ale jesli juz mowimy o petelkach w C++ to grzechem jest nie 
 wspamnac o instrukcjach break oraz continue.

 Instrukcja break, powoduje przerwanie petli(jesli spelniony jest 
 warunek przerwania petli) i przejscie do nastepnej instrukcji po 
 petli. Ponizszy program czyta 1000 liczb , jednak kiedy podana liczba 
 to 0 przerywa swoje wykonanie i wysietla odpowiedni komunikat:
 #include<iostream.h> 
 #include<conio.h> 
  main(void) { 
  int d; 
 for(int a=1;a<1000;a++) { 
   cin >>d; 
       if (d==0) break;  
      } 
  cout <<"To byl blad - nie powinienes wpisywac 0 !!!"; 
  getch(); 
  } 

 Instrukcja continue powoduje zakonczenie wykonywania danego obiegu 
 petli , jednak nie przerywa petli !!!.

 Ponizszy programik czyta liczby i pisze komunikat , jednak gdy ta 
 liczba to 0 ignoruje ja i nie wypisuje niczego:
 
 #include<iostream.h>
 #include<conio.h>
 main(void)
 {
	 int d;
   for(int a=1;a<<1000;a++)
   {
	cin >>d;
	if (d==0)
	continue;
	cout <<"Ta liczba moze byc ..."<<endl;
   }
 getch();
 }
 
 Czyli w sumie to tyle jesli chodzi o petle w C++.

 A tak przy okazji: naprawde dobra szkol...
Zgłoś jeśli naruszono regulamin