Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 08.06.2010 |
Размер файла | 83,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
36
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Факультет компьютерных технологий
Кафедра «Информационные системы»
ОТЧЕТ
по расчетно-графическому заданию
по курсу «Информатика и программирование» 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 |
Значение функции |
Вещественный |
Блок-схема.
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-ой день».
Подобные документы
Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Понятие и основные свойства алгоритма. Линейный, ветвящийся и циклический виды вычислительных процессов. Перевод числа из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную системы, сложение чисел, выполнение вычитания и умножения.
контрольная работа [125,7 K], добавлен 15.09.2013Особенности и тонкости программирования в среде Delphi. Специфика перехода от алгоритмического решения к непосредственной программной реализации на языке Object Pascal с использованием всех необходимых средств данного языка. Анализ полученных результатов.
реферат [246,2 K], добавлен 17.11.2012Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Использование объектно-ориентированной методологии при программировании математических процессов. Среда языка программирования Delphi для решения математических задач. Объектно-ориентированные, декларативные и императивные языки программирования.
дипломная работа [1,8 M], добавлен 14.09.2011Целые числа в позиционных системах счисления. Недостатки двоичной системы. Разработка алгоритмов, структур данных. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С. Тестирование программного обеспечения.
курсовая работа [593,3 K], добавлен 03.01.2015Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.
курсовая работа [967,6 K], добавлен 20.05.2008Изучение особенностей создания алгоритмов вычислительных задач. Визуальное программирование стандартных компонентов среды программирования Delphi. Технология создания компонента Delphi для решения производственной задачи. Выполнение блок-схемы алгоритма.
курсовая работа [638,0 K], добавлен 30.01.2015История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.
курсовая работа [970,5 K], добавлен 15.05.2014Перевод числа из десятичной системы счисления в двоичную. Результат выполнения в TURBO PASKAL заданных функций и операций. Программа вычисления значений функции на языке PASKAL, блок-схема. Вычисление суммы и произведения всех элементов массива.
контрольная работа [66,6 K], добавлен 15.02.2013