Автор работы: Пользователь скрыл имя, 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
Вещественные типы тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным.
ПОРЯДКОВЫЕ ТИПЫ
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон.
Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта
ЦЕЛЫЕ ТИПЫ | ||
НАЗВАНИЕ | Длина,байт |
Диапазон значений |
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. Вывод результата