лістинг 5.6 | Хід роботи | Приклад 6.1. Середнє арифметичне і кількість позитивних елементів | лістинг 6.1 | Приклад 6.2. Номер стовпця з позитивних елементів | лістинг 6.2 | лістинг 6.3 | I. Вихідні дані, результати і проміжні величини. | лістинг 6.4 | Приклад 6.4. Згладжування заданої речової матриці, робота з файлами |

загрузка...
загрузка...
На головну

лістинг 6.6

  1. Гнучка оцінка акцій, які не включені в лістинг
  2. лістинг 1.1
  3. лістинг 1.3
  4. лістинг 1.4
  5. лістинг 1.5
  6. лістинг 1.8
  7. лістинг 10.1

#include "stdafx.h"

#include

#include

#include

#include

#include

using namespace std;

int _tmain (int argc, _TCHAR * argv [])

{

setlocale (LC_ALL, "Russian");

srand ((unsigned) time (NULL));

int m, n, h, c, i, j, ch;

cout << "Лабораторна робота № 6 \ n";

cout << "\ nЗаданіе \ nДана целочисленная прямокутна матриця. Визначити: \ кількість негативних елементів в тих рядках, \ nкоторие містять хоча б один нульовий елемент.";

cout << "\ n Введіть розмірність масиву \ n";

cin >> n;

cin >> m;

int ** a = new int * [n];

for (i = 0; i

cout << "\ nВиберіте спосіб введення масиву";

cout << "\ n1. Ввести масив з клавіатури. \ n2. Заповнити масив випадковим чином. \ n";

cin >> ch;

if (ch == 1)

{

cout << "\ n Введіть елементи масиву \ n" << endl;

for (i = 0; i

for (j = 0; j > a [i] [j];

for (i = 0; i

{

for (j = 0; j

cout << a [i] [j] << '';

cout << endl;

}

}

if (ch == 2)

{

for (i = 0; i

for (j = 0; j

for (i = 0; i

{

for (j = 0; j

cout << a [i] [j] << '';

cout << endl;

}

}

h = 0;

for (i = 0; i

{

for (j = 0; j

if (a [i] [j] <0)

h ++;

for (j = 0; j

if (a [i] [j] == 0)

{

cout << "\ nНомер рядки \ n" << i;

cout << "\ nЧісло негативних елементів \ n" << h;

h = 0;

}

else

cout << "\ nНет нульових елементів \ n";

}

getch ();

return 0;

}

Апаратура і матеріали. Для виконання лабораторної роботи необхідний персональний комп'ютер з наступними характеристиками: процесор Intel Pentium-сумісний з тактовою частотою 800 МГц і вище, оперативна пам'ять - не менше 64 Мбайт, вільний дисковий простір - не менше 500 Мбайт, пристрій для читання компакт-дисків, монітор типу Super VGA (число квітів від 256) з діагоналлю не менше 15?. Програмне забезпечення - операційна система Windows2000 / XP і вище, середовище розробки додатків Microsoft Visual Studio.

Вказівки з техніки безпеки. Техніка безпеки при виконанні лабораторної роботи збігається з загальноприйнятою для користувачів персональних комп'ютерів, самостійно не проводити ремонт персонального комп'ютера, установку і видалення програмного забезпечення; в разі несправності персонального комп'ютера повідомити про це обслуговуючому персоналу лабораторії (оператору, адміністратору); дотримуватися правил техніки безпеки при роботі з електрообладнанням; не торкатися електричних розеток металевими предметами; робоче місце користувача персонального комп'ютера повинно міститися в чистоті; Не дозволяється біля персонального комп'ютера приймати їжу, напої.

Методика і порядок виконання роботи.Перед виконанням лабораторної роботи кожен студент отримує індивідуальне завдання. Захист лабораторної роботи відбувається тільки після його виконання (індивідуального завдання). При захисті лабораторної роботи студент відповідає на контрольні питання, наведені в кінці, і пояснює виконане індивідуальне завдання. Хід захисту лабораторної роботи контролюється викладачем. Порядок виконання роботи:

1. Опрацювати приклади, наведені в лабораторній роботі.

2. Скласти програму з використанням двовимірних локальних масивів для вирішення завдання. Розмірності локальних масивів задавати іменованими константами, значення елементів масиву - в списку ініціалізації. Номер варіанта визначається за формулою  , де  - Номер студента за списком викладача.

Індивідуальне завдання №1. Варіант:

1. Дана целочисленная прямокутна матриця. визначити:

1) кількість рядків, що не містять жодного нульового елемента;

2) максимальне з чисел, що зустрічаються в заданій матриці більш ніж один раз.

2. Дана целочисленная прямокутна матриця. Визначити кількість стовпців, що не містять жодного нульового елемента.

Характеристикою рядка целочисленной матриці назвемо суму її позитивних парних елементів. Переставляючи рядки заданої матриці, розташувати їх відповідно до зростання характеристик.

3. Дана целочисленная прямокутна матриця. визначити:

1) кількість стовпців, що містять хоча б один нульовий елемент;

2) номер рядка, в якій знаходиться найдовша серія однакових елементів.

4. Дана целочисленная квадратна матриця. визначити:

1) твір елементів в тих рядках, які не містять негативних елементів;

2) максимум серед сум елементів діагоналей, паралельних головній діагоналі матриці.

5. Дана целочисленная квадратна матриця. визначити:

1) суму елементів в тих шпальтах, які не містять негативних елементів;

2) мінімум серед сум модулів елементів діагоналей, паралельних побічної діагоналі матриці.

6. Для заданої матриці розміром 8 на 8 знайти такі k, що k-я рядок матриці збігається з k-м стовпцем.

Знайти суму елементів в тих рядках, які містять хоча б один негативний елемент.

7. Характеристикою стовпця целочисленной матриці назвемо суму модулів його негативних непарних елементів. Переставляючи стовпці заданої матриці, розташувати їх в відповідностей з ростом показників.

Знайти суму елементів в тих шпальтах, які містять хоча б один негативний елемент.

8. Сусідами елемента Aj в матриці назвемо елементи Аk з i - 1

9. Елемент матриці називається локальним мінімумом, якщо він строго менше всіх наявних у нього сусідів. Підрахувати кількість локальних мінімумів заданої матриці розміром 10 на 10.
 Знайти суму модулів елементів, розташованих вище головної діагоналі.

10. Коефіцієнти системи лінійних рівнянь задані у вигляді прямокутної матриці. За допомогою допустимих перетворень привести систему до трикутного вигляду. Знайти кількість рядків, середнє арифметичне елементів яких менше заданої величини.

11. Ущільнити задану матрицю, видаляючи з неї рядки і стовпці, заповнені нулями. Знайти номер першої з рядків, що містять хоча б один позитивний елемент.

12. Здійснити циклічний зсув елементів прямокутної матриці на п елементів вправо або вниз (в залежності від введеного режиму), п може бути більше кількості елементів в рядку або стовпці.

13. Здійснити циклічний зсув елементів квадратної матриці розмірності М х N вправо на до елементів таким чином: елементи 1-го рядка зсуваються в останній стовпець зверху вниз, з нього - в останній рядок справа наліво, з неї - в перший стовпець знизу вгору, з нього - в перший рядок; для інших елементів - аналогічно.

14. Дана целочисленная прямокутна матриця. Визначити номер першого з стовпців, що містять хоча б один нульовий елемент.

Характеристикою рядка целочисленной матриці назвемо суму її негативних парних елементів. Переставляючи рядки заданої матриці, розташувати їх відповідно до убування характеристик.

15. Впорядкувати рядки целочисленной прямокутної матриці по зростанню кількості однакових елементів в кожному рядку.

Знайти номер першого з стовпців, що не містять жодного негативного елементу.

16. Шляхом перестановки елементів квадратної речовій матриці домогтися того, щоб її максимальний елемент перебував в лівому верхньому кутку, наступний за величиною - в позиції (2,2), наступний за величиною - в позиції (3,3) і т. Д., заповнивши таким чином всю головну діагональ. Знайти номер першої з рядків, що не містять жодного позитивного елемента.

17. Дана целочисленная прямокутна матриця. визначити:

1) кількість рядків, що містять хоча б один нульовий елемент;

2) номер стовпчика, в якому знаходиться найдовша серія однакових елементів.

18. Дана целочисленная квадратна матриця. визначити:

1) суму елементів в тих рядках, які не містять негативних елементів;

2) мінімум серед сум елементів діагоналей, паралельних головній діагоналі матриці.

