Блок-схема Delphi

Автор работы: Пользователь скрыл имя, 23 Июля 2014 в 18:43, курсовая работа

Краткое описание

Delphi— императивный, структурированный, объектно-ориентированный язык программирования, диалект Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal. Начиная с 2007 года уже язык Delphi (производный от Object Pascal) начал жить своей самостоятельной жизнью и претерпевал различные изменения, связанные с современными тенденциями (например, с развитием платформы .NET) развития языков программирования: появились class helpers, перегрузки операторов и другое.

Содержание

Введение
История Delphi ……………………………………………… 2
Постановка задачи ………………………………………….. 5
Блок-схема
Основного алгоритма……………………………………….. 6
Подпрограмм ………………………………………………... 7
Листинг программы …………………………………………….. 10
Описание ………………………………………………………… 22
Заключение ……………………………………………………… 24
Список использованной литературы ………………………….. 25

Прикрепленные файлы: 1 файл

Содержание.docx

— 597.60 Кб (Скачать документ)

  // col - количество столбцов  массива m2d

  // возвращает введенный  массив m2d[0..row-1][0..col-1]

  // true - если массив успешно сформирован

function TForm1.vvodmas(Var m2d: t2dArray; row: Integer; col: Integer):Boolean;

var

  i, j: Integer; // индексы массива

  r:Real;

begin

  result:=False;

  SetLength(m2d, row); // задаем количествл строк массива

  // задаем количество  столбцов для каждой строки

  for i := 0 to row - 1 do

    SetLength(m2d[i], col);

  for i := 0 to row - 1 do

  begin

    for j := 0 to col - 1 do

    begin

      try

        //преобразуем  строку в вещественное значение

        r:=StrToFloat(strgrd_mn.Cells[j+1,i+1]);

      except

       //если  значение строки нельзя преобразовать  в вещественное значение

       on E : Exception do

        begin

         ShowMessage('Ошибка в ячейке m='+IntToStr(i+1)+', n='+IntToStr(j+1)+#$0d+#$0a+E.Message);

         //завершаем работу подпрограммы

         Exit;

        end;

      end;

      //присваиваем  элементу массива значение

      m2d[i, j]:=r;

    end;

  end;

  result:=True;

end;

procedure TForm1.btn_nClick(Sender: TObject);

begin

  vvod_n(StrToInt(edt_n.Text));

end;

// функция нахождения  пересечения двух множеств и  формирования одномерного массива

// m2d - двумерный массив  с результатами эксперимента [0..row-1][0..col-1]

// row - количество строк  массива m2d

// col - количество столбцов  массива m2d

// возвращает полученный  одномерный массив m1d и его длину

function TForm1.peresech(m2d: t2dArray; row: Integer; col: Integer;

  var m1d: t1dArray): Integer;

var

  i, j, k, p: Integer; // индексы массива

  len: Integer; // количество элементов массива m1d

  next: Boolean; // переход к  следующему элементу

begin

  len := 0;

  // первая половина  строк матрицы - первое множество

  for i := 0 to (row div 2) - 1 do

  begin

    for j := 0 to col - 1 do

    begin

      next := False;

      // вторая  половина строк матрицы - второе  множество

      for k := (row div 2) to row - 1 do

      begin

        for p := 0 to col - 1 do

        begin

          // каждый элемент первого множества  проверяем на равенство

          // с каждым из элементов второго  множества

          if m2d[i, j] = m2d[k, p] then

          begin

            SetLength(m1d, len + 1); // увеличиваем длину  массива m1d на 1

            m1d[len] := m2d[i, j]; // сохраним элемент  массива m2d в массиве m1d

            len := len + 1; // увеличим на 1 количество  элементов массива m1d

            next := True; // переходим к следующему  элементу

            Break; // выходим из цикла  for p:=0 to col-1 do

          end;

        end;

       if next then

    Break; // выходим из цикла for k:=(row div 2) to row-1 do

   end;

   end;

  end;

  result := len; // возвращаем  длину полученного одномерного  массива

end;

// функция расчета среднего  арифметического значения элементов  одномерного массива

// m1d - одномерный массив [0..len-1]

// len - длина массива m1d

// возвращает среднее  арифметическое значение элементов  массива m1d

function TForm1.srednee(m1d: t1dArray; len: Integer): Real;

var

  sum: Real; // сумма элементов  массива

  i: Integer; // индекс массива

begin

  sum := 0;

  // находим сумму элементов массива

  for i := 0 to len - 1 do

    sum := sum + m1d[i];

  // находим и возвращаем  среднее арифметическое значене  элементов массива m1d

  result := sum / len;

end;

// функция формирования  откорректированного одномерного  массива

// m1d - одномерный массив [0..len-1]

// len - длина массива m1d

// sr - среднее арифметическое  значение элементов массива m1d;

// возвращает откорректированный  одномерный массив m1d1 и его длину

function TForm1.correct(m1d: t1dArray; len: Integer; sr: Real;

  var m1d1: t1dArray): Integer;

var

  i: Integer; // индекс массива

  len1: Integer; // количество элементов откоректированного массива

begin

  len1 := 0;

  for i := 0 to len - 1 do

  begin

    // если элемент  отличается от среднего арифметического  значения

    // более чем  на 50%, то не включаем его в  откорректированный

    // одномерный массив

if not(((m1d[i] / sr) > 1.5))  then

    if not ((m1d[i] / sr) < 0.5) then    begin

      SetLength(m1d1, len1 + 1); // увеличиваем длину массива m1d1 на 1

      m1d1[len1] := m1d[i]; // сохраним элемент массива m1d в  массиве m1d1

      len1 := len1 + 1; // увеличим на 1 количество элементов  массива m1d1

    end;

  end;

  result := len1; // возвращаем  количество элементов массива m1d1

end;

// процедура вывода одномерного  массива

// m1d - одномерный массив [0..len-1]

// len - длина массива m1d

procedure TForm1.vyvodmas(m1d: t1dArray; len: Integer);

var

  i: Integer; // индекс массива

begin

  //зададим количество столбцов

  strgrd_y.ColCount:=len;

  //подпишем столбцы

  for i := 0 to len - 1 do strgrd_y.Cells[i,0]:=IntToStr(i+1);

  //заполним таблицу значениями одномерного массива

  for i := 0 to len - 1 do strgrd_y.Cells[i,1]:=FloatToStr(m1d[i]);

end;

procedure TForm1.btnRaschetClick(Sender: TObject);

begin

    // формируем двумерный  массив c данными эксперимента

  if (vvodmas(A, m, n)) then

  begin

    // нахождения пересечения  двух множеств и формирования  одномерного массива

    xlen := peresech(A, m, n, X);

    // находим среднее арифметическое значене элементов массива X

    xsr := srednee(X, xlen);

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

    ylen := correct(X, xlen, xsr, Y);

    // находим среднее арифметическое значене элементов массива Y

    ysr := srednee(Y, ylen);

    // вывод результатов

    // Размер полученного  одномерного массива

    edt_xlen.Text:=IntToStr(xlen);

    // Среднее арифметическое значение элементов массива

    edt_xsr.Text:=FloatToStr(xsr);

    // Количество удаленных  элементов массива

    edt_del.Text:=IntToStr(xlen-ylen);

    // Размер откорректированного массива

    edt_ylen.Text:=IntToStr(ylen);

    // Среднее арифметическое  значение элементов откорректированного  массива

    edt_ysr.Text:=FloatToStr(ysr);

    // Элементы откорректированного массива

    vyvodmas(Y, ylen);

  end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

  vvod_n(3);

end;

end.

    4.Описание программы

Запускаем программу. В открывшемся окне (Рисунок 1.1) вводим нужный размер массива, с которым будем работать. Нажимаем «Изменить». Записываем нужные нам цифры (Рисунок 1.2). Нажимаем «Рассчитать». В edt_xlen заносится размер полученного одномерного массива. После чего мы находим среднее арифметическое значение элементов массива и записываем это число в edt_xsr. Следующим действием мы узнаю количество удаленных элементов массива, и полученный результат заносим в edt_del. Из выполнимых действий мы формируем новый откорректированный массив и заносим полученные числа в стрингрид, и находим среднее арифметическое значение элементов этого массива.

Рисунок 1.1

Рисунок 1.2

Рисунок 1.3

 

5. Заключение

Целью данной курсовой работы является написание работоспособной программы по заданным условиям. Ознакомился и чётко усвоил основы алгоритмизации и особенности написания объектно-ориентированных программ по сравнению с консольными приложениями.

Полученные знания станут существенным подспорьем в дальнейшей работе.

 

6.Литература

 

  1. Архангельский, А. Я. Программирование в Delphi : учебник по классическим версиям Delphi / А. Я. Архангельский. – Москва : Бином, 2008. – 1154 с.
  2. Бобровский, С. И. Delphi 7: учебный курс / С. И. Бобровский. – Санкт-Петербург : Питер, 2008. – 736 с.
  3. Графические средства Delphi: методические указания для самостоятельной работы студентов механических специальностей дневной и заочной форм обучения по дисциплинам : "Информатика", "Вычислительная техника, программирование и расчеты на ЭВМ" / УО "ВГТУ" ; сост. В. П. Терентьев, Т. П. Стасеня. – Витебск, 2007. – 61 с.
  4. Климов, Ю. С. Программирование в среде Turbo Pascal 6.0 : справ. пособие / Ю. С. Климов, А. И. Касаткин, С. М. Мороз. – Минск : Вышэйшая школа, 1992. – 158 с.
  5. Методические указания к курсовому проектированию для студентов механических специальностей по предметам цикла "Информатика" / УО "ВГТУ" ; сост. В. П. Терентьев, А. С. Дягилев, Т. П. Стасеня. – Витебск : УО "ВГТУ", 2004. – 81 с.
  6. Программирование на персональных ЭВМ : практикум / под ред. Д. В. Офицерова. – Минск : Вышэйшая школа, 1993. – 256 с.
  7. Сурков, Д. А. Программирование в среде Borland Pascal для Windows : справочное пособие / Д. А. Сурков, К. А. Сурков, А. Н. Вальвачев. – Минск : Вышэйшая школа, 1996. – 432 с.
  8. Фаронов, В. В. Delphi : учебник / В. В. Фаронов. – Санкт-Петербург : Питер, 2010. – 640 с.
  9. Фаронов, В. В. Delphi. Программирование на языке высокого уровня : учебник для студентов вузов, обучающихся по направлению подготовки дипломированных специалистов "Информатика и вычислительная техника" / В. В. Фаронов. – Санкт-Петербург : Питер, 2010, 2007. – 640 с.
  10. Фаронов, В. В. Основы Турбо Паскаля : учеб. пособие / В. В. Фаронов. – Москва: Учебно-инженерный центр «МВТУ-ФЕСТО ДИДАКТИК», 1992. – 304 с.
  11. Язык программирования Object Pascal (Delphi) : курс лекций по дисциплине "Вычислительная техника, программирование и расчеты на ЭВМ" для студентов механических спец. / УО "ВГТУ" ; сост. В. П. Терентьев. – Витебск : УО "ВГТУ", 2005. – 75 с.

 

 

 

 


Информация о работе Блок-схема Delphi