Скоро защита?
Меню Услуги

Курсовая работа на тему «Текстовые файлы»

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

ВВЕДЕНИЕ
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ОБРАБОТКИ ТЕКСТОВЫХ ФАЙЛОВ.
1.1.ТЕКСТОВЫЕ ФАЙЛЫ: ПРОЦЕДУРЫ И ФУНКЦИИ ОБРАБОТКИ ДАННЫХ; ДЕЙСТВИЯ НАД УКАЗАТЕЛЕМ ФАЙЛА. ОПЕРАЦИИ ВВОДА-ВЫВОДА ПРИ РАБОТЕ С ТЕКСТОВЫМИ ФАЙЛАМИ
1.2. ТИПИЗИРОВАННЫЕ И НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ
2. ПРАКТИЧЕСКИЕ ОСНОВЫ ОБРАБОТКИ ТЕКСТОВЫХ ФАЙЛОВ
2.1. АНАЛИЗ ТЕХНИЧЕСКОГО ЗАДАНИЯ И ПОСТАНОВКА ЗАДАЧИ ПРОЕКТИРОВАНИЯ
2.2. РАЗРАБОТКА АЛГОРИТМА ПРОГРАММЫ
3 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ
3.1 ОПИСАНИЕ ПЕРЕМЕННЫХ
3.2 ОПИСАНИЕ ВСПОМОГАТЕЛЬНЫХ ПРОЦЕДУР И ФУНКЦИЙ
3.3. ИНСТРУКЦИЯ ОПЕРАТОРУ
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ Б
ПРИЛОЖЕНИЕ В

 


ВВЕДЕНИЕ

 

Текстовые файлы предназначены для хранения текстовой информации. Именно в таких файлах хранятся исходные тексты программ. Текстовый файл – это последовательность строк различной длины, отделенных друг от друга специальными символами-разделителями.

Доступ к каждой строке возможен только последовательно, начиная с первой. При создании текстового файла в конце каждой строки ставится специальный признак EOLN (End Of Line), а в конце всего файла – признак EOF (End Of File). Эти признаки можно протестировать одноименными логическими функциями — EOLN и EOF.

Вне зависимости от файлового типа, любая программа работы с файлом должна выполнить следующие действия.

  1. Определить переменные файлового типа (логические файлы).
  2. Каждому из используемых физических файлов при помощи процедуры assign (в переводе — «назначить») поставить в соответствие переменную файлового типа. В Delphi вместо процедуры assign используется процедура assignfile.
  3. Открыть файл — т. е. сделать существующий файл доступным для ввода и/или вывода. В случае ввода используется процедура reset (переустановка), во втором случае (вывод или совмещение ввода с выводом) используется процедура rewrite (перезапись). При открытии и создании файла для временного хранения его данных автоматически выделяется область в оперативной памяти компьютера, которая называется буфером файла.

Замечание Для того чтобы ускорить обмен информацией с внешними устройствами, в файловой системе используется механизм буферизации. Операционная система назначает каждому открываемому файлу так называемый обработчик файлов с определенным номером. Он осуществляет операции обмена данными через буфер ввода/вывода. При записи в файл вся информация сначала направляется в буфер и там накапливается до тех пор, пока он весь не заполнится. Только после этого (или при использовании специальной команды сброса) происходит передача данных на внешнее устройство. Аналогично при чтении из файла данные вначале считываются в буфер.

  1. Обработать файл. Все предыдущие этапы носили подготовительный характер. Принцип обработки файлов любых типов состоит в следующем: данные из файла сначала считываются в оперативную память компьютера, для чего в программе назначаются переменные подходящих типов, и вся дальнейшая обработка ведется над этими переменными. В случае необходимости ее результаты записываются в новый файл или дописываются в уже существующий. Чтение (ввод) данных или их запись (вывод) выполняются при помощи инструкций read и readln, write и writeln, соответственно. Обратите внимание — первым параметром каждой из этих инструкций должна быть файловая переменная.
  2. Закрыть файловую переменную и сохранить данные на диске после окончания работы с файлом. Это делает процедура close. Если файл закрыт, над ним нельзя выполнять никаких действий, пока он вновь не будет открыт

Цель- изучить обработку текстовых файлов в зависимости от заданных условий.

Объект- текстовые файлы.

Предмет-обработка текстовых файлов.

 


1. Теоретические основы обработки текстовых файлов.

1.1.Текстовые файлы: процедуры и функции обработки данных; действия над указателем файла. Операции ввода-вывода при работе с текстовыми файлами

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Это файлы последовательного доступа. Структурной единицей текстовых файлов является строка. Данные в таких файлах хранятся в виде цепочки ASCIIкодов и могут обрабатываться любым текстовым редактором. Каждая строка завершается маркером конца строки. На практике такой маркер представляет собой последовательность из двух символов: перевод строкиchr(10)и возврат кареткиchr(13). Эти два символа задают стандартные действия по управлению текстовыми файлами.

Текстовые файлы описывается в разделе описания переменных:

Var

Файловая_переменная : TextFile;

Файловая переменная – это имя переменной, которое используется в программном коде для работы с файлом.

Открытие текстового файла

Перед тем, как записать данные в файл или прочитать данные из файла, необходимо сначала открыть этот файл. Открытие текстового файла на запись, чтение или дозапись осуществляется с помощью разных процедур. Но прежде, чем их использовать, необходимо во всех случаях присвоить файлу на магнитном носителе имя, т.е. поставить в соответствие файловой переменной имя файла на диске с помощью процедуры AssignFile:

AssignFile(файловая переменная, имя файла),

Здесь имя файла — любое выражение строкового типа, которое строится по правилам определения имен в операционной системе.

Например:

AssignFile(F,’c:\Student\Primer.Txt’);

Процедуры для открытия текстовых файлов

Обращение к процедуре Действие
Rewrite(F) Открывает (создает) новый файл. Имя файла предварительно определяется в процедуре AssignFile.Если на диске уже был файл с таким именем, то он уничтожается.
Reset(F) Открывает уже существующий файл. Файл считывается последовательно. Если эта процедура применена к несуществующему файлу, то возникает ошибка ввода-вывода.
Append(F) Открывает уже существующий файл для дозаписи. Запись производится в конец файла.
В таблице F– имя файловой переменной.  

Обработка текстовых файлов

У текстовых файлов есть своя специфика. Специальные расширения стандартных процедур чтения (Read) и записи (Write), описанных ниже, разрешают работать со значениями несимвольного типа. Другими словами, последовательность символов автоматически преобразуется к значению того типа переменной, которая используется в файловых операциях.

Вызов Read(F,Ww),гдеWw- переменная типаword, осуществляет чтение из файлаFпоследовательности цифр, которая затем интерпретируется в число, значение которого и будет присвоено переменнойWw. В случае, если вместо последовательности цифр идет любая другая последовательность символов, использование такого оператора приводит к ошибке выполнения программы.

В таблице F– имя файловой переменной.V1,V2,…,Vn– переменные разных типов.

Обращение к процедуре Действие
Read(F,V1[,V2,…,Vn]); Считывает из дискового файла строки символов в переменные V1, V2,…,Vn.
Readln(F,V1[,V2,…,Vn]); Выполняет те же действия, что и Read, и дополнительно – чтение до маркера конца строки и переход к новой строке

Readln(F) без списка переменных позволяет пропустить строку в файле и перейти на новую строку.

Write(F,V1[,V2,…,Vn]); Записывает значения переменных V1,V2,…,Vn в файл на диске.
Writeln(F,V1[,V2,…,Vn]); Выполняет те же действия, что и Write,но обеспечивает запись всех величин с обязательной установкой маркера конца строки в файл.

Writeln(F) без списка переменных. записывает в файл пустую строку.

Текстовые файлы – последовательности символов, разбитых на строки. Каждая строка заканчивается признаком конца строки.

