Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Лабораторная работа: Разработка формата хранения данных программ и решение задач

Название: Разработка формата хранения данных программ и решение задач
Раздел: Рефераты по информатике, программированию
Тип: лабораторная работа Добавлен 02:52:27 11 февраля 2009 Похожие работы
Просмотров: 16 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Цель: изучить возможности работы с файлами в языке Pascal. Получить навыки разработки формата хранения данных на примере решения задач аналитической геометрии. Освоить приемы структурирования программ.

Задание:

Задано множество точек. Найти параметры окружности минимального радиуса проходящей через три точки множества.

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

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

Выходные данные вывести на экран и сохранить в текстовом файле.

При написании программы организовать контроль вводимых данных используя функцию IOResult();

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

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

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


1. Теоретическая часть:

Файл - именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного «виртуального» диска), либо логическое устройство – потенциальный источник или приемник информации.

Классификация файлов по типу доступа к элементам:

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

А.Типизированные

F : file of <тип>;

F : file of point <точки>;

Б.Без типа

F : file;

2) Файлы последовательного доступа – это файлы у которых доступ к элементам осуществляется строго последовательно и отсутствует доступ по номеру элемента. (текстовые).

F : text;

В своей лабораторной работе я использовал файлы последовательного доступа. Следовательно, я использовал текстовые файлы, что обуславливает точность хранения данных программы. Для перевода числа в строку используем Function IntToStr, для создания файла используем Procedure CrTFile, для считывания из файла используем Procedure ReDFile.

2. Описание блоков программы

Procedure titlist; Tитульная страница.

Выводит на экран условия задачи с реквизитами исполнителя.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Function IntToStr; Перевод числа в строку.

Эта функция переводит число в строку.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure PROV; Проверка вводимых данных.

В этой процедуре происходит контроль вводимых данных при помощи Val ().

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Osnova; Расчёты программы

В этой процедуре происходят расчёты основной программы:

Проверка на равность отдельных отрезков исходящих из одной точки.

На существование возможных радиусов. И на существование наименьшего радиуса. Запись в текстовый файл Минимального радиуса.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Klava; Bвод входных данных с клавиатуры

Ввод входных данных с клавиатуры. Контроль вводимых данных при помощи процедуры Val (). И в дальнейшем выполнение расчётов.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure ReDFile; Cоздание выходного файла

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

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure CrTFile; Cоздание входного файла

Создание файла. Запись в этот файл координат точек.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Menu; Предоставление пользователю варианта выбора дальнейшего действия программы.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Сама программа.

3. Обоснование выбора средств программной реализации блоков

Procedure titlist; Tитульная страница.

Выводит на экран условия задачи с реквизитами исполнителя.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Function IntToStr(V:integer):string; Перевод числа в строку.

V - число, которое переводим в строку – S..

V – параметрическая переменная.

String – тип возвращ. значения.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure PROV(Prigl:string; var V:integer; nz,vz:integer); Проверка.

Prigl - приглашение, V - возращаемое число,

Nz - нижнее значение, vz - верхнее значение.

V – переменная, которая имеет непосредственную связь с самой программой.

Prigl - параметрическое заначение.

V – параметрическая переменная.

Nz, vz – параметрические заначения.

В этой процедуре происходит контроль вводимых данных при помощи Val ().

Если мы вводим буквы то, это строковые значения и выводится сообщение:

'ОШИБКА!!! Некорректные данные'.

Если мы вводим кол-во точек больше или меньше нужного выводится сообщение: 'ОШИБКА!!! Введенное число вне рамок диапазона'.

Если мы вводим координаты точек больше большего значения или меньше меньшего то выводиться сообщение: 'ОШИБКА!!! Число должно быть от Nz до Vz.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Osnov(var m:integer;d:pnt); Расчёты программы.

M – параметрическая переменная.

D - параметрическое значение.

В этой процедуре происходят расчёты основной программы:

Проверка на равность отдельных отрезков исходящих из одной точки.

На существование возможных радиусов. И на существование наименьшего радиуса. Запись в текстовый файл Минимального радиуса.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Klava; Bвод входных данных с клавиатуры.

Ввод входных данных с клавиатуры. Контроль вводимых данных при помощи процедуры Val (). И в дальнейшем выполнение расчётов.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure ReDFile; Cоздание выходного файла.

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

Если файл существует производится выполнение расчётов. Если не существует, то появляется сообщение: 'О Ш И Б К А ! Файл не существует!'

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure CrTFile; Cоздание входного файла.

Создание файла. Запись в этот файл координат точек.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Procedure Menu; Выводит на экран меню программы.

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

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Выполнение самой программы.

Сама программа состоит из двух процедур: Titlist, Menu.

//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//--//

Листинг программы :

PROGRAM L_3;

Uses crt;

Type Point = Record {zapis s koordinatami to4ek}

x : integer; {koordinatu X}

y : integer; {koordinatu Y}

END;

pnt = Array [1..20] Of Point; {koordinati to4ek}

{*************************** ************************************************}

{****************************************************************************}

procedure Titlist;

BEGIN

clrscr;

