Показать сообщение отдельно
  #18  
Старый 30.05.2011, 11:58
Row Row вне форума
Прохожий
 
Регистрация: 20.03.2011
Сообщения: 21
Репутация: 10
По умолчанию

до такого тупежа я опускался...
ну делал не условия, а case:
Код:
type месяц = (янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var k:1..366; d:1..31; m:месяц;
    
begin
writeln('vvedite nomer dnya ne visokosnogo goda');
readln(k);

if (k>=1) and (k<=365) then begin

case k of
  1..31:begin m:=янв; d:=(k-1)+1 end;
  32..59:begin m:=фев; d:=(k-32)+1 end;
  60..90:begin m:=мар; d:=(k-60)+1 end;
  91..120:begin m:=апр; d:=(k-91)+1 end;
  121..151:begin m:=май; d:=(k-121)+1 end;
  152..181:begin m:=июн; d:=(k-152)+1; end;
  182..212:begin m:=июл; d:=(k-182)+1 end;
  213..243:begin m:=авг; d:=(k-213)+1 end;
  244..273:begin m:=сен; d:=(k-244)+1 end;
  274..304:begin m:=окт; d:=(k-274)+1 end;
  305..334:begin m:=ноя; d:=(k-305)+1 end;
  335..365:begin m:=дек; d:=(k-335)+1 end;
end;

case m of
  янв:writeln('January');
  фев:writeln('February');
  мар:writeln('March');
  апр:writeln('April');
  май:writeln('May');
  июн:writeln('June');
  июл:writeln('July');
  авг:writeln('August');
  сен:writeln('September');
  окт:writeln('October');
  ноя:writeln('November');
  дек:writeln('December');
end;

writeln(d,' day');
                    end

else writeln('eRRor');

readln;
end.

получается примитивно, зато работает...
но преподу не понравилось.
Получается, что я должен сделать что-то более продуманное чем условия или кейс, но примитивнее чем масивы.
В голову приходит только деление, но его по понятным причинам использовать не получится)
Ответить с цитированием