Разработка программы для анализа прямоугольной матрицы

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

сле того как проект успешно скомпилирован, диалоговое окно будет иметь статус Done. Это значит, что программа готова к работе. На рисунке 6.3 представлен процесс компиляции.

 

Рисунок 6.3 - Процесс компиляции

При нажатии клавиши F9 программа запустится. В появившемся окне пользователю необходимо ввести количество строк и столбцов в матрице, следует отметить тот факт, что количество строк и столбцов не должносовпадать, и выбрать вариант ввода с помощью трех клавиш: 1 - ввод с клавиатуры, 2 - ввод случайными числами, 3 - ввод из файла. На рисунке 6.4 представлен процесс ввода.

 

Рисунок 6.4 - Процесс ввода

 

После ввода матрицы программа начнет поиск подматриц, которые удовлетворяют условию задачи. При нахождении подматриц в диалоговом окне появится вырианты вывода результат: 1 - вывод на дисплей, 2 - вывод в файл. В зависимости от выбора пользователь увидит результат работы программы либо на дисплее, либо при открытии файла output.txt в папке Курсовой проект.

При неправильном вводе информации программа автоматически завершает свою работу.

 

 

Заключение

 

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

Разработанная программа удовлетворяет следующим требованиям:)использование языке C/C++;)использование динамических структур;)Возможность ввода и вывода матрицы различными способами;)Обработка исключающих ситуаций.

Результаты, полученные в ходе тестирования, совпадают с ожидаемыми результатами.

 

Список используемых источников

 

1. Шилдт Г. С++ / Г. Шилдт.: Пер. с англ. - M.: Издательский дом Вильямс, 2008. - 624 с.

. Лафоре Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. - СПб.: Питер, 2007.-928 с.

. Павловская Т.А. С/С++. Программирование на языке высокого уровня / Т.А. Павловская. - СПб.: Питер, 2005. - 464 с.

. Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум / Т.А. Павловская, Ю.А. Щупак. - СПб.: Питер, 2005. - 240 с.: ил.

. Шаров В.Г. Введение в программирование. Учебное пособие / В.Г. Шаров. - Рыбинск: РГАТА, 2004. - 64 с.

. История развития средств вычислительной техники [Электронный ресурс]: URL:

. Информатика: Разработка алгоритма [Электронный ресурс]: URL:

 

Приложение

 

Листинг программы

 

#include

#include

#include

#include

namespace std;int N=20;int b=10;int c=-5;

(intN) {returnrand()% N;} // функциявводаслучайнымичислами

vvod1 (int **a, const int nstr, const int nstb) { // вводсклавиатурыi, j;a[i] [j];

}

vvod2 (int **a, const int nstr, const int nstb) { // вводслучайнымичисламиi, j;<< Matriza A (<< nstr << * << nstb <<): << endl;(i = 0; i < nstr; i++)(j = 0; j < nstb; j++)[i] [j] = random (b-c+1) + c;

}

vvod3 (int **a, const int nstr, const int nstb) { // вводизфайлаinput;.open (input.txt);i=0, j=0;(! input) {<<\n Nevozmozhno otkrit file;(1);

}(i=0; ia[i] [j]; {.close();

}

}

main() {nstr, nstb, y, mini, s2, l, t, p;st, str;**a; int i, j;output;.open (output.txt); // открытиефайладлязаписи(! output) {<<\n Nevozmozhno otkrit file;(1);

}

nstb;= new int* [nstr];(! a) {<< Nedostatochno pamati pod massiv ykazatelei\n;(1);}(i = 0; i < nstr; i++)[i] = new int[nstb];(! a[i]) {<< Nedostatochno pamati\n;(1);

}y;(y) { // выборввода1: vvod1 (a, nstr, nstb); break; // вводсклавиатуры2: vvod2 (a, nstr, nstb); break; // вводслучайнымичислами3: vvod3 (a, nstr, nstb); break; // вводизфайла: {cout<< Oshibka;(1);

}

}

(i = 0; i<nstr; i++) { // прямоугольнаяматрицавнормальномвиде<<\n<<;(j = 0; j < nstb; j++) {.width(6);.precision(1);<<a[i] [j];

}

}

программа тестирование кодирование алгоритм

mini=nstr;(mini>nstb) mini=nstb; // поискподматрицвматрице(l=1; l<mini; l++)(i=0; i<nstr-l; i++)(j=0; j<nstb-l; j++) {(t=i; t<=i+l; t++) {(p=j; p<=j+l; p++);

}<<\n;

sum2=0, sum1=0;=j+l;=j;(t=i; t<=i+l; t++) {+=a[t] [str++]; // суммы главных и побочных диагоналей+=a[t] [st-];=sum2+sum1;

}(s2==0) {y;(y) { // выбор вывода1: {(t=i; t<=i+l; t++) {cout<<\n;(p=j; p<=j+l; p++) {.width(6);.precision(1);<<a[t] [p];}} break;2: {(t=i; t<=i+l; t++) {output<<\n;(p=j; p<=j+l; p++) {.width(6);.precision(1);<<a[t] [p];}<<\n;}<<\n;} break;: {cout<< Oshibka;(1);

}

}

}

}

 

}.close(); // закрытиефайла(PAUSE);EXIT_SUCCESS;(i = 0; i < nstr; i++) // Освобождениепамяти[] a[i];[] a;0;

}