Відокремлений структурний підрозділ Золочівський коледж
Національного університету «Львівська політехніка»
Циклова комісія природничо-математичних та комп’ютерних дисциплін
ЗВІТ
Про виконання лабораторних робіт
з дисципліни
«Алгоритмізація та програмування»
Студента 2 курсу ОПС-2 групи
Напряму підготовки
6.050101 Комп’ютерні науки
Спеціальності
5.05010101 Обслуговування програмних систем та комплексів
Бомк Б.В.
Викладач Чіпак І.П.
м. Золочів – 2016 рік
Практична робота №5
Тема. Використання циклів. Програмування обрахунків за ітераційними формулами.
Мета: вивчення циклів та їх застосування в прогамному середовищі Delphi.
Хід роботи
Отримати допуск до роботи у викладача, давши відповідь та теоретичні запитання.
Написати програми до завдань та реалізувати їх у середовищі Delphi
Скласти звіт,у якому зобразити теоретичні відомості, виконані програми та результати виконання програм,відповіді на контрольні питання та висновки до лабораторної роботи.
Захистити звіт у викладача.
Завдання 1.
Протабулювати функцію y:=sin(2*x)-2*cos(x) з кроком 0.2 на відрізку від 1 до 20.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdCtrls, ComCtrls, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Memo1: TMemo;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
procedure N6Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.N6Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N2Click(Sender: TObject);
var x,y,h,a,b:real;
cod:integer;
s1,s2:string;
begin
label1.Caption:=' y:=sin(2*x)-2*cos(x)';
val(edit1.Text,a,cod);
val(edit2.Text,b,cod);
val(edit3.Text,h,cod);
x:=a;
while x<=b+h/2 do
begin
y:=sin(2*x)-2*cos(x);
str(x:10:2,s1); str(y:10:2,s2);
memo1.Lines.Add(s1+s2);
x:=x+h;
end;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
ShowMessage ('Протабулювати функцію y:=sin(2*x)-2*cos(x) з кроком 0.2на відрізку віл 1 до 20.');
end;
procedure TForm1.N9Click(Sender: TObject);
begin
ShowMessage (‘Автор програми Бомк Богдан’);
end;
end.d.
[Додаток 1]
Завдання 2.
Написати програму, яка здійснює переведення цілого додатного числа із десяткової системи у двійкову та в довільну систему числення з основою від 2 до 9.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
Public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,y:longint;
begin
x:=strtoint (edit1.Text);
label8.caption:=' ';
while x>0 do
begin
y:=x mod 2;
x:=x div 2;
label8.Caption:=inttostr(y)+label8.Caption;
end
end;
procedure TForm1.Button2Click(Sender: TObject);
var x,y,osn:longint;
begin
x:=strtoint (edit2.Text);
osn:=strtoint (edit3.text);
if osn<2 then showmessage ('Некоректне значення');
if osn>9 then showmessage ('Некоректне значення') else
label9.Caption:=' '+'значення у системі з основою'+':'+edit3.text;
while x>0 do
begin
y:=x mod osn;
x:=x div osn;
label9.caption:=inttostr(y)+label9.caption;
end;
end;
end.
[Додаток 2]
Завдання 3
Створити програму для обчислення факторіала.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: TLabel;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
close ;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,f,n:integer;
begin
n:=strToint (edit1.Text);
f:=1;
for i:=1 to n do
f:=f*i;
edit2.text:=inttostr(f);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit1.setfocus;
end;
end.
[Додаток 3]
Завдання 4.
Створити проект, в якомудрукується певний символ N разів в один рядок (в один стовпчик).
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N5: TMenuItem;
N8: TMenuItem;
Label2: TLabel;
Edit2: TEdit;
procedure N8Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.N5Click(Sender: TObject);
var rs,i:integer;
x:longint;
begin
rs:=strtoint(edit2.text) ;
For i:=1 to rs do
Memo1.Lines.Add(edit1.text);
end;
procedure TForm1.N8Click(Sender: TObject);
begin
close;
end;
end.
[Додаток 4]
Завдання 5.
Створити проект, в якому відбувається розрахунки та друкування коренів квадратних з натурального ряду чисел від N до K. N,K– визначає користувач в вікні форми.
unit Unit1
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var f,x,y,i,h:integer;
begin
x:=strtoint(edit1.Text);
y:=Strtoint(edit2.Text);
for i:=x to y do
Label6.caption:=inttostr(i)+' '+label6.caption;
begin
for i:=x to y do
Label5.caption:=floattostr(sqrt(i))+' '+label5.caption;
end;
end;
end.
[Додаток 5]
Завдання 6
Генерувати 15 випадкових цілих числа 10<x<100. Якщо серед них трапляються кратні 10, друкувати їх значення та його номер.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Memo1: TMemo;
procedure N6Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{$R *.dfm}
procedure TForm1.N6Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Memo1.Clear;
edit1.clear;
end;
procedure TForm1.N2Click(Sender: TObject);
var y,i,x,cod:integer;
s1,s2:string;
begin
y:=strtoint(edit1.text);
val(edit1.Text,y,cod) ;
for i := 1 to y do
begin
randomize;
x:=1+Random(100);
if (x mod 10)=0 then
memo1.Lines.Add('Випадкове число -- '+IntToStr(x)+' –Порядковий номер '+IntToStr(i)) ;
end;
end;
end.
[Додаток 6]
Завдання 7
Знайти значення виразу
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Image1: TImage;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,i:integer;
y:real;
begin
x:=strtoint(edit1.Text);
for i:=5 to 25 do
y:=(exp(x*i))/x*i+1;
label2.caption:=floattostr(y)+ label2.caption;
end;
end.
[Додаток 7]
Завдання 8
Надрукувати таблицю значень функціїy=f(x) на інтервалі x∊[a;b] з кроком Δx
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Image1: TImage;
Button1: TButton;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,y,h,a,b:real;
cod:integer;
s1,s2:string;
begin
val(edit1.Text,a,cod);
val(edit2.Text,b,cod);
val(edit3.Text,h,cod);
x:=a;
while x<=b+h/2 do
begin
y:=sqrt(abs(x*(cos(x/2))+exp(2*x)));
str(x:10:2,s1); str(y:10:2,s2);
memo1.Lines.Add(s1+s2);
x:=x+h;
end;
end;
end.
[Додаток 8]
Висновок: Ми навчилися викростовувати цикли ы програмувати обрахунки за ітераційними формулами.
ДОДАТКИ
Додаток 1
/
Мал.1.1. Табулювання функцыъ
Додаток 2
/
Мал.1.2 Переведення чисел
Додаток 3
/
Мал.1.3 Обчислення факторіала
Додаток 4
/
Мал.1.4 Друк символів
Додаток 5
/
Мал.1.5 Програма для обчислення коренів
Додаток 6
/
Мал.1.6 Random
Додаток 7
/
Мал.1.7 Обчислення виразу
Додаток 8
/
Мал.1.8 Обчислення функції
Оцінка_______________
Підпис викладача____________