Documente Academic
Documente Profesional
Documente Cultură
. S se defineasc funciile de iniializare, de eliminare a unui vector; de setare/ modificare a dimensiunii vectorului; de acces la elementele vectorului; de calcul a modulului unui vector. n funcia main s se realizeze adunarea a doi vectori.
Codul sursa:
struct complex {
void getData();
};
void complex::getData() {
cout<<"La partie reele - "; cin>>re; cout<<"La partie imaginaire - "; cin>>im;
complex sum;
if (sum.im >= 0 ) cout<<endl<<"Le resultat de la somme est : "<<sum.re<<"+"<<sum.im<<"i"<<endl<<endl; else cout<<endl<<"Le resultat de la somme est : "<<sum.re<<" "<<sum.im<<"i"<<endl<<endl; }
if ( dif.im >= 0 )
cout<<endl<<"Le resultat de la difference est : "<<dif.re<<"+"<<dif.im<<"i"<<endl<<endl; else cout<<endl<<"Le resultat de la diference est : "<<dif.re<<""<<dif.im<<"i"<<endl<<endl; }
complex prod;
prod.re = nr1.re * nr2.re - nr1.im * nr2.im; prod.im = nr1.re * nr2.im + nr1.im * nr2.re;
if ( prod.im >= 0 ) cout<<endl<<"Le resultat de la multiplicatione est : "<<prod.re<<"+"<<prod.im<<"i"<<endl<<endl; else cout<<endl<<"Le resultat de la multiplication est : "<<prod.re<<" "<<prod.im<<"i"<<endl<<endl; }
complex imp;
imp.re= ((nr1.re*nr2.re)+(nr1.im*nr2.im))/((nr2.re*nr2.re)+(nr2.im*nr2.im));
imp.im= ((nr1.im*nr2.re)-(nr1.re*nr2.im))/((nr2.re*nr2.re)+(nr2.im*nr2.im));
if ( imp.im >= 0 ) cout<<endl<<"Le resultat de la division est : "<<imp.re<<"+"<<imp.im<<"i"<<endl<<endl; else cout<<endl<<"Le resultat de la division est : "<<imp.re<<" "<<imp.im<<"i"<<endl<<endl; }
double mod1,mod2;
cout<<"Le module de 1 nombre est: "<<mod1<<endl<<endl; cout<<"Le module de 2 nombre est: "<<mod2<<endl<<endl;
if (mod1>mod2) cout<<"Le premier nombre est plus grand que le 2. "<<endl<<endl; else if(mod1==mod2) cout<<"Les nombres sont egales."<<endl<<endl; else if(mod1<mod2) cout<<"Le deuxiem nombre est plus grand que la 1."<<endl<<endl; }
int main () {
complex nr1,nr2;
cout<<"Le premier nombre : "<<endl; nr1.getData(); cout<<endl<<"Le deuxiem nombre : "<<endl; nr2.getData();
return 0; }
) S se creeze; utiliznd structura, tipul abstract de date pentru reprezentarea numerelor complexe. S se defineasc funciile de setare/citire a prii reale i imaginare a unui numr complex; de adunare, scdere, nmulire, mprire i de comparaie( mai mic, mai mare, etc.) a dou numere complexe. S se defineasc funcia ce calculeaz i returneaz modulul unui numr complex. S se defineasc toate funciile ca fiind globale.
Codul sursa:
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <math.h> using namespace std;
char option; int n, n2, i; float value; struct vector { int *point; int n; }; void creare(vector *vector, int n){ int j = 0; vector->point = new int[n]; if( n < 1 ) vector->n = 1; else if( n > 20) vector->n = 20; else vector->n = n;
for( int i = 0; i < vector->n; i++) { cout<<"Entrez les elements: "<<++j<<" : "; cin>>vector->point[i]; } }
cout<<endl<<endl;
if(vector->point == NULL)cout<<"Erreure. N'est pas entre le vecteur."<<endl; else { for(int i = 0; i < vector->n; i++){
void setData(vector *vector,int id,int value) { vector->point[id]=value; } void modMarime(vector *vector, int newSize){ int *newArray; newArray = new int[newSize]; for (int i = 0; i < newSize; i++) newArray[i] = vector->point[i];
if(newSize > vector->n) { cout<<"Entrez les nouvelles elements : "<<endl; for (int i = vector->n; i < newSize; i++){ cin>>newArray[i]; } }
for(int i = 0; i < newSize; i++) vector->point[i] = newArray[i]; vector->n = newSize; delete[]newArray; } double calcModul(vector *vector) { double modul, x = 0; for(int i = 0; i <vector->n; i++ ) x+=pow(vector->point[i],2); modul = sqrt(x); return modul; }
void menu () { system("cls"); cout<<endl<<endl; cout<<" cout<<" cout<<" cout<<" 1 - La creation du vecteur"<<endl; 2 - L'affichage du vecteur"<<endl; 3 - La modification d'un elemente du vecteur"<<endl; 4 - La somme de deux vecteurs"<<endl;
int main () { vector vector, vector2; vector.point = NULL; vector2.point = NULL; int newSize; do { system("cls"); menu(); switch(toupper(option)) { case '1': system("cls"); cout<<"\nEntrez la dimension de premier vecteur\n n = "; cin>>n; creare(&vector,n); system("pause"); break;
do { cout<<endl<<"Entrez de id que vous voudrez modifiez : "; cin>>i; } while(i>vector.n); cout<<"\n L'element avec de indice "<<i<<" est "<<getData(&vector,i-1); cout<<"\n Entrez la nouvelle valeur : "; cin>>value; setData(&vector,i-1,value); cout<<"Le vecteur modifie est : "<<endl; afisare(&vector); system("pause"); } else { cout<<"Erreure!"<<endl;
cout<<"Entrez le premier vecteur."<<endl; creare(&vector,n); } cout<<"Entrez la dimension de deuxiem vecteur. :"; cin>>n2; creare(&vector2,n2); cout<<"Vecteur 1 est : "; afisare(&vector); cout<<endl<<"Vecteur 2 est : "; afisare(&vector2); cout<<"La somme de vecteurs est : "; for (i = 0; i < n2 && i<n; i++) cout<<vector.point[i]+vector2.point[i]<<" "; cout<<endl; system("pause"); break;
case'5': system("cls");
if(vector.point != NULL) { cout<<"ATANTION! Si vous entrez une dimension plus petite que "<<vector.n <<" les dates sont perdues."<<endl; cout<<"Entrez une nouvelle dimension :"; cin>>newSize; modMarime(&vector,newSize); afisare(&vector);} else { cout<<"Erreure."<<endl; } system("pause"); break;
case'6': system("cls"); if(vector.point != NULL) { cout<<endl<<endl<<"Le module de premier vecteur est : "<<calcModul(&vector)<<endl<<endl; } else {
cout<<"Erreure."<<endl; }
system("pause"); break;
case '7':
system("cls"); if(vector.point != NULL) { sterge(&vector); sterge(&vector2); system("cls"); cout<<"La memoire a ete eliberee."<<endl<<endl; } else { cout<<"Ne sont pas des dates enregistrees."<<endl; } system("pause"); break;
return 0; }
Programul va afisa:
Meniul principal
Crearea vectorului:
Afisarea vectorului:
Modulul vectorului:
Eliberarea memoriei: