Sunteți pe pagina 1din 23

MINISTERUL EDUCAIEI NATIONALE I CERCETRII

TIINIFICE
COLEGIUL NAIONAL ALEXANDRU IOAN CUZA GALAI

LUCRARE PENTRU ATESTAREA


COMPETENELOR PROFESIONALE IN
SPECIALITATEA MATEMATIC-INFORMATIC

PROFESOR COORDONATOR: Genia Joc


ELEV: Munteanu Andreea Alexandra

AN COLAR
2015-2016

ALGORITMI ELEMENTARI

Cuprins
JUSTIFICAREA TEMEI ALESE......................................................................................................................4
ALGORITMI ELEMENTARI..............................................................................................................................6
CARACTERISTICILE ALGORITMILOR............................................................................................6
PROBLEME............................................................................................................................................................8
DEMOSTRAII VIDEO......................................................................................................................................19
COD........................................................................................................................................................................20
BIBLIOGRAFIE SI WEBOGRAFIE.................................................................................................................23

JUSTIFICAREA TEMEI ALESE


Informatic ocup n viaa de zi cu zi un rol foarte important fiind prezent n toate
domeniile de activitate. Vor deveni din ce n ce mai importante n viaa fiecatuia dintre noi,
deoarece, tehnologia avanseaz i munca omului va fi preluat n ntregime de mainrii.
Din punctul meu de vedere, ntr-adevr bazele informatizii, i al orcarui limbaj de
programare l deprinzi n urm nvrii limbajului C++. Cum totul
trebuie s aib o baza fix dela care s porneasc i s se dezvolte, programarea
are la baza algoritmii elementari, fr de care nu poi nva nimic. Pe baza acestori algoritmi
simpli, orice program poate fi invat i dezvoltat.

Introducere in C#

C# este un limbaj de programare modern, simplu, cu circa 80 de cuvinte cheie i


12 tipuri de date predefinite. Este foarte asemntor cu Java i C++.
Limbaju de programare C# este intregrat n platforma Microsoft .NET Framework .
Platforma .Net este un cadru(Framework) de dezvoltare software unitar care permite
realizarea, distribuirea i rularea aplicaiilor de tip forme Windows i aplicaiilor WEB. Pentru
a dezvolta aplicaii n limbaju C# avem nevoie de mediul de dezvoltare Visula C# 2010
Express, care se poate descarca de pe siteul oficial a lui Microsoft.
Simplitatea limbajului este dat de absena pointerilor, motenirea facilitilor de
garbage collection i managementul automat al memoriei datorit integrrii pe platforma
.NET, iar operaiile nesigure precum manipularea direct a memoriei nu sunt premise.
Modernitatea limbajului: C# este conceput pentru construirea de operaii scalabile,
robuste i interoperabile. Include un suport built n pentru transformarea componentelor n
serviciu web pentru un acces mai uor.
Orientat pe obiecte: suport ncapsularea datelor. Interfetele, motenirea i
polimorfismul. A introdus structurile (structs) pentru a permite tipurilor primitive s devin
obiecte.
Type safe: nu se execut cast-uri nesigure, tablourile sunt neindexate i verificate,
depirea tipurilor este verificabil, tipurile primitivelor sunt initializate cu zero i tipurile de
referin cu null n mod automat de ctre compilator.
Interoperabilitate: C# include suport pentru COM, permite utilizarea cu restricii a
pointerilor, componente din VB.net i din alte limbaje pot fi folosite direct n C#.
Portabilitate: Codul C# poate rula pe mai mult de 2,2 miliarde de dispozitive cu
Windows, iOS, Android, Linux. C# este portabil ntr-o gama larg de medii cum ar fi telefonia
mobil, Embedded, desktop i servere de calcul.

