Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_2semetr_Patygina_Alena.doc
Скачиваний:
3
Добавлен:
23.03.2015
Размер:
733.7 Кб
Скачать

Лабораторна робота № 14-15

Створення та відлагодження програми з використанням масивів.

Мета: Набуття навичок розробки та відлагодження програм з використанням масивів.

Частина і

Завдання: скласти програму, що створює масив випадкових цілих чисел, підраховує їх середнє арифметичне, а також визначає й виводить на екран мінімальне й максимальне із цих чисел.

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

Я розробив інтерфейс, вид якого показаний на рисунку:

Та ввів наступний програмний код:

procedure TForm1.Button1Click(Sender: TObject);

const

N=1000;

MAX_VALUE=100+1;

VAR

i,H:integer;

max,min:integer;

sum:real;

m:array [1..N] of integer;

begin

H:=StrToInt(Edit1.Text);

if (H<1001) then

begin

for i:=1 to H do

begin

m[i]:=Random(MAX_VALUE);

Memo1.Lines.Add('m['+IntToStr(i)+'] = '+IntToStr(m[i]));

end;

sum:=m[1];

max:=m[1];

min:=m[1];

for i:=2 to H do

begin

sum:=sum+m[i];

if m[i]<min then

min:=m[i]

else if m[i]>max then

max:=m[i];

end;

Label1.Caption:='Мин = '+IntToStr(min)+' Макс = '+IntToStr(max)+' Среднее = '+floatToStr(sum/H);

end

else

ShowMessage('Введите другое значение Н');

end;

Частина іі

Завдання: розробити блок-схему алгоритму а також скласти програму, яка створює масив з 10 значень функції F(x). Незалежна змінна х має початкове значення х1, а кожне наступне її значення збільшується на величину h (х1 і h вводяться користувачем).

Визначити середнє арифметичне від’ємних елементів масиву, для функції f(x)= exp(x)*sin(2x), а також вивести номери цих елементів.

Розробив інтерфейс, вид якого зображений на рисунку:

Та ввів наступний програмний код:

procedure TForm1.Button1Click(Sender: TObject);

const

N=10;

var

f:array [1..N] of real;

i:integer;

x,h,sum:real;

begin

x:=StrToFloat(Edit1.Text);

h:=StrToFloat(Edit2.Text);

for i:=1 to N do

begin

f[i]:=exp(x)*sin(2*x);

if f[i]<0 then

Memo1.Lines.Add('f['+IntToStr(i)+'] = '+FloatToStr(f[i]));

x:=x+h;

end;

sum:=0;

for i:=1 to N do

if f[i]<0 then

sum:=sum+f[i];

Label1.Caption:='Среднее значение f = '+FloatToStr(sum/N);

end;

Висновок: Набув навичок розробки та від лагодження програм з використанням масивів.

Лабораторна робота № 16-17

Створення та налагодження програми з використанням власних процедур та функцій.

Мета: Набуття навичок розробки та налагодження програм з використанням власних процедур та функцій.

Хід роботи

Частина і.

Розробити програму, що здійснює наступне:

1. Введення довільного цілого числа N і обчислення суми всіх цілих парних чисел від 1 до N а також обчислення добутку всіх цілих непарних від 1 до N. Розрахунок суми й добутку повинен бути оформлений у вигляді процедур.

2. Введення довільного дійсного числа Х і обчислення функцій y1=1-sqr(x) та y2:=2*cos(x-sqr(x)), розрахунок яких повинен бути оформлений у вигляді підпрограм-функцій.

Я розробила інтерфейс, вид якого зображений на рисунку:

Та ввів наступний програмний код:

procedure Summa(N:integer; Var Sum:integer);

procedure Proizvedenie(N:integer; Var Proiz:integer);

function Y1(x:real):real;

function Y2(x:real):real;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure Summa(N:integer; Var Sum:integer);

Var

i : integer;

begin

Sum:=0;

for i:= 1 to N do

if i mod 2=0 then sum:=sum+i;

end;

procedure Proizvedenie(N:integer; Var Proiz:integer);

Var

i : integer;

begin

Proiz:=1;

for i:= 1 to N do

if i mod 2=1 then Proiz:=Proiz*i;

end;

function Y1(x:real):real;

begin

y1:=1-sqr(x);

end;

function Y2(x:real):real;

begin

y2:=2*cos(x-sqr(x));

end;

procedure TForm1.Button1Click(Sender: TObject);

Var

N_fact,code, i, Sum_rezult, Proiz_rezult : integer;

begin

Val(Edit1.Text, N_fact, code);

if code=0 then

begin

// Провести аналіз введеного значення

Summa(N_fact,Sum_rezult);

Proizvedenie(N_fact,Proiz_rezult);

Memo1.Lines.Add('Sum_rezult='+Inttostr(Sum_rezult)+' '+

'Proiz_rezult='+Inttostr(Proiz_rezult));

end

else

begin

ShowMessage(' Введені невірні дані');

exit;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

x,z:real;

begin

x:=strtofloat( Edit2.Text);

if x<0 then z:=sin(y1(x+1));

if x>0 then z:=4/y2(3*x);

Memo2.Lines.Add('x='+floattostr(x)+' '+'y1(x)='+floattostr(y1(x)));

Memo2.Lines.Add('x='+floattostr(x)+' '+'y2(x)='+floattostr(y2(x)));

Memo2.Lines.Add('z='+floattostr(z));

end;

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