Darmowe Forum
Kwiecień 15, 2025, 10:23:20 *
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Forum zostaÂło uruchomione!
 
   Strona główna   Pomoc Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: Funkcje  (Przeczytany 8284 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : Listopad 18, 2011, 11:29:00 »

Zadanie 3. NapisaÌ program w którym funkcja o nazwie Kasia, odejmuje od podanej liczby wartoœÌ 10.
#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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomości: 821


Email
« 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
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

shaggydogss spw polski-serwer-rpg mylittlepony proskills