Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

comp2009

.pdf
Скачиваний:
43
Добавлен:
07.06.2015
Размер:
14.99 Mб
Скачать

3. Практикум по программированию на языке Object Pascal "

Рис. 3.5

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit; Label2: TLabel;

141

" Компьютерный практикум по информатике и программированию

Memo1: TMemo;

Label3: TLabel; Edit2: TEdit; Button1: TButton;

procedure Button1Click(Sender: TObject); private

{Private declarations } public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var i,n:integer;

s:extended; begin s:=0;

Memo1.Clear;

Edit2.Text:=’’;

n:=StrToInt(Edit1.Text); for i := 1 to n do begin s:=s+(2*i*(n-1.5*i));

Memo1.Lines.Add(‘При i= ‘+ IntToStr(i)+’ промежуточная сумма = ‘+ FloatToStr(s));

end;

Edit2.Text:=’Результат суммирования S=‘+FloatToStr(s); end;

end.

3. Вид исполняемой программы представлен на рис. 3.6.

142

3. Практикум по программированию на языке Object Pascal "

Рис. 3.6

1

 

Задание 2. Вычислить сумму бесконечного ряда

с точностью

n2

i=1

 

ε < 0.00001 и подсчитать количество итераций, использованных при вычислении.

1.Создать форму по образцу рис. 3.7. Используемые компоненты: Label1 — для сообщения о точности вычислений; Edit1 — для ввода числового значения точности (дробная часть отделяется запятой); Label2 — для сообщения о промежуточных вычислениях; Memo1 — для вывода промежуточных вычислений; Label3 — сообщение о результате; Edit2 — для вывода результата вычислений; Label4 — сообщение о количестве итераций; Edit3 — для вывода числа итераций.

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

143

" Компьютерный практикум по информатике и программированию

Рис. 3.7.

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel; Memo1: TMemo; Label3: TLabel;

Edit2: TEdit;

Label4: TLabel; Edit3: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject); private

{ Private declarations } public

144

3.Практикум по программированию на языке Object Pascal "

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var i:integer;

eps,epsp,s,v,w:extended; begin

Memo1.Clear;

Edit2.Clear;

Edit3.Clear;

epsp:=1;

eps:=StrToFloat(Edit1.Text); i:=1; s:=0;

if eps>=1 then begin

ShowMessage(‘Точность вычислений не может быть

>=1’);

Exit;

end;

while epsp>eps do begin v:=1/sqr(i); s:=s+v;

i:=i+1;

w:=1/sqr(i); epsp:=v-w;

Memo1.Lines.Add(‘Итерация № ‘+IntToStr(i)+’ Разность значений = ‘ + FloatToStr(epsp));

end;

Edit2.Text:=FloatToStr(s);

Edit3.Text:=IntToStr(i);

end;

end.

145

"Компьютерный практикум по информатике и программированию

3.Вид исполняемой программы показан на рис. 3.8.

Рис. 3.8

 

N

x

k

Задание 3. Вычислить таблицу значений функции S(x) = (-1)k

 

k!

для х изменяющихся в интервале от X1 до X2 c шагом h.

k=0

 

4.Создать форму по образцу рис. 3.9. Используемые компоненты:

Label1 — надпись X1; Edit1 — ввод X1; Label2 — надпись X2; Edit2 — ввод X2; Label3 — надпись N; Edit3 — ввод N; Label4 — надпись H; Edit4

ввод H; Label5 — сообщение о результатах вычислений; Memo1 — вывод результатов вычислений.

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

unit Unit1.dcu;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms,

146

3. Практикум по программированию на языке Object Pascal "

Рис. 3.9

Dialogs, StdCtrls;

type

TForm1 = class(TForm) Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit; Label3: TLabel;

Label4: TLabel;

Edit3: TEdit;

Edit4: TEdit;

147

" Компьютерный практикум по информатике и программированию

Label5: TLabel; Memo1: TMemo;

Button1: TButton;

procedure Button1Click(Sender: TObject); private

{Private declarations } public

{Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); var x1,x2,x,h,a,s:extended;

N,k,c:integer; begin

Memo1.Clear;

x1:=StrToFloat(Edit1.Text); Memo1.Lines.Add(‘ x1= ‘+Edit1.Text); x2:=StrToFloat(Edit2.Text); Memo1.Lines.Add(‘ x2= ‘+Edit2.Text);

N:=StrToInt(Edit3.Text);

Memo1.Lines.Add(‘ N= ‘+Edit3.Text); h:=StrToFloat(Edit4.Text); Memo1.Lines.Add(‘ h= ‘+Edit4.Text); c:=-1;x:=x1;

repeat a:=1;S:=0;

for k:=1 to N do begin a:=c*a*x/k; s:=s+a;

148

3. Практикум по программированию на языке Object Pascal "

end;

Memo1.Lines.Add(‘при x=’+FloatToStr(x)+’ сумма =

‘+FloatToStr(s));

x:=x+h; until x>x2; end;

end.

6. Вид исполняемой программы представлен на рис. 3.10.

Рис. 3.10

3.4. Массивы

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

149

" Компьютерный практикум по информатике и программированию

ного редактора (аналогично окну TEdit). Доступ к информации осу-

ществляется с помощью свойства Cells[ACol, ARow: Integer]: string, где

ACol, ARow — индекс элемента двумерного массива. Свойства ColCount и RowCount устанавливают количество строк и столбцов в таблице, а свойства FixedCols и FixedRows задают количество строк и столбцов фиксированной зоны. Фиксированная зона выделена другим цветом, и в нее запрещен ввод информации с клавиатуры.

Задание 1. Дана квадратная матрица A(n×n) и одномерный вектор B(n). Вычислить одномерный вектор Y(n) как произведение матрицы A(n×n) на вектор B(n), то есть элементы вектора определяются по

n

формуле Yi = Aij × Bi, где i = 1, ... n.

j

1.Создать форму по образцу рис. 3.11. Используемые компоненты: Label1 — сообщение о вводе размерности массивов; Edit1 — ввод размерности массивов; Label2, Label3, Label4 — ввод подписей названий массивов; StringGrid1, StringGrid2, StringGrid3 — отображение массивов

A, B, Y соответственно.

2.Компонент TStringGrid находится на странице Additional меню компонентов. После установки его на форму требуется отрегулировать его размер. В Object Inspector значения для StringGrid1 свойств ColCount

иRowCount установить 4, а FixedCols и FixedRows установить 1. Так как компоненты StringGrid2 и StringGrid3 имеют только один столбец, то у них: ColCount= 1, RowCount=4, FixedCols=0 и FixedRows=1. По умолча-

нию в компонент TStringGrid запрещен ввод информации с клавиатуры, поэтому если необходимо редактировать содержимое ячеек, то свойство Options goEditing нужно установить в положение True.

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

150

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]