РефератыИнформатика, программированиеРаРазработка форматов хранения программ. Структурирование

Разработка форматов хранения программ. Структурирование

Министерство Образования и Науки Украины


Государственный Университет Информатики


и Искусственного Интелекта


Кафедра программного обеспечения интеллектуальных систем


Лабораторная работа №2


по дисциплине: Основы алгоритмизации и программирования


на тему: «Разработка форматов хранение программ. Структурирование.»


Выполнил студент


группы ПО-07д


Канатников Дмитрий


Проверил


2007год


План


1. Титульный лист


2. План


3. Задание


4. Описание блоков


5. Описание подпрограмм


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


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


Пункт №3 Задание.


Задание:
Лабораторной работы №2 по дисциплине: основы алгоритмизации и программирования.


Вариант №5


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



Пункт №4 Описание блоков.


Данная задача может быть разделена на 3 основных блока, а второй в свою очередь еще на 3 подблока.


1 – Ввод данных.


Основная цель этого блока ввод данных для работы программы. Дополнительная цель вывод информации. В этом блоке есть два условие проверки вводимых данных. Первое условие проверки на количество точек. Второе на правильность ввода координат точек.


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


2 – Основная часть программы.


Цель данного блока это ответ на основной вопрос программы. Блок как выше было сказано, делится еще на 3 подблока.


2.1 – Проверка на наличие точек в каждом квадранте. Возможно, что в каком-то или каких-то четвертях нет точек вследствие программа выдает результат не наличия точек во всех квадрантах.


2.2 – В этом подблоке программы мы используем четыре переменных в которых будет храниться номер ячейки массива в которой находится наиболее удаленная точка от начала координат после поиска в каждой четверти соответственно переменные max1, max2, max3, max4.


2.3 – Это часть блока проверяет принадлежность четырех угольнику построенному по точкам наиболее удаленным от начала координат уникальных свойств параллелограмма (стороны попарно равны и параллельны) положительный или отрицательный результат присваивается функции otvet (логического типа).


3 – Вывод данных.


В этом блоке завершающий этап программы выводятся точки выбранные в подблоке 2.2 и ответ на основной вопрос программы он же зависит от функции otvet, если функция имеет значение ИСТИНА то ответ положительный и если ЛОЖЬ то отрицательный. По окончание этого блока предлагается повторно использовать программу.


На этом программа завершает свою работу.



Пункт №5 Описание подпрограмм.


В этом пункте мы рассмотри все используемые процедуры и функции в программе их действия


Созданные подпрограммы:


Процедура max_kvan это процедура использующая аргумент А файл типа tochka (новый тип данных типа запись) каждый элемент файла имеет два поля Х и У вещественого типа. Процедура находит растояние от начала координат до заданной точки паралельно деля точки по квадрантам в конце программы аргументам b, c, d, e присваивается номер ячейки файла по которому потом можно обратится к файлу за координатами точки. В процедуре используется ключевое слово var перед аргументами процедуры что позволяет изменять эти аргумент в ходе процедуры.


Процедура vivod выводит точки максимально удаленные от начала координат и ответ на вопрос задачи (для этого используется функция otvet которая будет описана ниже).


Функция kvan_zapoln делает проверку на наличие точек в каждом квадранте аргументы файл с координатами точек. Функция логического типа соответственно сама функция показывает на наличие или отсутствия точек в квадрантах.


Функция otvet функция логического типа проверяет условие существования четырехугольника построенного по выбранным из множества точкам как параллелограмма. Аргументы это координаты точек.



Пункт № 6 Листинг программы.


program Laba_var_5 ;


type


tochka = record


x,y: real;


end;


var


s:array [1..100] of tochka;


g,n:integer;


t:tochka;


istin:boolean;


r:string;


io:real;


i,max1,max2,max3,max4:integer;


procedure max_kvan(var b,c,d,e:integer; j,q:integer;var a:array of tochka);


begin


b:=0;


d:=0;


c:=0;


e:=0;


for j:=1 to q do


begin


if (a[j].x>0) and (a[j].y>0) then


if sqrt(sqr(a[j].x)+sqr(a[j].y))>b then


b:=j;


if (a[j].x<0) and (a[j].y>0) then


if sqrt(sqr(a[j].x)+sqr(a[j].y))>c then


c:=j;


if (a[j].x<0) and(a[j].y<0) then


if sqrt(sqr(a[j].x)+sqr(a[j].y))>d then


d:=j;


if (a[j].x>0) and (a[j].y<0) then


if sqrt(sqr(a[j].x)+sqr(a[j].y))>e then


e:=j;


end;


end;


function otvet(bx,by,cx,cy,dx,dy,ex,ey:real):boolean;


begin


if (bx-cx=ex-dx) and (cy-dy=by-ey)


and (by-cy=ey-dy) and (cx-dx=bx-ex) then


otvet:=true


else


otvet:=false;


end;


function kvan_zapol (a:array of tochka):boolean;


var k1,k2,k3,k4:integer;


begin


k1:=0; k2:=0;


k3:=0; k4:=0;


for i:=1 to n do


begin


if (a[i].x>0) and (a[i].y>0) then


k1:=K1+1;


if (a[i].x<0) and (a[i].y>0) then


k2:=K2+1;


if (a[i].x<0) and (a[i].y<0) then


k3:=K3+1;


if (a[i].x>0) and (a[i].y<0) then


k4:=K4+1;


end;


if (k1>0)and(k2>0)and(k3>0)and(k3>0)then


kvan_zapol:=true


else


kvan_zapol:=false;


end;


procedure vivod (bx,by,cx,cy,dx,dy,ex,ey:real;a:array of tochka);


begin


writeln('Координаты точки 1 четверти[',bx:5:2,':',by:5:2,']');


writeln('Координаты точки 2 четверти[',cx:5:2,':',cy:5:2,']');


writeln('Координаты точки 3 четверти[',dx:5:2,':',dy:5:2,']');


writeln('Координаты точки 4 четверти[',ex:5:2,':',ey:5:2,']');


writeln('Паралеллограм состоящий из этих точек');


if otvet(a[max1].x,a[max1].y,a[max2].x,a[max2].y,


a[max4].x,a[max4].y,a[max4].x,a[max4].y) then


writeln('действительный')


else


writeln('Недействительный');


end;


procedure info ;


begin


writeln('Здравствуйте вы используете программ для решения следующей задачи:');


writeln('На плоскости задано множество точек.');


writeln('Из каждого квадранта взята точка, максимально');


writeln('удаленная от начала координат. Проверить,');


writeln('будет ли параллелограммом четырехугольник');


writeln('построенный по выбранным из множества точкам.');


end;


procedure kol_toch (var rio:real; var q:integer);


begin


{$i-}


repeat


writeln('Введите количество точек.');


readln(q);


rio:=ioresult;


if rio <> 0 then


begin


writeln('Ошибка ввода.После нажатия ENTER попробуйте еше раз.');


readln;


end


else


if q<4 then


writeln('Не достаточно точек. Введите значение заново.');


until (rio = 0) and (q>3) ;


{$i-}


end;


procedure vvod_toch (q:integer; var rio:real; var a: array of tochka);


begin


{$i-}


repeat


for i:=1 to q do


begin


writeln('введите x[',i,']');


readln(a[i].x);


writeln('введите y[',i,']');


readln(a[i].y);


end;


rio:=ioresult;


if rio<>0 then


begin


writeln('Ошибка ввода. После нажатия ENTER попробуйте еше раз сначала.');


readln;


end


until rio = 0;


{$i+}


end;


procedure povtor(var f:integer; rio:real);


begin


{$i-}


repeat


writeln('1-Да');


writeln('0-Нет');


readln(f);


rio:=ioresult;


if (rio<>0)or(f<>0)and(f<>1) then


writeln('Ошибка ввода. Попробуйте еще раз.');


until (rio=0)and(f=0)or(rio=0)and(f=1);


{$i+}


end;


begin


repeat


info;


kol_toch(io,n);


vvod_toch(n,io,s);


kvan_zapol(s);


if kvan_zapol(s) then


begin


max_kvan(max1,max2,max3,max4,i,n,s);


vivod(s[max1].x,s[max1].y,s[max2].x,s[max2].y,


s[max4].x,s[max4].y,s[max4].x,s[max4].y,s);


end


else


begin


writeln('Точки не во всех квадрантах. Воспользоваться программой еще раз');


end;


povtor(g,io);


until g=0 ;


readln;


end.


Пункт № 7 Текстовые примеры программ.


Первый вариант работы программы.



Вариант второй.


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка форматов хранения программ. Структурирование

Слов:1113
Символов:10787
Размер:21.07 Кб.