var < имя файловой переменной>: TextFile;

При создании текстового файла, в конце каждой строки ставится специальный знак EOLN(End of Line), а в конце файла признак EOF(End of File). Они могут принимать логические типы True или False.

Процедуры и функции

AssignFile — связывает файловую переменную F и файл, имя которого указано в FileName.

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

Rewrite — создает и открывает новый файл. Этой процедурой нельзя инициировать запись информации в ранее существовавший файл: при выполнении этой процедуры старый файл уничтожается.

Append — инициализация файла для чтения и записи.Открывает текстовый файл для добавления текста. Указатель файла устанавливается в конец файла для его расширения.

Read(var F: TextFile; V1 [, V2, …, Vn ] ) — начиная с текущей позиции, читает из текстового файла символы или строки в переменные V1, V2, …, Vn.

Write(var F: TextFile; V1 [, V2, …, Vn ] ) — начиная с текущей позиции указателя чтения-записи, записывает в текстовый файл значения V1, V2, …, Vn.

CloseFile — закрывает ранее открытый файл.

Rename — переименовывает неоткрытый файл F любого типа. Новое имя задается в NewName.

Erase — удаляет неоткрытый внешний файл любого типа, заданный переменной F. Операции ввода-вывода

Ввод в тектовый файл осуществляется при помощи инструкции read или readln. В текстовом файле находятся не числа, а их изображения. Действие, выполняемое инструкциями read или readin, фактически состоит из двух: сначала из файла читаются символы до появления разделителя (пробела или конца строки), затем прочитанные символы, являющиеся изображением числа, преобразуются в число, и полученное значение присваивается переменной, имя которой указано в качестве параметра инструкции read ИЛИ readin.

Отличие инструкции readin от read состоит в том, что после считывания из файла очередного числа и присвоения полученного значения переменной, имя которой стоит последним в списке параметров инструкции readin, указатель чтения из файла автоматически перемещается в начало следующей строки файла, даже в том случае, если за прочитанным числом есть еще числа.

Непосредственно вывод в текстовый файл осуществляется при помощи инструкции write или writeln.

Различие между инструкциями write и writeln состоит в том, что инструкция writeln после вывода всех значений, указанных в списке вывода, записывает в файл символ «новая строка».


1.2. Типизированные и нетипизированные  файлы

Типизированные файлы: процедуры и функции обработки данных; действия над указателем файла. Операции ввода-вывода при работе с типизированными файлами.

Типизированные файлы – двоичные файлы, содержащие последовательность однотипных данных. Тип данных может быть не только простым типом, но и структурированным(массив, запись).

var< имя файловой переменной>: file of <тип данных>;

Прі опісаніі файловой переменной для тіпізірованного файла, базовым является тип, записанный после служебных слов file of.

В зависимости от этого базового типа, компоненты файла могут иметь разный размер.

Для работы с данными типизированного файла нельзя использовать процедуры readln и writeln

Для доступа к файлам используются процедуры и функции:

— Read – из какого файла куда считывать.

— Write – из какого файла куда писать.

-Seek – переставляет указатель в файле F на компоненту с номером N.

— FileSize – эта функция находит количество компонент файла F.

— FilePos – эта функция возвращает в номер компонента, на котором она находится.

Нетипизированные файлы: процедуры и функции обработки данных; действия над указателем файла. Операции ввода-вывода при работе с нетипизированными файлами.

Нетипизированные файлы – двоичные файлы, которые могут содержать самые различные данные в виде последовательности байтов.

var < имя файловой переменной>: file;

Нетипизированные файлы отличаются от типизированных тем, что для них не указан компонент.

Отсутствие конкретного типа делает их совместимыми с любимы другими файлами.

При этом ,при открытии файлов с помощью процедур Reset или Rewrite можно указать длину компоненты.

Длина компоненты нетипизируемого файла указывается вторым параметром, но не обязательно.

Если длина не указывается, то по умолчанию она принимает значение 128 байт.