writeln(' Doneckiy gosudarstvennuy institut intelekta');

writeln;

writeln;

gotoxy(40,6);

write('Kafedra programnogo obespecheniy');

gotoxy(40,7);

writeln(' intellektualnuh sistem');

gotoxy(19,10);

writeln(' Laborotornay rabota #3');

writeln(' po kursu:"OP i AY"');

writeln(' po teme:"Razrabotka formatov hranenij dannih programmi. "');

gotoxy(60,20);

write('Vupolnil:');

gotoxy(60,21);

write(');

gotoxy(60,22);

write();

writeln;

writeln;

writeln;

write('Nagmite lubuy klavishu');

readkey;

clrscr;

writeln(' Zadanie: Zadono mnogestvo tochek . Nayti parametru');

writeln('minimalnogo radiusa,prohodyshie cherez 3 tochki mnogestva.');

gotoxy(1,25);

write('Nagmite lubuy klavishu...');

readkey;

END;

{****************************************************************************}

{****************************************************************************}

function IntToStr(V:integer):string;

var S:string[11];

BEGIN

Str(V,S);

IntToStr:=S;

END;

{**************************** *********************************************}

procedure PROV(Prigl:string; var V:integer; nz,vz:integer);

{Prigl-priglawenie, V-vozrawaemoe 4islo,

nz-nignee zna4enie,vz-verhnee zna4enie}

Var S,S1:string[11];

Code:integer;

f:boolean;

BEGIN

repeat

write(Prigl);

f:=false;

readln(S);

val(S,V,Code);

if (Code)<>0 then

writeln(' OSHIBKA','NEKORECTNIE DANNUE')

else begin

str(V,S1);

if S1 <> S then

writeln(' OSHIBKA','VVEDENNOE CHISLO VNE RAMKAH DEAPOZONA')

else

if ((V<nz) or (V>vz)) then begin

writeln(' OSHIBKA','CHISLO DOLGNO BUT OT '+InttoStr(nz)+' DO '+IntToStr(vz));

end

else f:=true;

end;

Until f;

END;

{****************************************************************************}

{****************************************************************************}

procedure Osnov(var m:integer;d:pnt);

Var out_f:text; {M-kolli4estvo to4ek, D-koordinati tochek}

FName:string[20];

i,k,l:integer; {s4et4iki}

ki,kl,lk,li,ik,il:real; {dlinu vektorov}

rad1,rad2,rad3:real; {dlinu radiysov}

min:real; {Min. radiys}

BEGIN

ClrScr;

rad1:=0; rad2:=0; rad3:=0; min:=0;

for i:=1 to (m-2) do

BEGIN

textcolor(Green);

ik:=Sqrt(Sqr(D[i].x-D[k].x)+Sqr(D[i].y-D[k].y));

il:=Sqrt(Sqr(D[i].x-D[l].x)+Sqr(D[i].y-D[l].y));

if (il=ik) then

Begin

rad1:=ik;

writeln ( 'TOCHKA ',i,'- CENTR OKRYGNOSTI')

End

Else

writeln('TOCHKA ',i,' NE JAVLJETSJ CENTROM OKRYGNOSTI');

END;

for k:=i+1 to (m-1) do

BEGIN

textcolor(lightgray);

ki:=Sqrt(Sqr(D[i].x-D[k].x)+Sqr(D[i].y-D[k].y));

kl:=Sqrt(Sqr(D[l].x-D[k].x)+Sqr(D[l].y-D[k].y));

if (kl=ki) then

Begin

rad2:=ki;

writeln ( 'TOCHKA ',k,'- CENTR OKRYGNOSTI')

End

Else

writeln('TOCHKA ',k,' NE JAVLJETSJ CENTROM OKRYGNOSTI');

END;

for l:=k+1 to m do

BEGIN

textcolor(blue);

lk:=Sqrt(Sqr(D[k].x-D[l].x)+Sqr(D[k].y-D[l].y));

li:=Sqrt(Sqr(D[i].x-D[l].x)+Sqr(D[i].y-D[l].y));

if (lk=li) then

Begin

rad3:=lk;

writeln ( 'TOCHKA ',l,'- CENTR OKRYGNOSTI')

End

Else

writeln('TOCHKA ',l,' NE JAVLJETSJ CENTROM OKRYGNOSTI');

END;

writeln ('Nagmite lubyu klaviwy...');

readLn;

if rad1>0 then

BEGIN

textcolor(lightred);

min:=rad1;

writeln ('Min. radiys= ' ,min:4:2,' ¤«п в®зЄЁ' ,i,'');

if ((rad2>0) and (rad2<min)) then

Begin

min:=rad2;

writeln ('Min. radiys= ' ,min:4:2,' dlj tochki' ,k,'');

End;

if ((rad3>0) and (rad3<min)) then

Begin

min:=rad3;

writeln ('Min.radiys= ' ,min:4:2,' dlj tochki' ,l,'');

End

ELSE

if rad2>0 then

BEGIN

min:=rad2;

writeln ('Min.radiys= ' ,min:4:2,' dlj tochki' ,k,'');

if ((rad3>0) and (rad3<min)) then

Begin

min:=rad3;

writeln ('Min. radiys= ' ,min:4:2,' dlj tochki' ,l,'');

End

ELSE

if rad3>0 then

BEGIN

min:=rad3;

writeln ('Min. radiys= ' ,min:4:2,' dlju tochki' ,l,'');

END;

if min=0 then

writeln ('TOCHKA NE OBRAZUET RADIYS OKRYGNOSTI');

readkey;

End;

End;

TextColor(3);

TextBackground(0);

GoToXY(30,13);

WriteLn('Min. radiys=: ', min:4:2);

GoToXY(3,25);

NormVideo;

write('Dlj sohranenij nagmite ''ctrl+S'' ');

GoToXY(50,25);

write('Dlj prodolgenij nagmite ''Esc'' ');

if ReadKey=#19 then begin

clrscr;

write('Vvedite imj vihodnogo fajla: ');

readLn(FName);

Assign(out_f,FName);

Rewrite(out_f);

WriteLn(out_f,'Min. radiys= ',min);

Close(out_f);

writeln('Fajl yspewno sohranen');

readln;

end;

END;

{******************** *******************************************************}

{****************************************************************************}

procedure Klava;

Var

m:integer; {kolli4estvo to4ek}

i:integer; {s4et4ik}

d:pnt; {koordinati to4ek}

BEGIN

clrscr;

PROV('Kolli4estvo to4ek M=',m,3,20);

for i:=1 to M do begin

writeLn('Vvedite koordinati ', i, '-j to4ki:');

PROV('.X = ', D[i].X,-99,99);

PROV('.Y = ', D[i].Y,-99,99);

end;

Osnova(m,d);

END;

{*********************** ****************************************************}

{****************************************************************************}

procedure ReDFile;

var in_f:file;

FName:string[20];

f:word;

m:integer; {kolli4estvo to4ek}

i:integer; {s4et4ik}

d:pnt; {koordinati to4ek}

BEGIN

clrscr;

f:=0;

write('Vedite imj fajla: ');

readLn(FName);

Assign(in_f,FName);

{$I-}

Reset(in_f,2);

{$I+}

if IOResult=0 then

begin

blockread(in_f, m,1);

for i:=1 to m do begin

blockread(in_f, D[i].X,1);

blockread(in_f, D[i].Y,1);

end;

Close(in_f);

if f=0 then

Osnova(m,d);

end

else

begin

writeln('OSHIBKA','FAJL NE SYWESTVYET');

readln;

end;

END;

{*********************** ****************************************************}

{****************************************************************************}

procedure CrTFile;

var in_f: file;

FName:string[20];

m:integer; {kolli4estvo to4ek}

i:integer; {s4et4ik}

D:pnt; {koordinati to4ek}

BEGIN

clrscr;

write('Vvedite imj fajla: ');

readLn(FName);

Assign(in_f,FName);

begin

clrscr;

Rewrite(in_f,2);

PROV('Vvedite kolli4estvo to4ek:',m,3,20);

BlockWrite(in_f,m,1);

for i:=1 to m do begin

writeLn('Vvedite koordinati ', i, '-j to4ki:');

PROV('.X = ', D[i].X,-99,99);

BlockWrite(in_f, D[i].X,1);

PROV('.Y = ', D[i].Y,-99,99);

BlockWrite(in_f, D[i].Y,1);

end;

ClrScr;

Close(in_f);

clrscr;

writeln('Fajl yspewno sozdan');

readln;

end;

END;

{****************************************************************************}

{****************************************************************************}

procedure Menu;

var

ch:char;

BEGIN

repeat

clrscr;

writeLn('4to vi hotite sdelat:');

writeLn('1: dlj voda vhodnih dannih s klaviatyru..');

writeLn('2: dlj s4ituvanij vhodnih dannih iz fajla..');

writeLn('3: dlj sozdanij vhodnogo fajla..');

writeLn(#10#13);

writeLn('0: dlj vihoda..');

repeat

ch:=ReadKey;

Until (ch='1') or (ch='2') or (ch='3') or (ch='0');

case ch of

'1': Klava;

'2': ReDFile;

'3': CrTFile;

end;

Until ch='0';

END;

{****************************************************************************}

{****************************************************************************}

BEGIN

Titlist;

Menu;

END.

5. Тестовые примеры

Входной файл:

Координаты 1-ой точки:

.X = 4

.Y = 6

Координаты 2-ой точки:

.X = 9

.Y = 0

Координаты 3-ей точки:

.X = 32

.Y = 6

Выходной файл:

Мин. радиус =: 7.21

Входной файл:

Координаты 1-ой точки:

.X = 10

.Y = 9

Координаты 2-ой точки:

.X = -34

.Y = -2

Координаты 3-ей точки:

.X = 3

.Y = 56

Координаты 4-ой точки:

.X = 1

.Y = 0

Выходной файл:

Мин. радиус =: 34.06

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений06:40:05 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
19:47:44 28 ноября 2015

Работы, похожие на Лабораторная работа: Разработка формата хранения данных программ и решение задач

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(151098)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru