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
|
|
|
|
|