Otchyot_OOPro_Laba_3
.docxЛабораторная работа №2
По дисциплине «Обьектно-ориентированное программирование»
Ст. гр. ИНФ-10-1 Михайловой Александры
Создать программу, которая вводит c клавиатуры (с обработкой ошибок) двумерный массив целых чисел, заносит в одномерный массив суммы неотрицательных элементов по строкам, выводит этот массив на экран до первого нулевого элемента и отображает число оставшихся элементов.
Код программы:
#include<iostream>
#include<vector>
using namespace std;
bool isDigit(char*mas);
void main()
{
char temp[20];
int rows=3,columns=3;
vector<vector<int>> mas(rows);
vector<int> sum(mas.size(),0);
for(int i=0;i < mas.size();++i)
{
for(int j=0;j < columns;++j)
{
cout<<"Input ["<<i<<"]["<<j<<"] element: ";
try
{
cin.getline(temp,20);
if(!isDigit(temp))
throw(exception("Error number!"));
else
mas[i].push_back(atoi(temp));
cout<<endl;
}
catch(const exception &e)
{
cout<<"Exception!"<<e.what()<<endl;
--j;
}
}
}
system("cls");
cout<<"Matrix:"<<endl;
for(int i=0;i < mas.size();++i)
{
for(int j=0;j < mas[i].size();++j)
{
cout<<mas[i][j]<<"\t";
}
cout<<endl;
}
for(int i=0;i<mas.size();++i)
{
for(int j=0;j<mas[i].size();++j)
{
if(mas[i][j]>=0)
sum[i]+=mas[i][j];
}
}
cout<<"\nSum of the rows elements which >=0"<<endl;
for(int i=0;i<sum.size();++i)
{
if(sum[i]!=0)
cout<<sum[i]<<" ";
else
{
cout<<sum[i]<<"\n"<<sum.size()-i-1<<" elements left"<<endl;
break;
}
}
cout<<endl;
}
bool isDigit(char*mas)
{
int i=0;
bool flag = true;
while(mas[i]!='\0')
{
if(atoi(&mas[i])==0 && mas[i]!='0')
{
flag=false;
break;
}
++i;
}
return flag;
}