Строковые данные и тестовые файлы
Автор работы: Пользователь скрыл имя, 16 Февраля 2011 в 20:35, курсовая работа
Описание работы
Текстовые файлы предназначены, для хранения текстовой информации. Именно в файлах такого типа хранятся, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними.
Содержание работы
Введение
1. Разработка эскизного и технического проектов программы…………….…...…….4
1.1. Задание……………………………………………………………………...………..4
1.2. Назначение и область применения……………………………...………….….…...5
1.3. Технические характеристики…………………………………...…………….…….6
1.3.1. Постановка задачи и описание алгоритма…………………………..…………..6
1.3.2. Организация входных и выходных данных и выбор состава технических и программных средств……………………………………………………………………10
1.3.3. Типы данных в языке Turbo Pascal. Текстовые файлы…………………………13
2. Разработка рабочего проекта…………………………………………………………18
2.1. Спецификация программы………………………………………………………....18
2.2. Текст программы………………………………………...………………………….19
Заключение……………………………………………………………………………….23
Глоссарий………………………………………………………………………………...25
Список используемых источников……………………………………………………..26
Приложения …………………………………...………………………………………...27
Файлы: 1 файл
Строковые данные и тестовые файлы.doc
— 243.50 Кб (Скачать файл)Вещественные типы тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным.
ПОРЯДКОВЫЕ ТИПЫ
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон.
Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта
| ЦЕЛЫЕ ТИПЫ | ||
| НАЗВАНИЕ | Длина,байт |
Диапазон значений |
| 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 |
СТРОКИ
Для обработки текстов в Turbo Pascal широко используется строковый тип данных STRING. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Количество символов в строке – переменной может меняться от 0 до N, где N – максимальное количество символов в строке - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается максимально возможным, а именно N=255.
Данные хранятся в файлах и при необходимости считываются, а также записываются в файлы операторами программы. Напомним, что файлом называется именованная область внешней памяти ЭВМ, содержащая различные данные. Доступ к данным в файле может быть прямым или последовательным в зависимости от типа файла. Рассмотрим работу с данными текстовых файлов.
Текстовые файлы предназначены для хранения текстовой информации. Именно в файлах такого типа хранятся, исходные тексты программ.
Текстовый файл трактуется в Turbo Pascal как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой.
Приведем пример программы для считывания строковых и числовых данных из файла и записи их в другой файл.
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
if s[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 i<j 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. Вывод результата