![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.02.2011
Сообщений: 11
|
![]()
Всем привет! Нужно написать программу на Паскале с использование процедуры и функции...
Условие задачи: Студент должен записаться на сдачу в один из четырех предложенных дней. Написать программу, Физическое, эмоциональное и умственное состояние человека меняется циклически со дня рождения с периодом соответственно 23, 28 и 33 дня. Для К-го дня со дня рождения состояние определяется по формуле: y = sin ((k/p - [k/p])*2П где Р - период 23,28 и 33 дня. [k/p] -целевая часть от деления. Листинг программы uses crt; type date=record d,m,g:integer end; const m:array[1..12]of integer=(31,28,31,30,31,30,31,31,30 ,31,30,31); {кол-во дней в месяцах} var dr,de:date; {день рожд. и день экзам.} bmax:real; {максимальное значение биоритма} no:integer; {номер более подходящего дня} bf,be,bu:real; {значение физич., эмоц., умств. состояний} i,di,k:integer; ch:char; begin clrscr; textbackground(black); textcolor(white); window(15,3,75,25); writeln('Вашему вниманию представляется программа,'); writeln('которая определяет наиболее подходящий'); writeln('день для сдачи экзамена (из четырёх) с'); writeln('точки зрения наиболее благоприятного'); writeln('состояния биоритмов'); textcolor(red); writeln(''); writeln('ВНИМАНИЕ!'); writeln('1. Число и месяц - целые одно-/двузначные числа'); writeln('2. Год - целое 4-значное число'); writeln(''); textcolor(white); writeln('Программу составил студент'); writeln('МГУ ПС группы '); writeln('иванов '); textcolor(green); writeln('г.Москва, 22.2.2011'); gotoxy(24,21); textcolor(white); write('Нажмите любую клавишу...'); ch:=readkey; clrscr; writeln('Введите дату рождения (целые числа):'); {ввод днея рождения} write('День: '); readln(dr.d); write('Месяц: '); readln(dr.m); write('Год: '); readln(dr.g); bmax:=-3; ; writeln; writeln('Введи даты экзаменов:'); for di:=1 to 4 do begin writeln; writeln('Дата ',di); {ввод даты экзамена} write('День: '); readln(de.d); write('Месяц: '); readln(de.m); write('Год: '); readln(de.g); k:=0; {вычислим кол-во дней между днем рожд. и датой экзамена} for i:=dr.g+1 to de.g-1 do {число целых лет} begin k:=k+365; if i mod 4 = 0 then k:=k+1; {поправка на високосный год} end; for i:=dr.m+1 to 12 do {число целых месяце в году рожд.} begin k:=k+m[i]; if (i=2) and (dr.g mod 4 = 0) then k:=k+1; {поправка} end; k:=k+m[dr.m]-dr.d; {число дней в месяце рождения} if (dr.m=2) and (dr.g mod 4 = 0) then k:=k+1; {поправка} for i:=1 to de.m-1 do {число целых месяцев в году экзамена} begin k:=k+m[i]; if (i=2) and (de.g mod 4 = 0) then k:=k+1; end; k:=k+de.d; {день экзамена} {получили кол-во дней} bf:=sin((k/23-trunc(k/23))*2*pi); {вычисление биоритмов} be:=sin((k/28-trunc(k/28))*2*pi); bu:=sin((k/33-trunc(k/33))*2*pi); writeln('Физическое состояние: ',bf:2:3); writeln('Эмоциональное состояние: ',be:2:3); writeln('Умственное состояние: ',bu:2:3); if (bf+be+bu)>bmax then {проверка на максимальное значение} begin bmax:=bf+be+bu; no:=di; end; end; writeln; writeln('Наиболее удобный день №',no); ch:=readkey; end. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Paskal процедуры и функции | Fromki | Помощь студентам | 17 | 09.03.2011 02:50 |
Paskal процедуры и функции | Fromki | Помощь студентам | 1 | 22.02.2011 13:35 |
Процедуры и функции Paskal | Fromki | Помощь студентам | 6 | 09.02.2011 10:23 |
Использование функции ord.(paskal) | netcher | Помощь студентам | 5 | 01.03.2009 21:30 |
выражения и функции языка Object Paskal | etrom | Помощь студентам | 1 | 23.10.2008 22:42 |