Автор работы: Пользователь скрыл имя, 19 Июля 2013 в 17:18, курсовая работа
Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще.
1. ВВЕДЕНИЕ 3
2. НАЗНАЧЕНИЕ РАБОТЫ И ОБЛАСТЬ ЕЕ ПРИМЕНЕНИЯ. ПОСТАНОВКА ЗАДАЧИ 4
3. ИСПОЛЬЗУЕМЫЕ МЕТОДЫ, ОПИСАНИЕ АЛГОРИТМА ПРОГРАММЫ С ОПИСАНИЕМ ФУНКЦИЙ СОСТАВНЫХ ЧАСТЕЙ И СВЯЗИ МЕЖДУ НИМИ 5
4. ОПИСАНИЕ ВХОДНЫХ И ВЫХОДНЫХ ДАННЫХ 7
5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 7
6. ЗАКЛЮЧЕНИЕ 7
7. СПИСОК ЛИТЕРАТУРЫ 9
8. ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММЫ 10
9. ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТЫ РАБОТЫ 17
Variant3;
{Даты отличаются годами}
end;
END; {Get_numbers_of_days}
{-----------------------------
PROCEDURE FindMaxMin (var dmin,dmax: integer;
{Поиск критических дней }
const
TF=2*3.1416/23.6884; {Период физической активности}
TE=2*3.1416/28.4261; {Период эмоциональной активности}
TI=2*3.1416/33.1638; {Период интеллектуальной активности}
INTERVAL=30; {Интервал прогноза}
var
min,max,x:real;
i:integer;
BEGIN {FindMaxMin}
max:=sin(days*TF)+sin(days*TE)
min:=max;
dmin:=days;
dmax:=days;
for i:=0 to INTERVAL do
begin
x:=sin((days+i)*TF)+sin((days+
if x>max then
begin
max:=x;
dmax:=days+i;
end;
if x<min then
begin
min:=x;
dmin:=days+i;
end;
end;
END; {FindMaxMin}
{-----------------------------
PROCEDURE WriteDates(dmin,dmax,days:
{Опреджеление и вывод дат критических дней.
Вывод дополнительной информации о количестве
прожитых дней, часов, минут и секунд}
{-----------------------------
PROCEDURE WriteDate(text:string;
dd:integer);
{Определение даты для дня DD от монента рождения.
В глобальных переменных d,m и y имеется текущая дата,
в переменной DAYS - количество дней, прошедших от момента
рождения до текущей даты.
Выводится сообщение TEXT и найденная дата в формате
ДД-ММ-ГГГГ.}
const
Names_of_Monthes:array[1..12] of string[5]=
('янв ','февр','март','апр ','май ',
'июнь','июль','авг ','сент','
'нояб','дек ');
var
d0,m0,y0,ddd:integer;
BEGIN {WriteDate};
d0:=d;
m0:=m;
y0:=y;
ddd:=days;
while ddd<>dd do
begin
inc(d0); {Нарастить число}
if (y0 mod 4<>0) and (d0>Size_of_Month[m0]) or
(y0 mod 4=0) and (d0=30) then
begin {Корректировать месяц}
d0:=1;
inc(m0);
if m0=13 then {Корректировать год}
begin
m0:=1;
inc(y0);
end;
end;
inc(ddd);
end;
writeln(text,d0,'-',Names_of_
END; {WriteDate}
{-----------------------------
var
longdays: longint; {"Длинная" целая переменная
для часов, минут и секунд}
BEGIN {WriteDates}
longdays:=days;
writeln('Прошло: ',longdays,' дней, ',longdays*24,
' часов, ',longdays*24*60,' минут, ',
longdays*24*360,' секунд.');
WriteDate('Наименее благоприятный день: ',dmin);
WriteDate('Наиболее
END; {WriteDates}
{-----------------------------
BEGIN {ГЛАВНАЯ ПРОГРАММА}
Writeln('_____________________
Writeln(' Программа расчета благоприятных дней ');
Writeln(' Ввод данных осуществляйте через пробел ');
Writeln('Окончание ввода
InputDates(d0,m0,y0,d,m,y);
Writeln('---------------------
Get_numbers_of_days(d0,m0,y0,
FindMaxMin(dmin,dmax,days);
WriteDates(dmin,dmax,days);
END.
---------------------------
Программа расчета благоприятных дней
Ввод данных осуществляйте
Окончание ввода данных подтвердите с помощью клавиши ENTER
------------------------------
Введите дату рождения в формате ДД ММ ГГГГ: 22 02 1922
Введите текущую дату в формате ДД ММ ГГГГ: 12 09 2001
Прошло: 29057 дней, 697368 часов, 41842080 минут, 251052480 секунд.
------------------------------
Наименее благоприятный день: 3-окт -2001
Наиболее благоприятный день: 12-сент-2001
.
1 Йенсен К., Вирт Н. Руководство для пользователя и описание языка.
2 Тот же