• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Introducere in functii [C++]

33
  • Publicat de Coss
  • în C/C++
  • — 22 iul., 2009 at 6:48 pm

Toate sursele sunt compilate si rulate cu : Devcpp 4.9.9.2

Mi-am propus sa scriu un mic articol despre functii … Nu sunt notiuni foarte complicate, doar ceva de inceput: usor de priceput. I’ll be very happy if you’ll enjoy it ! 😀

  • Ce sunt functiile ?

Din punct de vedere conceptual, functia reprezinta o aplicatie definita pe o multime D (D=multimea, domeniul de definitie), cu valori in multimea C (C=multimea de valori, codomeniul), care indeplineste conditia ca oricarui element din D ii corespunde un unic element din C.

Sa lasam aceasta definitie complicata,ceea ce este mai usor de retinut si la fel de corect:  Un program C/C++ este un ansamblu de functii.

  • Forma generala

tip_functie nume_functie(parametru 1,parametru 2,parametru 3, … ,parametru n)

{

secventa de instructiuni

}

Unde:

– tip_functie este tipul valorii pe care o intoarce functia ;

–nume_functie este numele pe care dorim sa i-l punem functiei ;

– parametru 1, parametru 2, parametr 3, … , parametru n reprezinta lista de parametrii (nr vom lamuri in scurt timp ce sunt parametrii ) ;

–secventa de instructiuni este practic ceea ce vrem sa faca functia .

Exemplu:

Sa vedem si un exemplu clar de functie:

#include <iostream.h>
#include <conio.h>
int inmultire(int nr1,int nr2)
{
int rezultat;
rezultat=nr1*nr2;
return rezultat;
}
int main()
{
int nr1,nr2;
cout<<"Dati primul numar: ";cin>>nr1;
cout<<"Dati al doilea numar: ";cin>>nr2;
cout<<"Rezultat: "<<inmultire(nr1,nr2);
getch();
return 0;
}

Sper ca ati observat ca am declarat functia imediat dupa ce am declarat bibliotecile pe care le-am folosit. Acum sa analizam putin programul … Am creat o functie inmultire( ) , cu parametrii nr1 si nr2. In variabila rezultat am calculat produsul celor 2 variabile parametru. Am „spus” ca functia va returna acest rezultat prin return rezultat;

In functia principala am declarat 2 variabile, le-am citit de la tasatura si am afisat produsul acestora cu ajutorul functiei.

  • Parametrii functiilor

Parametrii sunt elementele de care depind functiile. In exemplus de mai sus acestia erau nr1 si nr2. De ce depinde functia inmultire( ) de acesti parametrii ? Pentru ca pe ei se bazeaza cand calculeaza rezultatul, de ei are nevoie. Pentru a stoca produsul parametrilor am folosit variabila auxiliara rezultat.

Exemplu:

#include <iostream.h>

#include <conio.h>

int adunare (int a, int b)
{
int r;
r=a+b;
return (r);
}

int main ()
{
int z;
z = adunare (7,3);
cout << "The result is " << z;

getch();

return 0;
}

Functia adunare ( ) calculeaza suma numerelor 7 si 3. O atribuie variabile z in cadrul functiei principale. In final vom afisa variabila z.

  • Functii fara tip

Functiile care nu ai niciun tip nu trebuie sa returneze o valoare, pot afisa un mesaj. Numite si void functions aceste functii sunt la fel de importante ca si cele cu un tip bine definit.

Declaram o functie de acest gen astfel:

void functie(void)

Exemplu

#include <iostream.h>
#include <conio.h>
void mesaj(void)
{
cout<<"Sunt o functie void !";
}
int main()
{
mesaj();
getch();
return 0;
}

Functia mesaj ( ) afiseaza pur si simplu: „Sunt o functie void !” . La ce folosesc astfel de functii ? Vom vedea imediat.

Programul de mai jos citeste de la tastatura elementele unui vector de n elemente, iar cand gaseste ca suma a 2 numere de pe pozitii consecutive este numar par afiseaza mesajul „am gasit ! „.

#include <iostream.h>
#include <conio.h>
void gasit(void)
{
cout<<"am gasit ! "<<endl;
}
int main()
{
int v[10],i,n;
cout<<"n=";cin>>n;
for (i=0;i<n;i++)
{
cout<<"v["<<i+1<<"]=";cin>>v[i];
}
for (i=0;i<n;i++)
if ( (v[i]+v[i+1])%2==0) gasit();
getch();
return 0;
}
  • Exercitii cu functii

