- •2. Задание
- •3. Метод решения
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
- •2. Характеристики основных файловых систем
- •3. Операции с файловой структурой
- •3.1. Проводник
- •3.2. Файловый менеджер
- •4. Задание
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •Лабораторная работа №3 Архивирование данных
- •1. Общие сведения об архивировании данных
- •2. Архивирование данных с помощью программы WinRar
- •3. Задание
- •2. Форматы текстовых файлов
- •3. Текстовый редактор Блокнот (NotePad)
- •4. Текстовый редактор WordPad
- •5. Задание
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •Лабораторная работа №5 Разработка текстовых документов в процессоре Microsoft Word
- •1. Общие сведения о процессоре Microsoft Word
- •2. Приемы работы с текстами в процессоре Microsoft Word
- •2.1. Создание документа
- •2.2. Ввод текста
- •2.3. Форматирование текста
- •3. Сохранение документа
- •4. Приемы и средства автоматизации разработки документов
- •4.1. Работа со стилями
- •4.2. Шаблоны
- •5. Внедрение объектов, созданных другими приложениями
- •6. Задание
- •7. Порядок выполнения работы
- •8. Контрольные вопросы
- •2. Графический редактор Paint
- •2.1. Окно программы Paint
- •2.2. Задание размера рабочей области
- •2.3. Основные чертежно-графические инструменты
- •2.4. Трансформация изображений
- •2.5. Ввод текста
- •3. Встроенный графический редактор Microsoft Word
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
- •6. Варианты заданий
- •3. Блок схема алгоритма
- •4. Реализация алгоритма в среде Delphi
- •5. Результаты счета
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •8. Варианты заданий
- •3. Блок-схема алгоритма
- •4. Реализация алгоритма в среде Delphi
- •5. Результаты счета
- •5. Порядок выполнения работы
- •6. Контрольные вопросы
- •7. Варианты заданий
- •Лабораторная работа №9 Составление программ поиска, сортировки и накапливания результата
- •1. Задача поиска
- •2.Реализация алгоритма поиска максимального элемента в среде Delphi
- •3. Сортировка и упорядочение массива.
- •4. Накапливание результата
- •5. Вычисление математического ожидания случайной дискретной величины
- •6. Порядок выполнения работы
- •7. Контрольные вопросы
- •8. Варианты заданий
- •Список литературы
- •Приложение 1. Варианты контрольных заданий
- •Приложение 2. Требования к оформлению отчета по лабораторным работам
- •1. Объем и содержание отчета
- •2. Оформление отчета
- •Приложение 3. Титульный лист к отчету
- •Приложение 4 Блок-схемы алгоритмов к лабораторной работе № 6
- •Приложение 5 Текст программы на языке Паскаль для вычисления корней квадратного уравнения
- •Приложение 6 Текст программы на языке с для вычисления корней квадратного уравнения
- •Приложение 7 Текст программы на языке Паскаль для вычисления приближенного значения экспоненциальной функции
- •Приложение 8 Текст программы на языке c для вычисления приближенного значения экспоненциальной функции
- •Ответственный за выпуск ________________
- •420111, Казань, к.Маркса, 10
3. Блок-схема алгоритма
Рис.8.1. Блок схема алгоритма приближенного вычисления экспоненты
Примеры программ, реализующих алгоритм рис.8.1 на языке Паскаль и С, приведены в приложении 7 и 8.
4. Реализация алгоритма в среде Delphi
После запуска Delphi и открытия окна формы (модуль Form1) разместим в нем следующие объекты:
-
поля редактирования Edit1 – Edit3 – для ввода исходных данных: значения аргумента x функции, значения точности ε и значение максимального количества итераций соответственно;
-
метки Label1 – Label13 – для вывода заголовков, пояснений и результатов;
-
кнопки Button1 – Button3 – для управления работой программы.
С помощью инспектора объектов (object inspector) определяются заголовки для объектов Form1, Label1 – Label13 путем ввода соответствующего текста в поле caption вкладки properties. Например, для окна Form1 в поле caption вводится текст «Приближенное вычисление функции exp(x)»; для метки Label2 – текст «Исходные данные», для метки Label6 – текст «Результаты счета» для меток Label7,8,10,11,13 поле caption остается свободным, для кнопки Button1 – текст «Ввод исходных данных» и т.д.
Общий вид окна формы с выбранными компонентами представлен на рис.8.2.
Рис.8.2. Окно формы (модуль Form1) программы в Delphi для вычисления приближенного значения функции ex
После размещения объектов в окне формы в окне кода будет представлен следующий текст программы:
unit unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, Grids, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
end.
Проект под именем iterfun cохраним в отдельной папке. Для управления работой программы с каждой кнопкой связывается событие «щелкнуть» (Click) и задается, что при щелчке на кнопке 1 (объект Button1) программа должна ввести исходные данные: значения коэффициентов a,b,c исходного уравнения из полей редактирования (объекты Edit1Edit3) и присвоить их переменным x, eps, kmax соответственно. Для этого после двойного щелчка кнопки Button1 и попадания в окно кода вводятся три оператора присваивания:
x:=StrToFloat(Edit1.text);
eps:=StrToFloat(Edit2.text);
kmax:=StrToInt(edit3.text);
Здесь стандартные функции StrToFloat и StrToInt преобразуют символьное представления значения поля text объекта edit в вещественное и целое значение соответственно.
Далее после двойного щелчка кнопки Button2 и попадания снова в окно кода вводятся операторы, реализующие алгоритм вычисления приближенного значения функции и их вывод в поле caption меток Label7, 8, 10, 13. Для проверки результата предусматривается вычисление и вывод значения функции с использованием стандартной функции exp(x). Аналогично после двойного щелчка кнопки Button3 и попадания в окно кода вводится оператор вызова процедуры Close для завершения работы программы. Для хранения данных определяются переменные x,a0,a1,s,eps k,kmax в операторе var (добавляется строка x,a0,a1,s,eps: Real; k,kmax:integer; после строки var Form1: TForm1;). В текст программы добавляются комментарии. С помощью команды Save As меню File созданный модуль с кодом программы сохраняется в файле iterfun.pas. В результате исходный код программы (модуль iterfun) будет иметь следующий вид
unit iterfun;
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{ Вычисление функции exp(x) по ее разложению в ряд }
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, Grids, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
x,a0,a1,s,eps: Real; k,kmax:integer;
implementation
{$R *.DFM}
procedure TForm1.Button2Click(Sender: TObject);
{ввод исходных данных }
begin
x:=StrToFloat(Edit1.text);
eps:=StrToFloat(Edit2.text);
kmax:=StrToInt(edit3.text);
end;
procedure TForm1.Button1Click(Sender: TObject);
{Завершение работы программы}
begin close end;
procedure TForm1.Button3Click(Sender: TObject);
{вычисление экспоненты суммированием членов ряда}
{exp= 1+x/1!+x^2/2!+…}
begin
k:= 1; a0:= 1; s:= a0;
label11.Caption:='за ';
label10.Caption:='';
label13.Caption:='';
a1:= a0*x/k;
while (abs(a1)>eps) and (k<kmax) do
begin
s:= s+a1;
a0:= a1;
k:= k+1;
a1:= a0*x/k;
end;
if (k=kmax) then begin
label10.Caption:=InttoStr(k);
label13.Caption:=' итераций точность не достигнута';
end else begin
label10.Caption:=InttoStr(k);
label13.Caption:=' итераций точность достигнута';
end;
label7.Caption:=FloatToStr(s);
label8.Caption:= FloatToStr(exp(x));
end; end.