19. Дана целочисленная прямокутна матриця. визначити:

1) кількість позитивних елементів в тих рядках, які не містять нульових елементів;

2) номери рядків і стовпців всіх сідлових точок матриці.

Примітка. Матриця А має седловую точку АР якщо АР є мінімальним елементом в i-му рядку і максимальним в j-му стовпці.

3. Скласти програму з використанням двовимірних динамічних масивів для вирішення завдання відповідно до варіанту індивідуального завдання №1.

Зміст звіту і його форма. Звіт з лабораторної роботи повинен складатися з:

1. Назви лабораторної роботи.

2. Цілі і змісту лабораторної роботи.

3. Відповідей на контрольні питання лабораторної роботи.

4. Формулювання індивідуальних завдань та порядку їх виконання.

Звіт про виконання лабораторної роботи в письмовому вигляді здається викладачеві.

Питання для захисту роботи

1. Як видається в C ++ двовимірний масив?

2. Де і яким чином зберігається двовимірний масив?

3. В яких межах змінюються індекси двовимірного масиву?

4. Якими способами можна описати двовимірний масив?

5. Які дії виконуються для кожного рядка при обчисленні кількості позитивних елементів?

6. В якому місці програми слід записувати оператори ініціалізації накопичуються в циклі величин?

7. Яким чином в динамічній області пам'яті можна створювати двовимірні масиви?

