ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.03.2025

Просмотров: 652

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Реализация алгоритмов в среде Delphi Сборник заданий для лабораторных работ

Введение

Лабораторная работа №1. Реализация простейших циклических алгоритмов в консольном приложении среды Delphi

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

Лабораторная работа №2. Решение задач обработки массивов в консольном приложении среды Delphi

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

Лабораторная работа №3. Проектирование алгоритмов с использованием подпрограмм и их отладка в консольном приложении

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

Лабораторная работа №4. Решение задач с параметрами-подпрограммами и модулями в консольном приложении Delphi

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

Лабораторная работа №5. Разработка простейших оконных приложений в среде Delphi

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

ПриМер основного обработчика индивидуальнойзадачи

Лабораторная работа №6. Создание оконных приложений обработки матриц в среде Delphi

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

ПриМер обработчиков приложения индивидуальной задачи

Лабораторная работа №7. Программирование открытия и сохранения файлов с использованием стандартных диалоговых окон

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

ПриМер обработчиков приложения индивидуальной задачи

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

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

ПриМер автономного модуля

Некоторые обработчики приложения, вычисляющего сумму элементов одномерного массива

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

1. Подготовка к работе

Пример обработчика вывода графических примитивов

Пример обработчика, формирующего массивы координат точек серий для вывода графиков функций с помощью Chart

Лабораторная работа №10. Обработка исключительных ситуаций

1. Подготовка к работе

2. Задание и рекомендации по его выполнению

Приложение 1. Пример проекта отчета по консольному приложению Условие

Состав данных

Форма ввода

Приложение 2. Пример проекта отчета по оконному приложению Условие

Состав данных

Блок-схема алгоритма

begin

s:= OpenDialog1.FileName;{имя файла из диалогового окна}

AssignFile(f,s);{связывание прогр. и физ. имен файла}

Reset(f); {открытие файла для чтения}

Readln(f, n,m); {чтение из файла n и m, они описаны как

глобальные переменные}

Edit1.Text:=IntToStr(n); {значения n и m }

Edit2.Text:=IntToStr(m); {записываем в текстовые окна}

StringGrid1.RowCount:=n+1;{задаем число строк}

StringGrid1.ColCount:=m+1; {и столбцов StringGrid1}

for i:=1 to n do {подписываем строки и столбцы}

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

for j:=1 to m do

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

SetLength(a,n,m);{распределяем память под матрицу}

for i:=1 to n do

for j:=1 to m do

begin

Read(f,a[i-1,j-1]); {чтение значения из файла в память}

StringGrid1.Cells[j,i]:=FloatToStr(a[i-1,j-1]);

{запись значения в StringGrid1}

end;

CloseFile(f);{закрытие файла}

end

end;

procedure TForm1.N3Click(Sender: TObject);

{обработчик пункта меню “вывод в файл”}

Var f:TextFile; s:string; {f-программное имя файла, s-физическое}

i,j:integer; {счетчики строк и столбцов матрицы}

begin

if SaveDialog1.Execute then {если подтверждено сохранение

файла в диалоговом окне}

begin

s:=SaveDialog1.FileName;{имя файла из диалогового окна}

AssignFile(f,s); {связывание прогр. и физ. имен файла}

Rewrite(f); {открытие файла для записи}

writeln(f,'n=', Edit1.Text, ' m=', Edit2.Text);{вывод в файл }

{числа строк и столбцов матрицы}

writeln(f); {пропуск строки в файле}

writeln(f,' Матрица');

for i:=1 to n do

begin

for j:=1 to m do

write(f,StringGrid1.Cells[j,i], ' ');{вывод элементов матрицы}

{ в файл, значения разделяются пробелом}

writeln(f){переход к следующей строке в файле}

end;

CloseFile(f);

{закрытие файла, обязательно для сохранения файла}

end

end;

Ниже приведена форма файла исходных данных, форму выходного файла напишите сами.

<n> <m> <a[0, 0]> <a[0, 1]> … <a[0,m-1]> … <a[n-1, 0]> <a[n-1, 1]> …<a[n-1,m-1]>


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

