Разработка форматов хранения программ. Структурирование
Основная цель этого блока, ввод данных для работы программы. Дополнительная цель, вывод информации. Два условия проверки вводимых данных. Первое условие проверки на количество точек. Второе, на правильность ввода координат точек. Созданные подпрограммы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 13.02.2009 |
Размер файла | 154,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство Образования и Науки Украины
Государственный Университет Информатики
и Искусственного Интелекта
Кафедра программного обеспечения интеллектуальных систем
Лабораторная работа №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 Текстовые примеры программ.
Первый вариант работы программы.
Вариант второй.
Подобные документы
Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011Разработка ввода с клавиатуры и вывода на экран монитора данных с помощью стандартных функций printf и scanf. Ввод количества материальных точек. Работа с линейным списком. Хранение содержимого списка в блоке ячеек памяти с последовательными адресами.
курсовая работа [176,8 K], добавлен 18.01.2016Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.
лабораторная работа [62,0 K], добавлен 15.07.2010Процедуры и функции языка Pascal для работы с файлами прямого и последовательно доступа. Формат и структура в файлах прямого доступа. Возможность ввода данных с клавиатуры либо из файла. Контроль вводимых данных. Листинг программы и ее экранные формы.
лабораторная работа [48,7 K], добавлен 13.02.2009Выделение сущностей для создания структуры хранения данных. Выбор технологии ввода данных таксационных описаний. Разработка программного обеспечения для ввода данных таксационных описаний и его реализация. Безопасность геоинформационной системы.
дипломная работа [2,1 M], добавлен 20.07.2012Разработка алгоритма, представление его в виде блок-схемы. Программа для табулирования функции. Ввод и вывод данных с рабочего листа MS Excel. Ввод данных через диалоговое окно, вывод результатов на рабочий лист MS Excel. Вычисление суммы членов ряда.
контрольная работа [329,7 K], добавлен 16.10.2013Применение средств САПР для создания связи баз данных с чертежом. Создание связи между таблицами базы данных. Разработка команды САПР AutoСAD для гидромотора. Ввод промежуточных параметров. Определение полярных координат точек, секция отрисовки.
курсовая работа [1,8 M], добавлен 28.01.2016Разработка базы данных "Поставка и реализация продуктов питания". Применение базы данных. Цель инфологического проектирования. Выборка информации при помощи запросов. Подпрограммы, работающие на сервере и управляющие процессами обработки информации.
курсовая работа [326,0 K], добавлен 28.06.2011Разработка алгоритма работы. Выбор и обоснование структурной схемы. Разработка функциональной схемы блока ввода и блока вывода. Проектирование принципиальной схемы блока ввода и блока вывода, расчет элементов. Разработка программного обеспечения.
курсовая работа [1,7 M], добавлен 25.12.2011Разработка программ на языке Turbo Pascal на основе использования массивов данных. Особенности хранения данных, способы объявления переменных, действия над элементами массивов, их ввод и вывод. Практическое применение одномерных и многомерных массивов.
методичка [17,8 K], добавлен 25.11.2010