8. Способи створення динамічного масиву.

9. Яким чином здійснюється звернення до елементів динамічних масивів?

Приклад виконання лабораторної роботи №6:

1. Індивідуальне завдання №1:

1.1. Постановка задачі:

Скласти програму з використанням двовимірних локальних масивів для вирішення завдання. Розмірності локальних масивів задавати іменованими константами, значення елементів масиву - в списку ініціалізації.

Завдання: дана целочисленная прямокутна матриця. визначити:

1) суму елементів в тих рядках, які містять хоча б один негативний елемент;

2) номери рядків і стовпців всіх сідлових точок матриці.

Примітка. Матриця А має седловую точку As, Якщо As є мінімальним елементом в i-му рядку і максимальним в j-му стовпці.

1.2. UML-діаграма:

1.3. Лістинг програми:

// Лабораторна робота №6

// Індивідуальне завдання №1

#include "stdafx.h"

#include

#include "conio.h"

#include "math.h"

#include "windows.h"

using namespace std;

int _tmain (int argc, _TCHAR * argv [])

{

setlocale (LC_ALL, "Russian");

const int nrow = 3, ncol = 5;

int A [nrow] [ncol];

int i, j, summ;

cout << "Лабораторна робота № 6 \ n"

<< "\ NГорошко А. А., БАС-051 \ n"

<< "\ NВаріант № 6 \ n"

<< "\ N \ nІндівідуальное завдання № 1: \ n"

<< "\ NСоставіть програму з використанням двовимірних локальних масивів для \ n"

<< "\ Nрешенія завдання. Розмірності локальних масивів задавати іменованими \ n"

<< "\ Nконстантамі, значення елементів масиву - в списку ініціалізації. \ N"

<< "\ N \ nЗадача: дана целочисленная прямокутна матриця. Визначити: \ n"

<< "Суму елементів в тих рядках, які містять хоча б один \ n"

<< "\ Nотріцательний елемент; \ n"

<< "\ N2) номера рядків і стовпців всіх сідлових точок матриці. \ N"

<< "\ N \ nПрімечаніе: матриця А має седловую точку As, якщо Аs є \ n"

<< "\ Nмінімальним елементом в i-му рядку і максимальним в j-му стовпці. \ N"

<< "\ N \ nРабота програми: \ n"

<< "\ NВведіте елементи масиву: \ n \ n";

for (i = 0; i

{

for (j = 0; j

{

cout << "A [" << i << "] [" << j << "] =";

cin >> A [i] [j];

}

}

cout << "\ n1)";

for (i = 0; i

{

bool flag = false;

summ = 0;

for (j = 0; j

{

summ + = A [i] [j];

if (A [i] [j] <0)

flag = true;

}

if (flag == true)

{

cout << "Сума елементів рядка" << i;

cout << "з негативним елементом" << "=" << summ << "\ n \ n";

}

}

cout << "\ n2)";

for (i = 0; i

{

int min, max;

int tempValue; // Тимчасова змінна

min = 0;

tempValue = A [i] [0];

// Пошук мінімального в рядку елемента

for (j = 0; j

{

if (A [i] [j]

{

min = j;

tempValue = A [i] [j];

}

}

// Пошук максимального в стовпці елемента

max = 0;

tempValue = A [0] [min];

for (j = 0; j

{

if (A [j] [min]> tempValue)

{

max = j;

tempValue = A [j] [min];

}

}

if (i == max)

{

cout << "Сідлова точка:" << "As [" << max << "] [" << min << "]";

}

}

getch ();

return 0;

}

1.4. Результати роботи програми:

2. Індивідуальне завдання №2:

2.1. Постановка задачі:

Скласти програму з використанням двовимірних динамічних масивів для вирішення завдання індивідуального завдання №1.

2.2. UML-діаграма:

2.3. Лістинг програми:

// Лабораторна робота №6

// Індивідуальне завдання №2

#include "stdafx.h"

#include

#include "conio.h"

#include "math.h"

#include "windows.h"

using namespace std;

int _tmain (int argc, _TCHAR * argv [])

{

setlocale (LC_ALL, "Russian");

int nrow, ncol, i, j, summ;

cout << "Лабораторна робота № 6 \ n";

cout << "\ nГорошко А. А., БАС-051 \ n";

cout << "\ nВаріант № 6 \ n";

cout << "\ n \ nІндівідуальное завдання № 2: \ n";

cout << "\ nСоставіть програму з використанням двовимірних динамічних \ n";

cout << "\ nмассівов для вирішення завдання індивідуального завдання №1. \ n";

cout << "\ n \ nРабота програми: \ n";

cout << "\ nВведіте кількість рядків і стовпців: \ n \ n" << "i =";

cin >> nrow;

cout << "j =";

cin >> ncol;

int ** A = new int * [nrow];

cout << "\ nВведіте елементи масиву: \ n \ n";

for (i = 0; i

{

A [i] = new int [ncol];

for (j = 0; j

{

cout << "A [" << i << "] [" << j << "] =";

cin >> A [i] [j];

}

}

cout << "\ n1)";

for (i = 0; i

{

bool flag = false;

summ = 0;

for (j = 0; j

{

summ + = A [i] [j];

if (A [i] [j] <0)

flag = true;

}

if (flag == true)

{

cout << "Сума елементів рядка" << i;

cout << "з негативним елементом" << "=" << summ << "\ n \ n";

}

}

cout << "\ n2)";

for (i = 0; i

{

int min, max;

int tempValue; // Тимчасова змінна

min = 0;

tempValue = A [i] [0];

// Пошук мінімального в рядку елемента

for (j = 0; j

{

if (A [i] [j]

{

min = j;

tempValue = A [i] [j];

}

}

// Пошук максимального в стовпці елемента

max = 0;

tempValue = A [0] [min];

for (j = 0; j

{

if (A [j] [min]> tempValue)

{

max = j;

tempValue = A [j] [min];

}

}

if (i == max)

{

cout << "Сідлова точка:" << "As [" << max << "] [" << min << "]";

}

}

getch ();

return 0;

}

2.4. Результати роботи програми:

Лабораторна робота №7.
Функції та перевантаження в мові C ++

Мета роботи і зміст: закріплення знань про функції та перевантаження, складання програм з функціями і перевантаженням.

 



лістинг 6.5 | Хід роботи
загрузка...
© um.co.ua - учбові матеріали та реферати