Автор работы: Пользователь скрыл имя, 13 Ноября 2011 в 09:06, курсовая работа
Язык программирования Pascal создан в 1973 году швейцарским ученым
Николасом Виртом и был назван в честь выдающегося французского физика,
математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641).
Введение……………………………………………………………………………….3
1 Используемые методы, описание алгоритма.
1.1. Назначение работы и область её применения. …………………………….......4
1.2. Используемые методы, описание алгоритма программы с описаний функций составных частей и связи между ними……………………………………………....5
2 Описание и руководство входных и выходных данных
2.1. Описание входных и выходных данных…………………………………….......7
2.2. Руководство пользователя……………………………………………………….8
Заключение……………………………………………………………………………..9
Глоссарий………………………………………………………………………………10
Список использованных источников………………………………………………....11
Приложение .……………………………………………………………………….12-16
.
1 | Абрамов В.Г., Трифонов
Н.П. Введение в язык Паскаль. – М.
:Наука,
1988.-320 с. |
2 | Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. –М.: Наука, 1987. – 112 с. |
3 | Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке Паскаль. – Л.: Издательство Ленинградского университета, 1985. – 216 с. |
4 | Грэхем Р. Практический курс языка Паскаль. – М.: Радио и связь. 1986 –200 с. |
5 | Йенсен К., Вирт
Н. Руководство для пользователя
и описание языка. –
М., 1982. 151 с. |
6 | Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.: Наука, 1989.– 160 с. |
7 | |
8 | |
9 | |
10 |
Приложение 1.
ЛИСТИНГ ПРОГРАММЫ
Program bioritm;
{Программа для определения физической, эмоциональной и
интеллектуальной активности человека. Вводится дата рождения и
текущая дата.
Программа вычисляет и выводит на экран общее количество дней
часов, минут и секунд, разделяющих обе даты, а также прогнозирует
на месяц вперед даты, соответствующие максимуму и минимуму биоритмов}
CONST
SIZE_OF_MONTH: ARRAY [1..12] OF BYTE=
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var
d0,d, {Дни рождения и месяцы}
m0,m, {Месяцы рождения и текущий}
y0,y, {Годы рождения и текущий}
dmin, {Наименее благоприятный день}
dmax, {Наиболее благоприятный день}
days: integer; {Количество дней от рождения}
{-----------------------------
PROCEDURE InputDates (var d0,m0,y0,d,m,y: integer);
{Ввод даты рождения и текущей даты.
Контроль правильности дат и их непротиворечивости
(текущая дата
должна быть позже даты
var
correctly: boolean; {Признак правильности ввода}
{-----------------------------
PROCEDURE InpDate (text: string; var d,m,y: integer);
{Выводит приглашение TEXT, вводит дату в формате ДД ММ ГГГГ и проверяет ее правильность}
const
YMIN=1900; {Минимальный правильный год}
YMAX=2100; {Максимальный правильный год}
BEGIN {InpDate}
repeat
write (text);
readln(d,m,y);
correctly:=(y>=YMIN) and (y<=YMAX) and (m>=1)
if correctly then
if (m=2) and (d=29) and (y mod 4=0) then
{ничего не делать: это 29 февраля високосного года}
else
correctly:=d<=Size_of_Month[m]
if not correctly then
writeln('ВНИМАНИЕ! Ошибка в дате!');
until correctly
end; {InpDate}
{-----------------------------
BEGIN {InputDates}
repeat
InpDate(' Введите дату рождения в формате ДД ММ ГГГГ: ',
d0,m0,y0);
InpDate(' Введите текущую дату в формате ДД ММ ГГГГ: ',
d,m,y);
correctly:=y>y0; {ПРоверить непротиворечивость дат:}
if not correctly and (y=y0) then
begin
correctly:=m>m0;
if not correctly and (m=m0) then
correctly:=d>d0;
end;
until correctly;
END; {InputDates}
{-----------------------------
PROCEDURE Get_numbers_of_days (d0,m0,y0,d,m,y: integer;
var days: integer);
{Определение полного количества дней, прошедших от одной даты до другой}
{-----------------------------
PROCEDURE Variant2;
{Подсчет количества дней в месяцах, разделяющих обе даты}
var
mm: integer;
BEGIN {Variant2}
mm:=m0;
while mmmax then
begin
max:=x;
dmax:=days+i;
end;
if xdd 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('Наиболее благоприятный день: ',dmax);
END; {WriteDates}
{-----------------------------
BEGIN {ГЛАВНАЯ ПРОГРАММА}
Writeln('_____________________
Writeln('
Программа расчета
Writeln(' Ввод
данных осуществляйте через
Writeln('Окончание ввода данных подтвердите с помощью клавиши
ENTER');
ШтзгеВфеуы(в0бь0бн0бвбьбн)ж
Writeln('---------------------
Get_numbers_of_days(d0,m0,y0,
FindMaxMin(dmin,dmax,days);
WriteDates(dmin,dmax,days);
END.
Приложение 2. Результаты работы
------------------------------
Программа расчета благоприятных дней
Ввод данных осуществляйте через пробел
Окончание ввода данных подтвердите с помощью клавиши ENTER
------------------------------
Введите дату рождения в формате ДД ММ ГГГГ: 22 02 1922
Введите текущую дату в формате ДД ММ ГГГГ: 12 09 2001
Прошло: 29057 дней, 697368 часов, 41842080 минут, 251052480 секунд.
------------------------------
Наименее благоприятный день: 3-окт -2001
Наиболее благоприятный день: 12-сент-2001