Algoritmi elementari
Apariia primelor calculatoare electronice a constituit un salt uria n
direcia automatizrii activitii umane. Nu exist astzi domeniu de activitate n care
calculatorul s nu i arate utilitatea.Calculatoarele pot fi folosite pentru a rezolva probleme,
numai dac pentru rezolvarea acestora se concep programe corespunztoare de rezolvare.
Termenul de program , programare a suferit schimbri n scurt istorie a informaticii. Prin
anii `60 problemele rezolvate cu ajutorul calculatorului erau simple i se gseau algoritmi nu
prea complicai pentru rezolvarea lor. Prin program se nelegea rezultatul scrierii unui
algoritmintr un limbaj de programare. Din cauza creterii complexitii problemelor, astzi
pentru rezolvarea unei probleme adesea vom concepe un sistem de mai multe programe.
Dar ce este un algoritm? O definiie matematic, riguroas, este greu de dat, chiar
imposibil fr a introducei alte noiuni. Vom ncerca n continuare o descriere a ceea ce
se nelege prin algoritm. Ne vom familiariza cu aceast noiune prezentnd mai multe
exemple de algoritmi i observnd ce au ei n comun. Cel mai vechi exemplu este algoritmul
lui Euclid, algoritm care determin cel mai mare divizorcomun a dou numere naturale.
Oprindu-ne la semnificaia algoritmului, la efectul execuiei lui, vom observa c
fiecare algoritm definete o funcie matematic. De asemenea, un algoritm este scris pentru
rezolvarea unei probleme.
Prin algoritm nelegem o succesiune finit de operaii cunoscute care se executaa ntro succesiune logic bine stabilit astfel nct plecnd de la un set de date de intrare, s
obinem ntr-un interval de timp finit un set de date de ieire.
Caracteristicile algoritmilor
Finitudine proprietatea algoritmilor de a furniza datele de ieire ntr-un timp finit (adica
dupa un numr finit de pai).
Claritatea - algoritmul trebuie s descrie operaiile clar i fr ambiguii.
Generalitatea proprietatea algoritmilor de a rezolva o intreag clas de probleme de acelai
fel.
Exemplu: Adunarea 2+8 este o problem care adun numai aceste dou numere, ns dac
elaboram o metod de rezolvare care va aduna a+b, unde a i b pot avea orice valori ntregi,
spunem ca am realizat un algoritm general.
Corectitudinea spunem c un algoritm este corect dac el furnizeaz n mod corect datele
de ieire pentru toate situaiile regsite n datele de intrare.
Numim deci eficien - capacitatea algoritmului de a da o soluie la o problema ntr-un timp
de executie ct mai scurt, folosind ct mai puin memorie.

ETAPELE REZOLVRII UNEI PROBLEME


ANALIZA
PROBLEMEI

ELABORAREA
ALGORITMULUI

IMPLEMENTAR
E IN LIMBAJ
DE
PROGRAMARE

VERIFICARE
CORECTITUDIN
E

ANALIZA
COMPLEXITATII

PROBLEME
1. Descompunerea unui numar in divizori primi
7

Enunt: Se citete un numr ntreg a. S se realizeze un algoritm care s afieze


factorii primi i puterile lor pentru numrul citit.
Exemplu : Pentru a=26 se va afisa 21*131;
Pentru a=88 se va afisa 23*111;

2.CMMDC-Cel mai mare divizor comun


8

Enunt: Se citesc dou numere ntregi a i b. S se realizeze un algoritm care s afieze cmmdc
a (a,b).
Exemplu: Pentru a=12 si b=24 se va afisa CMMDC este egal cu 12;

3. Doua numere sunt divizibile intre ele


9

Enunt: Se citesc dou numere ntregi a i b. S se realizeze un algoritm care s verifice dac
cele dou numere sunt divizibile (a divizibil cu b sau b divizibil cu a).
Exemplu: Pentru a = 25 i b = 5 atunci algoritmul va afia DA, iar n cazul n care se citesc
a = 25 i b = 10 se va afia NU.
Explicarea algoritmului: Se folosete o structur alternativ, n care se verific a este
divizibil cu b (dac restul mparirii lui a la b = 0) sau invers.

4. Bubble sort
Enunt: Se citete un vector A cu n elemente
numere ntregi. S se ordoneze cresctor
elementele vectorului folosind metoda bulelor.
Exemplu: Petru n=5 si vectorul A (24 589 14
67 32) algoritmul va afisa 14 24 32 67 589;
Explicarea algortmului: : Algoritmul const
n parcurgerea tabloului A de mai multe ori,
pn cnd devine ordonat. La fiecare pas
se compar dou
elemente alturate.
Dac ai > ai + 1, (i =
1, 2, ..., n 1), atunci
cele dou valori se
interschimb ntre ele.
Controlul aciunii
repetitive este dat de
variabila boolean ok,
care la fiecare reluare
a algoritmului
primete valoarea iniial adevrat, care se
schimb n fals dac s10

a efectuat o interschimbare de dou elemente alturate. n momentul n care tabloul A s-a


parcurs fr s se mai efectueze nici o schimbare, ok rmne cu valoarea iniial adevrat i
algoritmul se termin, deoarece tabloul este ordonat.
Interschimbarea a dou elemente se realizeaz prin intermediul variabilei auxiliare aux care
are acelai tip ca i elementele tabloului.

5.Verificarea unui numar n daca este


patrat perfect
11

Enunt: Se citeste un numr natural n. S se verifice dac n este ptrat perfect.


Exemplu: Pentru n=81 programul va afisa Da;

6.Sirul lui Fibonacci


12

Enunt: Sa se afiseze primii n termeni ai sirului lui Fibonacci;


Exemplu: Pentru n=6 programul va afisa 0 1 1 2 3 5
Explicarea algoritmului: irul are primii doi termeni egali cu 1 i fiecare din urmtorii
termeni este egal cu suma dintre precedentul i ante-precedentul;

7.Suma intr-un vector. Divide et Impera


13

Enunt: S se calculeze folosind metoda divide et impera suma elementelor unui vector.


Exemplu: Pentru n=4 si A=(12 7 88 9) programul va afisa 116.

14

8.Backtracking-permutari
Enunt: Se citete un numr natural n. S se genereze permutrile mulimi {1, 2, , n}
Exemplu:Pentru n=3 se va afisa 123,132,213,231,312,321;

15

9.
de
unei cifre x intr-un numar dat

Numarul
aparitii a

Enunt: Scriei un program care afieaz numrul de apariii a unei cifre x ntr-un numr n.
Exemplu: Pentru n=2232 si x=2 se afiseaza numarul 3.

16

10. Rasturnatul unui numar


Enunt: Se da un numar n. Sa se clculeze rasturnatul acestuia.
Exemplu:Pentru n=187 se va afisa 781

17

Demostraii video

18

19

Secventa de cod incarca filmul din folderul cu resurse in media playerul integrat in program.

Cod
Form 7
20

Formul 7 prezint toate problemele aferente atestatului referitoare la tema, Algoritmi


elementari. Aceast fereastr conine 10 radio butoane cu denumirea fiecrei probleme. Dup
selectarea unei problema, radiobutoanele se blocheaz pentru evitarea schimbrii problemei,
iar n partea dreapta vor aprea 3 richbox-uri (enun, date.n,date.out). Richbox1 cu enunul
dintr-un notepad, richbox 2 cu datele de intrare introduse dinamic i richbox 3 cu date de
ieire ncrcate ntr-un notepad n urm apsrii butonului Ruleaz. Dup terminarea
problemei, butonul Reinitializare deblocheaz radiobutoanele i ascunde richbox-urile.
Reinitializare

Ruleaz

21

Selecteaz

22

Bibliografie si webografie
Manual de informatica intensiv , clasa a IX-a, profil real, editura Didactica si
Pedagogica, R.A. 2005;
Breviar teoretic, informatica, editura Niculescu;
Violeta Neagu 1024 Probleme de informatica;
www.info.mcip.ro, Algoritmi elementari;
www.mchelariu.wordpress.com ;
www.ro.wikipedia.org/wiki/Algoritm ;

23

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