Сделай Сам Свою Работу на 5

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





да
да
нет
n
начало
M[I]=round(sin(random(100)*100)
M[I]
Конец  
I>n
y>n+1
M[I]
нет

 

 


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

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

M – массив

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

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. Биоритмы

 

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

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

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

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

M – массив

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

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.

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

При выполнении контрольной работы были изучены средства и возможности пакета Delphi 7: интерфейс среды программирования, экранный редактор, компилятор, справка и т.д.

Запись алгоритмов задач выполнялась с помощью блок-схем. В ходе решения некоторых задач, декомпозиция задачи приводила к модульной структуре программы, что описывалось структурной схемой вызовов подпрограмм.

При написании программ использовались элементы языка:

1) алгоритмические структуры: присваивание, ветвления и циклы;

2) процедуры ввода-вывода;

3) арифметические функции;

4) процедуры и функции обработки строк;

5) пользовательские процедуры и функции.

Для хранения и обработки данных использовались как простые, так и сложные типы языка программирования Delphi:

1) простые типы: целые, вещественные, символьный;

2) структурные (сложные): массивы, строки, записи, файлы.



В ходе выполнения контрольной работы были закреплены знания и навыки использования языка программирования Delphi для решения практических задач.

 

СПИСОК ЛИТЕРАТУРЫ

1. Вирт Н. Алгоритмы и структуры данных. 2-е издание. – СПб.: Невский

Диалект, 2001

2. Гусева А.И. Учимся программировать: Pascal 7.0. Задачи и методы их

решения. – М.: Диалог-МИФИ, 1998

3. Епанешников А., Епанешников В. Программирование в среде TurboPascal

7.0. – М.: «ДИАЛОГ-МИФИ», 2001

4. Зуев Е.А. Практическое программирование. – М.: «Издательство ПРИОР», 1999

5. Климова Л.М. Pascal 7.0. Практическое программирование. Решение

типовых задач. – М.: КУДИЦ-ОБРАЗ, 2000

6. Кнут Д. Искусство программирования для ЭВМ: Т. 1. Основные

алгоритмы: Пер. с англ. – М.: МИР,1976

7. Перминов О.Н. Программирование на языке Pascal. – М.: Радио и связь,1988

8. Фаронов В.В. TurboPascal 7.0. Начальный курс. Учебное пособие. – М.:

«Нолидж», 2001

9. Фаронов В.В. TurboPascal 7.0. Практика программирования. Учебное

пособие. – М.: «Нолидж», 2001

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.