Академический Документы
Профессиональный Документы
Культура Документы
CATEDRA
TI
REFERAT
La C++.
LUCRAREA DE LABORATOR NR. 1
TEMA:
Structura i mecanismul abstraciei
A elaborate:
St. gr. TI
A verificat:
Lisnic Inga
Chiinu 2015
Varianta VI:
Sarcina:
) Image , :
, , ,
, . ,
- .
, , .
b) Matrix-.
Complex, - .
,
. :
(i,j).
( ), .
. .
, ,
.
Listingul Programului:
a)
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int x=0,y=0,i=0,n=0;
class Image{
public:
char *den;
char *form;
char *s;
int dimens;
int dimens_oct;
int compres;//%
Image(char *a,char *b,int c,int d,int e){den=new char [strlen(a)+1];
form=new char[strlen(b)+1];
dimens=c;
dimens_oct=d;
compres=e; }
//Image(const Image &s);
//Image();
class Image *data;
Image(){
cout<<"Introduceti n";
cin>>n;
for(i=0;i<n;i++)
{
printf("Introduceti denumirea fisierului ",i+1," ");
cin>>data[i].den;
printf("Introduceti formatul de compresie ",i+1," ");
cin>>data[i].form;
cout<<"Introduceti dimensiunea imaginii "<<i+1<<" ";
cin>>data[i].dimens;
cout<<"Introduceti dimensiunea in octeti "<<i+1<<" ";
cin>>data[i].dimens_oct;
cout<<"Introduceti compresia in % "<<i+1<<" ";
cin>>data[i].compres;
}
b)
#include <iostream>
#include <conio.h>
using namespace std;
class matrix
{
private:
float **A;
int n, m, err;
public:
matrix();
matrix(int, float);
matrix(int, int, float);
matrix(const matrix&);
~matrix();
void intro();
void show();
void suma(const matrix &matr);
void produs(const matrix &matr);
void diferenta(const matrix &matr);
err=0;
n=B.n;
m=B.m;
if (!(A=new float*[n])) err=1;
else
for(int i=0; i<n; i++)
if (!(A[i]=new float[m])) err=1;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++) A[i][j]=B.A[i][j];
}
/***********************************************/
matrix::~matrix()
{
err=0;
for(int i=0; i<n; i++)
delete[] A[i];
delete[] A;
A=NULL;
n=m=0;
}
/***********************************************/
int matrix::get_n()
{
err=0;
return n;
}
/***********************************************/
int matrix::get_m()
{
err=0;
return m;
}
/***********************************************/
int matrix::get_err()
{
return err;
}
/***********************************************/
float matrix::get_element(int i,int j)
{
if((i<0)&(i>n)&(j<0)&(j>m)) { err=5; return -1;}
else
return A[i][j];
}
/***********************************************/
void matrix::print_err()
{
switch (err)
{
case 0: { cout<<"Totul e OK."<<endl; break;}
case 1: { cout<<"Nu este de ajuns memorie."<<endl; break;}
case 2: { cout<<"Dimensiunea matricei trebuie sa fie pozitiva."<<endl; break;}
case 3: { cout<<"Trecerea peste limitele matricei."<<endl; break;}
case 4: { cout<<"Dimensiunile matricelor nu coincid."<<endl; break;}
case 5: { cout<<"Matricele nu sunt compatibile pentru inmultire."<<endl; break;}
}
{
float tmp=0;
for(int k=0; k<vec.n; k++)
tmp+=A[i][k]*vec.A[k][j];
temp.A[i][j]=tmp;
}
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
A[i][j]=temp.A[i][j];
}
else err=5;
}
/***********************************************/
void matrix::inmultire( float val)
{
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
A[i][j]*=val;
}
/***********************************************/
int main()
{
matrix m1(3);
cout<<"Dati prima matrice"<<endl;
m1.intro();
cout<<"Matricea introdusa: "<<endl;
m1.show();
matrix m2(3);
cout<<endl<<"Dati a doua matrice"<<endl;
m2.intro();
cout<<"Matricea introdusa: "<<endl;
m2.show();
getch();
m1.suma(m2);
cout<<"Suma m1+m2: "<<endl;
m1.show();
getch();
m2.diferenta(m1);
cout<<"Diferentza m2-m1: "<<endl;
m2.show();
getch();
m1.produs(m2);
cout<<"Produsul m1*m2: "<<endl;
m1.show();
getch();