Sunteți pe pagina 1din 29

CURS DE PROGRAMARE

CERC ICHB CLASA A 4-A

AGENDA
1.

ALGORITM

1.1
1.2
1.3
1.4

Definitie; Caracteristici
Date de intrare / iesire
Schema logica
Limbaj pseudocod si limbaj de programare

2.

EXEMPLE DE EXERCITII REZOLVATE

3.

LIMBAJUL DE PROGRAMARE C++

4.

FOLOSIREA PROGRAMULUI Code Blocks

5.

TEMA PENTRU ACASA

I. ALGORITM
1.1 DEFINITIE, CARACTERISTICI
Algoritmul reprezinta o metoda de rezolvare a unei problem care pe baza
unor date de intrare cunoscute furnizeaza datele de iesire necesare (rezultatul
sau rezultatele)

Caracteristicile algoritmului:
Generalitate un algoritm trebuie sa rezolve orice problema din clasa respective;
Claritate pe orice drum pornim de la start catre stop in schema logica, trebuie sa
ajungem in final la stop;
Finititudine datele de iesire (rezultatele cerute) trebuie furnizate intr-un timp
finit convenabil de scurt

I.2 DATE DE INTRARE/IESIRE


Datele de intrare (D.I.) sunt acele date cunoscute initial sub diverse
formate (text, imagine, sunet, video) pe baza carora algoritmul
calculeaza datele de iesire (rezultatele cerute).

Datele de iesire (D.O.) reprezinta de fapt rezultatele care urmeaza a


fi calculate de catre algoritm pornind de la datele de intrare cunoscute.

EXEMPLU DE ALGORITM
Presupunand ca dispunem de argaz, o tigaie, 2 oua, sare si 200 ml de ulei, sa pregatim ochiuri.
D.I. : oua, ulei, sare
D.O. : ochiuri
Pas1: se pune tigaia pe fos
Pas2: se toarna uleiul in tigaie
Pas3: asteptam pana cand uleiul de incinge
Pas4: spargem cu indemanare ouale in tigaie
Pas5: asteptam pana cand ouale se rumenesc
Pas6: Daca nu tinem regim adaugam sare.

I.3 SCHEMA LOGICA


Schema logica este o reprezentare grafica a algoritmului folosind
diverse figuri geometrice (date mai jos) legate intr-un anumit mod.

Da

START

STOP

Conditi
e

Nu

Citire
D.I.

c
1

c
2

c
3

Citire
D.O.

Cond
itie

Atribuire

c
4

c
5

c
n

1.4 LIMBAJ PSEUDOCOD SI LIMBAJ DE


PROGRAMARE
Limbajul pseudocod este la fel ca si schema logica, un mod de
reprezentare prin instructiuni text a algoritmului, instructiuni scrise astfel
incat sa poata fi traduse foarte usor in orice limbaj de programare. Limbajul
pseudocod este universal, nu depinde de limbajul de programare ales
ulterior si seaman cu un fel de limba engleza a limbajelor de programare.
Limbajul de programare reprezinta o multitudine de instructiuni foarte
precise scrise cu o anumita sintaxa specifica fiecarui limbaj astfel incat sa
reflecte implementarea algoritmului gandit anterior. Exemple de limbaje de
programare: C, C++, C Sharp, Visual Basic, Visual C++, Java, pHP etc.

EXEMPLE DE EXERCITII REZOLVATE


A. Fiind date 2 numere
a si b, sa se
calculeze suma lor s
Totdeauna incepem cu
stabilirea datelor de
intrare si iesire, astfel:

START
Citire
a,b

a,b,s nr. intregi (am declarant variabilele)

s a+b

Citire a,b (am citit D.I.)

s a+b (am calculate s)

D.I. : a,b
D.O. : s

Afisare s

STOP

Limbaj pseudocod

Afisare s (am afisat s)

2. EXEMPLE DE EXERCITII REZOLVATE


START

B. Fiind date 2
numere a si b, sa
se afiseze cel mai
mare dintre ele.
Totdeauna incepem cu
stabilirea datelor de
intrare si iesire, astfel:
D.I. : a,b
D.O. : max

Citire
a,b

a,b,max nr. reale


Citire a,b

DA

a>=b ?

NU

Daca a>=b atunci


max a
Altfel

max a

max b

Afisare
max
STOP

Maxb
Afisare max

Limbaj pseudocod

2. EXEMPLE DE EXERCITII REZOLVATE


START

C. Sa se rezolve
ecuatia de gradul I de
forma ax+b=0.
Totdeauna incepem cu
stabilirea datelor de
intrare si iesire, astfel:
D.I. : a,b
D.O. : x

Citire
a,b
DA

A<>0 ?

x -b/a

a,b,x nr. reale


Citire a,b

NU
Afisare
Eroare

Afisare x

Limbaj pseudocod

Daca a<>0 atunci


x -b/a
afisare x
Altfel
Afisare eroare

STOP

2. EXEMPLE DE EXERCITII REZOLVATE


