МИНИСТЕРСТВОСЕЛЬСКОГО ХОЗЯЙСТВА И ПРОДОВОЛЬСТВИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
ГЛАВНОЕУПРАВЛЕНИЕ ОБРАЗОВАНИЯ, НАУКИ И КАДРОВ
УО«ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНО-ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ»
Курсовойпроект
по дисциплине«Основы алгоритмизации и программирования»
на тему:Разработка информационно-поисковой системы «Результаты соревнований» наязыке программирования Паскаль
Исполнитель: БондаревА.Ю.
Руководитель: Царева К.О.
Гомель 2010
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
1. СИМВОЛЬНЫЙ И СТРОКОВЫЙ ТИП ДАННЫХ
1.1 Тип данных Char
1.2 Тип данных String
2. РАЗРАБОТКА ИНФОРМАЦИОННО-ПОИСКОВОЙСИСТЕМЫ «РЕЗУЛЬТАТЫ СОРЕВНОВАНИЙ» НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ
2.1 Постановка задачи
2.2 Описание алгоритма задачи
2.3 Практическая часть выполнениязадачи на языке программирования Паскаль
2.4 Результаты работы программы
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ВВЕДЕНИЕ
Язык программированияПаскаль предлагает богатую среду программирования, которая делает разработкупрограмм более производительной и более приятной. Паскаль также легок вобращении, в нем легко и просто можно писать программы. Именно поэтому я выбралименно его для данной курсовой работы. Паскаль хорош тем, что в нем можносоздавать прикладные программы, работающие в реальном времени.
Необходимо создатьпрограмму «Результаты соревнований» на языке программирования Паскаль. Программадолжна выполнять следующие действия: создание файла, просмотр содержимого файлакоторое выводится в виде таблицы, дополнение файла новыми записями, поиск исортировка по любому указанному полю, удаление любой строки файла. Дляреализации этой работы я буду использовать язык программирования Паскаль.
Для удобства и простотыиспользования, программа будет реализована в виде меню. Используя клавиатуру,можно будет выбирать необходимые действия. С помощью Паскаля я попытаюсь сделатьмою программу проще и удобнее для пользователя.
1. СИМВОЛЬНЫЙ ИСТРОКОВЫЙ ТИП ДАННЫХ1.1 Тип данных Char
Базовый тип данных — Char. Переменная типа Char может хранить всего один символ, один из набора 256символов. Каждый символ имеет свой код. Символы можно сравнивать между собой наравенство и на определение, какой больше или меньше, тогда компьютер опять жесравнивает не сами символы, а их коды.
Приблизительно таблицусимволов можно описать примерно так. В начале идут различные служебныеуправляющие символы, которые не имеют графического представления. Например, этосимволы табуляции, возврата каретки, перевода строки и т.п. Потом идут знакипрепинания «!», «?», «.» и т.п. Далее идут цифры «1», «2»,«3» и т.д. Следующимиидут литеры английского алфавита «A», «B», «C»,..., «Z», «a», «b», «c»,..., «z».Завершают таблицу литеры русского алфавита: «А», «Б», «В»,..., «Я», «а», «б», «в»,...,«я».
Разные системы могутпо-разному интерпретировать коды по причине, того что они руководствуютсяразными таблицами символов. Windows Code Page 1251 (Cyrillic) — таблица символов для кириллицы всистемах Microsoft Windows. Это означает что в системе Windows каждый символ сопределенным кодом будет интерпретироваться одинаково для всех программ, еслиони конечно не реализуют какую-то свою, специфическую обработку символов.
Для типа данных Charопределены также две операции — получение кода символа из переменной типа Charи преобразование кода символа в значение типа Char. Эти операции реализованыдвумя функциями стандартной библиотеки — Ord и Chr.
Функция Ord принимаетодин параметр типа Char а возвращает значение типа Byte которое и представляетсобой код символа. Функция Chr делает все с точностью наоборот — принимаетзначение типа Byte а возвращает значение типа Char [3, с.122-124].1.2 Тип данных String
программирование паскальрегистр символьный
Переменная типа Stringпредставляет собой последовательность символов — строку. Мы можем определятьдлину строки, можем добавлять к строке другие строки и символы, можем заменятьпроизвольные части строки на другие строки и символы, можем удалять частистроки.
Подпрограммы
Многие операции надстроками выполняются с помощью различных подпрограмм. Подпрограмма — кусочекпрограммного кода, который имеет идентификатор и может быть вызван по нему длявыполнения какой-либо задачи. Зачастую подпрограмма требует передать ейкакие-нибудь параметры. В качестве параметров используется либо выражение, либоидентификатор чего-либо. Например, идентификатор переменной или константы.Подпрограммы подразделяются на процедуры и функции. Разница между ними лишь вналичии возвращаемого результата. Функции возвращают результат своеговыполнения, а процедуры не возвращают никакого результата, только выполняюткакое-то действие. Процедуры вызываются следующим образом:
Имя процедуры (Параметр 1,Параметр 2, ..., Параметр N);
Вызов функции может бытьиспользован внутри какого-либо выражения. Также вызов функции может бытьиспользован в операторе присваивания, чтобы присвоить какой-нибудь переменнойрезультат выполнения функции.
Имя переменной: Имя функции(Параметр 1, Параметр 2, ..., Параметр N)[5, с.15-17].
Присваивание значениястроке, получение содержимого строки
Строковой переменнойможет быть присвоено значение, как и любой другой переменной. Единственноеограничение состоит в том, что тип значения должен быть String или Char
Получение длины строки
Для определения длиныстроки в символах используется функция стандартной библиотеки Length. ФункцияLength получает на вход один единственный параметр, идентификатор строковойпеременной или выражение строкового типа. Результат функции, количествосимволов в строке, имеет тип Integer.
Формат вызова:Length(идентификатор переменной или выражение типа String) [1, с.163-168].
Получение и установкаотдельного символа строки
К символам строки можнообращаться по их индексу (позиции в строке). Индекс первого символа строки «1».Индекс последнего символа строки будет равен результату вызова функции Length,которой в качестве параметра будет передана строка. Обратите внимание на то,что индекс первого символа «1», а не «0» как обычно делается в различныхструктурах данных, которые могут содержать много элементов. При попыткеобращения к символу с индексом меньше «0» или больше Length возникает ошибкавремени выполнения.
Формат обращения ксимволу строки: S[I], S — идентификатор строковой переменной, а I — индекссимвола.
Выражение вида S[I], S — идентификатор строковой переменной, возвращает результат типа Char.
Слияние двух строк(конкатенация)
Строки можно складыватькак числовые переменные, используя оператор «+». Результатом сложения являетсяболее длинная строка, включающая в себя содержимое обеих строк в порядке ихупотребления в операции сложения. Также существует функция Concat котораявыполняет в точности то же действие что и «+».
Формат операцииконкатенации двух строк:
A+B или Concat(A,B),
где A — идентификатородной строки или строковое выражение, а B — идентификатор другой строки илистроковое выражение [2, с.48-52].
Вставка одной строкивнутрь другой
Вставка строкивыполняется процедурой Insert. Процедура получает на вход три параметра:строку, которую нужно вставить, строку в которую должна быть произведенавставка и позицию, в которой должна быть произведена вставка. Формат вызова:
Insert(Source,Target,Position),где Source — строка которая будет вставлена, Target — идентификатор строковойпеременной в которую вставляют содержимое Source, Position — позиция, начиная скоторой будет вставлено содержимое Source в Target.
Если Position меньше 1,то процедура принимает его равным 1.
Если Position больше чемLength(Target), то содержимое Source добавляется к Target с конца.
Если Source являетсяпустой строкой, то Insert ничего не делает [5, с.22-26].
Удаление части строки
Часть строки может бытьудалена с помощью процедуры Delete. Формат вызова процедуры Delete: Delete(Target,Index,Count), где Target — идентификатор строковой переменной, изкоторой удаляются символы, Index — позиция, начиная с которой производитсяудаление, Count — количество удаляемых символов.
Если Index меньше 1 илибольше чем Length(Target), то ничего из Target не удаляется.
Если Count указываетбольше символов чем есть начиная с Index, то удаляются символы от Index и доконца строки. Если Count меньше 1, то ничего не удаляется. [4, с.89-92].
Изменение регистрасимволов
Каждый символ,представляющий собой букву, имеет регистр — верхний или нижний. Например, буква«а» может быть заглавной «А» и прописной «а». Заметим что «А» и «а» являютсяразличными символами. Про заглавные буквы говорят, что они имеют верхнийрегистр. Про прописные буквы говорят, что они имеют нижний регистр. В некоторыхслучаях нужно преобразовать отдельную строку или символ в верхний или нижнийрегистр. Это делают функции UpCase, UpperCase, LoCase, LowerCase.
Сравнение строк наравенство или больше/меньше
Строки можно сравниватьмежду собой как если бы они были числами. Возможны следующие операциисравнения:
= -сравнение строк напредмет равенства
-сравнение строкна предмет неравенства
> -сравнение на «больше»
>= -сравнение на «большеили равно»
Результатом сравненияявляется значение типа Boolean, которое может быть только одним из двух — TRUE(Истина) и FALSE (Ложь).
Сравнение на предметнеравенства: производится сравнение на предмет равенства, затем результат «переворачиваетсявверх ногами». Вместо TRUE возвращается FALSE и наоборот.
Сравнение на «меньше»: поочередносравниваются коды символов, стоящих на соответствующих позициях. Если одна изстрок больше не имеет символов, или символ, стоящий в соответствующей позицииимеет меньший код, то считается что эта строка «меньше».
Сравнение на «больше»: поочередносравниваются коды символов, стоящих на соответствующих позициях. Если одна изстрок еще имеет символы, в то время как другая больше не имеет символов, илисимвол, стоящий в соответствующей позиции имеет больший код, то считается чтопервая строка «больше».
Нечеткие сравнения на «меньшеили равно» и «больше или равно»
Фактически «меньше илиравно» означает «не больше», а «больше или равно» означает «не меньше».Соответственно производится сравнение на предмет «больше» или «меньше» ирезультат инвертируется.[4, с.67-69].
2. РАЗРАБОТКА ИНФОРМАЦИОННО-ПОИСКОВОЙСИСТЕМЫ «РЕЗУЛЬТАТЫ СОРЕВНОВАНИЙ» НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ2.1 Постановка задачи
Разработать программусоздания информационно-поисковой системы «Результаты соревнований» на языкепрограммирования Паскаль.
База данных должнахраниться в типизированных файлах. Записи формируются в таблицы и выводятся наэкран.
Требуется произвестинекоторые действия над записями. Для каждого действия мы создаем процедуры:процедура создания файла который будет содержать минимум 10 записей, процедура выводана экран содержимого файла в виде таблицы, процедура дополнения файла новымизаписями, процедура поиска записей по любому выбранному полю, процедура сортировкизаписей по любому выбранному полю, и процедура удаления записей по любомувыбранному номеру.
Все операции с файломоформляются в виде меню.2.2 Описание алгоритма задачи
Процедуры мы вызываем спомощью меню основной программы, выбирая соответствующие пункты.
Выбор действия над файломв меню осуществляется выбором определенного пункта с помощью клавиатуры.
В программе содержатсяпроцедуры.
1) procedure sozdanie –процедура создания нового файла с информацией о результатах соревнований. Дляначала нам необходимо ввести количество записей в таблице, а потом заполнитьинформацию. После окончания ввода данных процедура сама выходит в главное меню.Алгоритм описывающий данную процедуру реализован в виде блок-схемы 1 (рисунок2.2.1).
2) procedure vivod – этапроцедура предназначена для вывода на экран информации о результатахсоревнований в виде таблицы. Алгоритм описывающий данную процедуру реализован ввиде блок-схемы 2 (рисунок 2.2.2).
3) procedure dobavlenie –процедура добавления. Предназначена для добавления новых записей в таблицу.Процедура добавляет новые записи в конец файла. По окончании ввода процедуравыходит в главное меню.
4) procedure poisk –процедура поиска предназначенная для поиска нужных записей в нужном полетаблицы. Перед нами появляется меню поиска, где мы выбираем нужный нам критерийпоиска.
5) procedure sortirovka –процедура сортировки. Позволяет отсортировать нужное поле по возрастанию. Переднами появляется меню в котором мы можем выбрать необходимое поле длясортировки.
6) procedure udalenie — процедура удаления. Предназначена для удаления необходимой нам строки. Переднами появится меню, в котором мы должны ввести нужный номер строки дляудаления.
Для запуска программынеобходимо открыть файл «zadacha.pas» и нажать сочетание клавиш «Ctrl+F9».
В программеиспользовались переменные
fio, ych — stil строковоготипа,
voz, rez — числового типа.
/>
Рисунок 2.2.1- Блок-схема1
/>
Рисунок 2.2.2- Блок-схема2
2.3 Практическая частьвыполнения задачи на языке программирования Паскаль
program zadacha; {название программы}
uses crt; {подкличение модуля crt}
typemass=record
fio:string; {Фамилия}
ych:string; {учреждение}
stil:string; {стиль плавания}
voz:integer; {возраст}
rez:real; {результат}
end;
var
chi:mass; {имеет типmass}
ch,ch1:array[1..25]of mass;
f:file ofmass;
i,m,j,k,n,nom:integer;
filename:string;{для имени файла}
proceduresozdanie; {процедура создания}
var
q:integer;
begin
clrscr;
writeln('vvediteimya faila:'); {ввод имени файла}
readln(Filename);
assign(f,Filename);
rewrite(f);
Writeln('vvedite kolichestvo zapisei'); {вводимколичество записей}
Readln (n);
q:=0;
for i:=1 to ndo
with ch[i] do
begin
q:=q+1;
clrscr;
writeln('vveditefio ',q,'-go uchasnika'); {заносим информацию об участнике}
readln(fio);
writeln('vveditevozrast ',q,'-go uchasnika');
readln(voz);
writeln('vvediteycheregdenie');
readln(ych);
writeln('vveditestil plavaniya');
readln(stil);
writeln('vvediterezultat zapliva');
readln(rez);
write(f,ch[i]);
end;
close(f); {закрываем файл}
end;
procedurevivod; {процедура вывода}
begin
clrscr;
writeln('vvedite imya sozdannogo faila'); {указываем имя созданного файла}
readln(filename);
assign(f,filename);
reset(f);
clrscr;
nom:=0;
writeln('writeln('|# | FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('|');
while not eof(f) do {начинаем выводить записи в таблицу}
with ch[i] do
begin
inc(i);
inc(nom);
read(f,ch[i]);
writeln('|',nom:3,'|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
i:=i+1;
end;
writeln('|');
close(f); {закрыли файл}
readln;
clrscr;
end;
proceduredobavlenie; {процедура добавления}
begin
clrscr;
writeln('vvedite imya sozdannogo faila'); {ввод имени файла}
readln(filename);
assign(f,filename);
reset(f);
i:=1;
while noteof(f) do
begin
read(f,ch[i]);
i:=i+1;
end;
writeln('vvedite fio'); {начинаем заносит информацию об участнике}
readln(ch[i].fio);
writeln('vveditevoz ');
readln(ch[i].voz);
writeln('vvediteycheregdenie obrazovaniya');
readln(ch[i].ych);
writeln('vveditestil plavaniya');
readln(ch[i].stil);
writeln('vvediterezultat zapliva');
readln(ch[i].rez);
n:=i;
close(f); {закрыли файл}
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
procedurepoisk; {процедура поиска}
var e:string;
n1,o:integer;
l:real;
begin
writeln('vibireteregim poiska:' ); {меню}
writeln(' ');
writeln('1:poisk po polu fio');
writeln('2:poisk po polu vozrast');
writeln('3:poisk po polu ycheregdenie');
writeln('4:poisk po polu stil');
writeln('5:poisk po polu rezultat');
writeln;
readln(o);
clrscr;
if o=1 thenbegin {поиск по полю фио}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
inc(i);
inc(n);
end;
close(f);
writeln('vveditefio uchasnika'); {водим ФИО участника}
readln(e);
n1:=0;
for i:=1 to ndo
if ch[i].fio=e
then begin
n1:=n1+1;
ch1[n1]:=ch[i];
end;
if n10 then begin {вывод найденного участника}
writeln('||');
writeln('| FIO | VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('||');
for i:=1 to n1do
with ch1[i] do
begin
writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
end;
writeln('');
end
else
writeln('zapisne naidena ');
readln;
end;
if o=2 thenbegin {поиск по полю возраст}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
inc(i);
inc(n);
end;
close(f);
writeln('vveditevozrast uchasnika'); {вводим возраст}
readln(l);
n1:=0;
for i:=1 to ndo
if ch[i].voz=l
then begin
n1:=n1+1;
ch1[n1]:=ch[i];
end;
if n10then begin {вывод}
writeln('||');
writeln('| FIO| VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('|');
for i:=1 to n1do
with ch1[i] do
begin
writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
end;
writeln('||');
end
else
writeln('zapisne naidena ');
readln;
end;
if o=3 thenbegin {поиск по полю учреждение}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign (f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
inc(i);
inc(n);
end;
close(f);
writeln('vvediteycheregdenie'); {введите учреждение }
readln(e);
n1:=0;
for i:=1 to ndo
if ch[i].ych=e
then begin
n1:=n1+1;
ch1[n1]:=ch[i];
end;
if n10then begin {вывод}
writeln('|');
writeln('| FIO| VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('||');
for i:=1 to n1do
with ch1[i] do
begin
writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
end;
writeln('|');
end
else
writeln('zapisne naidena ');
readln;
end;
if o=4 thenbegin {поиск по полю стиль}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
inc(i);
inc(n);
end;
close(f);
writeln('vveditestil uchasnika'); {ввод стиля}
readln(e);
n1:=0;
for i:=1 to ndo
ifch[i].stil=e
then begin
n1:=n1+1;
ch1[n1]:=ch[i];
end;
if n10then begin {вывод}
writeln('||');
writeln('| FIO| VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('|');
for i:=1 to n1do
with ch1[i] do
begin
writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
end;
writeln('||');
end
else
writeln('zapisne naidena ');
readln;
end;
if o=5 thenbegin {поиск по полю результат}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
inc(i);
inc(n);
end;
close(f);
writeln('vveditepreblezitelnii rezyltat uchastnika'); {ввод результата }
readln(l);
n1:=0;
for i:=1 to ndo
if(ch[i].rez=l-0.5)
then begin
n1:=n1+1;
ch1[n1]:=ch[i];
end;
if n10then begin {вывод}
writeln('||');
writeln('| FIO| VOZRAST | YCHEREGDENIE | STIL |REZYLTAT |');
writeln('||');
for i:=1 to n1do
with ch1[i] do
begin
writeln('|',fio:17,'|',voz:9,'|',ych:15,'|',stil:10,'|',rez:9:1,'|');
end;
writeln('||');
end
else
writeln('zapisne naidena ');
readln;
end;
end;
proceduresortirovka; {процедура сортировка}
var
p:integer;
begin
clrscr;
writeln('vibireteregim sortirovki:' ); {меню сортировки}
writeln(' ');
writeln('1:sortirovka po polu fio');
writeln('2:sortirovka po polu vozrast');
writeln('3:sortirovka po polu ycheregdenie');
writeln('4:sortirovka po polu stil');
writeln('5:sortirovka po polu rezultat');
writeln;
readln(p);
if p=1 thenbegin {сортировка по полю фио}
writeln('vvedite imya sozdannogo faila'); {вводимимя файла}
readln(filename);
assign(f,filename);
reset(f);
for i:=1 to ndo
read(f,ch[i]);
close(f);
for i:=1 ton-1 do
for j:=i+1 ton do
ifch[i].fio>ch[j].fio then {сравниваем 2 строки}
begin
chi:=ch[i]; {проводимперестановку}
ch[i]:=ch[j];
ch[j]:=chi;
end;
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
if p=2 then begin {сортировка по полю возраст}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
for i:=1 to ndo
read(f,ch[i]);
close(f);
for i:=1 ton-1 do
for j:=i+1 ton do
ifch[i].voz>ch[j].voz then
begin
chi:=ch[i];
ch[i]:=ch[j];
ch[j]:=chi;
end;
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
if p=3 thenbegin {сортировка по полю учреждение}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
for i:=1 to ndo
read(f,ch[i]);
close(f);
for i:=1 ton-1 do
for j:=i+1 ton do
ifch[i].ych>ch[j].ych then
begin
chi:=ch[i];
ch[i]:=ch[j];
ch[j]:=chi;
end;
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
if p=4 thenbegin {сортировка по полю стиль}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
for i:=1 to ndo
read(f,ch[i]);
close(f);
for i:=1 ton-1 do
for j:=i+1 ton do
ifch[i].stil>ch[j].stil then
begin
chi:=ch[i];
ch[i]:=ch[j];
ch[j]:=chi;
end;
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
if p=5 thenbegin {сортировка по полю результат}
writeln('vvedite imya sozdannogo faila');
readln(filename);
assign(f,filename);
reset(f);
for i:=1 to ndo
read(f,ch[i]);
close(f);
for i:=1 ton-1 do
for j:=i+1 ton do
ifch[i].rez>ch[j].rez then
begin
chi:=ch[i];
ch[i]:=ch[j];
ch[j]:=chi;
end;
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
end;
end;
procedureudalenie; {процедура удаления}
var m:integer;
begin
clrscr;
writeln('vvedite imya sozdannogo faila'); {вводимимя файла}
readln(filename);
assign(f,filename);
reset(f);
i:=1;
n:=0;
while noteof(f) do
begin
read(f,ch[i]);
i:=i+1;
n:=n+1;
end;
writeln('vveditenomer udaliaemoi zapisi'); {вводим номер записи для удаления}
readln(m);
for i:=m to ndo
begin {удаляем}
ch[i].fio:=ch[i+1].fio;
ch[i].voz:=ch[i+1].voz;
ch[i].ych:=ch[i+1].ych;
ch[i].stil:=ch[i+1].stil;
ch[i].rez:=ch[i+1].rez;
end;
n:=n-1;
close(f);
rewrite(f);
for i:=1 to ndo
write(f,ch[i]);
close(f);
writeln(‘zapisudalena’);
readln;
end;
begin {тело основной программы}
while True do
begin {меню программы}
clrscr;
Writeln ('':20,' *Menu* ');
Writeln('':20,'||');
Writeln('':20,'| 1- sozdanie novogo faila |');
Writeln('':20,'| 2- vivod dannih |');
Writeln('':20,'| 3- dobavlenie |');
Writeln('':20,'| 4- poisk |');
Writeln ('':20,'|5- sortirovka |');
Writeln('':20,'| 6- udalenie zapisei |');
Writeln('':20,'| 0- vihod |');
Writeln('':20,'||');
Writeln;
Writeln('vimojete rabotat s uje sozdanim failom «sor» ');
Writeln('');
Readln (m);
case m of
1:sozdanie;
2:vivod;
3:dobavlenie;
4:poisk;
5:sortirovka;
6:udalenie;
0:exit;
else beginWriteln('ne verno!');
readln;
end;
end;
end;
end.2.4 Результаты работы программы
Для запуска программынеобходимо открыть файл «zadacha.pas» и нажать на клавишу «F9»(в программе «Pascal ABC»). Появится главное меню в котором мы можем выбратьнеобходимое действие над файлом (рисунок 2.4.1).
/>
Рисунок 2.4.1 — основноеменю
В пункте первом мысоздаем новый файл (рисунок 2.4.2).
/>
Рисунок 2.4.2 — созданиефайла
В поле «ФИО» необходимоввести фамилию имя и отчество участника.
В поле «Возраст» нужноввести возраст участника, только цифрами
В поле «Учреждение»необходимо ввести учреждение образования в котором обучается участник.
В поле «Стиль» необходимоввести стиль плавания участника.
В поле «Результат» нужноввести результат участника проплывшего дистанцию.
Выбрав «вывод данных»,программа выводит данные в виде таблицы из указанного файла (рисунок 2.4.3).
/>
Рисунок 2.4.3.(вывод)
При добавлении в файлновых записей необходимо ввести фамилию, возраст, учреждение, стиль и результатзаплыва. Эти данные будут записаны в конец таблицы.
При выборе режима «поиск»программа перейдет в другое меню (рисунок 2.4.4.), в котором можно будетвыбрать необходимый критерий поиска. Поиск осуществляется по полям фамилия, возраст,учреждение, стиль, результат заплыва.
/>
Рисунок 2.4.4 — менюпоиска
Выбрав пункт «сортировка»,появляется меню в котором можно отсортировать указанный файл по необходимомуполю (рисунок 2.4.5.).
/>
Рисунок 2.4.5. (менюсортировки)
При выборе пунктаудаление нам необходимо ввести имя файла, из которого нужно удалить строку, иномер строки которую необходимо удалить.
ЗАКЛЮЧЕНИЕ
Паскаль хорош тем, что внем можно создавать прикладные программы, работающие в реальном времени,предлагая богатую среду программирования, которая делает разработку программболее производительной и более приятной. Именно по этому я выбрал данный языкпрограммирования для своей курсовой работы.
Подобрал и изучилматериал по теме «Строковые и символьные типы данных».
Реализовал программу«Результаты соревнований» на языке программирования Паскаль. Программавыполняет следующие действия: создание файла, просмотр содержимого файлакоторое выводится в виде таблицы, дополнение файла новыми записями, поиск исортировка по любому указанному полю, удаление любой строки файла.
Для удобства и простотыиспользования, программа реализована в виде меню. Я постарался сделать так,чтобы любому пользователю было удобно и практично использовать мою программу.
Её можно использовать длязаписей результатов соревнований по плаванию, которые будут храниться втипизированных файлах. Пользователь сможет легко заносить данные в таблицы,редактировать содержимое, удалять не нужные записи, искать и сортировать понеобходимому полю.
СПИСОК ИСПОЛЬЗОВАННЫХИСТОЧНИКОВ
1. Павловская, Т. А.Паскаль. Программирование на языке Турбо Паскаль / Т.А. Павловская. — СПб. –Петербург: 2007. – 317с.
2. Алиев, Ю.А.Практикум по алгоритмизации и программированию на языке Паскаль/ Ю.А. Алиев. – В.– Питер: 2007. – 527с
3. Аронов, В.В. Turbo Pascal/В.В. Аронов. – БХВ — Петербург, 2004. – 156с.
4. Алексеев, Е.Р.Турбо Паскаль 7.0/ Е.Р. Алексеев, О.В. Чесноков а.- М.: НТ Пресс, 2007.– 83с.
5. Паскаль[Электронный ресурс].- Типы данных. – Режим доступа: www.pascal.ru. –Дата доступа 02.06.2010