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

0 голосов
151 просмотров

Написать программу в паскале, которая после введенного с клавиатуры числа(в диапазоне от 1 до 99), обозначающий денежную единицу, дописывал слово "Копейка". Например ,5 копеек,41 копейка и тд.

Вот мои попытки создать программу:

Program Kopeika;
Var a:integer;
begin
Writeln('Vvedite chislo');
Readln(a);
Case a of
'1,21,31,41,51,61,71,81,91': a:='Kopeika ';
'2..4,22..24,32..34,42..44,52..54,62..64,72..74,82..84,92..94': a:='Kopeiki ';
'5..20,25..30,35..40,45..50,55..60,65..70,75..80,85..90,95..99': a:=' Kopeek';
end;
Readln;
end.


Информатика (54 баллов) | 151 просмотров
0

Program Kopeika;Var a:integer;beginWriteln('Vvedite chislo');Readln(a);Case a of'1,21,31,41,51,61,71,81,91': a:='Kopeika '; {Здесь ошибка, числа типа integer не выделяются апострофами, выделяются только строки, то есть компилятор воспринимает значения между ' ' как строку из букв и чисел, но в операторе case можно использовать только числовые типы, поэтому ' ' нужно убрать}

0

Затем, по условию, если число а попадает в заданный диапазон, то ему присваивается опять же символы типа строка (string), нельзя присвоить числовой переменной строковое значение. Для вывода сообщений и значений переменных используется функция write('текст') или write(a) уже без кавычек, если это переменная, а не сообщение, которое нужно вывести.

0

Здесь подойдет такая команда write(a, 'kopeika'); То есть, сначала выводиться число а, введенное с клавиатуры, а затем текст уже в апострофах. Переменные нужно отделять от сообщения запятыми.

Дано ответов: 2
0 голосов

По идее нужен цикл, который будет перебирать значения case. Я больше знаю c#, но могу посоветовать только поработать с циклами, т.к не знаю как с ними обстоит дело в паскале.

(625 баллов)
0

А нет, видимо ты в конце не составил код, чтобы это число, которое получилось - выводилось, а может я и не понимаю в паскале)

0

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

0 голосов

Исправленный вариант:
program Kopeika;
var
  a: integer;
begin
  Writeln('Vvedite chislo');
  Readln(a);
  case a of 
   1, 21, 31, 41, 51, 61, 71, 81, 91: write(a, ' kopeika');
   2..4, 22..24, 32..34, 42..44, 52..54, 62..64, 72..74, 82..84, 92..94: write(a, ' kopeiki');
   5..20, 25..30, 35..40, 45..50, 55..60, 65..70, 75..80, 85..90, 95..99: write(a, ' kopeek');
  end;
  Readln;
end.

(1.4k баллов)