Разработка программы по обработке числовой информации
Функция Summ(Chisla:Arr;Idxs:Arr2;m,nom:integer):integer предназначена для определения суммы чисел соответствующего сочетания, где:
Chisla – масив исходных чисел, которые будут суммироваться;
Idxs – массив сгенерированных сочетаний (содержит только номера позиций);
M – количество элементов в сочетании;
NOM – номер сочетания из массива Idxs, сумму которого нужно найти.
В функ
ции будет анализироваться строка NOM массива Idxs, точнее не вся строка, а только первые M элементов. Эти элементы задают номера чисел в массиве Chsila, которые нужно просуммировать.
Алгоритм выполнения описанных действий приведен на рисунке А.2 приложения А, а код функции приведен в строках 36-48 приложения Б.
3.3 Алгоритм основной программы
Алгоритм выполнения основного тела программы и основных функций приведен на рисунке А.3 в приложении А. Так в процедуре в первую очередь осуществляется очистка экрана инициализация файловой переменной и открытие текстового файла «sochet.res» для записи результатов. Затем производится вывод информации о задании курсовой работы на экран и в файл результатов при помощи вызова процедуры INFO. После этого осуществляется ввод исходных данных, а именно: числа элементов последовательности N и самой последовательности чисел. Ввод исходных данных организован в строках 76-85 листинга в приложении Б. После ввода исходных данных организуется цикл по m (по количеству элементов в сочетании). В теле этого цикла выполняются действия:
- генерируются все возможные сочетания по m натуральных элементов 1 N при помощи процедуры GenerateSochet;
- организуется цикл по i, в котором перебираются все из сгенерированных на предыдущем этапе сочетания и выполняются действия:
- вывод на экран и в файл элементов сочетания (цикл по j в строках 95-99);
- вычисление суммы при помощи функции SUMM (строка 100);
- проверка полученой суммы на деление на K (остаток от деления определяется при помощи оператора MOD), (строки 103-113);
Для преобразования целого числа в строку используется процедура STR(a;var S:string), где a задает целое число, а через параметр S возвращается строковое значение. Если сумма Sm удовлетворяет условию и искомое сочетание чисел найдено, устанавливается флаг fnd и осуществляется выход из цикла. В конце программы анализируется значение флага fnd , и если флаг установлен в false, то значит, не была найдена последовательность, удовлетворяющая условию, о чем выводится соответствующее сообщение на экран и в текстовый файл.
4. ИНСТРУКЦИЯ ОПЕРАТОРУ
Разработанная программа представляет собой исполняемый файл SOCHET.EXE размером 8096 байт. В программе выполняется обработка числовой последовательности.
После запуска программы появляется окно, изображенное на рисунке 4.1.
Рисунок 4.1 – Главное окно программы
После этого пользователь может вести длину последовательности. На рисунке 4.2 задан пример реакции программы в случае ошибочного набора.
Рисунок 4.2 – Реакция программы на ошибочный ввод количества N
После корректного ввода длины последовательности пользователь может задать саму последовательность целых чисел.
После корректного ввода программа выполняет перебор всех сочетаний. На рисунке 4.3 показан пример выполнения программы, а содержимое файла sochet.res приведен в приложении В.
Рисунок 4.3 – Результат работы программы
На рисунке 4.4 приведен пример выполнения программы, когда среди всех сочетаний не было найдено ни одного , удовлетворяющего условию задачи.
Рисунок 4.4 – Результат работы программы (поиск неудачен)
Функционирование программы полностью соответствует заданию.
ВЫВОДЫ
Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде Turbo Pascal 7.0. В ходе выполнения курсовой работы была разработана программа для обработки числовой последовательности. В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Turbo Pascal, закрепила практические навыки программирования в cреде Turbo Pascal.
ПЕРЕЧЕНЬ ССЫЛОК
1. Зуев Е.А. Программирование на языке Turbo Pascal 6.0,7.0. – М.: Радио и связь, Веста, 1993.
2. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. - М.: Нолидж, 2000.
3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982. — С. 151.
4. Вирт Н. Алгоритмы+структуры данных= программы. — М.: «Мир», 1985. — С. 406.
5. Грогоно П. Программирование на языке Паскаль. — М.: «Мир», 1982. — С. 384.
6. Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128. — ISBN 5-256-00311-9
7. Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528. — ISBN 5-94157-112-7
8. Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576. — ISBN 5‐8459‐0935‐X
9. Гранпер Ж., Коттэ Р. Трехмерная графика на Турбо-Паскале
10. Белецкий Я. Турбо-Паскаль с графикой для ПК.- М.: Машиностроение, 1991. - 320 с.
11. Бородич Ю.С. и др. Паскаль для ПК: Справочное пособие. – МН.: Высш. Шк.: БФ ГИТМП «НИКА», 1991. – 365 с.
12. Зуев Е.А. Язык программирования Turbo Pascal 6.0. – М.: Унитех, 1992. – 298 с.
13.Фаронов В.В. Турбо-Паскаль (в 3 книгах). - М.: "МВТУ-ФЕСТО ДИДАКТИК", 1992-1993.
|
Алгоритм программы
Рисунок А.1 – Алгоритм процедуры генерации сочетаний GenerateSochet
Рисунок А.2 – Алгоритм функции определения суммы SUMM
Рисунок А.3 – Алгоритм выполнения тела программы
ПРИЛОЖЕНИЕ Б
Листинг программы
1. unit Unit1;
2. program sochet;
3. uses crt;
4. type
5. Arr = array[1 20] of integer;
6. Arr2=array[1 1000,0 20] of byte;
7. var
8. i,j,m,n,k,kol:integer;
9. Sm : integer;
10. Idx : Arr2;
11. Chisla: Arr;
12. fnd : boolean;
13. tf:TEXT;
14. S,St:string;
15. Procedure Info(var ft:TEXT);
16. begin
17. writeln('************************************************************');
18. writeln('**** КУРСОВАЯ РАБОТА ПО ПРОГРАММИРОВАНИЮ ****');
19. writeln('** **');
20. writeln('** Задана последовательность из n чисел **');
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности