Sunteți pe pagina 1din 8

Obiective:

Săptămâna 3:  Cunoașterea tipurilor de date

Elemente de limbaj 

Declararea variabilelor
Familiarizarea cu mediul de
programare Code Blocks
 Structura liniară/lucru cu fișiere

În funcție de tipul de informație pe care le memorează, datele1, în limbajul C++, se clasifică în:
 Date numerice
o Naturale: tipurile unsigned short, unsigned int, unsigned long, unsigned long long
o Întregi: tipurile short, int, long, long long
o Reale: tipurile float, double
 Caractere: tipul char(memorează caractere alfanumerice, semne de punctuație, etc.)
 Logice: tipul bool (are doar două valori: true(adevărat)/false(fals) )
Orice variabilă înainte de a fi utilizată trebuie declarată. Forma generală de declarare a unei
variabile respectă următoul format:
nume_tip nume_variabila; nume_tip variabila1, variabila2,....;
sau împreună cu operația de declarare se poate face și o inițializare variabilei cu o valoare
constantă sau cu rezultatul unei expresii astfel:
nume_tip nume_variabila = constantă; nume_tip variabila = expresie

Prezentarea ecranului mediului de programare CODE BLOCKS


Code :: Blocks este o platformă open source, care acceptă mai multe compilatoare, inclusiv
GCC, Clang și Visual C ++. Acesta este dezvoltat în C ++ folosind wxWidgets ca GUI toolkit. În
prezent, Codul :: Blocks-ul este orientat spre C, C ++ și Fortran. Lansarea în execuţie a editorului
Code Blocks se face apăsând dublu clik pe iconul:

Icon aplicație Code Blocks

si se va deschide pe ecran fereastra aplicaţiei. (


dacă este necesar închideţi ferestrele
suplimentare care apar). Ecranul editorului
Code Blocks arata astfel:

Primul PROIECT (PROJECT)

    Pentru a reuşi să scrieţi un program în limbajul C++, trebuie să deschidem mai întâi spațiu de
lucru. La un moment dat putem avea în lucru unul sau mai multe proiecte în spaţiul de lucru. Un
proiect este o colecție de una sau mai multe surse şi fișiere. Fișierele sursă sunt fișiere care conțin
codul sursă pentru programul tău. Un fişier care conţine un cod sursă scris în limbajul C++  va avea

1
Tabelul care conține toate tipurile de date, număr de octeți alocat și domneiul de valori le găsiți în Anexa 1
extensia  ”.cpp” . Configurarea unui proiect vă permite să urmăriți toate fișierele într-un mod
organizat.

Pas 1: Selectaţi de pe ecran opţiunea Create a new object: 

Pas 2: Se va deschide o fereastă ca în imaginea următoare din care veți selecta opţiunea Console
Application, după care apăsaţi butonul Go.

Pas 3: Selectaţi opţiunea C++, după care apăsaţi butonul Next.

Pas 3: În secţiunea Project Title scrieţi numele noului proiect, după care din secţiunea Folder to
create project in: se stabileşte locul în care se va salva noul proiect, iar la sfarşit selectaţi butonul
next.

Pas 4: Din secţiunea Compiler se alege compilatorul GNU GCC Compiler si se apasă


butonul Finish 
Pas 5: Din partea dreapta a ecranului se deschide folderul Sources şi se deschide cu dublu click
fisierul main.cpp.  Din acest moment puteţi incepe să editaţi noul cod sursă.

Pas 6: După ce ați editat codul sursă programul trebuie verificat dacă este corect scris, din punct
de vedere sintactic(etapa de compilare - Build). Acest lucru poate realiza astfel: 

 din meniu superior selectăm în ordine optiunile: Build->Build 


 apasând combinaţia de taste Shift+F9
 sau apasând pe icon-ul Build: 

Atunci când programul nostru nu conţine erori de sintaxă în partea inferioară a ecranului ne apare
un mesaj de forma:

Pas 7: În acest moment putem lansa în execuţie programul nostru pentru a vedea rezultatele
obţinute astfel:
 din meniul superior selectăm în ordine opţiunile: Build->Run
 apăsând combinaţa de taste Ctrl+F10
 sau apăsând pe icon-ul Run:

Forma generală a unui program C++ este:

Fișiere librării (header) se adaugă în funcție de opțiunea


utilizatorului

Funcția principală main()

Denumirea programului

Fereastra de supraveghere a valorilor


variabilelor la execuția pas cu pas a
programelor

Structura liniară
Structura liniară este cea mai simplă structură de control din algoritmică. Structura liniară
sau secvenţială execută instrucţiunile în ordinea în care apar, de la prima la ultima instrucțiune, fără
salturi peste instrucţiuni şi fiecare înstructiune se execută doar o singură dată. De exemplu, dacă
avem un număr de n instrucţiuni, așezate una după cealaltă ordinea de executare este: 

Instrucțiune 1; Ordinea de executare celor n


Instrucțiune 2; instrucțiuni
Instrucțiune 3;
..............
Instrucțiune n;

Din cadrul structurii liniare fac parte următoaerele instrucțiuni:


 instrucțiunea de citire;
 instrucțiunea de afișare;
 instrucțiunea de atribuire;
 apelul de funcții procedurale(pe care le veți învăța mai târziu la capitolul funcții
utilizator).

Operaţia de citire
Definiţie 1: Citirea datelor reprezintă operaţia prin care una sau mai multe variabile primesc
valori prin introducerea lor de la tastatură sau prin extragerea lor de pe un suport
extern(adică dintr-un fişier text, acest lucru însă va fi studiat mai târziu în lecţia despre fişiere).
În fişierul antet iostream este definit acest stream de intrare a datelor de la tastatură,
denumit cin (console input). Atunci când dorim să citim datelele de la tastatură le vom extrage din
fluxul de intrare, folosind operatorul de extragere ”>>”. Din acest punct de vedere forma generală a
operaţiei de citire este:
cin>>nume_variabilă;

Dacă dorim să citim succesiv mai multe variabile, atunci putem utiliza operatorul de
extragere înlănţuit, adică:
cin>>nume_variabilă_1>>nume_variabilă_2>>…>>nume_variabilă_n;

De exemplu: 
Scrieţi un program care citește de la tastatură două numere întregi.
#include<iostream>
using namespace std;
int main() 
  { int a,b; 
    cin>>a; 
    cin>>b;
    return 0; 
 } 

Operaţia de afişare
Definiţie 2: Prin afişarea sau scrierea datelor vom întelege operaţia prin care rezultatele obţinute
prin prelucrarea datelor de intrare vor fi afişate pe ecranul monitorului, fie vor fi memorate într-un
fişier text pe un suport extern de memorare.

În fişierul antet iostream este definit acest stream de ieşire a datelor de la tastatură,
denumit cout (console output). Atunci când dorim să afişăm datelele le vom extrage din fluxul de
ieşire, folosind operatorul de ieşire ”<<”. Din acest punct de vedere forma generală a operaţiei de
afişare este:
cout<<expresie;
Ca efect, se evalueză expresia, iar valoarea ei este convertită într-o succesiune de caractere care vor
fi afişate pe ecran. Şi operatorul de ieşire poate fi utilizat înlănţuit atunci cand dorim sa afişăm mai
multe date pe ecran: 
cout<<expresie_1<<expresie_2<<expresie_3<<…<<expresie_n;
Pentru ca afişarea unor date să se realizeze de la începutul rândului următor se va folosi
manipulatorul numit endl (end line) sau mai rapid ‘\n’.
 
De exemplu:  Se citesc de la tastatură două numere întregi a şi b. Scrieţi un program care calculează
şi afişează pe ecran suma lor.

Algoritm în Program în Code Bloks Rezultat afişat


pseudocod
citeste a

citeste b

scrie a+b

Operații cu fișiere text.


La concursurile de programare se impune citirea datelor de intrare dintr-un fişier, nu de la
tastatură, respectiv scrierea într-un fişier în locul afişării rezultatelor direct pe ecran. Pentru a putea
accesa lucrul cu fişiere, în program trebuie declarată directiva fstream:
#include <fstream>

Operaţiile care se pot efectua cu fişiere:


 Deschiderea fişierelor;
o Pentru citire: ifstream fin(“nume fisier de intrare”);

o Pentru scriere: ofstream fout(“nume fisier de iesire”);

 Închiderea fişierelor: fin.close(); sau fout.close();


 Citirea datelor din fişier: fin>> nume de variabila;
 Scrierea datelor în fişier: fout<< nume de variabila sau mesaj text

SETUL I
Precizați efectul următoarelor instrucțiuni:

a)

b)

c)

d)

e)
f)

SETUL II

1. Să se scrie un program care citește de la tastatura două numere întregi și determină suma
lor.
2. Se dau două numere naturale. Calculați suma, diferența, produsul și câtul lor, în această
ordine.
3. Calculați ultima cifră a sumei a două numere naturale.
4. Se citește de la tastatură un număr a format din trei cifre. Scrieţi un program care calculează şi
afişează pe ecran numărul obţinut prin eliminarea cifrei din mijlocul numărului dat.

  Exemplu: dacă a=371 se va afişa 31 

