Порядок выполнения задания

Задание: написать и отладить программу, которая выводит таблицу значений функций S(x) для х изменяющихся в интервале от x1 до x2 с шагом h.

.

Панель диалога представлена на фиг.3.1.

 
 

Фиг.3.1.

 

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

 

Unit Rab_3;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

 

Type

Tform1=class(TForm)

Memo1:Tmemo;

Button1: Tbutton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1:Tedit;

Edit2:Tedit;

Edit3:Tedit;

Edit4:Tedit;

procedure FormСreate(Sender: TObject);

procedure Button1Сlick(Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1:TForm1;

Implemetation

{$R*DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.text := ’0’;

Edit2.text : = '2';

Edit3.text := '5';

Edit4.text := '0,25';

Memo1.Clear;

Memo1.Lines.Add('Результаты. Вариант 4. Студ. гр.107227 Иванов А.А.');

 

Procedure Tform1.Button1Click(Sender: TObject);

Var

x1, x2, x, h, a, s : extended;

N, k, c : integer;

begin

xl := StrToFloal(Edit4.Text);

Memo1.Lines.Add('x1 = ' + Edit1.Text);

x2 := StrToFloat(Edit2.Text);

Memo1.Lines Add('x2 = ' + Edit2.Text);

N := StrTolnt(Edit3.Text);

Memo1.Lines.Add(‘N = ' + Editl.Text);

h :=StrToFloat(Edit4.Text);

Memo1.Lines.Add(‘h = ' + Edit4.Text);

C :=-1;

X := x1;

Repeat

A := 1;

S := 1;

for k :=1 to N do

begin

a := c*a*x/k;

s := s + a;

end;

Memo1.Lines.Add('npи x = ' + FloatToStrF(x, ffFixed, 6, 2) +

' сумма = ' + FloalToStrF(s, ffFixed, 6, 2));

x := x+h;

until x>x2;

end;

end.

 

Послe отладки программы составьте тест (N=2, X1=0,X2=1, h=3), установите курсор на первый оператор (N:= ), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую отладку программы и проследите, как меняются все переменные в процессе выполнения.

Выполнение индивидуального задания

 

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

Индивидуальные задания

 

В заданиях с №1 по 15 (табл.3.1) необходимо вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для х изменяющихся от x0 до xk с шагом h = (x0-xk)/10. Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(х) и Y(x).

Таблица 3.1

S(x) Y(x)
           
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.1 0.5 arctgx
0.1
0.1
-2 -0.1
0.2 0.8
0.1 0.8

16. Посчитать k–количество цифр в десятичной записи целого неотрицательного числа n.

17. Переменной t присвоить значение 1 или 0 в зависимости от того, является ли натуральное число k степенью 3.

18. Дано n вещественых чисел. Вычислить разность между максимальным и минимальным из них.

19. Дана непустая последовательность различных натуральных чисел, за которой следует ноль. Определить порядковый номер наименьшего из них.

20. Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число. Найти величину наибольшего среди отрицательных чисел этой последовательности.

21. Дано n вещественных чисел. Определить, образуют ли они возрастающую последовательность.

22. Дана последовательность из n целых чисел. Определить, со скольких отрицательных чисел она начинается.

23. Определить k — количество трёхзначных натуральных чисел, сумма цифр которых равна n ( ). Операции деления (/, div, mod) не использовать.

24. Вывести на экран в возрастающем порядке все трёхзначные числа, в десятичной записи которых нет одинаковых цифр (операции деления не использовать).

25. Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет натуральное число n представить в виде трех полных квадратов.

26. Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа .

27. Дано натуральное число п. Найти сумму его цифр.

28. Дано целое n>0, за которым следует n вещественных чисел. Определить, сколько среди них отрицательных.

29. Дано натуральное число n. Переставить местами первую и последнюю цифры числа n.

30. Дано натуральное число n. Заменить порядок следования цифр числа n на обратный.


Работа 4.

КОНСТРУИРОВАНИЕ ПРОГРАММ

С ИСПОЛЬЗОВАНИЕМ МАССИВОВ

Цель работы: изучить свойства компонента TStringGrid. Написать программу с использованием массивов.

 

Работа с массивами

Массив есть упорядоченный набор однотипных элементов, объединенных под одним именем. Каждый элемент массива обозначается именем, за которым в квадратных скобках следует один или несколько индексов, разделенных запятыми, например: а[1], bb[I], с12[I, j*2], q[l, 1, I*j-l]. В качестве индекса можно использовать любые порядковые типы за исключением LongInt.

Тип массива или сам массив определяются соответственно в разделе типов (Type) или переменных (Var) с помощью ключевого словаArray следующим образом:

Array [описание индексов]of <тип элементов массива >

Примеры описания массивов:

Const N=20; // Задание максимального значения индекса;

Type

Tvector = array [1..N] of real; // Описание типа одномерного массива;

Var

A : Tvector; //A - массив типа Tvector;

Ss : array[1..10] of integer; //Ss - массив из десяти целых чисел;

Y : array[l..5, 1..10] of char; //Y -двумерный массив символьного типа.

Элементы массивов могут использоваться в выражениях так же, как и обычные переменные, например:

F := 2*a[3] + a[ss[l] + 1]*3;

A[n] := 1+sqrt(abs(a[n-1]));

Компонент TstringGrid

 

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

Cells[ACol, Arow : Integer] : string;

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