Другие языки программирования и технологии

Вопрос по ПаскалюВводится дата (день, месяц, год) необходимо посчитать сколько дней прошло с начала года.

Доброго времени суток.

И какая проблема? Объявляете константу и функцию, которая возвращает True для високосного года.

const
DayInMonth : array[1..12] of Byte = (31,28,31,30,31,30,31,31,30,31,30,31);

function IsLeapYear(AYear: Integer): Boolean;
begin
IsLeapYear := (AYear mod 4 = 0) and ((AYear mod 100 <> 0) or (AYear mod 400 = 0));
end;

А дальше в цикле от 1 до месяца минус 1 суммируете элементы массиваDayInMonth

TotalDays := 0;
for i:=1 to M-1 do TotalDays := TotalDays + DayInMonth[ i ];

В конце прибавляете число дней в дате

TotalDays := TotalDays + D -1;

Минус 1 потому, что текущий день еще не прошел. Ну и наконец,

if (M > 2) and IsLeapYear(Y) then TotalDays := TotalDays + 1;

Для второй задачи подсказка. Объявите массив

Chars : array['a'..'z'] of Integer;

Затем в цикле сделайте

for i:=1 to Length(S) do Inc(Chars[S[ i ]]);

А потом найдите максимальный элемент массива. Его индекс и будет наиболее встречающимся символом.

Удачи!
ТУ
Тема Ульянченко
59 613
Лучший ответ
оооооооо да я с подобной задачкой в свое время ебался долго. Тока там сложнее было. Надо ввести дату рождения и текущую, прога считала, скока дней ты прожил.

Я делал так.
если (переменная месяца) =1 то (переменная количества дней) = 0
если (переменная месяца) =2 то (переменная количества дней) = 31
если (переменная месяца) =3 то (переменная количества дней) = 31 +28
и так далее. а потом прибавлял дни. но была переменнная булевая, говорясчая, високосный ли год
а еще есть варианты решения?