RSS

L6. Structura unui program C/C++

05 Jan

In general, un program este un sir de instructiuni.  In C/C++ programul este o functie numita main.

Efectul instructiunillor din C/C++ este stabilit intr-un fisier numit stdio.h (h vine de la header). Acest fisier este incarcat implicit pentru a asigura buna functionare a programului. Daca dorim sa folosim instructiuni mai complexe (gen cin, cout) trebuie sa specificam si headerul care explica functionarea acestor instructiuni (iostream.h).

De asemenea, trebuie sa stabilim ce variabile folosim, pentru a le putea aloca spatiu si a le da valori. Spre deosebire de alte limbaje, in C/C++ declararea variabilelor folosite poate fi facuta si pe parcursul executiei programului.

Structura unui program C/C++ este urmatoarea

//acesta este un comentariu; el nu influenteaza programul
//declararea headerelor
#include <iostream>
using namespace std;
//declararea variabilelelor
....
//programul principal
int main()
{
// instructiunile programului
..........
return 0;} //aici se incheie programul

In exemplul urmator (citirea a doua valori si afisarea sumei lor) trebuie sa observati:

  1. orice program are trei parti:
  2. citirea datelor initiale si initializarea variabilelor necesare
  3. prelucrarea datel;or (programul propriuzis)
  4. afisarea rezultatelor

Puteti observa de asemenea:

  • cum se declara o variabila
  • cum se foloseste o constanta text (sir de caractere)
  • cum se citeste o data
  • cum se afiseaza un sir de caractere, constante, variabile si expresii
  • cum putem schimba valoarea unei variabile
# include <iostream>
using namespace std;
int a,b,c;
int main()
{
//citirea datelor initiale; initializarea altor variabile;
cin>>a>>b;

//prelucrarea datelor
c=a+b;

//afisarea datelor
cout<<"afisarea rezultatului"<<endl;
cout<<a<<'+'<<b<<'='<<a+b;
cout<<"Suma calculata  este "<<c;
return 0;
}

Observatie

  • instructiunea return permite intreruperea brusca a executiei unui program; puteti folosi aceasta instructiune daca , din diverse motive doriti intreruperea brusca a executiei unui program.
 
12 Comments

Posted by on 05/01/2010 in C2_2 Limbajul C/C++

 