Цель работы:закрепление знаний и навыков создания и использования подпрограмм и модулей; освоение приемов использования автономных модулей при разработке оконных приложений; закрепление навыков разработки оконных приложений

Продолжительность работы:4 часа

1. Подготовка к работе

Перед началом выполнения работы студент должен:

  1. Ознакомиться с принципами создания и использования автономных модулей по пособию М.М. Марана [3], §3.

  2. Разработать проект отчета по разработке оконного приложения для задачи [1] 3.4.N+1. Проект отчета дол­жен содержать:

    1. номер и условие задачи;

    2. состав данных разрабатываемой подпрограммы;

    3. блок-схему алгоритма подпрограммы;

    4. код автономного модуля, содержащего подпрограмму;

    5. эскиз основной формы приложения для тестирования подпро­граммы (обеспечивающего ввод ис­ходных данных, вызов подпрограммы и вывод результатов);

    6. программный код модуля и основных обработчиков на Паскале;

    7. тесты.

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

При разработке алгоритмов и программ необходимо учесть следующее:

    1. длина массива должна зада­ваться считыванием значения из тексто­вого окна (компоненты Edit); ко­манда на задания длины – нажатие кнопки (которую можно подпи­сать фразой «Ввод длины массива»);

    2. для отображения массивов на форме следует использовать компо­ненту StringGrid; число строк (столбцов)StringGridдолжно настраи­ваться в соответствии с введенным значением длины мас­сива;

    3. приложение не должно иметь ограничений на размеры массивов; для хра­нения массивов в оперативной памяти рекомендуется использо­вать динамические массивы.

2. Задание и рекомендации по его выполнению

  1. Создайте новое приложение. На форму приложения (Form1) перенесите управляю­щие элементы в соответствие с подготовленным эскизом формы. Сохраните приложение.

  2. В рамках существующего приложения с помощью команды главного меню File/New/Unitсоздайте автономный модуль. По умолчанию ему будет дано имяUnit2. Заполните разделы модуляInterfaceиImplementation, используя подготовленный заранее код. Сохраните модуль в папке приложения.

  3. Подключите модуль Unit2 к модулю основной формы (Unit1), добавив в предложениеusesмодуляUnit1 имяUnit2 (или воспользуйтесь командой Project/Add to Projectглавного меню Delphi).

  4. Используя домашние заготовки, создайте необходимые обработчики для основной формы Form1. На данном этапе прило­жение должно иметь не менее двух обработчиков: первый – для ввода длины массива, второй – для запуска основного вычислительного алгоритма. Первый обработчик строится по тем же правилам, что и обработчик ввода размеров матрицы в лабораторной работе №6. Второй обработчик должен содержать считывание исходных данных из элементов формы, вызов подпрограммы (содержащейся в модуле Unit2) для обработки данных и запись результатов в элементы формы.

  5. Отладьте полученное приложение, используя подготовленные тесты.

  6. Сделайте главное меню приложения. Оно должно иметь следующие пункты: Файл(с подпунктамиВвод из файла,Вывод в файлиВыход),Обработка(с подпунктамиВвод длины массиваиВычисление) иПомощь(с подпунктамиАвториУсловие).

  7. Создайте обработчики ввода из файла и вывода в файл, используя знания и навыки, полученные в лабораторной работе №7.

  8. К командам пункта Обработкаподключите обработчики соответствующих кнопок. Проверьте работоспособность этих команд.

  9. Напишите обработчик для команды Выход пунктаФайл главного меню. Этот обработчик должен содержать один операторClose.

  10. Создайте и отладьте обработчики для команд пункта Помощь главного меню. Они должны вызывать информационные окна, содержащие, соответст­венно, сведения об авторе приложения и условие задачи. Как работать с ин­формационными окнами, изложено в §2.2.1 [3].

  11. Дополните обработчик кнопки Ввод длины массива проверкой на положительность значения длины. При вводе неположительного числа должно появляться окно сообщения с соответствующей фразой. Программирование окна сообщения описано в §2.2.2 [3].

  12. Дополните обработчик кнопки Ввод длины массива проверкой, является ли введенное значение числом. Если содержимое текстового окнаEdit1не может быть интерпретировано как число, то должно появляться окно сообщения с соответствующей фразой. При выполнении этого пункта рекомендуется использовать процедуруVal(см. [2] или помощь Delphi, а также приведенный ниже пример).

  13. Сделайте 2-3 контекстных меню и привяжите их к разным элементам управления формы. Проверьте, работают ли эти меню.

  14. Зафиксируйте результаты в отчете и покажите их препо­давателю.


ПриМер автономного модуля

unit Unit2;

{Модуль содержит одну функцию вычисления суммы элементов одномерного массива длины n}

interface {интерфейсная часть модуля}

function sum (a: array of real; n: integer):real;

implementation

function sum; {исполняемая часть модуля}

Var i: integer; s:real;

begin

s:=0;

for i:=Low(a) to High(a) do

s:=s+a[i];

sum:=s;

end;

end.

Некоторые обработчики приложения, вычисляющего сумму элементов одномерного массива

Форма приложения приведена на рис.6.

procedure TForm1.Button1Click(Sender: TObject);

{Обработчик нажатия кнопки ввода длины массива}

Var j:integer;

begin

val(Edit1.Text,n,j);

if j<>0 then

ShowMessage('Введите число')

else

if n<=0 then

ShowMessage(' Введите положительное число ')

else

begin

StringGrid1.ColCount:=n;

{В Инспекторе объектов установлено: StringGrid1.FixedCols=0}

for j:=0 to n-1 do {Подписываем номера элементов массива}

StringGrid1.cells[j,0]:=IntToStr(j+1);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

{Обработчик нажатия кнопки «Вычислить сумму»}

Var a: array of real; j: integer;

begin

SetLength(a,n);{распределение памяти под массив, n – глобальная переменная}

for j:= 0 to n-1 do {ввод массива}

if StringGrid1.Cells[j,1]='' then

a[j]:=0

else

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

{далее вычисление суммы и вывод ее в текстовое окно:}

Edit2.Text:=FloatToStr(Sum(a,n));

end;

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

Цель работы:освоение приемов вывода графических изображений в среде Delphi.

Продолжительность работы:4 часа

1. Подготовка к работе

Перед началом выполнения работы студент должен:

  1. Ознакомиться с графическим вывода среде Delphi по пособию [3], гл. 8.

  2. Разработать проект отчета по решению задач [1] 7.4.N+1, 7.1. N+1. По задаче 7.4.N+1 (рисунки с графическими примитивами) проект отчета дол­жен содержать:

  1. номер и условие задачи с рисунком, на котором про­ставлены отметки на коор­динатных осях в пиксе­лях (см. рис. 7);

  2. программный код для вывода заданного изображе­ния; код должен использо­вать методы холста (свой­ства Canvas) – см. ниже приведенный пример.


По задаче 7.1.N+1 (построение графиков функций) проект отчета по каждому пункту задания (А, Б) дол­жен содержать:

  1. формулу для исследуемой функции;

  2. рассматриваемый интервал значений аргумента x;

  3. характерные точки функции, подлежащие определению по графику;

  4. самостоятельно полученную оценку интервала значений функции;

  5. код обработчика, формирующего массивы координат точек для по­ст­ро­е­ния графика с помощью компоненты Chart(диаграмма) – см. ниже приведенный пример;

  6. код обработчика, выводящего график по точкам – см. [3], §8.2; рекомен­дуется написать универсальную подпрограмму, выводящую гра­фик произвольной функции, и применить эту подпрограмму в пунктах А и Б; в список параметров подпрограммы обязательно должны входить параметр-функция (определяющая, график какой функции выводится) и минимальные и максимальные значения аргумента и функции.

  7. тесты.

  1. Набрать программный код основных обработчиков приложения в блокноте или в среде Delphi.