D. La un ceas se cunosc
ora si minutul. Daca este
ora fixa ceasul bate de cate
ori este ora, daca este si
jumatate ceasul bate de 5
ori, altfel ceasul nu bate
Totdeauna incepem cu
stabilirea datelor de intrare
si iesire, astfel:
D.I. : ora,minutul

START

Citire
ora, min
DA
nrb ora

Ora, min, nrb nr. intregi

Min=0
?
DA

Citire ora, min

NU

Daca min=0 atunci


nrbora

Min=30
?

nrb 5

NU

Altfel
daca min=30 atunci
nrb5

nrb 0

Altfel
nrb=0

D.O. : nrb (nr de batai)


Afisare nrb

Afisare
nrb
STOP

Limbaj pseudocod

2. EXEMPLE DE EXERCITII REZOLVATE


START
E. Sa se afiseze
cel mai mare
numar dintre trei
numere reale a,b,c
Totdeauna
incepem cu
stabilirea datelor
de intrare si iesire,
astfel:

Citire a,b,c
DA
DA
max
a

a>=c ?

a>=b ?

max
c

Limbaj pseudocod

a,b,c nr. reale

NU
DA

NU

max
b

Citire a,b,c

b>=c ?

NU

Daca a>=b atunci


Daca a>=c atunci
maxa

max
c

Altfel
maxc
Altfel

