Описание алгоритма решения задачи
M[I]=round(sin(random(100)*100)
|
Описание входных и выходных данных
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 Все материалы защищены законодательством РФ.
|