Отчет_по_практике на тему Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
Работа добавлена на сайт bukvasha.net: 2015-06-30Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет компьютерных технологий
Кафедра «Информационные системы»
ОТЧЕТ
по расчетно-графическому заданию
по курсу «Информатика и программирование» 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
Структура проекта
Проект
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. Вычислить: .
Структура проекта.
Проект
Математическая модель.
Входные данные.
| Назначение. | Тип. |
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 такое, что
Структура проекта.
Проект
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 значение
Структура проекта.
Математическая модель
Входные данные.
| Назначение | Тип |
Х | Переменная | Вещественное |
е | Точное вычисление | Вещественное |
Выходные данные.
| Назначение | Тип |
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 – задано).
Проект
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.
Тестирование программы
Значение | Значение | Значение | Результат |
2 | 7 | 22 | 7 |
Задача №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 | Результат |
79 | 117 |
11 | 13 |
39 | 47 |
Задача №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-ой день».