• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Определить, сколько дней прошло с начала сезона.

  • Автор темы Автор темы Ins1s
  • Дата начала Дата начала
program Oo;
var seson:char;
n,b:real;
сase b of: ---------------------------- тут он выдвет ошибку.
12,1,2: seson:='Зима';
3..5: seson:='Весна';
6..8: seson:='Лето';
9..11: seson:='Осень';
end;
case b of:
{с начала сезона прошло количество дней, равное сегодняшней дате}
12,3,6,9: n:=a-1;
{с начала сезона прошло количество дней, равное сумме предыдущих месяцев плюс сегодняшняя дата}
1,4: n:=31+a-1;
2: n:=31+31+a-1;
5,8,11: n:=31+30+a-1;
7,10: n:=30+a-1;
end;
writeln ('Сейчс на дворе ',seson, '; с начала сезона прошло ', n, ' дней');
END.
 
Собственно ступил, после of не надо двоеточия. И b должно быть целого типа
 
Да, и seson не char (символ), a string (строка)
 
Да, и seson не char (символ), a string (строка)

Ага, а еще не описана переменная а, а еще не поставлен общий открывающий begin, а еще пропущен останов, а еще...
Ну ладно, как-то так (проверено):
Код:
program Oo;
Var
 Season:STRING;
 date,month,n:INTEGER;
BEGIN
 WriteLn('Enter current month and date:');
 Write('Month= '); ReadLn(Month);
 Write('Date= '); ReadLn(Date);
 Case Month of
  12,1,2: Season:='winter';
    3..5: Season:='spring';
    6..8: Season:='summer';
   9..11: Season:='autumn';
 end;
 Case Month of
{Number of days passed from the season beginning is equal to current date}
  12,3,6,9: n:=Date-1;
{Number of days passed from the season beginning is equal to current date
 plus the sum of days in previous month(s)}
       1,4: n:=31+Date-1;
         2: n:=31+31+Date-1;
    5,8,11: n:=31+30+Date-1;
      7,10: n:=30+Date-1;
 end;
 Writeln ('It is '+Season+' now; ',n,' days passed from the beginning.');
 ReadLn;
END.
Комментарии:
1. Перешел на английский, потому что приходится прыгать между Windows и DOS, а у них разные кодировки кириллицы. Транслит же терпеть не могу.
2. Один из общих принципов написания программ: идентификаторы следует, по возможности, использовать осмысленные, а не безликие a, b, c...
 
Ну вот я написал фрагмент программы, который обрабатывает полученные данные и выводит их. Автор же принял это за весь раздел операторов.
Комментарии к комментариям:
1) писал код прямо здесь, на форуме, так что проблем с кодировками не было. Как будет в итоге - по-русски, по-английски или транслитом, решать автору;
2) переменные а, b и с были заявлены автором в первом посте. Сам же я тоже предпочитаю использовать более-менее осмысленные имена. ну кроме переменной i, которая на рынке счетчиков уже около 20 лет :)
З.Ы. Проблем с кодировкой в Windows и DOS можно избежать, если использовать текстовый редактор AkelPad. С его помощью файл можно сохранить в такой кодировке, в которой и винда, и дос будут корректно отображать кириллицу
 
Вот это вряд ли, хотя им же можно и перекодировать в другую кодировку. А еще можно пользоваться Notepad++, тот вообще синтаксис подсвечивает :)
 
спс:) вам.. я тут многое узнал:)
 
Назад
Сверху