Основы алгоритмизации
Для получения рекуррентной зависимости можно воспользоваться отношением: Усенков Д. Ю. Рекурсивный генератор перестановок // Информатика. 1996. № 12. Нам необходимо вычислить сумму первых n членов последовательности ак. Выгодский М. Я. Справочник по элементарной математике. — М.: Наука, 1989. Компьютерная игра «Две кучки спичек» // Информатика. 2004. № 40. 3. Вирт Н. Алгоритмы + структуры данных… Читать ещё >
Основы алгоритмизации (реферат, курсовая, диплом, контрольная)
Анализ данных
Нам необходимо вычислить сумму первых n членов последовательности ак.
ак=
Где x=, a p=p0+(i-1)h, i:=1,…, m.
Исходными являются значения параметров: a, b, n, m, p0, h. В примере используется факториал k! = k (k — 1)(k — 2)*…*1.
Математическая постановка задачи для алгоритмизации
Для получения рекуррентной зависимости можно воспользоваться отношением:
==-1sin (x)e-p (k-2)
Подставим k=1,найдем а1:
а1=sin (x)/ep
S1=a1;
S:=S+a.
Алгоритм решения задачи
Рисунок 1 — Блок-схема программы
Тестовые данные
Для тестирования программы используем следующие данные:
d+b>0, d
d=6
b=8
n=2
m=4
p0=10
h =12
d+b>0, d>b:
d=15
b=10
n=3
m=4
p0=4
h =2
d+b<0:
d=-11
b=10
n=3
m=4
p0=4
h =2
Результаты, соответствующие тестовым данным
алгоритмизация задача алгоритм программа Протестировав программу, получили следующие результаты:
Для первых вводимых данных получили результаты.
s= 1,418 553 124 7312E-20
a=0
x=8
p=10
Для вторых вводимых данных получили результаты:
s= -0,413 322 311 759 435
a= -0,442 845 334 027 966
x= 15
p=4
Для третьих вводимых данных получили результаты:
s= -0,160 454 188 426 478
a= -0,147 083 006 057 605
x= 5,98 423 221 978 307
p=4
1. Кушниренко А. Г., Лебедев А. Г., Зайдельман Я. Н. Информатика 7−9: Учебник для общеобразовательных учебных заведений. — М.: Дрофа, 2000.
2. Компьютерная игра «Две кучки спичек» // Информатика. 2004. № 40. 3.
3. Златопольский Д. М. Сборник задач по программированию. — СПб.: БХВ-Петербург, 2007.
4. Вьюкова Н. И., Галатенко В. А., Ходулев А. Б. Систематический подход к программированию. — М.: Наука, 1988.
5. Кнут Д. Искусство программирования для ЭВМ. Т. 3. Сортировка и поиск. — М.: Мир, 1978.
6. Вирт Н. Алгоритмы + структуры данных = программы. — М.: Мир, 1985.
7. Вентцель Е. С. Исследование операций: задачи, принципы, методология. — М.: Наука, 1988.
8. Окулов С. М. Программирование в алгоритмах. — М.: БИНОМ. Лаборатория знаний, 2002.
9. Липский В. Комбинаторика для программистов. — М.: Мир, 1988. 10.
10. Выгодский М. Я. Справочник по элементарной математике. — М.: Наука, 1989.
11. Андреева Е. В. Комбинаторные задачи / Библиотечка «Первого сентября». Серия «Информатика». — М., 2004.
12. Усенков Д. Ю. Рекурсивный генератор перестановок // Информатика. 1996. № 12.
Приложение
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class (TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button1: TButton;
Edit7: TEdit;
procedure Button1Click (Sender: TObject);
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1. Button1Click (Sender: TObject);
var
n, m, i, k: integer;
t, x, a, b, h, p, S, y: real;
begin
n:=strtoint (edit1.Text);
m:=strtoint (edit2.Text);
a:=strtofloat (edit3.Text);
b:=strtofloat (edit4.Text);
t:=strtofloat (edit5.Text);
h:=strtofloat (edit6.Text);
Form1.caption:=edit1.Text;
if (a+b)>0 then
if a>b then x:=a else x:=b
else x:=a*sin (b);
for i:=1 to m do begin
p:=t+(i-1)*h;
y:=sin (x)/exp (p);
S:=y;
for k:=2 to n do
begin
y:=-1*(k-2)*a*sin (x)/exp (p);
S:=S+y;
end;
edit8.Text:=floattostr (y);
edit7.Text:=floattostr (s);
edit9.Text:=floattostr (x);
edit10.Text:=floattostr (t);
end.