2. Fie a un număr format din cinci cifre a1a2a3a4a5. Să se afişeze pe ecran un triunghi format din
cifrele numărului dat astfel: 
                     a3 
                    a2 a3 a4 
                  a1 a2 a3 a4 a5 
Exemplu: dacă a=37156 se va afişa un triunghi astfel: 
                        3 
                    715 
                    37156
3. Perimetrul unui pătrat este egal cu latura altui pătrat. Ştiind că suma perimetrelor este x să se
calculeze ariile celor două pătrate.
Exemplu: Pentru x=20 se va afişa aria1=1 și aria2 = 16 

4. Se dau două numere naturale a şi b cu trei cifre fiecare. Să se afişeze numărul care are suma


cifrelor mai mare.
Exemplu: dacă a=487 şi b=912, atunci suma cifrelor numărului a este 19, iar suma cifrelor
numărului b este 12, deci pe ecran se va afisa 487.

5. Creioane și pixuri
Patru creioane și zece pixuri costa 60 lei, iar 2 creioane și un pix costă 11 lei. Scriți un
algoritm și un program în C++, afișează în fișierul text rez, cât costă un creion și cât costă un pix.
(cele două valori determinate se vor afișa pe linii separate)

6. Numere
Suma a două numere este 600. Dacă împărțim un număr la celălalt se obține câtul 3 și restul
80. Scrieți un algoritm și un program C++, care determină valoarea celor două numere. Rezultatele
vor fi afișate pe ecran.
1. Se citesc de la tastatură două numere întregi. Scrieţi un program care să determine care
este cel mai mic număr număr citit utilizând următoare relație matematică:
a+b+|a−b|
max(a, b)a= 
2
        Exemplu: dacă a=40 şi b=12 se va afişa 12, iar |a| se calculează cu ajutorul funcției
predefinite abs(a) definită în fișierul header <cmath>

7. Să se calculeze aria unui triunghi cunoscând laturile a, b, c ale triunghiului. Indicaţie: pentru


calculul ariei triunghiului se va utiliza formula lui Heron pentru calculul ariei:
Aria=√ p ( p−a)( p−b)( p+c )
unde p este semiperimetrul triunghiului. (unde √ a se calculează cu ajutorul funcției predefinite
sqrt(a) definită în fișierul header <cmath>
Exemplu: dacă a=3, b=4 și c=5 atunci se va afişa 6. 

8. Globuri
Într-un brad sunt a globuri albe, de două ori mai multe globuri roșii și globuri verzi cu 3 mai
puține ca numărul de globuri roșii. Câte globuri sunt în total ?
Date de intrare Programul citește de la tastatură numărul natural a.
Date de ieșire Programul va afișa pe ecran numărul total de globuri.
Restricții și precizări: 2 ≤ a ≤ 1000
Exemplu: Sunt 7 globuri albe, 14 roșii și 11 verzi, în total 32 globuri.
(problema #813 Globuri de pe www.pbinfo.ro)

9. Bomboane (exemplu problemă de concurs)

Într-o familie sunt trei copii şi un căţel. Copiii au primit în dar o pungă mare de bomboane pe
care s-au hotărât să le împartă frăţeşte după somnul de după-amiază. În timp ce ceilalţi doi copii
dormeau, unul dintre copii s-a trezit, a împărțit grămada în trei părți egale, ascunzând una dintre
părți. O bomboană a rămas în plus pe care i-a dat-o căţelului. Povestea s-a repetat și cu ceilalți doi
copii. După-amiază copiii împart bomboanele rămase în trei părți egale, rămânând din nou o
bomboană în plus care îi revine căţelului.
Cerință: Să se verifice dacă numărul de bomboane primit de cei trei copii permite derularea
exactă a evenimentelor prezentate mai sus și în caz afirmativ să se determine numărul de bomboane
pe care le primește fiecare copil. În caz negativ se va afișa valoarea 0.
Date de intrare: Din fșierul text bomboane.in se citește un număr natural n, care reprezintă
numărul de bomboane primit de cei trei copii.
Date de ieșire: Se vor afișa în fișierul text bomboane.out astfel:
 Pe un singur rând, trei numere naturale separate printr-un spațiu, care reprezintă
numărul de bomboane luate de fiecare copil, în ordinea trezirii acestora
 sau valoarea 0, dacă numărul din fișierul de intrare nu pemite derularea exactă a
evenimentelor prezentate mai sus.
Precizări și restricții: N≤ 1000.
Exemplu:
bomboane.in bomboane.out bomboane.in bomboane.out
79 33 24 18 123 0
(Concursul Centrului de Pregătire pentru Performanță, Suceava, 2017 –grupa gimnaziu începători )

S-ar putea să vă placă și