Длина записи не должна быть меньше либо равна 0 и не более 2 Гб. Т.к. нетипизированные файлы предполагают высокоскоростное обращение к информации в файле, то вместо Read и Write используются процедуры ввода-вывода BLockRead и BlockWrite.

На этапе проектирования форм программа как бы составляется из готовых компонентов — частей машинного кода, которые можно добавлять к ней с помощью всего нескольких щелчков мыши. Компоненты располагаются на палитре компонентов, разделенной на несколько самостоятельных панелей

Компоненты обладают наборами свойств, характеризующими их отличительные особенности. Некоторые свойства имеются практически у всех компонентов — таково, например, свойство Name (Имя). Другие свойства, например Caption (Заголовок), имеются у большинства компонентов — ведь заголовок необходим и для окна, и для кнопки. Некоторые свойства уникальны для конкретных компонентов, например свойство SimpLeText (Простой текст), содержащее текст для компонента Строка состояния.

Свойства компонентов в процессе проектирования формы настраиваются с помощью Инспектора объектов. Это специальная программа, показывающая список всех свойств данного компонента, отсортированных по категориям или в алфавитном порядке.

Значение любого свойства можно изменить, введя в соответствующее поле Инспектора объектов новую строку или выбрав нужное значение в раскрывающемся списке доступных значений. Некоторые свойства содержат вложенные подсвойства напри мер, свойство Font (Шрифт) характеризуется размером, стилем, цветом, гарнитурой.

Такие свойства удобнее редактировать с помощью специальных редакторов, как стандартных (шрифт), так и специально разработанных для конкретного компонента.

Помимо свойств, компоненты содержат .методы — программный код, обрабатывающий значения свойств (например, устанавливающий переключатель в нужное положение), а также события — сообщения, которые компонент принимает от приложения, если во время работы программы выполняется определенное действие(например, изменяется состояние флажка).


2. Практические основы обработки текстовых файлов

2.1. Анализ технического задания и постановка задачи проектирования

 

Согласно заданию дана последовательность из n целых чисел. Необходимо написать программу, выбора из них нескольких чисел так, чтобы сумма выбранных чисел делилась на некоторое число k.

Как видим, задание сводится к обработке числовой информации. Пользователю должна быть предоставлена возможность ввода обрабатываемых чисел. Кроме того, перед началом ввода пользователь должен задать количество чисел в последовательности.

В качестве дополнительной функции можно предусмотреть вывод информации о программе (ее выполняемых функциях) не экран.

Также пользователь должен ввести некоторое целое число k. Далее следует выбрать из предложенной последовательности несколько чисел так, чтобы сумма выбраных чисел делилась на заданное число k. Пользователю должно быть выдано сообщение, если такая комбинация чисел найдена. Если требуемой комбинации элементов не найдено, то следует выдать соответствующее сообщение, что искомых элементов во введенной последовательности не обнаружено. Также для удобства пользователя можно выводить информацию обо всех возможных сочетаниях элементов и сумму этих элементов.

Поскольку чисел может быть довольно много и вся информация может не поместиться на экран, следует предусмотреть возможность дублирования всей выводимой на экран информации в текстовый файл на жестком диске.

Подытожив все вышесказанное можно сформулировать требования к разрабатываемому программному обеспечению и выполнить постановку задания на проектирование. Так, согласно заданию, программа должна быть реализована в среде Turbo Pascal и должна выполнять следующие функции:

— вывод на экран информации о задании и цели программы;

— ввод пользователем количества чисел последовательности с клавиатуры;

— ввод пользователем последовательности целых чисел;

— перебор всех возможных сочетаний элементов из предложенной последовательности;

— определение сумм элементов в сочетаниях и вывод на экран последовательностей и полученных сумм;

— определение, удовлетворяет ли сумма условию: делится на k без остатка;

— вывод информации на экран, если найдено искомое сочетание элементов;

— вывод информации на экран, если ни одно из сочетаний не удовлетворяет условию задачи;

