Программа считывания биоритмов

Создание программы считывания биоритмов, в которой запрашивается дата рождения человека и дата, для которой требуется оценить его состояние. Программа должна рассчитать и выдать на экран ближайшие к этой дате дни пика и спада биоритмов. Листинг программы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.