Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет компьютерных технологий
Кафедра «Информационные системы»
ОТЧЕТ
по расчетно-графическому заданию
по курсу «Информатика и программирование» 1 семестр.
Тема: «Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi».
Студент группы 9ПИ-1 Шикер С.А.
2010
Вариант №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
Структура проекта
Стандартно, включенные в проект: Windows,
Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs;
Дополнительно включенные: Math
Проект
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.
Тестирование программы.
Значение х |
Результат |
1 |
19,073669 |
3 |
0,0861794 |
4 |
Функция неопределенна |
Задача №2.
Дано натуральное n. Вычислить: .
Структура проекта.
Стандартно, включенные в проект: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Math;
Проект
Form1
Label1 (“n=”)
Label2 (“Результат”)
Edit1 (поле ввода значения n)
Button1 (кнопка Вычислить)
Label3 (поле вывода значения)
Procedure
Button1Click (вычисление)
Математическая модель.
Входные данные.
Назначение. |
Тип. |
|
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 |
Не удовлетворяет условию. |
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 такое, что
Структура проекта.
П
Стандартно, включенные в проект: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math;
роект
Edit1 (поле ввода значения х1)
Edit2 (поле ввода значения у1)
Edit3 (поле ввода значения е)
Label1 (“х1”)
Label2 (“у1”)
Label3 (“e”)
Label4 (после вывода значения х)
Button1 (кнопка Вычислить)
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,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 значение
Структура проекта.
П
Стандартно, включенные в проект: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Дополнительные: Math;
Form1
Label1 (ввести значение n)
Label2 (ввести значение х)
Label3 (ввести значение е)
Label4 (поле вывода результата)
Edit1 (поле ввода значения n)
Edit2 (поле ввода значения х)
Edit3 (поле ввода значения е)
Button1 (кнопка Вычислить)
Procedure
Button1Click (вычисление)
роектМатематическая модель
Входные данные.
Назначение |
Тип |
|
Х |
Переменная |
Вещественное |
е |
Точное вычисление |
Вещественное |
Выходные данные.
Назначение |
Тип |
|
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 |
Значение х |
Значение е |
Результат |
5 |
7 |
4 |
-378,543303956125 |
1,5 |
2 |
9 |
Числа не удовл. условию |
6 |
10 |
1 |
-13031,2233984138 |
Задача №6
Написать программу набора суммы очков S из слагаемых, являющихся целыми числами, каждое из которых принадлежит интервалу [k, l] и генерируется случайным образом. Сумму набирать до тех пор, пока не выполнится условие S < n-5 (n – задано).
П
Стандартно, включенные в программу: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
роект
Edit1 (поле ввести значение L)
Edit2 (поле ввести значение K)
Edit3 (поле ввести значение N)
Label1 (поле вывести значение L)
Label2 (поле вывести значение K)
Label3 (поле вывести значение N)
Label4 (поле вывести значение S)
Button1 (кнопка Вычислить)
Form1Procedure 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.
Тестирование программы
Значение |
Значение |
Значение |
Результат |
2 |
7 |
22 |
7 |
Задача №7
В 1985 году урожай ячменя составил 20 ц с га. В среднем каждые 2 года за счет применения передовых агротехнических приемов урожай увеличивается на 5 %. Определить, через сколько лет урожайность достигнет 25 ц с га.
Структура проекта
Проект
Стандартно, включенные в программу: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Edit1
Label1
Button1
Form1Procedure 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 |
Результат |
79 |
117 |
11 |
13 |
39 |
47 |
Задача №9.
Начав тренировки, спортсмен в первый день пробежал 13 км. Каждый следующий день он увеличивал дневную норму на 1,4 % от нормы предыдущего дня. На какой день он пробежит больше 24 км?
Структура проекта.
П
Стандартно, включенные в программу: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Form1
Label1 (поле вывода значения I)
Procedure
FormCreate
роектМатематическая модель.
Входные данные.
Назначение |
Тип |
|
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-ой день».
- Разработка и реализация алгоритмов обработки данных, получаемых с помощью сканирующих нанотвердомеров семейства НаноСкан
- Разработка приложений в среде VBA IDE
- Разработка типовой конфигурации для рекрутинговых агентств в системе 1С: Предприятие 8
- Распознавание принадлежности объектов к заданным классам детерминированными методами
- Растительные ресурсы Волгоградской области
- Расчет отчислений страховых взносов во внебюджетные фонды РФ
- Региональная экономика на примере Вологодской области
- Психолого-педагогическая практика в школе
- Психолого-педагогическая характеристика классного коллектива
- Психолого-педагогическая характеристика личности учащегося
- Психолого-педагогічна характеристика 10-А класу
- Работа планово-экономического отдела МУП "Комбинат школьного питния"
- Работа психолога в детском дошкольном учреждении
- Работа с программным обеспечением компьютера