Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
36
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет компьютерных технологий
Кафедра «Информационные системы»
ОТЧЕТ
по расчетно-графическому заданию
по курсу «Информатика и программирование» 1 семестр.
Тема: «Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi».
Студент группы 9ПИ-1 Шикер С.А.
2010
Вариант №161. Вычислить значение функции Y от произвольного X. Провести тестирование программы. Даны t= -23,4; d= 12; p=17,6
2. Дано натуральное n. Вычислить:
3. Исследовать, сколько решений имеет система 2-х уравнений с двумя неизвестными. В случае единственного решения найти его по правилу Крамера, где a, b, c, d, p, q - вещественные числа
4. Даны действительные числа a, b, e (a>b>0, e>0). Последовательности x1, x2, … и y1, y2, …образованы по закону: x1=a, y1=b, xk = xk-1+yk-1; . Найти первое xn такое, что
5. Даны целое число n, действительные числа x, e (e> 0, n>= 0). Вычислить с точностью e значение
6. Написать программу набора суммы очков S из слагаемых, являющихся целыми числами, каждое из которых принадлежит интервалу [k, l] и генерируется случайным образом. Сумму набирать до тех пор, пока не выполнится условие S < n-5 (n - задано).
7. В 1985 году урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов урожай увеличивается на 5 %. Определить, через сколько лет урожайность достигнет 25 ц с га.
8. Переведите число из десятичной в восьмеричную систему счисления.
9. Начав тренировки, спортсмен в первый день пробежал 13 км. Каждый следующий день он увеличивал дневную норму на 1,4 % от нормы предыдущего дня. На какой день он пробежит больше 24 км?
Задача №1.
Вычислить значение функции Y от произвольного X. Провести тестирование программы. Даны t= -23,4; d= 12; p=17,6
Структура проекта
Проект
Form1
Procedure Button1Click (вычисление)
Математическая модель.
Входные данные.
|
| Назначение | Тип | |
t | Константа функции | Вещественный | |
d | Константа функции | Целый | |
p | Константа функции | Вещественный | |
x | Переменная функции | Вещественный | |
|
Выходные данные.
|
| Назначение | Тип | |
y | Значение функции | Вещественный | |
|
Блок-схема.
36
Описание интерфейса.
|
Объект. | Свойство. | Устанавливаемое значение. | |
Label1 | Caption | “x” | |
Label2 | Caption | “y” | |
Edit1 | Text | поле ввода значения х | |
Button1 | Caption | кнопка «Вычислисть» | |
Label3 | Caption | поле вывода значения у | |
|
Текст программы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math;
type
TForm1 = class(TForm)
Edit1: TEdit; //после ввести значение х
Button1: TButton; //кнопкка Вычислить
Label1: 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,y:real; //значения х,у
begin
x:=StrToFloat(Edit1.Text);
if x>3 then
Label1.Caption:='Функция не определена';
if (x>=2) and (x<=3) then
begin
//получить исходные данные
y:=(power(12, 2/3)+power(sin(3*x),2)+sqrt(12))/power(x,4);
Label1.Caption:=FloatToStr(y);
end;
//вычислить значения у
if x<2 then
begin
y:=(-23.4*power((x+2.5),3)-ln(abs(power(x,3))))/(17.6+3*(-23.4));
Label1.Caption:=FloatToStr(y);
end;
end;
end.
Тестирование программы.
|
Значение х | Результат | |
1 | 19,073669 | |
3 | 0,0861794 | |
4 | Функция неопределенна | |
|
Задача №2.
Дано натуральное n. Вычислить: .
Структура проекта.
Проект
Математическая модель.
Входные данные.
|
| Назначение. | Тип. | |
n | Переменная формулы. | Целый. | |
|
Выходные данные.
|
| Назначение. | Тип. | |
р | Результат вычислений. | Вещественный. | |
|
Блок-схема.
36
Описание интерфейса.
|
Объект. | Свойство. | Установленное значение. | |
Label1 | Caption | “n” | |
Label2 | Caption | Результат | |
Edit1 | Text | Поле ввода значения n | |
Button1 | Caption | Кнопка Вычислить | |
Label3 | Caption | Поле вывода значения | |
|
Текст программы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Math;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit; // значение n
Label2: TLabel;
Label3: TLabel; // значение
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,r: integer;
p,m,n:real;
begin
n:=strtofloat(Edit1.Text);
p:=1;
m:=n-Trunc(n); // возвращает целую часть от числа, получаем дробную часть, если число введено не целое
if m=0 then //если число целое, то запускается цикл
begin
r:=Trunc(n); // переводим число из вещественного типа в целое
if n>0 then
begin
for i:=1 to r do
begin
p:=P*intpower((1+1/i),i);
end;
label3.Caption:=floattostr(p);
end else
label3.Caption:='Не удовлетворяет условию';
end else
label3.Caption:='Не удовлетворяет условию';
end;
Тестирование программы.
|
Значение n. | Результат. | |
-1 | Не удовлетворяет условию. | |
2 | 4,5 | |
2,3 | Не удовлетворяет условию. | |
1 | 2 | |
0 | Не удовлетворяет условию. | |
|
Задача №4.
Даны действительные числа a, b, e (a>b>0, e>0). Последовательности x1, x2, … и y1, y2, …образованы по закону: x1=a, y1=b, xk = xk-1+yk-1; . Найти первое xn такое, что
Структура проекта.
Проект
Form1
Procedure Button1Click (вычисление)
Математическая модель
Входные данные
|
| Назначение | Тип | |
Х1 | Переменная функции | Вещественный | |
У1 | Переменная функции | Вещественный | |
у | Переменная функции | Вещественный | |
|
Выходные данные
|
| Назначение | Тип | |
х | Значение функции | Вещественный | |
|
Блок-схема.
36
Описание интерфейса
|
Объект. | Свойство. | Устанавливаемое значение. | |
Label1 | Caption | “x1” | |
Label2 | Caption | “y1” | |
Label3 | Caption | “e” | |
Edit1 | Text | поле ввода значения х1 | |
Edit2 | Text | Поле ввода значения у1 | |
Edit3 | Text | Поле ввода значения е | |
Button1 | Caption | кнопка «Вычислисть» | |
Label4 | Caption | поле вывода значения x | |
|
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, math;
type
TForm1 = class(TForm)
Edit1: TEdit; //после ввести значение x1
Edit2: TEdit; //после ввести значение y1
Edit3: TEdit; //после ввести значение е
Label1: TLabel; //поле вывести значение x1
Label2: TLabel; //поле вывести значение y1
Label3: TLabel; //поле вывести значение e
Button1: TButton; //кнопка Вычислить
Label4: TLabel; //после вывести значение х
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
e,x,y,x1,y1: real; //значения e,x,y,x1,y1
begin
//получить исходные данные
x1:=StrToFloat(Edit1.Text);
y1:=StrToFloat(Edit2.Text);
e:=StrToFloat(Edit3.Text);
if (y1>0) and (x1>y1) and(e>0) then
begin
repeat
y:=power(x1*y1,1/2);
x:=x1+y1;
x1:=x;
y1:=y;
until (ABS(x-y)>=e);
Label4.Caption:=FloatToStr(x1);
end else
Label4.Caption:='Числа не удовлетворяют условию';
end;
end.
Тестирование программы
|
Значение х1 | Значение у1 | Значение е | Результат | |
12 | 3 | 34 | 65,34543039642 | |
213 | 16 | 26 | 229 | |
12 | 16 | 25 | Числа не удовлетворяют условию | |
|
Задача №5.
Даны целое число n, действительные числа x, e (e> 0, n>= 0). Вычислить с точностью e значение
Структура проекта.
Проект
36
Математическая модель
Входные данные.
|
| Назначение | Тип | |
Х | Переменная | Вещественное | |
е | Точное вычисление | Вещественное | |
|
Выходные данные.
|
| Назначение | Тип | |
S | Значение суммы | Вещественный | |
|
Блок-схема.
36
Описание интерфейса
|
Объект | Свойство | Назначение | |
Label1 | Caption | ввести значение n | |
Label2 | Caption | ввести значение х | |
Label3 | Caption | ввести значение е | |
Label4 | Caption | поле вывода результата | |
Edit1 | Text | поле ввода значения n | |
Edit2 | Text | поле ввода значения х | |
Edit3 | Text | поле ввода значения е | |
Button1 | Caption | Кнопка Вычислить | |
|
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, math;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
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
n,x,e,z,y,s,m,k:real;
begin
n:=StrToFloat(Edit1.Text);
x:=StrToFloat(Edit2.Text);
e:=StrToFloat(Edit3.Text);
m:=1;
k:=0;
y:=0;
s:=(1/n)*Power(x/2,n);
z:=n-Trunc(n);
if (z=0) and (e>0) and (n>=0) then
begin
repeat
k:=k+1;
m:=m*k*(k+n);
y:=(power(-1,k)/m)*Power(x/2,n+2*k);
s:=y+s;
until (ABS(y)<=e);
Label1.Caption:=FloatToStr(s);
end else
Label1.Caption:='Числа не удовлетворяют условию';
end;
end.
Тестирование программы
|
Значение n | Значение х | Значение е | Результат | |
5 | 7 | 4 | -378,543303956125 | |
1,5 | 2 | 9 | Числа не удовл. условию | |
6 | 10 | 1 | -13031,2233984138 | |
|
Задача №6
Написать программу набора суммы очков S из слагаемых, являющихся целыми числами, каждое из которых принадлежит интервалу [k, l] и генерируется случайным образом. Сумму набирать до тех пор, пока не выполнится условие S < n-5 (n - задано).
Проект
Form1
Procedure Button1Click (вычисление)
Математическая модель.\
Входные данные
|
| Назначение | Тип | |
L | Переменная | Вещественное | |
K | Переменная | Вещественное | |
N | Переменная | Вещественное | |
|
Выходные данные.\
|
| Назначение | Тип | |
S | Значение суммы | Вещественное | |
|
Блок-схема.
36
Описание интерфейса.
|
Объект | Свойство | Устанавливаемое значение. | |
Edit1 | Caption | Поле ввода “K” | |
Edit2 | Caption | Поле ввода “L” | |
Edit3 | Caption | Поле ввода “N” | |
Label1 | Text | Поле вывода “K” | |
Label2 | Text | Поле вывода “L” | |
Label3 | Text | Поле вывода “N” | |
Label4 | Text | Поле вывода “S” | |
Button1 | Caption | Кнопка «Вычислить» | |
|
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton; //кнопка Вычислить
Edit1: TEdit; //поле ввести значение L
Label1: TLabel; //поле вывести значение L
Edit2: TEdit; //поле ввести значение К
Edit3: TEdit; //поле ввести значение N
Label2: TLabel; //поле вывести значение К
Label3: TLabel; //поле вывести значение N
Label4: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
k,l,n,S:integer; //значения K, L, N, S
begin
Randomize;
k:=StrToInt(Edit1.Text);
l:=StrToInt(Edit2.Text);
n:=StrToInt(Edit3.Text);
S:=0;
repeat
S:=S+(Random(l+1)+k); //вычислить значение S
until S<(n-5);
Label1.Caption:=IntToStr(S);
end;
end.
Тестирование программы
|
Значение | Значение | Значение | Результат | |
2 | 7 | 22 | 7 | |
|
Задача №7
В 1985 году урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов урожай увеличивается на 5 %. Определить, через сколько лет урожайность достигнет 25 ц с га.
Структура проекта
Проект
Form1
Procedure FormCreate
Математическая модель
Входные данные
|
| Назначение | Тип | |
S | Переменная | Целое | |
I | Переменная | Вещественное | |
|
Выходные данные
|
| Назначение | Тип | |
I | Значение | Вещественное | |
|
Блок-схема
36
Описание интерфейса
|
Объект | Свойство | Устанавливаемое значение | |
Label1 | Caption | Поле вывода I | |
Edit1 | Text | Поле ввода S | |
Button1 | Caption | Кнопка «Вычислить» | |
|
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1:TEdit;
Button1:TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer; // значение i
s:real; // значение S
begin
s:=20;
i:=0;
repeat
i:=i+2;
s:=s+s*0.05;
until s>=25;
label1.Caption:='Урожайность достигнет 25 ц с га через '+IntTоStr (i) +' лет';
end;
end.
Тестирование программы.
«Урожайность достигнет 25 ц с га через 10 лет»
Задача №8.
Переведите число из десятичной в восьмеричную систему счисления.
Структура проекта.
Проект
36
Математическая модель.
Входные данные.
|
| Назначение | Тип | |
Z | Переменная | Целое | |
|
Выходные данные.
|
| Назначение | Тип | |
Z | Результат вычислений | Целое | |
|
Блок-схема.
36
Описание интерфейса.
|
Объект | Свойство | Установленное значение | |
Edit1 | Text | Поле ввода значения Z | |
Label1 | Caption | Поле вывода значения Z | |
Label2 | Caption | Результат | |
Button1 | Caption | Кнопка Вычислить | |
|
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; //поле ввести значение z
Button1: TButton; // кнопка Вычислить
Label1: TLabel; // поле вычислить значение z
Label2: TLabel; // поле вычислить значение j
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer; // значения i, j
s,z:string; // значения s, z
begin
Label1.Caption:=''; // вычислить значение j
j:=StrToInt(Edit1.Text);
repeat
// вычислить значение z
z:=z+IntTOStr(j mod 8);
j:=j div 8;
until j<8;
z:=z+IntTOStr(j);
for i:=Length(z) downto 1 do
Label1.Caption:=Label1.Caption+z[i]
end;
end.
Тестирование программы
|
Значение Z | Результат | |
79 | 117 | |
11 | 13 | |
39 | 47 | |
|
Задача №9.
Начав тренировки, спортсмен в первый день пробежал 13 км. Каждый следующий день он увеличивал дневную норму на 1,4 % от нормы предыдущего дня. На какой день он пробежит больше 24 км?
Структура проекта.
Проект
Математическая модель.
Входные данные.
|
| Назначение | Тип | |
S | Путь, пройденный за один день | Целое | |
I | День | Целое | |
|
Выходные данные.
|
| Назначение | Тип | |
I | День, на который спортсмен пробежит больше 24км | Целое | |
|
Блок-схема.
36
Описание интерфейса.
|
Объект | Свойство | Назначение | |
Label1 | Caption | Поле вывода значения I | |
|
Текст программы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
s:real;
begin
s:=13;
i:=1;
repeat
i:=i+1;
s:=s+s*0.14;
until s>=24;
label1.Caption:='Спортсмен пробежит больше 24км на '+IntTOStr(i)+' день';
end;
end.
Тестирование программы.
«Спортсмен пробежит больше 24 км на 6-ой день».