D.I. : a,b,c
D.O. : max ( cel
mai mare numar

Daca b>=c atunci


maxb
altfel

Afisare
max
STOP

maxc
Afisare max

2. EXEMPLE DE EXERCITII REZOLVATE


START
F. Se citeste un
numar intreg care
reprezinta varsta unei
personae. In functie
de varsta sa se
afiseze un mesaj de
genul: bebe,
prescolar, elev sau
adult
Totdeauna incepem cu
stabilirea datelor de
intrare si iesire, astfel:

Citire
varsta
varsta
Varsta 3-5 ani?

mesaj
bebe

mesaj
prescolar

Limbaj pseudocod

Varsta intreg

Varsta <3 ani ?

Mesaj strig (sir de caractere)

Varsta >18
ani?

Varsta 6-18
ani?
mesaj
elev

Citirea varstei

mesaj
adult

Selectie varsta
<3 : mesaj bebe
3 la 5 : mesaj prescolar
6 la 18 : mesaj elev
Altfel

D.I. : varsta
D.O. : mesaj

Afisare
mesaj
STOP

mesajadult
Afisare mesaj

3. LIMBAJUL DE PROGRAMARE C++


INTRODUCERE
C++, denumit iniialC++ cu clase, este o extensie a limbajului C, inventat de Dennis Ritchie la
AT&T Bell Laboratories pe la nceputul anilor 1970.
Ritchie a folosit acest limbaj pentru a crea i ntreine sistemul de operare UNIX.
MEMORIA
Trebuie s tii c toate aplicaiile pe care le rulai pe calculator (inclusiv elementele necesare
funcionrii sistemului de operare) sunt ncrcate n memoriaRAM(Random Access Memory).
Aceast memorie are caracter volatil (adic coninutul su se poate schimba).
Deci i aplicaiile care le vei crea n C++ vor rula n memoria RAM, sau pe scurt, memorie.
Atunci cnd o aplicaie este nchis, sistemul de operare poate dispune de curarea zonei de
memorie ocupat de acea aplicaie.

CODUL SURS, COMPILATOR, IDE


Codul surs este codul C++ (sau alt limbaj) folosit la scrierea unui program ntr-un fiier cu
extensia - pentru C++ -.cppsau.cc.
nainte de a deveni executabil, acest fiier ce conine codul surs trebuie translatat ntr-un
limbaj neles de calculator (codul main sau codul obiect). C++ este un limbaj de nivel nalt,
adic este mai apropiat limbajului uman dect limbajului neles de calculator.
Compilatorul este un program special care traduce codul surs n cod main (binar).
Rezultatul procesului de compilare (i linkeditare; vezi linkul de mai sus) este fiierul executabil.
Un IDE (Integrated Development Environment) este un program ce cuprinde un editor de text,
un compilator, debugger i builder. Vei folosi un IDE ca s creai programe C++. (Code Blocks)

STRUCTURA UNUI PROGRAM C++


#include <iostream>
using namespace std;
int main()
{
// Afiseaza pe ecran Hello World
cout << "Hello World";
return 0;
}

DIRECTIVELE PREPROCESOR
#INCLUDE <IOSTREAM>
Aceast linie se numete directiv preprocesor sau simplu directiv. Se deosebete de
celelalte linii de cod prin faptul c ncepe cu #.
Rolul acestor linii este multiplu. Aici, directiva #include are rolul de a preciza
compilatorului faptul c vom folosi n program entitile (funcii, clase, constante, etc.)
din fiierul iostream (cout este un obiect definit n namespace-ul std din iostream).
n acest mod putem scrie programe pornind de la altele existente, fr a rescrie
coninutul lor n noul program.
Urmtoarea linie using namespace std; spune c vom folosi toate numele (denumirile
entitilor) din seciunea (aceast seciune se numete de fapt namespace;

FUNCIA MAIN
Un program C++ const practic doar din funcia main. Atunci cnd
rulai programul, sistemul de operare invoc automat funcia numit
main.
Funciile pot fi apelate (invocate) preciznd numele acestora. Atunci
cnd o funcie este invocat, codul funciei - se afl ntre acolade - va fi
executat.
Instruciunea return 0; returneaz valoarea 0 i totodat oprete
execuia funciei.

INSTRUCIUNI I COMENTARII
Instruciunile (statements)
reprezint comenzi ctre
calculator; sarcinile pe care
acesta trebuie s le
ndeplineasc.
Toate instruciunile trebuie s se
termine cu punct i virgul ;
(Reinei asta!).
Putei avea mai multe
instruciuni pe aceeai linie
atta timp ct le separai prin
punct i virgul.

n programul de mai sus, instruciuni sunt:

using namespace std;


cout << "Hello World";
return 0;

COMENTARIILE IN C++
Comentariile nu fac nimic (nu sunt
instruciuni). Sunt de 2 feluri:
- comentariile ntinse pe un rnd
(ncep cu //);
- comentariile ntinse pe mai multe
rnduri (ncep cu /* i se termin cu
*/).

Comentariile sunt ignorate de


compilator. Comentariile sunt folosite,
n general, pentru a explica anumite
pri ale programului.

/* Grumpy wizards make toxic brew


for the evil Queen and Jack. */

Exemplu:

INPUT / OUTPUT CU CIN I COUT


Am vzut c pentru a putea
folosi obiectele cout (console
output) i cin avem nevoie de
biblioteca (library) iostream.
Ca s putem folosi aceast
bibliotec trebuie s includem
urmtoarele linii la nceputul
programului:

#include
<iostream>
using namespace
std;

COUT
Afiarea numerelor sau
stringurilor pe ecran (consol) se
face cu obiectul cout i
operatorul de inserie <<.

cout << Aceasta este prima mea lectie\n"


<< de programare in C++";

De exemplu:

COUT
cout afieaz datele aa cum le
dai. cout nu formateaz nimic,
nu adaug spaii ntre cuvinte,
nu adaug new line, etc.
Exemplu:
cout << "Quick" <<
"wafting" << "zephyrs";

Se va afia:
Quickwaftingzephyrs

Dac vrem spaii ntre cuvinte atunci adugm i spaii:

cout << "Quick" << " " <<


"wafting" << " " << "zephyrs";

INPUT CU CIN
Similar putem folosi cin (console
input) pentru operaii de input,
adic de obinere a datelor de la
tastatur (de la user). Se
folosete cu operatorul de
extracie >>.

int a, b;
cout << "Introduceti doua numere: ";
cin >> a >> b;
cout << "Suma lor este: " << (a + b);

CIN
Atunci cnd ntlnete instruciunea cin, programul ateapt inputul de
la user. Atribuie prima valoare primei variabile, a doua valoare
variabilei a doua, etc.
Programul nu citete datele de intrare dect dup ce utilizatorul apas
ENTER la tastatur. n acest fel userul se poate corecta folosind
backspace.

EXEMPLU
Se citesc de la tastatur
trei numere naturale. S se
afieze suma lor.
Pentru datele de intrare: 14
89 99 se va afia 202.

#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
cout << a + b + c; // parantezele pot lipsi

system("PAUSE");
return 0;
}

OPERATORII ARITMETICI
Operatorii aritmetici definii n C++ sunt:
+ (adunare), - (scdere), * (nmuire), / (mprire) i % (modulo).

Modulo este operaia prin care se obine restul mpririi unui numr la
alt numr. Exemplu: 5 % 2 returneaz 1.
Ambii operanzi pentru operatorul % trebuie s fie de tip ntreg.

4. CODE BLOCKS
Infoarena.ro
Meniul Downloads
Meniul Utilitare

Trebuie sa descarcam acasa acest pachet:


NOU!(19-05-2010)Pachet cu compilatorul MinGW 4.4,GDB7.1 si
Code::Blocks

5. TEMA (DE REZOLVAT CU SCHEMA LOGICA


SI LIMBAJ PSEUDOCOD)
A. Se citeste un numar intreg. Sa se afiseze un mesaj care ne va spune daca numarul este
par sau impar. ( ne vom folosi de restul impartirii numarului la 2, se scrie a mod 2)
B. Se citesc doua numere intregi a si b. daca cele doua numere sunt mai mari ca 0, sa se
calculeze suma lor, daca cele doua numere sunt mai mici ca zero sa se calculeze diferenta
lor, iar daca sunt diferite ca semn, sa se calculeze produsul acestora.
C. Se citesc doua numere intregi a si b. Daca ambele sunt pare sa se calculeze dublul sumei
lor, daca sunt amble impare sa se calculeze diferenta lor, daca unul este par si celelalt impar
sa se calculeze restul impartirii lui a la b ( rstul se scrie ca a mod b)
D. Se citesc 3 numere intregi. Daca ele pot fi laturile unui triunghi sa se afiseze DA, altfel sa
se afiseze mesajul NU. (Conditia este ca suma oricaror 2 laturi sa fie mai mare decat cea de-a
treia latura)