Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
Даны целое число n, действительные числа x, e (e> 0, n≥ 0). Вычислить с точностью e значение Структура проекта. Вычислить значение функции Y от произвольного X. Провести тестирование программы. Даны t= -23,4; d= 12; p=17,6. Вычислить значение функции Y от произвольного X. Провести тестирование программы. Даны t= -23,4; d= 12; p=17,6. Тема: «Разработка алгоритмов и программирование различных… Читать ещё >
Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi (реферат, курсовая, диплом, контрольная)
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет компьютерных технологий Кафедра «Информационные системы»
ОТЧЕТ по расчетно-графическому заданию по курсу «Информатика и программирование» 1 семестр.
Тема: «Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi».
Студент группы 9ПИ-1 Шикер С.А.
Вариант № 16
1. Вычислить значение функции 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 | Значение функции | Вещественный | |
Блок-схема.
Описание интерфейса.
Объект. | Свойство. | Устанавливаемое значение. | |
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.
Тестирование программы.
Значение х | Результат | |
19,73 669 | ||
0,861 794 | ||
Функция неопределенна | ||
Задача № 2.
Дано натуральное n. Вычислить: .
Структура проекта.
Проект Математическая модель.
Входные данные.
Назначение. | Тип. | ||
n | Переменная формулы. | Целый. | |
Выходные данные.
Назначение. | Тип. | ||
р | Результат вычислений. | Вещественный. | |
Блок-схема.
Описание интерфейса.
Объект. | Свойство. | Установленное значение. | |
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 | Не удовлетворяет условию. | |
4,5 | ||
2,3 | Не удовлетворяет условию. | |
Не удовлетворяет условию. | ||
Задача № 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 | Переменная функции | Вещественный | |
у | Переменная функции | Вещественный | |
Выходные данные
Назначение | Тип | ||
х | Значение функции | Вещественный | |
Блок-схема.
Описание интерфейса
Объект. | Свойство. | Устанавливаемое значение. | |
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,½);
x:=x1+y1;
x1:=x;
y1:=y;
until (ABS (x-y)>=e);
Label4.Caption:=FloatToStr (x1);
end else
Label4.Caption:='Числа не удовлетворяют условию';
end;
end.
Тестирование программы
Значение х1 | Значение у1 | Значение е | Результат | |
65,34 543 039 642 | ||||
Числа не удовлетворяют условию | ||||
Задача № 5.
Даны целое число n, действительные числа x, e (e> 0, n>= 0). Вычислить с точностью e значение Структура проекта.
Проект
Математическая модель Входные данные.
Назначение | Тип | ||
Х | Переменная | Вещественное | |
е | Точное вычисление | Вещественное | |
Выходные данные.
Назначение | Тип | ||
S | Значение суммы | Вещественный | |
Блок-схема.
Описание интерфейса
Объект | Свойство | Назначение | |
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 | Значение х | Значение е | Результат | |
— 378,543 303 956 125 | ||||
1,5 | Числа не удовл. условию | |||
— 13 031,2233984138 | ||||
Задача № 6
Написать программу набора суммы очков S из слагаемых, являющихся целыми числами, каждое из которых принадлежит интервалу [k, l] и генерируется случайным образом. Сумму набирать до тех пор, пока не выполнится условие S < n-5 (n — задано).
Проект
Form1
Procedure Button1Click (вычисление) Математическая модель.
Входные данные
Назначение | Тип | ||
L | Переменная | Вещественное | |
K | Переменная | Вещественное | |
N | Переменная | Вещественное | |
Выходные данные.
Назначение | Тип | ||
S | Значение суммы | Вещественное | |
Блок-схема.
Описание интерфейса.
Объект | Свойство | Устанавливаемое значение. | |
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.
Тестирование программы
Значение | Значение | Значение | Результат | |
Задача № 7
В 1985 году урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов урожай увеличивается на 5%. Определить, через сколько лет урожайность достигнет 25 ц с га.
Структура проекта Проект
Form1
Procedure FormCreate
Математическая модель Входные данные
Назначение | Тип | ||
S | Переменная | Целое | |
I | Переменная | Вещественное | |
Выходные данные
Назначение | Тип | ||
I | Значение | Вещественное | |
Блок-схема
Описание интерфейса
Объект | Свойство | Устанавливаемое значение | |
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.
Переведите число из десятичной в восьмеричную систему счисления.
Структура проекта.
Проект
Математическая модель.
Входные данные.
Назначение | Тип | ||
Z | Переменная | Целое | |
Выходные данные.
Назначение | Тип | ||
Z | Результат вычислений | Целое | |
Блок-схема.
Описание интерфейса.
Объект | Свойство | Установленное значение | |
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 | Результат | |
Задача № 9.
Начав тренировки, спортсмен в первый день пробежал 13 км. Каждый следующий день он увеличивал дневную норму на 1,4% от нормы предыдущего дня. На какой день он пробежит больше 24 км?
Структура проекта.
Проект Математическая модель.
Входные данные.
Назначение | Тип | ||
S | Путь, пройденный за один день | Целое | |
I | День | Целое | |
Выходные данные.
Назначение | Тип | ||
I | День, на который спортсмен пробежит больше 24 км | Целое | |
Блок-схема.
Описание интерфейса.
Объект | Свойство | Назначение | |
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-ой день».