Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конструирование.doc
Скачиваний:
3
Добавлен:
22.08.2019
Размер:
182.78 Кб
Скачать

3 Поиск столбцов (нулевой элемент, оценка)

Задача11

Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.

 

#include <iostream.h>

#include <conio.h>

void main()

{

const n=3,m=3;

int i,j;

int mas[n][m];

int kol=0,fl=0;

for (i=0; i<n; i++)

for (j=0; j<m; j++) {

cout<<"Vvedite element ["<<i<<"]["<<j<<"]:";

cin>>mas[i][j];

}

 

cout<<"Poy4enna9 matrica:\n";

for (i=0; i<n; i++) {

for (j=0; j<m; j++) {

cout<<mas[i][j]<<' '; }

cout<<'\n';

}

 

for (i=0; i<m; i++)

{

for (j=0; j<n; j++)

{

if (mas[j][i]==0) fl=1;

}

if (fl==0) kol++;

fl=0;

}

cout<<"Koli4estvo stolbcov bez 0:"<<kol;

getch();

}

Тест11

Введите

3*3

0 1 2

1 2 3

2 3 4

Ответ

2 столбца

Задача

Дана таблица результатов сдачи сессий студентом за пять лет (столбцы -номер семестра, строки количество экзаменов). Определить количество семестров, когда студент имел оценку «десять».

 #include <iostream.h>

#include <conio.h>

void main() {

constn=3,m=3;

int i,j,t;

int mas[n][m];

intkol=0,fl=0;

for (i=0; i<n; i++)

for (j=0; j<m; j++) {

cout<<"Vvedite element ["<<i<<"]["<<j<<"]:";

cin>>mas[i][j]; }

 cout<<"Poy4enna9 matrica:\n";

for (i=0; i<n; i++) {

for (j=0; j<m; j++) {

cout<<mas[i][j]<<' '; }

cout<<'\n'; }

 for (i=0; i<m; i++) {

for (j=0; j<n; j++) {

if (mas[j][i]==10) fl=1; }

if (fl==1) kol++;

fl=0; }

  cout<<"Koli4estvo semestrov с 10:"<<kol;

getch();}

 

способ 2

 #include "stdafx.h" #include <iostream> #include <conio.h> #include <iomanip> using namespace std;

int _tmain(int argc, _TCHAR* argv[]){  setlocale(LC_ALL,"Russian");  const int n=2,m=4;  int k(0);  int **mass = new int*[n];  for(int i=0; i<n; i++)  {   mass[i] = new int[m];   for(int j=0;j<m;j++){    cout<<"Введите элемент ["<<i<<","<<j<<"]:";    cin>>*(mass[i]+j);  } }  cout<<"Матрица оценок: ";  for(int i=0;i<n;i++) {   cout<<endl;    for(int j=0;j<m;j++)    cout<<setw(3)<<*(mass[i]+j); }  for(int j=0;j<m;j++){   for(int i=0;i<n;i++)    if (*(mass[i]+j)==10) {k++;break;} }  cout<<endl<<"Число семестров с оценкой десять = "<<k;  getch();  return 0;}

4 Функция div() (искл ситуация)

Задача 12

Представлен каркас функции div().Добавьте в функцию процедуру обработки исключительных ситуаций.

double div (double a, double b)

{

// добавьте обработку ошибок

return a/b;

}

#include <iostream.h>

#include <conio.h>

double div (double a, double b)

{ try

{

if (!b) throw(b); }

catch (double) {

cout <<" no division zero" ; }

return a/b; }

int main() {

cout << div (10.0, 2.5 ) << endl;

cout << div (10.0,0.0);

getch();

return 0; }

Тест 12

Введите

10.0 2 ответ 5

10.0 0 ответ деление на ноль.

 

 способ 2

 #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std;

double div (double a, double b) { try  {   if (!b) throw "Error! Division by zero";   else return a/b;  }  catch (char* err)  {   cout<<err<<endl;  }  return 0;}

void main(){  double result=div(10.0,2.5);  if (result) cout<<result<<endl;  result=div(10.0,0.0);  if (result) cout<<result<<endl;  getch();}