Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrarea de laborator nr.1
la disciplina Programarea Orientată pe Obiecte
A efectuat:
st. gr. AI-161 S.Dubac
A verificat:
lector univer. M.Oșovschi
Chişinău 2017
Lucrarea de laborator nr.1
Sarcina de lucru:
a. Scrieţi un program care calculează suma cifrelor pentru fiecare număr din
consecutivitatea de 100 de numere aleatoare.
b. Scrieţi un program care determină numărul maximal şi cel minimal într-o listă
circulară de 100 de numere aleatoare. Să se determine consecutivitatea de elemente ce
se află între numerele maximal şi cel minimal determinate.
Mersul lucrării:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int a[100],i,suma=0;
for(i=0;i<100;i++){
a[i]=rand() % 100+1;
}
cout<<"\nS-a generat tabloul: "<<endl;
for(i=0;i<100;i++){
cout<<a[i]<<" ";
}
cout<<"\n\n";
for(i=0;i<100;i++){
cout<<"Suma p/u "<<a[i]<<" este: ";
while(a[i]){
suma=suma+(a[i]%10);
a[i]=a[i]/10;
}
cout<<suma<<"\n";
1
suma=0;
}
}
#include <iostream>
#include <stdlib.h>
#include <time.h>
lista *head;
void read(void){
int i;
lista *c;
c=head;
i=0;
2
while(c){
c=c->next;
if(c==head){
break;
}
i++;
}
}
void show(void){
lista *c;
c=head;
int i=0;
while(c){
std::cout<<" "<<c->info<<" ";
i++;
c=c->next;
}
}
void conse(void){
lista *c,*temp;
c = head;
int i=0;
int min=c->info,max=c->info;
int pozmin=0,pozmax=0;
while(c){
if(c->info<min){
min=c->info;
pozmin=i;
}
if(c->info>max){
max=c->info;
pozmax=i;
}
i++;
c=c->next;
}
std::cout<<"\n";
std::cout<<"Numarul minimal este: "<<min;
std::cout<<"\n";
3
std::cout<<"Pozitia: "<<pozmin;
std::cout<<"\n";
std::cout<<"Numarul maximal este: "<<max;
std::cout<<" Pozitia: "<<pozmax;
std::cout<<"\n";
c=head;
i=0;
int x=0;
if(pozmin<pozmax){
while(c){
if((i>=pozmin && i<=pozmax) && (c->info==((c->next)->info)-1))
{
std::cout<<" "<<c->info<<" "<<c->next->info<<std::endl;
x+=2;
}
i++;
c=c->next;
}
std::cout<<"Pe intervalul dat au fost gasite _"<< x <<"_ numere consecutive";
}
x=0;
if(pozmax<pozmin){
while(c){
if((i>=pozmax && i<=pozmin) && (c->info==((c->next)->info)-1))
{
std::cout<<" "<<c->info<<" "<<c->next->info<<std::endl;
x+=2;
}
i++;
c=c->next;
}
std::cout<<"Pe intervalul dat au fost gasite _"<< x <<"_ numere consecutive";
}
int main()
{
int temp;
srand(time(NULL));
temp=create(100);
if(temp != 0){
std::cout<<"Eroare la alocarea memoriei"<<std::endl;
4
}
read();
show();
conse();
std::cout<<"\n";
5
Analiza rezultatelor si concluzii:
Bibliografie:
2. http://www.cplusplus.com/doc/tutorial/dynamic/