Программа считывания биоритмов
Создание программы считывания биоритмов, в которой запрашивается дата рождения человека и дата, для которой требуется оценить его состояние. Программа должна рассчитать и выдать на экран ближайшие к этой дате дни пика и спада биоритмов. Листинг программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 22.02.2012 |
Размер файла | 21,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Украины
Национально технический университет Украины
“Киевский Политехнический Институт”
Кафедра АЭД
Расчетно-графическая работа
На тему: «Программа считывания биоритмов»
Киев 2008
Содержание
1. Вступление
2. Функциональное предназначение
3. Описание логической структуры
4. Технические средства, которые используются
5. Вызов и загрузка
6. Лист регистрации изменений
7. Листинг программы
1. Вступление
Давно известно, что творческая и физическая активность человека не остается постоянной, циклически меняется, причем периодичность ее изменения приблизительно согласуется с периодом вращения Луны вокруг Земли. Существует теория, согласно которой физическая, эмоциональная и интеллектуальная активность человека подчиняется соответствующим биоритмам. Каждый биоритм представляет собой синусоиду со строго постоянным периодом, причем для каждого биоритма существует свой период. В отдельные дни все три биоритма человека могут достигнуть своего максимума и тогда человек испытывает подъем творческих и физических сил, в такие дни у него все спорится, он легко решает проблемы, которые в другое время ему решить гораздо сложнее. Точно также существуют и «черные» дни, соответствующие спаду всех трех биоритмов.
2. Функциональное предназначение
Используя уже опробованную методику нисходящего программирования, создадим программу, в которой запрашивается дата рождения человека и дата, для которой требуется оценить его состояние. Программа должна рассчитать и выдать на экран ближайшие к этой дате дни пика и спада биоритмов.
3. Описание логической структуры
Алгоритм программы можно укрупнено записать следующим образом:
ввести дату рождения и текущую дату, проконтролировать их правильность и непротиворечивость;
вычислить количество дней между двумя датами, чтобы определить фазу синусоид для текущей даты;
вычислить количество дней от текущей даты до даты ближайшего пика биоритмов и даты ближайшего спада;
определить и напечатать обе даты.
Будем считать, что каждое из перечисленных действий реализуется в отдельной процедуре.
Основные процедуры
Procedure InputDates(var dO,mO,yO,d,m,y: Integer);
{Вводит дату рождения и текущую дату. Контролирует правильность дат и их непротиворечивость (текущая дата должна быть позже даты рождения) }
Procedure Get_count_pf_days (dO,mO,yO,d,m,y: Integer; var days: Integer);
{Определяет полное количество дней, прошедших от одной даты до другой}
Procedure FindMaxMin (var dmin,dmax: Integer; days: Integer);
{Ищет критические дни}
Procedure WriteDates ( dmin , dmax , days : Integer);
{Определяет критические даты по количеству дней, прошедших от момента рождения, и выдает эти даты на экран}
Procedure WriteDates (dmin,dmax,days : Integer);
{Определение и вывод дат критических дней. Вывод дополнительной информации о количестве прожитых дней, часов, минут и секунд }
Procedure WriteDate (text : String; dd : Integer);
{Определение даты для дня DD от момента рождения. В глобальных переменных d, m и у имеется текущая дата, в переменной DAYS -количество дней, прошедших от момента рождения до текущей даты. Выводится сообщение TEXT и найденная дата в формате ДД-МЕС-ГГГГ}
4. Технические средства, которые используются
Программа должна запускаться на ЭВМ, технические характеристики которой позволяют работать в в среде Turbo Pascal 7.0.
5. Вызов и загрузка
Для запуска программы достаточно любого компьютера, на котором установлена хоть какая-нибудь операционная система, семейство Windows. Для запуска программы необходимо запустить файл. Откроется Главное меню.
биоритм листинг программа
6. Лист регистрации изменений
Номера листов |
Всего листов |
№ документа |
Входной номер документа |
Подпись |
Дата |
||||
Измененных |
Замененных |
Новых |
Аннулированых |
||||||
7. Листинг программы
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, вводит дату в формате
ДД ММ ГГГГ и проверяет ее правильность}
Строка изменений
3
ИАЛЦ.4093-01 12 01
const
YMIN=1900; {Минимальный правильный год}
YMAX=2100; {Максимальный правильный год}
BEGIN {InpDate}
repeat
write (text);
readln(d,m,y);
correctly:=(y>=YMIN) and (y<=YMAX) and (m>=1)
and (m<=12) and (d>0);
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}
Строка изменений
4
ИАЛЦ.4093-01 12 01
{----------------------------------------------------}
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 mm<=12 do {Учесть остаток года рождения :}
begin
days:=days+Size_of_Month[mm];
if (mm=2) and (y0 mod 4=0) then inc(days);
inc(mm);
end;
yy:=y0+1;
while yymax then
begin
max:=x;
dmax:=days+i;
end;
if x<>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);
Строка изменений
5
ИАЛЦ.4093-01 12 01
if m0=13 then {Корректировать год}
begin
m0:=1;
inc(y0);
end;
end;
inc(ddd);
end;
writeln(text,d0,'-',Names_of_Monthes[m0],'-',y0);
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');
InputDates(d0,m0,y0,d,m,y);
Writeln('-----------------------------------------');
Get_numbers_of_days(d0,m0,y0,d,m,y,days);
FindMaxMin(dmin,dmax,days);
WriteDates(dmin,dmax,days);
END.
Размещено на Allbest.ru
Подобные документы
Структурная схема получения гороскопа по дате рождения. Листинг исходных кодов программы и руководство пользователя. Ввод данных с помощью объекта класса QDateEdit. Разработка пользовательского интерфейса. Выбор стратегии тестирования и отладка программы.
курсовая работа [1,0 M], добавлен 31.05.2015Разработка программы на языке Pascal. Описание переменных. Действия, которые должна выполнить программа согласно выбранного алгоритма. Детализация графической части программы. Листинг и тестирование программы. Вывод массива данных на экран монитора.
контрольная работа [360,4 K], добавлен 13.06.2012Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.
лабораторная работа [3,1 M], добавлен 03.02.2008Программа на языке VBA, которая выводит исходные данные на экран и выполняет расчеты и предназначена для учета на складе мастерской индивидуального пошива. Описание переменных и алгоритма программы. Листинг программы, примеры произведенных расчетов.
реферат [25,4 K], добавлен 10.12.2010Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.
контрольная работа [1,3 M], добавлен 12.06.2009Дата-центр: история, структура, классификация, сетевая инфраструктура. "Трэш-дата-центры". Определение уровня надежности дата-центра. Опасности безопасность. Атаки на облака и решения по их устранению. Организация защищенного доступа к оборудованию.
курсовая работа [1,7 M], добавлен 30.11.2016Разработка программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран заданную информацию. Типы блок-схем и их использование при написании программы. Описание входных данных и результат вычислений, листинг программы.
курсовая работа [680,3 K], добавлен 03.08.2009Разработка программы на языке программирования C++ с функциями считывания словаря в начале работы программы из текстового файла и записи словаря в файл перед завершением работы. Основные элементы программного продукта: данные абонента телефонной сети.
контрольная работа [12,9 K], добавлен 07.04.2015Написание программы, формирующей текстовый файл и выводящую на экран таблицу согласно заданному условию. Реализация принципа формирования текстовых файлов, разработка отдельных модулей (процедур) выбора информации из файла. Листинг полученной программы.
курсовая работа [769,1 K], добавлен 29.12.2011Разработка программы, выводящей на экран механизм с возможностью изменения масштаба, скорости вращения звена, сохранения и считывания входных данных из файла в среде разработки MS Visual C#. Блок-схема ее работы. Принцип работы движущихся элементов.
курсовая работа [860,6 K], добавлен 27.06.2013