Va propun niste exercitii usurele ca sa pricepeti si mai bine cum sta teraba cu functiile.

1) Verificati daca numarul x introdus de la tasatura este prim folosind o functie.
2) Calculati volumul unui cub folosind o functie numita volume ( ) .
3) Determinati daca un numar n este palindorm folosind o functie .
4) Incercati problema cmmdc de pe infoarena, utilizati functii.

Cam atat despre functii, este doar o introducere. Sper ca ati inteles cum vin lucrurile, astept pareri .

Have fun with functions ! 😀

Etichete: C++corp functiedevcppfuncÅ£iiProbleme algoritmicăsubprogramesurseTehnicturorial C++

— Albulescu Cosmina a scris 223 articole

Nu există o descriere a autorului.

  • Articolul anterior Primul dispozitiv Flash USB de 256GB din lume
  • Articolul următor [Concurs][Mediu] Crawlerul lui Mihai

33 Comentarii

  1. smeurel spune:
    noiembrie 15, 2011 la 10:23 pm

    a>0 si a <0?*

  2. alex spune:
    noiembrie 15, 2011 la 11:17 pm

    lasa eventual o adresa de mail si explica-mi exact ce vrei, nu inteleg exact ce vrei sa afiseze

  3. Ana spune:
    martie 15, 2012 la 4:20 pm

    salut ma puteti ajuta si pe mine cu o problema va rog !
    1)O functie care citeste de la tastatura pana la prima aparitie a lui 0 .
    a)O functie care afiseaza datele citite .
    b)O functie care modifica elementul de pe pozitia i cu o valoare data
    c)O functie care insereaza o valoare pe o pozitie data
    d)O functie care sterge valoarea de pe pozitia data

  4. alex spune:
    martie 15, 2012 la 5:10 pm

    Buna Ana, te ajut eu daca doresti, da-mi add pe mess alex_allex32
    Este prea mult sa scriu aici.

  5. Aikon spune:
    martie 18, 2012 la 7:34 pm

    Hello . Alex, ai ajutat-o pe Ana cu acea problema? Nu de alta, si eu am aceeas problema de rezolvat, si ma lovesc de multe ziduri :|.

  6. alex spune:
    martie 18, 2012 la 7:47 pm

    Sunt usor de facut

  7. Aikon spune:
    martie 18, 2012 la 7:55 pm

    o idee, 2 te rog ?:)

  8. alex spune:
    martie 18, 2012 la 8:46 pm

    zi exact la ce ai nevoie de ajutor

  9. mihai spune:
    iunie 29, 2012 la 12:22 pm

    salut!

    sa zicem ca avem o structura de genul:

    struct elev

    {
    char nume[20];
    char prenume[20];
    int nr_matr;
    };

    struct disciplina

    {
    char

    cum ar arata o functie de citire (de la tastatura) si una de afisare pe care sa o pot folosi si pentru alte structuri?

  10. AllanDalla spune:
    octombrie 27, 2012 la 7:47 pm

    felicitari pentru articol
    este foarte folositor

  11. Alin spune:
    aprilie 10, 2013 la 2:30 pm

    Salut..am si eu o probleme si ti-as fi foarte recunoscator daca m-ai ajuta.Trebuie sa citesc mai multe siruri de caractere (contin si spatii) ,si am incercat cu cin.get /cin.getline()…Problema e ca aceste 2 functii nu le putem utiliza de mai multe ori in program (Primul sir il citeste bine,iar pe celelalte nu).Ai idee cum as putea rezolva aceasta problema.Multumesc anticipat!!!

    • alex spune:
      aprilie 11, 2013 la 11:13 pm

      char a[100];
      cin.getline(a, 100, ‘\n’);// al doilea parametru e nr maxim de caractere citite, param nr trei este //caracterul delimitator
      cout << a << '\n';
      // nu inteleg ce nu iti merge???

« Comentarii mai vechi

  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • februarie 2023
    L Ma Mi J V S D
     12345
    6789101112
    13141516171819
    20212223242526
    2728  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C/C++
  • Introducere in functii [C++]
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons