Разработка алгоритмов и программирование различных вычислительных процессов на языке Delphi
Разработка алгоритмов и программирование различных вычислительных процессов на языке 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-ой день».
|