Разработка алгоритма поставленной задачи по обработке числовой информации в среде Turbo Pascal 7.0 с базовым языком программирования Pascal, отладка программы, реализующей разработанный алгоритм. Описание структуры программы, ее вспомогательных процедур.
Данный курсовой проект был разработан в среде Turbo Pascal 7.0 с базовым языком программирования Pascal.Согласно заданию дана последовательность из n целых чисел. Необходимо написать программу, выбора из них нескольких чисел так, чтобы сумма выбранных чисел делилась на некоторое число k. В качестве дополнительной функции можно предусмотреть вывод информации о программе (ее выполняемых функциях) не экран. Далее следует выбрать из предложенной последовательности несколько чисел так, чтобы сумма выбраных чисел делилась на заданное число k. Поскольку чисел может быть довольно много, и вся информация может не поместиться на экран, следует предусмотреть возможность дублирования всей выводимой на экран информации в текстовый файл на жестком диске.Так, поскольку задание состоит в обработке числовой последовательности, целесообразно хранить числа в массиве. Таким образом, на этапе ввода данных пользователь должен будет задать длину вводимой последовательности и задать сами числа. Поскольку число элементов в сочетании условием не задано, то должны будут перебраны все сочетания С1n, С2n, . . Поскольку ошибка может быть неоднократной (умышленный или ошибочный ввод подряд нескольких некорректных значений), то целесообразно будет для ввода каждого числа организовать цикл, условием завершения которого будет корректно введенное значение. Сочетания следует перебирать сначала по одному элементу, потом по два элемента, затем по три, и так далее, пока не будет найдено искомое сочетание или же пока не достигнем последнего сочетания, в которое входят все N элементов последовательности.В разделе описаний программы осуществляется подключение модуля crt, который необходим для использования функции clrscr (очистка содержимого экрана вывода). В разделе описания типов приведено два типа: Arr = array[1..20] of integer; - будет использоваться для задания исходного массива; Arr2=array[1..1000,0..20] of byte - будет использоваться для хранения сгенерированных сочетаний. N integer задается пользователем и хранит длину последовательности чисел Каждая строка задает отдельное сочетание (позиции элементов в массиве Chisla) i, j integer временные переменные, необходимые для организации циклов при переборе элементов последовательности m integer переменная, необходимая для организации цикла по количеству элементов в сочетании kol integer переменная, которая хранит количество сочетаний, сгенерированных на текущем цикле по m fnd boolean логическая переменная, которая используется как флаг, найдена ли искомая сумма (true - если найдена) tf text переменная текстового файла, используется для сохранения результатов работы в текстовом файлеПроцедура Info(var ft:TEXT) предназначена для вывода вспомогательной информации о программе и о задании на курсовую работу. Следует заметить, что процедура дублирует вывод информации на экран монитора и в текстовый файл с результатами выполнения программы. Условием применения данной процедуры является то, что перед вызовом процедуры файловой переменной ft должно быть назначено имя физического файла на жестком диске при помощи процедуры ASSIGN. Процедура GENERATESOCHET(var Sochet:Arr2;n,m:integer;var kol:integer) предназначена для генерации сочетаний из n натуральных чисел от 1 до N по m. То есть в выходном массиве Sochet следует просмотреть строки от 1 до KOL это и будут сочетания, причем в каждой строке следует анализировать только элементы от 1 до m.Алгоритм выполнения основного тела программы и основных функций приведен на рисунке А.3 в приложении А. Так в процедуре в первую очередь осуществляется очистка экрана инициализация файловой переменной и открытие текстового файла «sochet.res» для записи результатов. Затем производится вывод информации о задании курсовой работы на экран и в файл результатов при помощи вызова процедуры INFO. организуется цикл по i, в котором перебираются все из сгенерированных на предыдущем этапе сочетания и выполняются действия: - вывод на экран и в файл элементов сочетания (цикл по j в строках 95-99);В программе выполняется обработка числовой последовательности. После запуска программы появляется окно, изображенное на рисунке 4.1. На рисунке 4.2 задан пример реакции программы в случае ошибочного набора. На рисунке 4.3 показан пример выполнения программы, а содержимое файла sochet.res приведен в приложении В.Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде Turbo Pascal 7.0. В ходе выполнения курсовой работы была разработана программа для обработки числовой последовательности. В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Turbo Pascal, закрепила практические навыки программирования в среде Turbo Pascal. Программирование на языке Turbo Pascal 6.0,7.0. Программирование на языке Паскаль.Рисунок А.1 - Алгоритм процедуры генерации сочетаний GENERATESOCHET16. begin 20. writeln("** Задана последовательность из n чисел **"); 21. writeln("** Выбрать в последовательности неск
План
СОДЕРЖАНИЕ
РЕФЕРАТ
ВВЕДЕНИЕ
1. Анализ технического задания и постановка задачи проектирования
2. Разработка алгоритма программы
3 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ
3.1 Описание переменных
3.2 Описание вспомогательных процедур и функций
3.3 Алгоритм основной программы
4. ИНСТРУКЦИЯ ОПЕРАТОРУ
ВЫВОДЫ
Перечень ссылок
ПРИЛОЖЕНИЕ А ПРИЛОЖЕНИЕ Б
ПРИЛОЖЕНИЕ В
РЕФЕРАТ
Вывод
Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде Turbo Pascal 7.0. В ходе выполнения курсовой работы была разработана программа для обработки числовой последовательности. В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Turbo Pascal, закрепила практические навыки программирования в среде Turbo Pascal.
ПЕРЕЧЕНЬ ССЫЛОК
1. Зуев Е.А. Программирование на языке Turbo Pascal 6.0,7.0. - М.: Радио и связь, Веста, 1993.