— возможность сохранения результатов работы в текстовом файле на жестком диске.

Последующие разделы будут посвящены решению поставленных задач и разработке приложения с вышеперечисленными функциями.

 

2.2. Разработка алгоритма программы

 

В предыдущем разделе были сформулированы требования к разрабатываемой программе и к ее функциям. Анализируя требования к программе, можно разработать алгоритм разрабатываемого приложения.

Так, поскольку задание состоит в обработке числовой последовательности, целесообразно хранить числа в массиве. Таким образом, на этапе ввода данных пользователь должен будет задать длину вводимой последовательности и задать сами числа.

Согласно заданию необходимо будет выполнить перебор всех возможных сочетаний элементов. Поскольку число элементов в сочетании условием не задано, то должны будут перебраны все сочетания С1n, С2n, Сin, Сnn, для каждого из которых должны будут вычислены суммы. Известно, что

Количество возможных сочетаний с каждым новым числом растет с довольно высокой скоростью. Поскольку задача учебная, то ограничим искусственно длину последовательности, к примеру, 20 числами. Таким образом, на этапе ввода следует контролировать введенное число n, и в случае когда N больше 20, то целесообразно уведомить пользователя об ограничениях, накладываемых на длину последовательности и запросить повторный ввод числа. Поскольку ошибка может быть неоднократной (умышленный или ошибочный ввод подряд нескольких некорректных значений), то целесообразно будет для ввода каждого числа организовать цикл, условием завершения которого будет корректно введенное значение. Для заполнения элементов массива можно использовать цикл с заданным числом повторений.

После ввода исходных данных необходимо осуществить поиск такого сочетания элементов, сумма которых делится на k без остатка. Для реализации этого поиска можно осуществить перебор всех возможных сочетаний и вычислять для каждого из них сумму элементов. Сочетания следует перебирать сначала по одному элементу, потом по два элемента, затем по три, и так далее, пока не будет найдено искомое сочетание или же пока не достигнем последнего сочетания, в которое входят все N элементов последовательности.

Для реализации этого способа выделить следующие подзадачи:

  • Подзадача генерации сочетаний из заданного количества натуральных чисел от 1 до N. Существуют довольно простые методы генерации подобных сочетаний. В этом случае каждое из таких сгенерированных сочетаний будет задавать номера позиций элементов из исходной последовательности, которые следует взять для посчета суммы. Например, если было сгенерировано сочетание 2, 3 ,5. То оно задает набор из трех чисел исходной последовательности, которые стоят на 2, на 3 и на 5 месте в массиве целых чисел.
  • Подзадача вычисления суммы чисел в сочетании. То есть, следует извлечь числа с заданными номерами из исходного массива и определить их сумму.

Подзадачу 1 будем запускать в цикле от m=1 до n, где m будет задавать количество чисел в сочетании. После выполнения подзадачи 1 организуем цикл по всем сгенерированным сочетаниям и для каждого из них будем вычислять сумму при помощи подзадачи 2. Для вычисленной суммы будем определять остаток от деления на число k, и если он равен нулю, то искомый набор найден и задачу можно считать решенной.

Согласно заданию необходимо найти хотя бы одно такое сочетание чисел. Поскольку не стоит задачи в нахождении всех возможных сочетаний, то при обнаружении первой же суммы удовлетворяющей условию, процесс поиска можно завершать (можно выйти из цикла перебора сочетаний из из цикла по m) и останется только вывести соответствующее сообщение пользователю.

Для возможности анализа результатов работы целесообразно будет выводить все элементы сочетания и суммы на экран, а также сопровождать вывод на экран, сохранением результатов в текстовом файле на жестком диске.

Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах. Схема алгоритма представлена в Приложении А.


3 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ

3.1 Описание переменных

 

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

В разделе описания типов приведено два типа:

Arr = array[1..20] of integer; — будет использоваться для задания исходного массива

Arr2=array[1..1000,0..20] of byte – будет использоваться для хранения сгенерированных сочетаний

Первая размерность будет задавать номер сочетания, а вторая – номера элементов в конкретном сочетании.

Также в разделе описаний переменных описаны переменные, назначение которых приведено в таблице 3.1.

Таблица 3.1– Описание переменных программы

Наименование Тип Назначение
N integer задается пользователем и хранит длину последовательности чисел
K integer переменная, которая задается пользователем и на которую должна делиться искомая сумма без остатка
Chisla Arr массив из 20 целых чисел. Массив (или его часть) заполняется пользователем и хранит обрабатываемую последовательность целых чисел
Idx Arr массив, в котором хранятся сгенерированные сочетания. Каждая строка задает отдельное сочетание (позиции элементов в массиве Chisla)
i, j integer временные переменные, необходимые для организации циклов при переборе элементов последовательности
m integer переменная, необходимая для организации цикла по количеству элементов в сочетании
kol integer переменная, которая хранит количество сочетаний, сгенерированных на текущем цикле по m
fnd boolean логическая переменная, которая используется как флаг, найдена ли искомая сумма (true — если найдена)
tf text переменная текстового файла, используется для сохранения результатов работы в текстовом файле
S string строковая переменная, используемая для формирования строки вывода с составленным сочетанием и суммой
St string вспомогательная строковая переменная, используемая в функциях преобразования целых чисел в строку

3.2 Описание вспомогательных процедур и функций

 

В программе приведено описание одной вспомогательной процедуры и одной функции.

Процедура Info(var ft:TEXT) предназначена для вывода вспомогательной информации о программе и о задании на курсовую работу. Следует заметить, что процедура дублирует вывод информации на экран монитора и в текстовый файл с результатами выполнения программы. При этом, параметр ft:TEXT как раз и задает файл, в который осуществляется вывод. Условием применения данной процедуры является то, что перед вызовом процедуры файловой переменной ft должно быть назначено имя физического файла на жестком диске при помощи процедуры ASSIGN. Кроме того, файл предварительно должен быть открытым для записи при помощи функции REWRITE. Текст процедуры приведен в строках 15-35.

Процедура GenerateSochet(var Sochet:Arr2;n,m:integer;var kol:integer) предназначена для генерации сочетаний из n натуральных чисел от 1 до N по m.

Сгенерированные последовательности будут возвращаться через параметр Sochet.

Параметр N задает количество чисел из которых следует выбирать сочетания.

Параметр M задает по сколько чисел участвует в одном сочетании.

Через параметр KOL будет возвращено общее количество сгенерированных сочетаний.

То есть в выходном мас сиве Sochet следует просмотреть строки от 1 до KOL это и будут сочетания, причем в каждой строке следует анализировать только элементы от 1 до m.

Алгоритм генерации сочетаний приведен на рисунке А.1 приложения А. Код процедуры приведен в строках 49 -70 приложения Б.

Генерация сочетаний выполняется по следующем правилу:

  1. Начальное сочетание образует последовательность 1, 2, .. m, а последнее n-m+1,…,n.
  2. Переход к следующему сочетанию осуществляется по следующему правилу: требуется просмотреть текущее сочетание с конца и найти элемент, который можно увеличить. То есть такой элемент что Sochet[kol,i] <> n-m+i. Далее увеличиваем этот элемент на 1, а оставшуюся часть сочетания заполняем числами натурального ряда большими измененного элемента в порядке их следования.

Функция Summ(Chisla:Arr;Idxs:Arr2;m,nom:integer):integer

предназначена для определения суммы чисел соответствующего сочетания, где:

Chisla – масив исходных чисел, которые будут суммироваться;

Idxs – массив сгенерированных сочетаний (содержит только номера позиций);

M – количество элементов в сочетании;

NOM – номер сочетания из массива Idxs, сумму которого нужно найти.

В функции будет анализироваться строка NOM массива Idxs, точнее не вся строка, а только первые M элементов. Эти элементы задают номера чисел в массиве Chsila, которые нужно просуммировать.

Алгоритм выполнения описанных действий приведен на рисунке А.2 приложения А, а код функции приведен в строках 36-48 приложения Б.

Алгоритм выполнения основного тела программы и основных функций приведен на рисунке А.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, то значит не была найдена последовательность, удовлетворяющая условию, о чем выводится соответствующее сообщение на экран и в текстовый файл.

 


3.3. ИНСТРУКЦИЯ ОПЕРАТОРУ

 

Разработанная программа представляет собой исполняемый файл SOCHET.EXE размером 8096 байт. В программе выполняется обработка числовой последовательности.

После запуска программы появляется окно, изображенное на рисунке 3.2.

Рисунок 3.2– Главное окно программы

 

После этого пользователь может вести длину последовательности. На рисунке 3.3 задан пример реакции программы в случае ошибочного набора.

 

Рисунок 3.3 – Реакция программы на ошибочный ввод количества N

 

После корректного ввода длины последовательности пользователь может задать саму последовательность целых чисел.

После корректного ввода программа выполняет перебор всех сочетаний. На рисунке 3.4 показан пример выполнения программы, а содержимое файла sochet.res приведен в приложении В.

 

Рисунок 3.4 – Результат работы программы

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

 

Рисунок 3.5 – Результат работы программы (поиск неудачен)

 

Функционирование программы полностью соответствует заданию.

 


Заключение

 

Текстовые файлы — файлы на диске, состоящие из символов ASCII. Для разделения строк используются символы <конец строки>. Текстовые файлы являются файлами с последовательным доступом. В любой момент времени доступна только одна запись файла. Другие записи становятся доступными лишь в результате последовательного продвижения по файлу. Текстовые файлы внутренне разделены на строки, длины которых различны. Для разделения строк используется специальный маркер конца строки. Объявляются текстовые файлы переменной типа text. Обрабатывать их можно только последовательно и с помощью процедур и функций:

  • Readln(f , st) — чтение строки st из файла f и переход на начало следующей ;
  • Writeln(f, st) — запись строки st в файл f и маркера конца строки ;
  • Append(f) — процедура, открывающая файл f для добавления строк в конец файла;
  • Eoln(st) — логическая функция, результат выполнения которой равен True, если достигнут маркер конца строки st.

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

В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования 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.
  9. Белецкий Я. Турбо-Паскаль с графикой для ПК.- М.: Машиностроение, 1991. — 320 с.
  10. Бородич Ю.С. и др. Паскаль для ПК: Справочное пособие. — МН.: Высш. шк.: БФ ГИТМП «НИКА», 1991. — 365 с.
  11. Зуев Е.А. Язык программирования Turbo Pascal 6.0. — М.: Унитех, 1992. — 298 с.
  12. Фаронов В.В. Турбо-Паскаль (в 3 книгах). — М.: «МВТУ-ФЕСТО ДИДАКТИК», 1992-1993.

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

Комментарии

Оставить комментарий

 

Ваше имя:

Ваш E-mail:

Ваш комментарий

Валера 14 минут назад

добрый день. Необходимо закрыть долги за 2 и 3 курсы. Заранее спасибо.

Иван, помощь с обучением 21 минут назад

Валерий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Fedor 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Fedor, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Алина 4 часа назад

Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения

Иван, помощь с обучением 4 часа назад

Алина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Алена 7 часов назад

Добрый день! Учусь в синергии, факультет экономики, нужно закрыт 2 семестр, общ получается 7 предметов! 1.Иностранный язык 2.Цифровая экономика 3.Управление проектами 4.Микроэкономика 5.Экономика и финансы организации 6.Статистика 7.Информационно-комуникационные технологии для профессиональной деятельности.

Иван, помощь с обучением 8 часов назад

Алена, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Игорь Петрович 10 часов назад

К утру необходимы материалы для защиты диплома - речь и презентация (слайды). Сам диплом готов, пришлю его Вам по запросу!

Иван, помощь с обучением 10 часов назад

Игорь Петрович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Инкогнито 1 день назад

У меня есть скорректированный и согласованный руководителем, план ВКР. Напишите, пожалуйста, порядок оплаты и реквизиты.

Иван, помощь с обучением 1 день назад

Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Илья 1 день назад

Здравствуйте) нужен отчет по практике. Практику прохожу в доме-интернате для престарелых и инвалидов. Все четыре задания объединены одним отчетом о проведенных исследованиях. Каждое задание направлено на выполнение одной из его частей. Помогите!

Иван, помощь с обучением 1 день назад

Илья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Alina 2 дня назад

Педагогическая практика, 4 семестр, Направление: ППО Во время прохождения практики Вы: получите представления об основных видах профессиональной психолого-педагогической деятельности; разовьёте навыки использования современных методов и технологий организации образовательной работы с детьми младшего школьного возраста; научитесь выстраивать взаимодействие со всеми участниками образовательного процесса.

Иван, помощь с обучением 2 дня назад

Alina, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Влад 3 дня назад

Здравствуйте. Только поступил! Операционная деятельность в логистике. Так же получается 10 - 11 класс заканчивать. То-есть 2 года 11 месяцев. Сколько будет стоить семестр закончить?

Иван, помощь с обучением 3 дня назад

Влад, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Полина 3 дня назад

Требуется выполнить 3 работы по предмету "Психология ФКиС" за 3 курс

Иван, помощь с обучением 3 дня назад

Полина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Инкогнито 4 дня назад

Здравствуйте. Нужно написать диплом в короткие сроки. На тему Анализ финансового состояния предприятия. С материалами для защиты. Сколько будет стоить?

Иван, помощь с обучением 4 дня назад

Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Студент 4 дня назад

Нужно сделать отчёт по практике преддипломной, дальше по ней уже нудно будет сделать вкр. Все данные и все по производству имеется

Иван, помощь с обучением 4 дня назад

Студент, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Олег 5 дня назад

Преддипломная практика и ВКР. Проходила практика на заводе, который занимается производством электроизоляционных материалов и изделий из них. В должности менеджера отдела сбыта, а также занимался продвижением продукции в интернете. Также , эту работу надо связать с темой ВКР "РАЗРАБОТКА СТРАТЕГИИ ПРОЕКТА В СФЕРЕ ИТ".

Иван, помощь с обучением 5 дня назад

Олег, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Анна 5 дня назад

сколько стоит вступительные экзамены русский , математика, информатика и какие условия?

Иван, помощь с обучением 5 дня назад

Анна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Владимир Иванович 5 дня назад

Хочу закрыть все долги до 1 числа также вкр + диплом. Факультет информационных технологий.

Иван, помощь с обучением 5 дня назад

Владимир Иванович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Василий 6 дней назад

сколько будет стоить полностью закрыть сессию .туда входят Информационные технологий (Контрольная работа, 3 лабораторных работ, Экзаменационный тест ), Русский язык и культура речи (практические задания) , Начертательная геометрия ( 3 задачи и атестационный тест ), Тайм менеджмент ( 4 практических задания , итоговый тест)

Иван, помощь с обучением 6 дней назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф

Марк неделю назад

Нужно сделать 2 задания и 1 итоговый тест по Иностранный язык 2, 4 практических задания и 1 итоговый тест Исследования рынка, 4 практических задания и 1 итоговый тест Менеджмент, 1 практическое задание Проектная деятельность (практикум) 1, 3 практических задания Проектная деятельность (практикум) 2, 1 итоговый тест Проектная деятельность (практикум) 3, 1 практическое задание и 1 итоговый тест Проектная деятельность 1, 3 практических задания и 1 итоговый тест Проектная деятельность 2, 2 практических заданий и 1 итоговый тест Проектная деятельность 3, 2 практических задания Экономико-правовое сопровождение бизнеса какое время займет и стоимость?

Иван, помощь с обучением неделю назад

Марк, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф