Как составить программу время года в паскале

Максим Ардушин

Гуру

(4092)


11 лет назад

begin
var a:integer;
a:=3;
if (a=12) or (a=1) or (a=2) then writeln(‘зима’);

if (a=3) or (a=4) or (a=5) then writeln(‘весна’);

if (a=6) or (a=7) or (a=8) then writeln(‘лето’);

if (a=9) or (a=10) or (a=11) then writeln(‘осень’);

end.

kb3

Мыслитель

(9722)


11 лет назад

vgs: array [0..4] of string;
….
vgs[0]:=’Зима’;
vgs[1]:=’Весна’;
vgs[2]:=’Лето’;
vgs[3]:=’Осень’;
….

function vg(i:byte):string;// i – номер месяца от 1 до 12
begin
i:=(i div 3)mod 4; //теперь i номер квартала от 0 до 3
vg:=vgs[ i ];
end;
//а 4 условных оператора это плохо

jestero

11 / 11 / 2

Регистрация: 17.02.2014

Сообщений: 947

1

Определить время года по номеру месяца

15.07.2014, 13:02. Показов 30263. Ответов 5

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
   a:integer; 
begin
writeln('Введите номер месяца (число от 1 до 12) и нажмите <Enter>');
write('-> '); readln(a);
if (a<1) or (a>12)
  then
    writeln('Это число не является номером месяца')  
  else
case a of
  12,1,2 : writeln ('зима');
  3,4,5 : writeln ('весна');
  6,7,8 : writeln ('лето');
  9,10,11 : writeln ('осень)
   end;  
readln;  
end.

Подскажите, пожалуйста, почему не компилируется?



0



Эксперт Pascal/Delphi

6805 / 4564 / 4817

Регистрация: 05.06.2014

Сообщений: 22,438

15.07.2014, 13:14

2

Кавычку забыли после слова осень.



0



Почетный модератор

64285 / 47584 / 32739

Регистрация: 18.05.2008

Сообщений: 115,182

15.07.2014, 13:36

3

Цитата
Сообщение от jestero
Посмотреть сообщение

почему не компилируется?

Тау и будете после каждой синтаксической ошибки истерить?
Вам же компилятор указывает какая ошибка и где.



0



11 / 11 / 2

Регистрация: 17.02.2014

Сообщений: 947

15.07.2014, 14:28

 [ТС]

4

Puporev, не всегда понимаю что имеет в виду компилятор.



0



1646 / 1075 / 1081

Регистрация: 03.07.2013

Сообщений: 4,507

15.07.2014, 16:05

5

Цитата
Сообщение от jestero
Посмотреть сообщение

что имеет в виду компилятор.

Компилятор обычно сообщает в какой строке ошибка и какого типа ошибка. Просто потрудитесь перевести ошибку на русский (если она на аглицком) и присмотреться к указанной строке.



0



bormant

Модератор

Эксперт Pascal/DelphiЭксперт NIX

7533 / 4394 / 2784

Регистрация: 22.11.2013

Сообщений: 12,584

Записей в блоге: 1

16.07.2014, 12:22

6

Проверять номер месяца можно в самом case, дополнительный if не нужен:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
   a:integer; 
begin
  WriteLn('Введите номер месяца (число от 1 до 12) и нажмите <Enter>');
  Write('-> '); ReadLn(a);
  case a of
  12,1,2: WriteLn('зима');
  3..5: WriteLn('весна');
  6..8: WriteLn('лето');
  9..11: WriteLn('осень');
  else
    WriteLn('Это число не является номером месяца');
  end;  
  ReadLn;  
end.



1



Case3. Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 февраль и т. д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).

Решение:

Delphi/Pascal

1

2

3

4

5

6

7

8

9

10

11

12

13

program Case3;

var

  M:Integer;

begin

  Write(‘Введите номер месяца: ‘);

  Readln(M);

  Case M of

   12,1,2 :   Writeln(‘зима’);

   3..5   :   Writeln(‘весна’);

   6..8   :   Writeln(‘лето’);

   9..11  :   Writeln(‘осень’);

  end;

end.

Другие задачи из раздела Case можно посмотреть здесь.

Напишите программу в Паскаль, которая получает номер месяца и выводит его название и время года.

Пример : Введите номер месяца : 5 Этот месяц – май, время года – весна.

Пример : Введите номер месяца : 15 Неверный номер месяца.

Вы находитесь на странице вопроса Напишите программу в Паскаль, которая получает номер месяца и выводит его название и время года? из категории Информатика.
Уровень сложности вопроса рассчитан на учащихся 10 – 11 классов. На странице
можно узнать правильный ответ, сверить его со своим вариантом и обсудить
возможные версии с другими пользователями сайта посредством обратной связи.
Если ответ вызывает сомнения или покажется вам неполным, для проверки
найдите ответы на аналогичные вопросы по теме в этой же категории, или создайте
новый вопрос, используя ключевые слова: введите вопрос в поисковую строку,
нажав кнопку в верхней части страницы.

program months;
uses
   crt;
type
   Period=record
      months: array[1..12] of string;
      season: array[1..4] of string;
   end; {Объявлен тип, содержащий в себе массив из месяцев и массив из времен года}
const
   ms1: array[1..12] of string = ('Январь', 'Февраль', 'Март', 'Апрель',
              'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
   ms2: array[1..4] of string = ('Весна', 'Лето', 'Осень', 'Зима');
var
   Date: Period;
   Num, i: Byte;
begin
   ClrScr;
   for i:=1 to 12 do
      begin
         Date.months[i]:=ms1[i];
         Date.season[i]:=ms2[i];
      end;
   {----------}
   Write('Введите число от 1 до 12: ');
   Readln(Num);
   {----------}
   Write('Месяц: ', Date.months[num]);
   Writeln;
   if (num >= 3) and (num <= 5) then Write('Время года: ', Date.season[1]);
   if (num >= 6) and (num <= 8) then Write('Время года: ', Date.season[2]);
   if (num >= 9) and (num <= 11) then Write('Время года: ', Date.season[3]);
   if (num = 12) or (num <= 2) then Write('Время года: ', Date.season[4]);
   Readln;
end.

Добавить комментарий