| 
							admin
							
						 | 
						
							
								  | 
								
									
									 «  : Listopad 09, 2011, 11:01:47 »  | 
								
								 | 
							  
							 
							W jêzyku C++ odpowiednikiem stosowanej w Pascalu procedury jest funkcja typu pustego (void). 
  Dla przypomnienia deklaracja funkcji ma nsp. postaæ:
  typ nazwa_funkcji(typ_argumentu: argument, ...) {...}
  int viola (int x,int y){....}
  Je¿eli funkcja ma niczego nie zwracaæ nale¿y zamiast typu argumentu wstawiæ s³owo void: np. void nazwa_funkcji(void){....}. Wywo³anie takiej funkcji w programie bêdzie mia³o postaæ:
  nazwa_funkcji(); wyswietlanie(); 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 09, 2011, 11:05:42 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #1 : Listopad 09, 2011, 12:17:18 »  | 
								
								 | 
							  
							 
							Przyk³ad 1. Napisaæ program w którym funkcja dodawanie jest wykorzystywana do sumowania dwóch liczb wprowadzonych z klawiatury.
  #include <cstdlib> #include <iostream> using namespace std;
  int dodawanie(int a, int b) {int c; c=a+b; return(c);}
  int main(int argc, char *argv[]) {int e; e= dodawanie(2,3); cout<<"Wynik dodawania liczb 2 i 3 = "<<e<<endl;;     system("PAUSE");     return EXIT_SUCCESS; }  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 09, 2011, 12:21:51 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #2 : Listopad 09, 2011, 12:38:50 »  | 
								
								 | 
							  
							 
							Funkcje  W jêzyku  C++ ka¿da funkcja przed jej wywo³aniem powinna zostaæ zadeklarowana. Deklaracja funkcji polega na podaniu „prototypu funkcji” ,czyli nazwy, typu funkcji oraz w nawiasach zmiennych które s± w niej u¿ywane (parametry formalne).  Prototyp funkcji umieszczamy przed wywo³aniem funkcji main(). Przyk³ad:  Int suma(int x, int y);
  Jest to prototyp funkcji suma. Funkcja suma  ma dwa argumenty: x, y. Funkcja suma i jej argumenty s± liczbami typu integer. Zatem prototyp funkcji, to taka deklaracja która: •   Zosta³a umieszczona na pocz±tku programu poza funkcja main(); •   Zawiera deklaracje zarówno typu funkcji jak i typów argumentów.
  To co przedstawi³em do tej pory to tylko deklaracja, ¿e w programie bêdê u¿ywa³ funkcji o nazwie suma. Do poprawnej pracy programu konieczne jest napisanie co ta funkcja ma wykonywaæ. Czyli trzeba napisaæ kod funkcji, Nosi on nazwê „cia³a funkcji”. Mo¿na napisaæ to razem z deklaracj± prototypu lub po zakoñczeniu funkcji main(). W programie mo¿e byæ tylko jedna funkcja main().
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #3 : Listopad 09, 2011, 13:03:07 »  | 
								
								 | 
							  
							 
							Przyk³ad 2. Proszê napisaæ program który korzystaj±c z funkcji o nazwie suma oblicza sumê dwóch wprowadzonych z klawiatury liczb.   #include <cstdlib> #include <iostream> using namespace std;
  int suma(int x,int y) {return (x+y);}      int main(int argc, char *argv[]) {int a, b; cout<<"Podaj pierwsza liczbe ";cin>>a; cout<<endl<<"Podaj pierwsza liczbe ";cin>>b; cout<<endl<<a<<" + "<<b<<" = "<<suma(a,b)<<endl;     system("PAUSE");     return EXIT_SUCCESS; }
  ----------ver.2.1. ------------------------------------------
  #include <cstdlib> #include <iostream>
  using namespace std; int suma(int x,int y);      int main(int argc, char *argv[]) {int a, b; cout<<"Podaj pierwsza liczbe ";cin>>a; cout<<endl<<"Podaj pierwsza liczbe ";cin>>b; cout<<endl<<a<<" + "<<b<<" = "<<suma(a,b)<<endl;     system("PAUSE");     return EXIT_SUCCESS; }
  int suma(int x,int y) {return (x+y);}
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 09, 2011, 13:14:08 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #4 : Listopad 18, 2011, 11:29:00 »  | 
								
								 | 
							  
							 
							 #include <cstdlib> #include <iostream>
  using namespace std;
  int kasia(int x) // prototyp funkcji {return (x-10);}; //cia³o funkcji
  int main(int argc, char *argv[]) {int z;     cout<<"Podaj liczbe :"; cin>>z;     cout<<endl<<kasia(z)<<endl;//tutaj wywo³ujemy funkcjê kasia          system("PAUSE");     return EXIT_SUCCESS; }
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #5 : Listopad 23, 2011, 08:25:15 »  | 
								
								 | 
							  
							 
							Zadanie 4. Napisaæ program, w którym funkcja o nazwie rambo bêdzie oblicza³a iloraz dwóch liczb wprowadzanych z klawiatury. Prototyp funkcji umie¶ciæ przed funkcj± main. Prototyp i cia³o funkcji po funkcji main.
  #include <cstdlib> #include <iostream>
  using namespace std; float rambo(float a,float b); int main(int argc, char *argv[]) {cout<<rambo(6,5)<<endl;     system("PAUSE");     return EXIT_SUCCESS; } float rambo(float a,float b) {float c; c=a/b; return c;}
  Zadanie 5.  (3) Napisaæ program który korzystaj±c z funkcji obliczy warto¶æ sumy od 1 do podanej liczby.
  #include <cstdlib> #include <iostream>
  using namespace std; int rambo(int a); int main(int argc, char *argv[]) {int b; cout<<"Podaj liczbe";cin>>b; cout<<endl<<"suma liczb od 1 do "<<b<<" = "<<rambo(b)<<endl;      system("PAUSE");     return EXIT_SUCCESS; } int rambo(int a) {int b,c=0; for(b=1;b<=a;b++) {c=c+b;} return c;} 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 23, 2011, 11:29:44 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #6 : Listopad 23, 2011, 08:34:03 »  | 
								
								 | 
							  
							 
							W jêzyku C++ odpowiednikiem stosowanej w Pascalu procedury jest funkcja typu pustego (void). Dla przypomnienia deklaracja funkcji ma nsp. postaæ: typ nazwa_funkcji(typ_argumentu: argument, ...) {...} int viola (int x,int y){....} Je¿eli funkcja ma niczego nie zwracaæ nale¿y zamiast typu argumentu wstawiæ s³owo void: np. void nazwa_funkcji(void){....}. Wywo³anie takiej funkcji w programie bêdzie mia³o postaæ:
  nazwa_funkcji(); wyswietlanie();
  Przyk³ad 6
  #include <cstdlib> #include <iostream>
  using namespace std; void napis(void) { cout<<"Tak dzia³a funkcja bez okre¶lonego argumentu,"<<endl; cout<<"nie zwracaj±ca nic do systemu"<<endl; } int main(int argc, char *argv[]) {     napis();     system("PAUSE");     return EXIT_SUCCESS; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 23, 2011, 08:36:52 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #7 : Listopad 23, 2011, 08:41:07 »  | 
								
								 | 
							  
							 
							Przyk³ad 7. Funkcja pusta
  #include <cstdlib> #include <iostream> using namespace std; void napis(void) {cout<<"Tak dzia³a funkcja pusta";} int main(int argc, char *argv[]) { napis();     system("PAUSE");     return EXIT_SUCCESS; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #8 : Listopad 23, 2011, 08:46:56 »  | 
								
								 | 
							  
							 
							Przyk³ad 7 - 10 krotne wywo³anie funkcji napis()
  #include <cstdlib> #include <iostream> using namespace std; void napis(void) {cout<<"Tak dzia³a funkcja pusta"<<endl;} int main(int argc, char *argv[]) {int i; for(i=1;i<11;i++){ napis();}     system("PAUSE");     return EXIT_SUCCESS; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #9 : Listopad 23, 2011, 10:46:57 »  | 
								
								 | 
							  
							 
							Zadanie 8. Program obliczaj±cy ilo¶æ zu¿ytego paliwa na 100 km
  #include <cstdlib> #include <iostream>
  using namespace std; float licz(void){       cout<<"Podaj liczbê przejechanych kilometrow: ";       float km;       cin>>km;    cout<<"Podaj ilosc zuzytego paliwa: ";       float dm;       cin>>dm;        return dm/km*100;} int main(int argc, char *argv[]) {cout<<"Ilosc paliwa  spalanego na 100km = "<<licz()<<" l/100"<<endl;     system("PAUSE");     return EXIT_SUCCESS; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #10 : Listopad 23, 2011, 11:00:24 »  | 
								
								 | 
							  
							 
							Przeci±¿anie funkcji pozwala utworzyæ kilka funkcji tak samo nazwanej lecz posiadaj±cej ró¿n± liczbê argumentów lub ró¿ny typ argumentów. Poni¿ej przedstawiony przyk³ad przedstawia deklaracjê funkcji min(). Zadeklarowane zosta³y trzy funkcje o ró¿nych typach argumentu i wywo³ywane z ró¿nymi argumentami.
  #include <cstdlib> #include <iostream>
  using namespace std; int min(int a,int b) {return (a < b)?a:b ;}
  float min(float a,float b) {return (a < b)?a:b ;}
  char min(char a,char b) {return (a < b)?a:b ;}
  int main(int argc, char *argv[]) {    int a=10,b=5;   cout<<min(a,b)<<'\n';   char p='A',q='Z';   cout<<min(p,q)<<'\n';   float z=1.91,x=3.98;   cout<<min(z,x)<<'\n';         system("PAUSE");     return EXIT_SUCCESS; }
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #11 : Listopad 23, 2011, 11:04:47 »  | 
								
								 | 
							  
							 
							Trójmian kwadratowy #include <cstdlib> #include <iostream> #include <math.h> using namespace std;
  float delta(float d, float e,float f) {return e*e-4*d*f;} float pierw1 (float d,float e,float f, float g) {return (-e-sqrt(g))/(2*d);}  float pierw2 (float d,float e,float f, float g) {return (-e+sqrt(g))/(2*d);}                 int main(int argc, char *argv[]) {float a,b,c; cout<<'\n'<<"podaj wartosc wspolczynnika a= "; cin>>a; cout<<'\n'<<"podaj wartosc wspolczynnika b= "; cin>>b;    cout<<'\n'<<"podaj wartosc wspolczynnika c= "; cin>>c; if (delta(a,b,c)<0){cout<<'\n'<<"Brak pierwiastkow rownania";} else if (delta(a,b,c)==0) {cout<<endl<<"jeden pierwiastek rownania x1/x2= "<<-b/(2*a);} else {float d=delta(a,b,c); cout<<endl<<"x1= "<<pierw1(a,b,c,d); cout<<endl<<"x2= "<<pierw2(a,b,c,d);}     cout<<endl;     system("PAUSE");     return EXIT_SUCCESS; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #12 : Listopad 30, 2011, 08:30:14 »  | 
								
								 | 
							  
							 
							Zadanie 10. Napisaæ program który korzystaj±c z funkcji void prosi o podanie nazwiska i imienia. Nastêpnie wy¶wietla je na ekranie. W funkcji main powinno byæ tylko wywo³anie funkcji.
  #include <cstdlib> #include <iostream> #include <string> using namespace std; void imie1(void); int main(int argc, char *argv[]) {imie1();     system("PAUSE");     return EXIT_SUCCESS; } void imie1(void) {string imie, nazwisko; cout<<"Podaj imie: ";cin>>imie; cout<<endl<<"Podaj nazwisko: ";cin>>nazwisko; cout<<endl<<"podales: "<<imie<<" "<<nazwisko; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #13 : Listopad 30, 2011, 09:02:03 »  | 
								
								 | 
							  
							 
							Zadanie 11. Zmodyfikowaæ program z zadania 10 (bez zmiany deklaracji argumentów funkcji void imie1(void)), w ten sposób aby pytanie wy¶wietlane by³o 5 razy. W pytaniu o imie powinien byæ wy¶wietlany kolejny numer pytania.
  #include <cstdlib> #include <iostream> #include <string> using namespace std; void imie1(void); int x; int main(int argc, char *argv[]) { for(x=1;x<=5;x++){     imie1();}     system("PAUSE");     return EXIT_SUCCESS; } void imie1(void) {string imie, nazwisko; cout<<endl<<"Podaj imie "<<x<<" : ";cin>>imie; cout<<endl<<"Podaj nazwisko: ";cin>>nazwisko; cout<<endl<<"podales: "<<imie<<" "<<nazwisko; }
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Ostatnia zmiana: Listopad 30, 2011, 09:27:07 wys³ane przez admin »
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							admin
							
						 | 
						
							
								  | 
								
									
									 « Odpowiedz #14 : Listopad 30, 2011, 09:37:54 »  | 
								
								 | 
							  
							 
							Tak dzia³a przys³anianie zmiennych globalnych
  #include <string> using namespace std; void imie1(void); int x; int main(int argc, char *argv[]) {int x; for(x=1;x<=5;x++){     imie1();}     system("PAUSE");     return EXIT_SUCCESS; } void imie1(void) {string imie, nazwisko; cout<<endl<<"Podaj imie "<<x<<" : ";cin>>imie; cout<<endl<<"Podaj nazwisko: ";cin>>nazwisko; cout<<endl<<"podales: "<<imie<<" "<<nazwisko; } 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Zapisane
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |