Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
РОЗРАХУНКОВА РОБОТА
з дисципліни: “Основи алгоритмізації та програмування”
Львів-2012
Завдання
Заповнити сектори матрицi, якi лежать вище i нижче вiд головної та побiчної дiагоналей, значеннями вектора b1, b2, ... , b32, вiд лiвого верхньго кута вправо - вниз. Решта матрицi заповнити нулями. ( Примiтка. На малюнку вказанi iндекси елементiв вектора b.)
Розрахунковий розділ
Блок-схема алгоритму:
Текст програми:
#include <stdio.h>
#include <conio.h>
#define N 9
#define M (N * N + 1)/ 2 - N
int main()
{
/* Опис змінних */
int matrix[N][N];
int indexb[M];
int i, j;
int counter = 0;
/* Створюємо, зростаючи послідовність */
for (i = 0; i < M; i++)
{
indexb[i] = i + 1;
}
/* Заповнюємо матрицю нулями, рядок за рядком */
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
matrix[i][j] = 0;
}
}
/* Переміщуємося по горизонталі матриці */
for (i = 0; i < N; i++)
{
/* Переносимо, зростаючи послідовність послідовно по вертикалі з відступами з початку і з кінця на крок +1 відносно порядку горизонталі, але лише до середини матриці відносно вертикалі */
for (j = i + 1; j < N - i - 1; j++)
{
matrix[i][j] = indexb[counter++];
}
/* Переносимо, зростаючи послідовність послідовно по вертикалі з відступами з початку і з кінця на крок +1 відносно порядку горизонталі, але починаючи з середини матриці відносно вертикалі */
for (j = N - i; j < i; j++)
{
matrix[i][j] = indexb[counter++];
}
}
printf("matrix:\n");
/* Виводимо результат: рядок за рядком з кроком табуляції між елементами в рядку */
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
getch ();
return 0;
}
Результат програми:
/
Рис 1. Ескіз з результатом роботи програми
Висновки:
В цій роботі я навчився писати складні задачі на мові програмування С, використовуючи масив. Навчився формулювати алгоритми задач та подавати їх в схемах, писати коментарі, відлагоджувати програми та користуватися різними допоміжними засобами в інтегрованому середовищі Visual C++ 2005, зокрема довідковою системою. Зауважив, що масив хоча і важче використовувати, проте він заміняє багато простих операторів і тому він зручніший.