Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2011, 20:29   #1
katya_bush
Новичок
Джуниор
 
Регистрация: 14.11.2011
Сообщений: 8
Сообщение Линейные алгоритмы

1.1. Определите длину жизни в секундах. Исходные данные – день рождения и текущая дата задаются тремя числами: днем, месяцем и годом.
katya_bush вне форума Ответить с цитированием
Старый 14.11.2011, 20:42   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ну да ) Посчитать, сколько лет прошло. Посчитать, сколько из них было високосных. Сравнить дни и месяцы, и либо добавить, либо вычесть разницу между ними. Умножить все это на количество секунд в сутках. И получится ответ.

Что из этого не получается? )
Son Of Pain вне форума Ответить с цитированием
Старый 14.11.2011, 20:58   #3
katya_bush
Новичок
Джуниор
 
Регистрация: 14.11.2011
Сообщений: 8
По умолчанию

Я не могу связать високосные дни и невысокосные. Без високосных решение есть. Посмотри пожалуйста и исправь.

Var year1: word; {год рождения}
Var year2: word; {текущий год}
Var year3: word; {временная переменная лет}
Var month1: word; {месяц рождения}
Var month2: word; {текущий месяц}
Var month3: word; {временная переменная месяцев}
Var day1: word; {день рождения}
Var day2: word; {текущий день}
Var day3: word; {временная переменная дней}
Var sec: long; {итоговое время}

Begin
Writeln( 'Введите исходные данные' year2, month2, day2);{берем текущую дату}
Readln(year2, month2, day2);
If (day1 < day2) then {Если день рождения меньше текущего, то…}
begin
Day3 := day2 – day1;{просто отнимаем}
End;
Else {если наоборот -}
Begin
{Для простоты все месяцы по 31 дню}
Day3 := 31 – day1 + day2; { - вычисляем разницу в днях и}
Month2 := month2 – 1; {отнимаем месяц}
End;
{с месяцами то же самое}
If (month1 < month2) then {Если месяц рождения меньше текущего, то…}
begin
month3 := month2 – month1;{просто отнимаем}
End;
Else {если наоборот -}
Begin
month3 := 12 – month1 + month2; { - вычисляем разницу в месяцах и}
year2 := year2 – 1; {отнимаем год}
End;
year3 := year2 – year1;{разбираемся с годами}
{теперь мы знаем разницу, считаем секунды}
Sec := day3 * 60 * 60 * 24; {кол-во секунд в днях}
Sec := sec * month3 * 31; {месяцы тоже посчитали}
Sec := sec * year3 * 12; {и вот итог}
WriteLn('Вы прожили : ', sec,' секунд!');
End.
katya_bush вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
с++ . ветвление \\линейные алгоритмы DiLemma Общие вопросы C/C++ 8 01.04.2010 16:32
Delphi 7. Линейные алгоритмы. Юрий2009 Помощь студентам 1 01.05.2009 11:23
Линейные и разв. алгоритмы на С++ Wia Помощь студентам 1 28.01.2009 20:34
Линейные и разв. алгоритмы Wia Помощь студентам 3 14.12.2008 15:57