12 responses to “L6. Structura unui program C/C++

  1. marian

    14/04/2011 at 17:26

    daca puteti sa ma ajutati…la pascal…am de facut 4 probleme…

     
  2. ciobanu diana ioana

    28/07/2011 at 18:42

    NU AM INTELES NIMIC

     
  3. Mihai Chelariu

    29/07/2011 at 15:22

    daca nu stii inca functii, lasa asa: dupa afisarea rezultaelor trebuie sa scrii return 1.
    cand ai sa inveti functii, vei vedea ca un proces de calcul se poate intrerupe cu return (ex: vreau sa stiu daca un sir de valori are numere negative; la primul numar gasit scriu RETURN 1 – cum ca DA,sirul are numere negative. in felul acesta opresc cautarea pana la sfarsitul sirului – care mi-ar fi dat “cate numere negative sunt in sir”)😀

     
  4. Catalin

    16/12/2011 at 11:38

    prima data trebuie sa il invat asa motamo? Sau trebuie sa il iau structural sa il invat prima data axiomatic si dupa aceea sa il aplic pe calculator . Am observat ca programul din c++ este diferit de ce ne preda nouadoamna profesoara.
    Adik noi la ora invatam structura semantica… iar apoi facem un exemplu.
    Dar noi nu avem nici un main ssai seca de genul
    La noi incepe cu declararea variabileleor de exemplu: D.i: n D.o:S
    Natural:n,S
    Inceput
    scrie n
    Daca n0 atunci
    i<- [n/10]
    Inchidem structura daca
    Scrie n
    Sfarsit

    Acesta a fost doar un exemplu . E gresit ce scrie acolo dar e esentialul. Va rog frumos ajutatii-ma si pe mine sa il inteleg CORECT.
    Sunt elev la Mihai Viteazul In Caracal Judetul Olt

     
  5. Mihai Chelariu

    16/12/2011 at 15:20

    Un prog are sectiunile Declarare variabile, citire si initializare, prelucrare, afisare. In rest e inventivitatea ta in a rezolva problema. Inteleg ca esti in clasa a IX-a. Deocamdata faceti algoritmi (invatatati niste probleme MODEL). Problemele ulterioare vor fi obtinute prin imbinarea acestor algoritmi si vor fi realizate intr-un limbaj (PASCAL sau C/C++). Prin limbaj si editorul sau vei putea sa verifici in ce masura programul tau este corect.
    Si pentru scheme logice sau pseudocod exista unelte care sa te apropie de lumea limbajelor. Arata-i si dnei profesoare linkul urmator. va va face ora mai dinamica.

    http://www.haskell.org/haskellwiki/Rodin
    🙂

     
  6. Croitor Cristian

    17/12/2014 at 15:04

    Buna ziua,

    D-le profesor, dumneavoastra incercati sa si compilati exemplele aceastea?
    In acest mic exemplu de mai sus, aveti 4 greseli.
    1. iostream.h nu mai exista de cand s-a adoptat standardul C++98 ( in 1998 ), de atunci e iostream (fara extensie), orice compilator mai modern va da eroare, caci nu il va gasi.
    2. Obiectele cin, cout, endl nu pot fi gasite de compilator deoarece sunt in namespace std, ori se foloseste directiva using namespace std; ori trebuie calificate cu operatorul de rezolutie std::.
    3. cout<<<<a<<'+'<<b<<'='< int primulNumar, alDoileaNumar, suma;

    Croitor Cristian,
    Software engineer

     
  7. Croitor Cristian

    17/12/2014 at 15:10

    Revin, vad ca pagina nu a acceptat raspunsul meu in intregime.
    Continuare de la punctul 3:
    3. cout<<a<<'+'<<b<<'='<<a+b; contine o greseala de sintaxa.
    4. De ce returnati 1? 1 se returneaza cand programul a intampinat o eroare, in mod normal, la sfarsitul functiei main se returneaza 0.

    Ca o paranteza, nu pot fi de acord cu afirmatia dumneavoastra: "In C/C++ programul este o functie numita main." Functia main in c/c++ este entry-point ( punctul de pornire ) al programului, nicidecum programul este functia main.

    Si ca o sugestie, e considerata o foarte proasta practica denumirea variabilelor de genul: a,b,c,d,i,f, etc – daca programul devine un pic mai maricel, e foarte greu de urmarit. Ar fi bine ca de la inceput, sa ii invatati pe copii sa foloseasca o denumire mai clara, cu titlu de exemplu:
    int a,b,c; eu as fi scris: int primulNumar, alDoileaNumar, suma;

     
  8. mchelariu71

    18/12/2014 at 20:36

    Multumesc,
    1,2. La momentul cand am scris post-ul/codul acesta imi trebuia cantitate si eu inca foloseam BorlandC. Pe BorlandC, codul merge fara probleme. Oricum, aveti dreptate, nu mai actual si va multumesc ca ati avut rabdare sa cititi si sa comentati.
    3. Corect. Aveti dreptate.
    4. Codul e scris pentru incepatori, asa incat ce returnez acolo nu are nici o importanta. Conteaza ce valori se afiseaza. Pentru conformitate am sa schimb, totusi.
    5. Folosim si noi variabile ca suma, nrdiv, nrcifre, uc (ultima cifra). Totusi, in majoritatea cazurilor lucram cu a,b,c,x,y (pentru variabile oarecare), x,y,z (pentru variabile reale) si i,j,k,l,m,n (pentru variabile intregi). Folosim aceste notatii mai toti profesorii de informatica, mai ales ca ele sunt comune cu cele de la matematica.

    Multumesc!
    Modific chiar acum.

     
  9. Croitor Cristian

    19/12/2014 at 16:54

    Multumesc si eu pentru modificarea prompta.

     
  10. Mada Madalina

    14/02/2015 at 19:54

    Buna ziua,eu sunt clasa a X-a mate-info si nu am inteles mai nimic din modul de rezolvare al problemelor.Niciodata nu stiu ce sa folosesc si de unde sa incep.Ce pot sa fac sa o invat mai usor?

     
  11. Catalin

    02/05/2015 at 11:22

    Buna ziua!
    Sunt elev in clasa a 9-a si am o problema …. domnule professor de ce nu creati programele in aplicatii mai noi cum ar fi CodeBlocks care se actualizeaza regulat? fiindca cele mai multe dintre programele dumneavoastra merg perfect in aplicatii mai vechi insa in cele noi apar unele erori.

    Multumesc!

     
  12. mchelariu71

    03/05/2015 at 12:34

    La vremea cand am inceput, inca lucram in Borland.

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: