Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Полностью готовый отчёт.docx
Скачиваний:
23
Добавлен:
17.02.2016
Размер:
988.94 Кб
Скачать

3.5. Постановка задачи

Цель работы: Дано целое положительное число n. Вычислить . n! =... 3! 2!...

3.6. Описание алгоритма решения задачи

начало

N; X=1;

Y=2;

x:=x+1/y;

Y=y+1;

нет

y>n+1;

да

X;

Конец

3.7. Описание входных и выходных данных

x –результат вычисления выражения типа real.

n–количество повторений цикла, вводимая пользователем.

3.8. Листинг программы

procedure TForm1.Button1Click(Sender: TObject);

var

x,y,n:real;

begin

n:=strtofloat(edit1.text);

x:=1;

y:=2 ;

while y<n+1 do

begin

x:=x+1/y;

y:=y+1;

end;

edit2.text:=floattostrf(x,ffgeneral,1,1);

end;

end.

Задание №4. Массивы

4.1. Постановка задачи

Цель работы: Задан массив А(n). Расположить его элементы в обратном порядке.

4.2. Описание алгоритма решения задачи

n

начало

I>n

нет

да

M[I]=round(sin(random(100)*100)

M[I]

y>n+1

нет

да

M[I]

Конец

4.3. Описание входных и выходных данных

N - количество элементов массива.

M – массив

4.4. Листинг программы

var

Form1: TForm1;

N,I: integer;

M: array of integer;

procedure TForm1.Edit1Change(Sender: TObject;Var key:Char);

begin

if not (key in['0'..'9'])then key:=#0

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Randomize;

n:=StrToInt(Edit1.Text);

SetLength(m,n);

Edit2.Text:=' ';

for I:=0 to n-1 do

begin

m[I]:=Round(Sin(Random(100))*100);

Edit2.Text:=Edit2.Text+' '+IntToStr(m[I]);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit3.Text:=' ';

for i:=n-1 downto 0 do

begin

Edit3.Text:=Edit3.text+' '+IntToStr(m[I]);

end;

end;

end.

Задание №6. Биоритмы

6.1. Постановка задачи

Цель работы: Расчет биоритмов на декабрь 2013 январь 2014.

6.2. Описание входных и выходных данных

N - количество элементов массива.

M – массив

6.3. Листинг программы

var

Form1: TForm1;

Xmin,Xmax,Ymid,m1,y1:integer;

dxy:integer=5;

days:array [1..12] of byte=

(30,28,31,30,31,30,31,31,30,31,30,31);

implementation

{$R *.dfm}

procedure TForm1.Axis;

{Построение и маркировка осей}

var

j,x:integer;

begin

{Очистка поля графика}

Img1.Canvas.FillRect(Rect(0,0,Img1.Width,Img1.Height));

{Построение оси y}

Img1.Canvas.MoveTo(dxy,dxy);

Img1.Canvas.LineTo(dxy,2*Ymid-dxy);

{Построение оси x}

Img1.Canvas.MoveTo(dxy, Ymid);

Img1.Canvas.LineTo(Xmax+dxy,Ymid);

{Цикл нанесения штрихов по оси x}

for j:=1 to days[m1] do

begin

x:=Xmin + j*Xmax div 31; {Координата очередного штриха}

if (j mod 5) <> 0 then {Если штрих - обычный}

begin

{Построение короткого штриха}

Img1.Canvas.MoveTo(X,Ymid-dxy);

Img1.Canvas.LineTo(X,Ymid+dxy);

end

else {Если штрих - удлиненный, с маркировкой}

begin

{Построение удлиненного штриха}

Img1.Canvas.MoveTo(X,Ymid-dxy*2);

Img1.Canvas.LineTo(X,Ymid+dxy*2);

{Коррекция позиции начала маркировки и нанесение маркера}

Img1.Canvas.TextOut(X-dxy,Ymid+dxy*2,IntToStr(j));

end;

end;

end;

procedure TForm1.Graphic(T:integer;Dfi:integer; col:TColor);

{Построение графика}

var

x,y,j:integer;

begin

Img1.Canvas.Pen.Color:=col;

x:=Xmin; {Начальная точка графика}

y:=round(Ymid*(1-0.9*Sin(2*Pi*Dfi/T)));

{Отображение начальной точки}

Img1.Canvas.MoveTo(x,y);

{Цикл вычисления координат кривой в каждый день месяца}

for j:=1 to days[m1] do

begin

x:=Xmin + j * Xmax div 31;

y:=round(Ymid*(1-0.9*Sin(2*Pi*(j+Dfi)/T)));

{Построение очередного звена синусоиды}

Img1.Canvas.LineTo(x,y);

end;

end;

procedure TForm1.Btn1Click(Sender: TObject);

{Выполнение команды "Построить"}

var

dd:integer;

begin

{ dxy:=5;}

Xmin:=dxy;

Xmax:=Img1.Width-2*dxy;

Ymid:=Img1.Height div 2;

m1:=MonthOf(DtP2.Date); {Месяц графика}

y1:=YearOf(DtP2.Date); {Год графика}

if (y1 mod 4)=0 then days[2]:=29;

{Коррекция дня в начальной дате графика}

DtP2.Date:=EncodeDate(y1,m1,1);

if (YearOf(DTP2.Date) mod 4)=0 then days[2]:=29;

{Построение и маркировка осей}

Axis;

{Определение числа дней, прошедших от момента рождения}

dd:=DaysBetween(DTP2.Date,DTP1.Date);

{Построение кривой физического состояния}

Graphic(23,dd mod 23,clRed);

{Построение кривой интеллектуального состояния}

Graphic(28,dd mod 28,clGreen);

{Построение кривой эмоционального состояния}

Graphic(33,dd mod 33,clBlue);

end;

end.