В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Маришка1231
Маришка1231
26.08.2021 17:05 •  Информатика

Тема: установка и конфигурация периферийного оборудования

Показать ответ
Ответ:
яяя611
яяя611
12.12.2022 16:20

Внимание! Этот код - не пример того, как нужно писать программы на С++, это лишь попытка адаптировать написанную на Pascal программу на С++ с минимальными изменениями в логике кода, функциях и т.д.

В процессе возникла проблема с адаптацией type mat = array [1..5, 1..5] of real; Ближайший аналог -  typedef double mat[mm][mm]; , однако тогда возникают проблемы с передачей параметров в функцию.

Поэтому пришлось создавать класс с динамическим выделением памяти [обращаю на это внимание, не статический] и перегруженным оператором индексации.

#include <iostream>

const int mm = 5;

class mat

{

private:

double ** array;

public:

mat(): array(nullptr) {}

mat(double tmp[][mm])

{

 array = new double *[mm];

 for (auto i = 0; i < mm; i++)

 {

  array[i] = new double [mm];

 }

 for (auto i = 0; i < mm; i++)

 {

  for (auto j = 0; j < mm; j++)

  {

   array[i][j] = tmp[i][j];

  }

 }

}

~mat()

{

 for (auto i = 0; i < mm; i++)

 {

  delete[] array[i];

 }

 delete[] array;

}

double * operator[] (const int i)

{

 if (i < 0 || i >= mm)

 {

  throw std::runtime_error("Error! Invalid index!");

 }

 return array[i];

}

};

void pp1(mat& A, bool& p, int& imax, int& jmax)

{

imax = jmax = 0;

for (auto i = 0; i < mm; i++)

{

 for (auto j = 0; j < mm; j++)

 {

  if (A[i][j] > A[imax][jmax])

  {

   imax = i;

   jmax = j;

  }

 }

}

p = jmax > imax;

}

void pp2(mat& A)

{

double c;

for (auto i = 1; i < mm; i++)

{

 for (auto j = 0; j < i; j++)

 {

  c = A[i][j];

  A[i][j] = A[j][i];

  A[j][i] = c;

 }

}

}

void pp3(mat& A, int& imax, int& jmax, double& S)

{

S = 0;

for (auto i = 0; i < mm; i++)

{

 S += A[i][jmax] + A[imax][i];

}

}

int main()

{

double S;

int imax, jmax;

bool p;

double A1[mm][mm] = { {9, 1, 1, 2, 3}, {4, 6, 7, 8, 4}, {5, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1 } };

mat A(A1);

std::cout << "isxodnaya matriza" << std::endl;

for (auto i = 0; i < mm; i++)

{

 for (auto j = 0; j < mm; j++)

 {

  std::cout << " " << A[i][j];

 }

 std::cout << std::endl;

}

pp1(A, p, imax, jmax);

std::cout << "MAX element: A[" << imax << "][" << jmax << "] = " << A[imax][jmax] << std::endl;

if (p)

{

 pp2(A);

 std::cout << "Transponirovannaya matrix" << std::endl;

 for (auto i = 0; i < mm; i++)

 {

  for (auto j = 0; j < mm; j++)

  {

   std::cout << " " << A[i][j];

  }

  std::cout << std::endl;

 }

}

else

{

 pp3(A, imax, jmax, S);

 std::cout << "Symma elementov s " << S << std::endl;

}

return 0;

}

0,0(0 оценок)
Ответ:
PakiPusy
PakiPusy
12.03.2022 05:57

Факультет географии и природопользования КазНУ им. аль-Фараби был открыт в 1948 г. Тогда он имел название геолого-географический и был представлен двумя отделениями – геологическим и географическим. В связи с закрытием геологического отделения в 1960 году факультет был переименован в географический. Сегодня факультет отвечает самым высоким требованиям и международным стандартам. За время своего существования факультет подготовил более 5 тыс. специалистов географического профиля: географов, метеорологов, гидрологов, экологов, картографов, менеджеров туризма и др.

У истоков факультета стояли выдающиеся ученые-географы, внесшие большой вклад в развитие географической науки в Казахстане. Среди них назовем проф. В.А.Соколова, проф. М.Ж.Жандаева, проф. Г.Г.Муравлева, доц. З.П.Коженкову, проф. В.И.Коровина, проф. А.В.Чигаркина и др. Большой вклад в становление географического факультета внес на посту ректора КазНУ академик У.А. Джолдасбеков.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота