Строковые данные и тестовые файлы
СОДЕРЖАНИЕ: Основные данные о работе Версия шаблона Филиал Чебоксарский Вид работы Курсовая работа Название дисциплины Программирование на ЯВУ Тема Строковые данные и тестовые файлыОсновные данные о работе
Версия шаблона | 2.1 |
Филиал | Чебоксарский |
Вид работы | Курсовая работа |
Название дисциплины | Программирование на ЯВУ |
Тема | Строковые данные и тестовые файлы |
Фамилия студента | Федоров |
Имя студента | Сергей |
Отчество студента | Витальевич |
№ контракта | 03700070602040 |
Содержание
Введение
1. Разработка эскизного и технического проектов программы…………….…...…….4
1.1. Задание……………………………………………………………………...………..4
1.2. Назначение и область применения……………………………...………….….…...5
1.3. Технические характеристики…………………………………...…………….…….6
1.3.1. Постановка задачи и описание алгоритма…………………………..…………..6
1.3.2. Организация входных и выходных данных и выбор состава технических и программных средств……………………………………………………………………10
1.3.3. Типы данных в языке TurboPascal. Текстовые файлы…………………………13
2. Разработка рабочего проекта…………………………………………………………18
2.1. Спецификация программы………………………………………………………....18
2.2. Текст программы………………………………………...………………………….19
Заключение……………………………………………………………………………….23
Глоссарий………………………………………………………………………………...25
Список используемых источников……………………………………………………..26
Приложения …………………………………...………………………………………...27
Введение
Актуальность. XXI век, несомненно, век информации. Как бы ни развивались различные отрасли науки и техники, каких бы новых высот не достигло человечество, – информация с каждым днем становится все более важным ресурсом, обеспечивающим развитие общества. И массовое распространение компьютеров обусловлено не столько тем, что они умеют вычислять быстрее и точнее, чем человек, а тем, что без них просто невозможно справиться с растущим валом информации. Развитие компьютерной техники обуславливает не только улучшение обработки уже используемых видов данных, но и постоянное привлечение новых видов данных, компьютеризацию новых областей знания и управления. Применение компьютеров прошло путь от чисто научных расчетов к массовому управлению, от работы с отдельными переменными и файлами к хранению и обработке огромных массивов информации. И сейчас мы можем наблюдать один из революционных этапов этого пути – массовое внедрение обработки пространственной информации.Есть необходимость рассмотреть строковые типы данных и текстовые файлы для написания данной курсовой работы. Данная курсовая работа посвящена разработке программы, которая позволяет в данном тексте найти количество слов, начинающихся и заканчивающихся одной и той же буквой.
В качестве среды разработки выберем высокоуровневый язык программирования Turbo Pascal.
Для обработки строковой информации в Turbo Pascal введенстроковый тип данныхSTRING. Строкой в Pascal называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. [3]
Текстовые файлы предназначены, для хранения текстовой информации. Именно в файлах такого типа хранятся, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. [2,6]
Основная часть
1.Разработка эскизного и технического проектов
программы
1.1. Задание
Тема:Разработка приложения для Windows, представляющего собой компьютерную программу на «Строковые данные и текстовые файлы».
Условие задачи:
Дан файл, содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву и выдать эти буквы с указанием соответствующего количества слов.
1.2. Назначение и область применения
В данной работе необходимо разработать программу, позволяющую находить количество слов, начинающихся и заканчивающихся одной и той же буквой.
Область применения: использование разрабатываемой программы в качестве примера при изучении строковых данных и текстовых файлов.
1.3. Технические характеристики
1.3.1. Постановка задачи
Данная программа позволяет находить слова, начинающиеся и заканчивающиеся на одну и ту же букву. Для этого необходимо ввести в файл input.txt строку с русскими буквами. После программа открывает данный файл, считывает информацию и записывает необходимые буквы в массив a[i]. Затем массив сортируется, и повторяющиеся буквы выводятся в файл output.txt. [6]
Описание алгоритма
В программе решаются три подзадачи:
Нахождение слов с одинаковой первой и последней буквой и запись этих букв в массив a[i]
1. Сортировка массива a[i]
2. Вывод букв с указанием их соответствующего количества в текстовый файл output.txt
Общая схема программа представлена на рисунке 1.
Рисунок 1. Общая схема алгоритма
Текст считывается из файла input.txt, затем определяется размер строки в этом файле и с помощью цикла находятся слова, начинающиеся и заканчивающиеся одной и той же буквой (рисунок 2).
Рисунок 2.Считывание текста из файла input.txt
Затем полученный массив сортируем методом перебора (рисунок 3).
Рисунок 3. Сортировка массива методом перебора
Результат записываем в файл output.txt (рисунок 4).
Рисунок 4. Запись в файл output.txt
1.3.2. Организация входных и выходных данных
Входные данные: строка s.
Переменные, используемые в программе:
х, y, z – строковые данные, необходимые для сортировки массива букв а[i] в тексте;
N – целое число: длина строки в файле;
A – массив букв;
Выходные данные: A – массив букв;
K – количество букв.
Для решения данной задачи в TurboPascal использовались следующие функции:
assign(output, d:\kurs\output.txt);
rewrite(output); {открыть файл для записи}
close(input); {закрытьфайл}
assign(input, d:\kurs\input.txt);
reset(input); {открыть файл для чтения}
readln(s); {читаем строку}
writeln(k); {вывод количества повторов} [3,4]
Выбор состава технических и программных средств.
В качестве среды разработки выбран TurboPascal – высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков. Был создан Н. Виртом в 1970.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Pascal был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в TurboPascal сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Программы на TurboPascalначинаются с ключевого слова program Имя программы со списком внешних файловых дескрипторов в качестве параметров; затем следует главный блок операторов, окружённый ключевыми словами begin и end. Операторы разделяются точками с запятой, а точка служит признаком конца программы (или модуля).
Вот пример простейшей программы:
program HelloWorld(output);
begin { начало программы }
writeLn(Hello, World!); { выводим надпись }
readLn; { чтобы было видно, что мы вывели }
end. { конец программы }
С начала 1990-х TP/BP используется в университетах для изучения фундаментальных концепций программирования.
Достоинства:
· удобная среда разработки, включающая функциональный отладчик, доступный в любой момент;
· контекстная справочная система, по которой можно изучать язык без обращения к сторонним источникам;
· высокая скорость компиляции, высокая скорость выполнения откомпилированных программ.
Недостатки:
· компилятор рассчитан на реальный режим DOS, применение которого сходит на нет, однако в последних версиях компилятора и среды введена поддержка защищённого режима вместе с соответствующим отладчиком (TD);
· неполная реализация объектного – ориентированного программирования.
Несмотря на эти недостатки, TurboPascal используется во многих учебных заведениях для обучения программированию. [1,4]
1.3.3. Типы данных в языке Turbo Pascal . Текстовые файлы
Любые данные, т.е. константы, переменные, значения функций или выражения, в TurboPascal характеризуются своими типами.
Тип данных определяет:
· формат представления данных в памяти ЭВМ;
· множество допустимых операций, применимых к этому.
TurboPascal характеризуется разветвлённой структурой типов данных.
ПРОСТЫЕ ТИПЫ
К простым типам относятся порядковые и вещественные типы.
Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определённым образом упорядочить (отсюда – название типов) и, следовательно, с каждым из них можно сопоставить некоторое целое число – порядковый номер значения.
Вещественные типы тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным.
ПОРЯДКОВЫЕ ТИПЫ
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон.
Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта
ЦЕЛЫЕ ТИПЫ | ||
НАЗВАНИЕ | Длина,байт |
Диапазон значений |
Byte | 1 | 0…255 |
ShortInt | 1 | -128…+127 |
Word | 2 | 0…65535 |
Integer | 2 | -32768…+32767 |
LongInt | 4 | -2 147 483 648…+2 147 483 647 |
Логический тип
ЛОГИЧЕСКИЕ ТИПЫ | |||
Название | Длина, Байт | OS | Значение |
BOOLEAN | 1 | Linux, DOS | False, True |
BYTEBOOL | 1 | Совместим с С | False, True |
WORDBOOL | 2 | Win | False, True |
LONGBOOL | 4 | Win | False, True |
Символьный тип. CHAR – занимает 1 байт. Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапозоне 0…255. Это число служит кодом внутреннего представления символа.
Порядковых типов, значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляется в ПК абсолютно точно, значения вещественных типов определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
Длина, байт | Название | Количество значащих цифр | Диапазон десятичного порядка |
6 | Real | 11…12 | -39…+38 |
4 | Single | 7…8 | -45…+38 |
8 | Double | 15…16 | -324…+308 |
10 | Extended | 19…20 | -4951…+4932 |
8 | comp | 19…20 | -2*1063 +1…+2*1063 -1 |
СТРОКИ
Для обработки текстов в TurboPascal широко используется строковый тип данных STRING. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Количество символов в строке – переменной может меняться от 0 до N, где N – максимальное количество символов в строке - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается максимально возможным, а именно N=255.
Данные хранятся в файлах и при необходимости считываются, а также записываются в файлы операторами программы. Напомним, что файломназывается именованная область внешней памяти ЭВМ, содержащая различные данные. Доступ к данным в файле может быть прямым или последовательным в зависимости от типа файла. Рассмотрим работу с данными текстовых файлов.
Текстовые файлы предназначены для хранения текстовой информации. Именно в файлах такого типа хранятся, исходные тексты программ.
Текстовый файл трактуется в TurboPascal как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой.
Приведем пример программы для считывания строковых и числовых данных из файла и записи их в другой файл.
var
c: char; j, i: word;
s: array[1..10] of string[12];
a: array[1..10, 1..6] of word;
f1, f2: text;
BEGIN
assign(f1, F1.txt); reset(f1);
assign(f2, F2.txt); rewrite(f2);
for i:= 1 to 10 do
begin
read(f1, s[i]); { считываниестроки }
for j:= 1 to 6 do read(f1, a[i,j]); { считываниешестичисел }
readln(f1) считывание символа конца строки }
end;
for c:= А to Я do { цикл по перебору символов }
for i:= 1 to 10 do
if s[i,1] = c then
begin
write(f2, s[i]); { запись строк в алфавитном порядке первых символов }
for j:= 1 to 6 do write(f2, a[i,j]:2); { записьшестичисел }
writeln(F2)
end;
close(f1);
close(f2);
END.
Здесь полагается, что в файле F1. txt записаны данные, которые в редакторе текста имеют вид:
Леонтьев 5 4 4 5 4 3
Ивлев 4 5 3 4 3 4
и т. д.
После считывания данных в программе происходит их сортировка перебором и запись в файл F2. txt в алфавитном порядке первой буквы фамилии. [4,5,7]
2. Разработка рабочего проекта
2.1.Спецификация программы
Разработанная программа имеет название 1111.pas и расположена на компакт-диске в папке kurs\1111.pas.
Наименование | Обозначение | Примечание |
1111.pas | Основной модуль программы | Обеспечивает диалог с пользователем и организацию подсчета слов, начинающихся и заканчивающихся на одну и ту же букву |
input.txt | Файл исходных данных для тестирования программы | Содержит строку из русских букв |
output.txt | Файл полученных данных для тестирования программы | Содержит буквы и количество повторов в соответствии с условием задачи |
2.2. Текст программы
program stroka;
uses crt;
var s, x, y, z:string;
i, j, k, n:integer;
a:array[1..100] of string;
begin
{открываемфайл}
assign(input, d:\kurs\input.txt);
reset(input);
{читаемстроку}
readln(s);
{определяем длину строки}
n:=length(s);
{слова с одинаковой первой и последней буквой записываем в массив}
i:=1; j:=1; k:=1;
while i=n do
begin
if s[i]= then
ifs[i-1]=s[k] then {проверяем первую и последнюю буквы}
begin
a[j]:=s[k];
j:=j+1;
k:=i+1;
i:=i+1;
end;
i:=i+1;
end;
close(input); {закрываемфайл}
for i:=1 to j-1 do
for k:=1 to j-1 do
begin
y:=a[i]; z:=a[k];
if ord(y[1]) ord(z[1]) then {ord – кодбуквы}
begin
x:=a[i];
a[i]:=a[k];
a[k]:=x;
end;
end;
{открываем файл для записи}
assign(output, d:\kurs\output.txt);
rewrite(output);
if j=1 then write(Такихсловнет) {нетповторов}
else begin {повторыесть}
k:=1; i:=1;
while ij do
begin
write(a[i], - ); {выводбукв}
while a[i]=a[i+1] do
begin
k:=k+1; {подсчитывает количество повторов}
i:=i+1;
end;
writeln(k); {вывод количества повторов}
k:=1;
i:=i+1;
end;
end;
end.
Для тестирования программы необходимо ввести строку в файл input.txt, затем программа обрабатывает полученную информацию и записывает результат в файл output.txt.
При вводе строки «тот мам пап торт впрва » (рисунок 5) в текстовый файл input.txt будет получен следующий результат: м – 1, п – 1, т – 2 (рисунок 6).
Рисунок 5. Ввод строки
Рисунок 6. Вывод результата
При вводе другой строки (рисунок 7) получится результат, показанный на рисунке 8.
Рисунок 7. Ввод строки
Рисунок 8. Вывод результата
Заключение
Цель данной курсовой работы достигнута, то есть разработана программа с использование строковых данных string и текстовых файлов input.txtи output.txt. Программа обеспечивает подсчет слов, начинающихся и заканчивающихся на одну и ту же букву и выводит эти буквы с указанием соответствующего количества слов. В качестве среды разработки выбран TurboPascal – высокоуровневый язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков.
Для обработки текстов в TurboPascalшироко используется строковый тип данных STRING. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки.
Поэтому данные хранятся в файлах и при необходимости считываются, а также записываются в файлы операторами программы. Напомним, что файломназывается именованная область внешней памяти ЭВМ, содержащая различные данные. Доступ к данным в файле может быть прямым или последовательным в зависимости от типа файла. Рассмотрим работу с данными текстовых файлов.
Также используется текстовый файл в Turbo. Текстовые файлы представляют совокупность строк переменной длины с последовательным доступом к данным, т. е. данные записываются на диск и считываются только последовательно. Информация в текстовых файлах хранится в символьном (текстовом) виде. При записи числовых или логических значений происходит автоматическое преобразование данных в символьный тип, а при считывании данные автоматически преобразуются в машинные коды.
Исходные данные представлены в виде текстовых файлов, структура которых описана в соответствующей части курсового проекта.
Поставленные нами задачи также выполнены, а именно:
· рассмотрены типы данных в TurboPascal;
· использованы строковые данные в решении конкретной задачи.
Данный программный продукт можно применять в процессе обучения в школах и вузах на занятиях по информатике при изучении строковых данных и текстовых файлов.
Глоссарий
№ п/п | Понятие | Определение |
1 |
Алгоритм | Описание последовательности действий |
2 | Компиляция | Перевод программы с языка программирования на машинный язык |
3 | Файл | Именованная область внешней памяти ЭВМ, содержащая различные данные |
4 | Структура файла | Описание последовательности расположения данных в файле |
5 | Текстовый файл | Совокупность строк переменной длины с последовательным доступом к данным |
6 | Модуль (Crt) | Автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (поддержка работы с экраном в текстовом режиме) |
7 | Процедура | Оформленная обособленно часть программы, которая может быть вызвана из любого места основной программы |
8 | Циклы | Многократно повторяемые последовательности однотипных действий. |
9 | Массив | Одно или многомерная таблица данных одного типа |
10 | Тестирование | Запуск программы с использованием тестового набора данных с целью проверки правильности ее работы и устранения обнаруженных в программе ошибок |
Список использованных источников
1 | Алексеев Е.Р., Чеснокова О.В. Турбо Паскаль 7.0. Изд. НТ Пресс. 2006. |
2 | Леонтьев В. «Персональный компьютер. Универсальный справочник пользователя 2000». |
3 | Марченко А.И., Марченко Л.А. Программирование в среде TurboPascal7.0. Базовый курс. М: Век+. 2006. |
4 | Могилев А. В., Пак Н. И., Хеннер Е. К. Информатика: Учеб. пособие для студ. пед. вузов / Под ред. Е.К. Хеннера. – 3 – е изд., перераб. и доп. – М.: Издательский центр «Академия», 2005 |
5 | Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. |
6 | Моргун Александр Николаевич Справочник по Turbo Pascal для студентов. — М.: «Диалектика», 2006. |
7 | Фаронов, В. В. Turbo Pascal [Текст] : учеб. пособие / В. В. Фаронов. – СПб. : Питер, 2006. |
8 | Эллиот Б. Коффман Turbo Pascal = Turbo Pascal Web Update. — М.: «Вильямс», 2005. |
Приложени я
А | . |
Б |