Sunteți pe pagina 1din 8

Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea: Calculatoare Informatică Microelectronică


Departamentul: IIS

RAPORT
despre lucrarea de laborator nr.7
la disciplina: POO

Tema: Prelucrarea excepţiilor. Blocul try{…} throw() catch().

A îndeplinit:

A controlat: lector univ., Plotnic Constantin

Chişinău – 2017
Scopul lucrării: Familiarizarea studenţilor cu prelucrarea excepţiilor, lucrul cu
blocul try{…} throw () catch().
Sarcina lucrării:
Variantul 7:
Scrieţi un program care sortează lexicografic cuvintele dintr-un text. Pentru
fiecare element sortat să se indice numărul de repetări ale cuvîntului în textul
dat.

Listingul programului:
# include <iostream>

# include <fstream>

# include <cstdlib>

#include <cstring>

using namespace std;

void execut();

int d[150];

void creare (){

int a[50], b[50], c[50];

ofstream file("info.txt");

ofstream file2("info2.txt");

ofstream file3("info3.txt");

for (int i = 0; i < 50; i++){

a[i] = -50 + rand() % 100;

b[i] = -30 + rand() % 60;

c[i] = -40 + rand() % 80;

if (i+1 == 50){

file << a[i];

file2 << b[i];

file3 << c[i];

}else{

file << a[i] <<" ";


file2 << b[i] <<" ";

file3 << c[i] <<" ";

file.close();

file2.close();

file3.close();

void citire(){

try{

ifstream file("info.txt");

if (!file.is_open())

throw 1;

ifstream file2("info2.txt");

if (!file2.is_open())

throw 1;

ifstream file3("info3.txt");

if (!file3.is_open()){

throw 1;

}else{

for (int i = 0; i < 150; i++){

file >> d[i];

cout << "d[" << i << "]= " << d[i] << endl;

i++;

file2 >> d[i];

cout << "d[" << i << "]= " << d[i] << endl;

i++;

file3 >> d[i];

cout << "d[" << i << "]= " << d[i] << endl;
}

file.close();

file2.close();

file3.close();

catch(int e){

if (e == 1){

cout << "Fisierul nu exista !" <<endl;

void addRez(int i,char name[10]){

ofstream rez(name, ios::app);

rez << " " <<d[i];

rez.close();

void div(int k){

char name[10];

cin >> name;

for (int i = 0; i < 150; i++){

while (true){

if (d[i] == 0){

i++;

}else{

break;

if (d[i]%k == 0){
addRez(i,name);

void pos(){

char name[10];

cin >> name;

for (int i = 1; i < 150; i+=2){

if (d[i] > 0)

if (d[i]%2 == 0)

addRez(i,name);

void execut(){

div(3); div(5); div(7);

pos();

void alipire(){

try{

ifstream rez1("rez1.txt");

if (!rez1.is_open())

throw 1;

ifstream rez2("rez2.txt");

if (!rez2.is_open())

throw 1;

ifstream rez3("rez3.txt");

if (!rez3.is_open())

throw 1;

ifstream rez4("rez4.txt");
if (!rez4.is_open())

throw 1;

int i = 0; int a[500];

while (!rez1.eof()){

rez1 >> a[i];

i++;

rez1.close();

while (!rez2.eof()){

i++;

rez2 >> a[i];

rez2.close();

while (!rez3.eof()){

i++;

rez3 >> a[i];

rez3.close();

while (!rez4.eof()){

i++;

rez4 >> a[i];

rez4.close();

ofstream rez("rez.txt");

for (int k = 0; k <= i; k++){

if (k == i){

rez << a[k];

}else{

rez << a[k] << " ";


}

rez.close();

catch(int e){

if (e == 1){

cout << "Fisierul nu exista !" <<endl;

int main (){

creare();

citire();

execut();

alipire();

cin.get();

return 0;

}
Rezultatul obtinut: