Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритмы решения вычислительных задач




Задач

Разработка и реализация типовых алгоритмов решения вычислительных

Введение

Практическое задание................................................................................ 13

Среда разработки приложений......................................................... 10

Алгоритмы решения вычислительных задач.................................... 6

Разработка и реализация типовых алгоритмов решения вычислительных

задач............................................................................................................... 6

2.1 Реализация вычислений и формирование графика функции............. 13

2.2 Обработка одномерных массивов....................................................... 17

2.3 Обработка двумерных массивов......................................................... 19

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

Список литературы....................................................................................... 25

 

 


 

Целью выполнения курсовой работы является освоение технологии программирования и реализации вычислительных задач в среде программирования Delphi. Реализация поставленной цели предполагает решение следующих задач:

- освоение технологий разработки типовых алгоритмов решения вычислительных задач;

- освоение технологии реализации программ в среде визуального программирования;

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

- разработка программы обработки одномерных массивов;

- разработка программы работы с матрицами.

В первом разделе описываются типовые алгоритмы решения вычислительных и среда программирования Delphi.

Во втором разделе описана реализация практических заданий.

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


 

Алгоритм – конечная последовательность предписаний, однозначно определяющая процесс преобразования исходных и промежуточных данных в результат решения задачи [1].

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

Существуют следующие формы представления алгоритмов: словесная; графическая [3].

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

Графическая форма представления алгоритмов является более компактной и наглядной. Алгоритм изображается в виде последовательности связанных между собой блоков, каждый из которых соответствует выполнению одного или нескольких операторов. Такое графическое представление называется структурной схемой алгоритма.

Графическая форма представления алгоритмов является более компактной и наглядной. Алгоритм изображается в виде последовательности связанных между собой блоков, каждый из которых соответствует выполнению одного или нескольких операторов. Такое графическое представление называется структурной схемой алгоритма.

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

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

 

Таблица 1

Блоки структурной схемы

 

Процесс (вычисления) a   b Решение (проверка условия) a   b
Предопределенный процесс (подпрограмма) 0.15a a     b Ввод-вывод a     b 0.25a  
Соединительные линии
       
 
 
   

 

Модификация (начало цикла) a   a     b
Начало-конец   0.5a   B Комментарии   a    
Внутристраничный соединитель     0.5a   Межстраничный соединитель 0.5a   0.5a    

 

Примечание. Значение a принимается из ряда чисел 10; 15; 20… мм; b = 1,5 a.

Циклические алгоритмы – это алгоритмы, в которых происходит повторение некоторой последовательности действий [2].

Пример 1. В массиве P(20) найти количество положительных элементов и сформировать новый массив Р1, каждый элемент которого получается делением соответствующего элемента массива P на найденное количество. Составить блок-схему алгоритма. Блок-схема циклического алгоритма представлена на рисунке 1.

 

       
 
 
   

 

 


Рисунок 1 – Циклическая блок-схема алгоритма

Пример 2. Составить программу, которая в матрице A(4,5) определит сумму элементов каждой строки, выберет среди них наибольшую и выведет на экран дисплея матрицу A, суммы строк, наибольшую сумму и номер строки с наибольшей суммой. Блок-схема алгоритма программы представлена на рисунке 2.

 
 

 

 


Рисунок 2 – Циклическая блок-схема алгоритма (начало)

 

 

 

 


Рисунок 2 – Циклическая блок-схема алгоритма (окончание)

 

 

1.2 Среда разработки приложений

 

Интегрированная среда разработки приложений в Delphi представляет многооконную систему. После загрузки Delphi обычно представлены 6 окон:

- главное окно (Project1);

- окно Обозревателя объектов (Object Tree View);

- окно Инспектора объектов (Object Inspector);

- окно Конструктора формы (Form1);

- окно Редактора кода (Unit1.pas);

- окно Проводника кода (Exploring Unit1.pas).

Окно Конструктора формы (по умолчанию Form1) находится в центре экрана. В окно переносятся компоненты из Палитры компонентов для проектирования приложения. Работа самого конструктора формы не видна, поэтому часто это окно называют окном Формы или Формой.

Окно Редактора кода (по умолчанию Unit1.pas) находится под окном формы. В окне Редактора можно редактировать текст модуля и другие текстовые файлы приложения. Загрузка конкретного файла в Редактор происходит по щелчку на вкладке этого файла.

F12 – переключение между окнами Формы и Редактора.

В окне Проводника кода в виде дерева отображаются все объекты модуля формы. Быстрое перемещение по объектам приложения важно для больших приложений.

Окно Инспектора объектов находится в левой части экрана и отображает свойства и события объектов для текущей формы. Окно имеет две вкладки:

- свойства (Properties),

- события (Events).

Свойства отображают информацию о выбранном в форме объекте.

Созданное в Delphi приложение – это проект, состоящий из элементов:

- код проекта (.dpr);

- описания форм (.dfm);

- модули форм (.pas);

- модули (.pas);

- параметры проекта (.dof);

- описание ресурсов (.res).

Для каждой формы создаются 2 файла:

- описания формы.dfm,

- сам модуль.pas.

Файл.dfm содержит описание формы и ее компонентов. Файлы модулей оформляются по правилам ObjectPascal, хранятся в отдельных файлах.

Файл описания ресурсов имеет расширение res и может содержать следующие ресурсы Windows: пиктограммы, растровые изображения, курсоры.

Проект может быть откомпилирован в файл EXE или DLL – динамически загружаемую библиотеку. Компиляция выполняется по команде Project/Compile или <Ctrl>+<F9>.

Форма – важнейший визуальный компонент, видимое окно приложения в Delphi, на форме размещаются компоненты Delphi. Форму называют контейнером. Форма представлена компонентом Form класса TForm.

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

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

Форма может быть модальной и немодальной.

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

Немодальная - позволяет переключаться на другую форму без своего закрытия.

 


2 Практическое задание

2.1 Реализация вычислений и формирование графика функции

 

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

Функции согласно варианту № 4 имеют вид:

1) y(x)=a*x2+b*x+c;

2) y(x)=a*x+d.

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

 

 

Рисунок 3 – Главная форма программы с активной 1-й закладкой

 

 

Рисунок 4 – Главная форма программы с активной 2-й закладкой

 

Текст программы имеет следующий вид.


(* Процедура ввода исходных данных, вычисления и вывода функций *)

procedure TForm1.Button1Click(Sender: TObject);

var

a, b, c, d, y1, y2, x, xn, xk, xh: real;

i: integer;

begin

(* Ввод исходных данных и преобразование к числовому типу данных *)

a:= StrToFloat(Edit1.Text);

b:= StrToFloat(Edit2.Text);

c:= StrToFloat(Edit3.Text);

d:= StrToFloat(Edit4.Text);

xn:= StrToFloat(Edit5.Text);

xk:= StrToFloat(Edit6.Text);

xh:= StrToFloat(Edit7.Text);

x:= xn;

i:= 1;

(* Вывод названий графиков *)

Chart1.SeriesList[0].Title:='Y1';

Chart1.SeriesList[1].Title:='Y2';

(* Расчет значений функций и вывод точек на графике *)

while x <= xk do

begin

y1:= a*x*x+b*x+c;

y2:= a*x+d;

StringGrid1.Cells[0,i]:= IntToStr(i);

StringGrid1.Cells[1,i]:= FloatToStr(x);

StringGrid1.Cells[2,i]:= floatToStrF(y1,ffFixed,6,2);

StringGrid1.Cells[3,i]:= floatToStrF(y2,ffFixed,6,2);

Chart1.SeriesList[0].AddXY(x,y1);

Chart1.SeriesList[1].AddXY(x,y2);

StringGrid1.RowCount:= StringGrid1.RowCount + 1;

i:= i+1;

x:= x+ xh;

end;

end;

(*Процедура очистки окон ввода *)

procedure TForm1.Button2Click(Sender: TObject);

var

j, j1: integer;

begin

Edit1.Text:= '';

Edit2.Text:= '';

Edit3.Text:= '';

Edit4.Text:= '';

Edit5.Text:= '';

Edit6.Text:= '';

Edit7.Text:= '';

j1:= StringGrid1.RowCount;

StringGrid1.RowCount:= 2;

For j:= 1 to j1 do

begin

StringGrid1.Cells[0,j]:= '';

StringGrid1.Cells[1,j]:= '';

StringGrid1.Cells[2,j]:= '';

StringGrid1.Cells[3,j]:= '';

end;

end;

 

 

Результаты работы программы представлены на рисунках 5 и 6.

 

 

Рисунок 5 – Результат работы программы на первой закладке

 

 

 

Рисунок 6 – Результаты работы программы на второй закладке

 

 

2.2 Обработка одномерных массивов

 

Формулировка задания (вариант 13): дан массив а из n элементов, вычислить и вывести новый массив, элементы которого формируются по правилу: а12, а1а2, а1а3,…, а1аn.

Главная форма программы имеет вид, приведенный на рисунке 7.

 

 

Рисунок 7 – Главная форма программы

 

Текст программы представлен ниже.

Процедура ввода размера массива и формирования таблиц.

procedure TForm1.Button4Click(Sender: TObject);

var

i:integer;

begin

if edit1.text <> '' then

begin

n:= StrToInt(edit1.Text);

StringGrid1.RowCount:=n+1;

StringGrid2.RowCount:=n+1;

for i:=1 to n do

begin

StringGrid1.Cells[0,i]:=IntToStr(i);

StringGrid2.Cells[0,i]:=IntToStr(i);

end;

Label3.Enabled:=true;

end

else

MessageDlg('Ошибка, размер массива не введен', mtError, [mbOK],0);

end;

 

Процедура ввода элементов массива.

procedure TForm1.Label3Click(Sender: TObject);

var

i,p: integer;

begin

p:=0;

for i:= 1 to n do

if StringGrid1.Cells[1,i] ='' then p:=1;

if p = 0 then

begin

for i:=1 to n do

a[i]:=StrToFloat(StringGrid1.Cells[1,i]);

ShowMessage('Массив задан');

Button3.Enabled:=true;

Button4.Enabled:=true;

Button5.Enabled:=true;

end

else ShowMessage('Массив не задан полностью');

end;

 

Процедура очистки полей ввода.

procedure TForm1.Button2Click(Sender: TObject);

var

i, i1: integer;

begin

label3.Caption:=''; edit1.text:='';

for i:= 0 to n+1 do

for i1:= 0 to 1 do

StringGrid1.Cells[i1,i]:=''; StringGrid1.Cells [0,0]:='';

StringGrid1.Cells [1,0]:=''; StringGrid1.RowCount:= 2;

StringGrid1.ColCount:= 2;

for i:= 0 to n+1 do

for i1:= 0 to 1 do

StringGrid2.Cells[i1,i]:=''; StringGrid2.Cells [0,0]:='';

StringGrid2.Cells [1,0]:=''; StringGrid2.RowCount:= 2;

StringGrid2.ColCount:= 2;

end;

 

Процедура формирования и вывода нового массива.

procedure TForm1.Button5Click(Sender: TObject);

var

i: integer;

begin

for i:=1 to n do aa[i]:=a[1]*a[i];

for i:=1 to n do

begin

StringGrid2.Cells[0,i]:=IntToStr(i);

StringGrid2.Cells[1,i]:= FloatToStr(aa[i]); end; end;

Результаты работы программы представлены на рисунке 6.

 

 

Рисунок 8 – Результат работы программы

 

2.3 Обработка двумерных массивов

 

Формулировка задания (вариант 7): найти и вывести сумму максимального и минимального элементов матрицы B(3,3). Вывести сумму, максимальный и минимальный элементы.

Главная форма программы имеет вид, приведенный на рисунке 9.

 

 

Рисунок 9 – Главная форма программы

 

Текст программы приведен ниже.

(* Описание глобальных переменных *)

var

Form1: TForm1;

i,j,n,m: integer;

mas: array[1..100,1..100] of real;

max: real;

min: real;

implementation

 

{$R *.dfm}

 

Процедура ввода размеров матрицы.

procedure TForm1.Button1Click(Sender: TObject);

begin

if (Edit1.Text<>'') and (Edit2.Text<>'') then

begin

n:= strtoint(edit1.Text); m:= StrToInt(Edit2.Text);

StringGrid1.RowCount:=n+1; StringGrid1.ColCount:=m+1;

for i:=1 to n do

StringGrid1.Cells[0,i]:=IntToStr(i);

for j:=1 to m do

StringGrid1.Cells[j,0]:=IntToStr(j);

end

else

ShowMessage('Размеры матрицы не введены');

end;

 

Процедура ввода элементов матрицы.

procedure TForm1.Button2Click(Sender: TObject);

var

q,w: integer;

begin

q:=0;

w:=0;

for i:= 1 to n do for j:= 1 to n do

if StringGrid1.Cells[j,i] ='' then q:=1;

if q = 0 then

begin

for i:=1 to n do

for j:= 1 to n do

mas[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);

ShowMessage('Массив задан');

Button2.Enabled:=true;

q:=0;

end

else ShowMessage('Массив не задан полностью');

end;

 

Процедура поиска минимального элемента.

procedure TForm1.Button4Click(Sender: TObject);

var

n1,m1: integer;

begin

min:= mas[1,1]; n1:=1; m1:=1;

for i:= 1 to n do

for j:= 1 to m do

if min > mas[i,j] then begin min:= mas[i,j]; n1:=i; m1:=j; end;

label4.Caption:= 'min= '+ FloatToStr(min)+' ñòðîêà = '+IntToStr(n1)+' ñòîëáåö = '+IntToStr(m1);

end;

 

Процедура поиска максимального элемента.

procedure TForm1.Button3Click(Sender: TObject);

var

n1,m1: integer;

begin

max:= mas[1,1]; n1:=1; m1:=1;

for i:= 1 to n do

for j:= 1 to m do

if max < mas[i,j] then begin max:= mas[i,j]; n1:=i; m1:=j; end;

label3.Caption:= 'max= '+ FloatToStr(max)+' строка = '+IntToStr(n1)+' столбец = '+IntToStr(m1);

end;

 

Процедура очистки полей ввода.

procedure TForm1.Button7Click(Sender: TObject);

begin

label3.Caption:='';

Label4.Caption:='';

Label5.Caption:='';

edit1.text:='';

edit2.text:='';

for i:= 0 to n+1 do

for j:= 0 to 1 do

StringGrid1.Cells[j,i]:='';

StringGrid1.Cells [0,0]:='';

StringGrid1.Cells [1,0]:='';

StringGrid1.RowCount:= 2;

StringGrid1.ColCount:= 2;

end;

 

Процедура расчета суммы найденных элементов.

procedure TForm1.Button5Click(Sender: TObject);

var

d: real;

begin

d:= min+max;

label5.Caption:= 'max+min = '+ FloatToStr(d);

end;

 

Результаты работы программы представлены на рисунке 8.

 

 

Рисунок 10 – Результат работы программы

 


Заключение

 

В ходе выполнения курсовой работы были рассмотрены следующие вопросы:

- разработка типовых алгоритмов решения вычислительных задач;

- особенности визуальной среды программирования;

- программирование вычислительных задач, имеющих разветвляющуюся и циклическую структуру;

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

- разработка программы обработки одномерных массивов;

- разработка программы работы с матрицей.

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

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

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

 

 


Список литературы

 

1 Фаронов В.В. Delphi. Программирование на языке высокого уровня: учебник для вузов / В.В. Фаронов. - СПб.: Питер, 2010. - 640 с.

2 Бобровский С.И. Delphi 7. Учебный курс / С.И. Бобровский. - СПб.: Питер, 2001. - 736 с.

3 Орлов С.А. Технология разработки программного обеспечения: учеб. пособие / С.А. Орлов. - СПб.: Питер, 2003. - 480 с.

4 Гофман В.Э., Хомоненко А.Д. Delphi. Быстрый старт: учеб. пособие /В.Э. Гофман. – СПб.: БХВ-Петербург, 2002. – 500 с.

5 Архангельский А.Я. Object Pascal в Delphi: учеб. пособие /А.Я. Архангельский. – СПб.: Бином, 2002. – 645 с.

6 Галисеев Г.В. Компоненты в Delphi 7: учеб. пособие / Г.В. Галисев. – Москва: Вильямс, 2004. – 624 с.

 

 




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 117; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.