Реферат по предмету "Информатика, программирование"


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

Министерство Образования и Науки Украины
Государственный Университет Информатики
и Искусственного Интелекта
                                                                                         Кафедрапрограммного обеспечения интеллектуальных систем
Лабораторная работа №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 Листинг программы.
programLaba_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].x0) then
                  if sqrt(sqr(a[j].x)+sqr(a[j].y))>c then
                      c:=j;
               if (a[j].x
                  if sqrt(sqr(a[j].x)+sqr(a[j].y))>d then
                      d:=j;
               if (a[j].x>0) and (a[j].y
                  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].x0) then
                    k2:=K2+1;
                  if (a[i].x
                    k3:=K3+1;
                  if (a[i].x>0) and (a[i].y
                    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;
 procedureinfo ;
     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
               writeln('Недостаточно точек. Введите значение заново.');
        until (rio = 0) and (q>3) ;
       {$i-}
    end;
procedurevvod_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 rio0 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 (rio0)or(f0)and(f1) 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 Текстовыепримеры программ.
Первый вариант работыпрограммы.
/>
Вариант второй.
/>


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.