лістинг 5.3 | лістинг 5.4 | лістинг 5.5 | лістинг 5.6 | Хід роботи | Приклад 6.1. Середнє арифметичне і кількість позитивних елементів | лістинг 6.1 | Приклад 6.2. Номер стовпця з позитивних елементів | лістинг 6.2 | лістинг 6.3 |

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

лістинг 6.4

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

#include

#include

int main ()

{

setlocale (LC_ALL, "Russian");

ifstream fin ( "input.txt", ios :: in | ios :: nocreate);

if (! fin)

{

cout << "Файл input.txt не найден." << Endl; return 1;

}

int nrow, ncol;

fin >> nrow >> ncol; // Введення розмірності масиву

int i, j;

int ** a = new int * [nrow]; / * Виділення пам'яті під масив * /

for (i = 0; i

for (i = 0; i

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

long * sum = new long [nrow] / * масив сум елементів рядків * /

for (i = 0; i

{

sum [i] = 0;

for (j = 0; j

}

for (i = 0; i

{

for (j = 0; j

cout << "|" << sum [i] << endl;

}

cout << endl;

long buf_sum;

int nmin, buf_a;

for (i = 0; i

{

nmin = i;

for (j = i + 1; j

if (sum [j]

buf_sum = sum [i]; sum [i] = sum [nmin]; sum [nmin] = buf_sum;

for (j = 0; j

{

buf_a = a [i] [j]; a [i] [j] = a [nmin] [j]; a [nmin] [j] = buf_a;

}

}

for (i = 0; i

{

for (j = 0; j

cout << endl;

}

return 0;

}

У програмі використовуються дві буферні змінні: buf_sum, через яку здійснюється обмін двох значень сум, має такий же тип, що і сума, а для обміну значень елементів масиву визначена змінна buf_a того ж типу, що й елементи масиву.

Як і в попередньому прикладі, дані читаються з файлу. Рекомендується користуватися саме цим способом, а не стандартним вводом, оскільки при формуванні файлу легше продумати, які значення краще взяти для вичерпного тестування програми. В даному випадку для першого тесту слід підготувати масив не менше ніж з чотирьох рядків з невеликими значеннями елементів для того, щоб можна було в розумі перевірити, чи правильно обчислюються суми.

Для контролю разом з вихідним масивом поруч з кожним рядком виводиться сума її елементів, відокремлена вертикальною лінією.

В якості другого тестового прикладу рекомендується ввести значення елементів масиву, близькі до максимальних для типу int. Додатково слід перевірити, чи правильно впорядковується масив з однієї і двох рядків і стовпців, оскільки багато помилок при написанні циклів пов'язані з неправильним зазначенням їх граничних значень.

Рекомендації щодо порядку створення програми.

1. Вибрати тип і спосіб зберігання в програмі вихідних даних, результатів і проміжних величин.

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

3. Написати програму. При написанні програми рекомендується:

- Давати змінним зрозумілі імена;

- Не нехтувати змістовними коментарями;

- Використовувати проміжну друк обчислюваних величин в зручному форматі;

- При написанні вкладених циклів стежити за відступами;

- Оператори ініціалізації накопичуються в циклі величин задавати безпосередньо перед циклом, в якому вони обчислюються.

4. Паралельно з написанням програми задати тестові приклади, які перевіряють всі гілки алгоритму і можливі діапазони значень вихідних даних. Вихідні дані зручніше формувати в файлі (по крайней мере, при налагодженні), не забуваючи перевіряти в програмі успішність його відкриття.



I. Вихідні дані, результати і проміжні величини. | Приклад 6.4. Згладжування заданої речової матриці, робота з файлами
загрузка...
© um.co.ua - учбові матеріали та реферати