Sunteți pe pagina 1din 9

Modul de realizare al programului de sortare

in ordine a inaltimilor

Mediul utilizat pentru scrierea acestui program este CodeBlocks. Acest IDE (Integrated
Development Enviroment) poate fi descarcat utilizand acest link: .

Dupa instalare se deschide programul executand dublu-click pe iconita:

Pe ecran va aparea ecranul de incarcare dupa care se va deschide fereastra principala:


Acesta este meniul principal. De aici se pot crea proiecte si totodata deschide cele
existente.

Pentru a crea un nou proiect executam click pe butonul „Create a new project”:
Din meniul „New from template” selectam tipul programului „Console application” (1),
apoi click pe butonul „Go”(2):

La urmatorul pas bifam casuta „Skip this page next time” (1), apoi click pe butonul
„Next” (2):
Selectam limbajul de programa „C++” (1), apoi „Next” (2):

Aici vom introduce numele programului „pluton” (1), si vom selecta folderul in care
proiectul va fi salvat (2), apoi „Next” (3):
Se va verifica daca compilatorul ales este „GNU GCC Compiler” (1), apoi „Next” (2):

Dupa finalizarea scrierii programului el va arata asemanator cu cel din printscreen:


Codul a fost comentat pentru a facilita intelegerea lui de catre toate categoriile de
utilizatori (de la necunoscatori la avansati).

Programul final este prezent in fonderul unde se afla si acest document. Codu este acesta:

/**

Program realizat de Std. CURIMAN Andrei

Acesta este un exemplu de aplicatie care utilizeaza un algoritm de sortare

Sortarea va fi facuta cu ajutorul functiei "sort" din libraria "algorithm"

Pe tot parcursul codului se afla comentarii menite sa ajute la intelegerea

modului de functionare e programului

*/

#include <fstream> ///declararea librarie "fstream" utilizata pentru citirea si scrierea din si in
fisier

#include <algorithm> ///declararea librariei "algorithm" in care se afla functia "sort"

#include <cstring> ///declararea librariei "cstring" din care se vor folosii functiile de

///determinare a lungimii unui sir de caractere

#include <iomanip> ///declarea librariei "iomanip" din care se va folosi functia

using namespace std; ///setarea mediului de citire/afisare pe standard

ifstream fin("pluton.in"); ///declararea functiei de citire din fisier "fin"

ofstream fout("pluton.out"); ///declararea functiei de afisare in fisier "fout"


struct pl{

int nr, h;

};

/**

declarea structurii de date neomogene "pl" care va avea drept campuri "nr" si "h"

aceasta poate stoca numarul de ordine al fiecarui student si inaltimea acestuia

*/

pl om[35]; /// declarea vectorului "om" care va contine numarul de ordine al fiecarui student

///si inaltimea acestuia

char nume[100][100]; ///declararea matricei care va stoca numele studentilor

int n; /// declarea variabilei "n" care va retine numarul total de studenti din pluton

void read_name(int i){ ///functia de citire a numelor studentilor

///aceasta functie primeste ca parametru numarul "i" care reprezinta numarul de ordine al
///studentului

fin.get(); /// se trece pointerul de citire pe randul urmator

fin.get(nume[i], 30); ///se citeste tot numele si se stocheaza in matricea "nume" pe pozitia "i"

bool cmp(pl a, pl b){ ///functia de comparare a inaltimilor a doi studenti

return a.h > b.h; ///se compara inaltimea studentilor

}
int main(){ ///inceputul functiei principale "main" din cadrul programului

///aceasta functie este cea care se executa la rularea programului urmand ca pe parcursului

///rularii acestuia sa se apeleze functiile amintite mai sus

fin>>n; ///se citeste numarul total de studenti

for(int i=1; i<=n; ++i){ ///se citesc pe rand numarul si inaltimea fiecarui student

fin>>om[i].nr; ///se citeste numarul studentului "i" in vectorul "om"

fin>>om[i].h; ///se citeste inaltimea studentului "i" in vectorul "om"

for(int i=1; i<=n; ++i){ ///se citesc pe rand numele celor "n" studenti

read_name(om[i].nr); /// se citest numele studentului "i"

sort(om+1, om+n+1, cmp); /// se sorteaza vectorul "om" de la primul la studentul "n"

for(int i=1; i<=n; ++i){ /// se vor afisa in ordine numarul, numele, si inaltimea studentului

fout<<setw(7)<<right<<om[i].nr; /// se afiseaza numarul studentului

int lg = strlen(nume[ om[i].nr ]); ///se salveaza lungimea numelui studentului in variabila lg

fout<<setw(7)<<right;

for(int j=0; j<lg; ++j) ///se afiseaza litera cu literea numele studentului

fout<<right<<nume[ om[i].nr ][ j ]; ///se afiseaza litera "i" a numelui studentului

fout<<setw(7)<<right<<om[i].h; ///se afiseaza inaltimea studentului


fout<<'\n'; ///se muta cursorul de afisare pe randul urmator

return 0;

///sfarsitul programului