Сase15. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 ≤ N ≤ 14) и M — масть карты (1 ≤ M ≤ 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.
var
N, M: byte;
begin
write('N = ');
readln(N); { <-- вводим достоинство карты }
write('M = ');
readln(M); { <-- вводим номер масти карты }
{ Перебираем возможные достоинства карт: }
case N of
6: write('Шестерка');
7: write('Семерка');
8: write('Восьмерка');
9: write('Девятка');
10: write('Десятка');
11: write('Валет');
12: write('Дама');
13: write('Король');
14: write('Туз')
else N := 0 { <-- Ошибка ввода }
end;
if N <> 0 then
{ Перебираем возможные масти карт: }
case M of
1: writeln(' пики');
2: writeln(' треф');
3: writeln(' бубен');
4: writeln(' червей')
else writeln('Ошибка ввода!')
end
else writeln('Ошибка ввода!');
readln
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Сase16. Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».
var
N, a, b: byte;
begin
writeln('Введите возраст от 20 до 69:');
readln(N); { <-- вводим возраст }
writeln;
a := N mod 10; { <== число единиц возраста }
b := N - a; { <== число десятков возраста }
{ Проверяем число десятков: }
case b of
20: write('Двадцать');
30: write('Тридцать');
40: write('Сорок');
50: write('Пятдесят');
60: write('Шестдесят')
{ Если нужного десятка нет, то создаем индикатор
(любое число с интервала [10..255]): }
else a := 10
end;
{ Проверяем вторую цифру числа: }
case a of
10: writeln('Ошибка ввода!');
0: writeln(' лет');
1: writeln(' один год');
2: writeln(' два года');
3: writeln(' три года');
4: writeln(' четыре года');
5: writeln(' пять лет');
6: writeln(' шесть лет');
7: writeln(' семь лет');
8: writeln(' восемь лет');
9: writeln(' девять лет')
end;
readln
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255A **mod** B
- остаток при целочисленном делении А на В Сase17. Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание».
var
N, a: byte;
S, T: string; { S - правильное согласование количества,
T - согласование «учебное задание» }
begin
writeln('Введите число от 10 до 40:');
readln(N); { <-- вводим количество учебных заданий }
{ Далее перебираем числа от 10 до 40 и формируем
правильное согласование «учебное задание»: }
case N of
10..20, 25..30, 35..40:
T := ' учебных заданий';
22..24, 32..34:
T := ' учебных задания';
21,31:
T := ' учебное задание'
else N := 0 { <-- Выходим за границы 10..40 }
end;
if N <> 0 then begin
{ Формируем количество от 11 до 19: }
case N of
11: S := 'Одинадцать';
12: S := 'Двенадцать';
13: S := 'Тринадцать';
14: S := 'Четырнадцать';
15: S := 'Пятнадцать';
16: S := 'Шестнадцать';
17: S := 'Семнадцать';
18: S := 'Восемнадцать';
19: S := 'Девятнадцать'
else begin { <-- Если число больше 19 }
a := N mod 10; { <-- находим число единиц }
N := N - a { <-- число десятков }
end
end;
{ Число десятков: }
case N of
10: S := S + 'Десять';
20: S := S + 'Двадцать';
30: S := S + 'Тридцать';
40: S := S + 'Сорок'
end;
{ Формируем согласование с единицами: }
case a of
1: S := S + ' одно';
2: S := S + ' два';
3: S := S + ' три';
4: S := S + ' четыре';
5: S := S + ' пять';
6: S := S + ' шесть';
7: S := S + ' семь';
8: S := S + ' восемь';
9: S := S + ' девять'
end;
{ Выводим результат как сумму предложений
количества и учебного задания: }
writeln(' ', S + T)
end
else writeln('Ошибка ввода!');
readln
end.
**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** string;
: Представляет текст как последовательность знаков Юникода.A **mod** B
- остаток при целочисленном делении А на В Сase18. Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать».
var
N, N1, N2, N3: word;
S: string;
begin
writeln('Введите число от 100 до 999:');
readln(N); { <-- вводим число }
writeln;
N1 := N div 100; { <== Сотни }
N2 := N div 10 mod 10; { <== Десятки }
N3 := N mod 10; { <== Единицы }
{ Формируем сотни: }
case N1 of
1: S := ' сто';
2: S := ' двести';
3: S := ' триста';
4: S := ' четыриста';
5: S := ' пятьсот';
6: S := ' шестьсот';
7: S := ' семьсот';
8: S := ' восемьсот';
9: S := ' девятьсот'
else N1 := 0; { <== Выходим за пределы [100..999] }
end;
if N1 <> 0 then begin
{ Формируем десятки (кроме первого): }
case N2 of
2: S := S + ' двадцать';
3: S := S + ' тридцать';
4: S := S + ' сорок';
5: S := S + ' пятьдесят';
6: S := S + ' шестьдесят';
7: S := S + ' семьдесят';
8: S := S + ' восемьдесят';
9: S := S + ' девяносто'
end;
{ Формируем единицы: }
if N2 = 1 then { <-- Первый десяток }
case N3 of
0: S := S + ' десять';
1: S := S + ' одинадцать';
2: S := S + ' двенадцать';
3: S := S + ' тринадцать';
4: S := S + ' четырнадцать';
5: S := S + ' пятнадцать';
6: S := S + ' шестнадцать';
7: S := S + ' семнадцать';
8: S := S + ' восемнадцать';
9: S := S + ' девятнадцать'
end
else
case N3 of
1: S := S + ' один';
2: S := S + ' два';
3: S := S + ' три';
4: S := S + ' четыре';
5: S := S + ' пять';
6: S := S + ' шесть';
7: S := S + ' семь';
8: S := S + ' восемь';
9: S := S + ' девять'
end;
writeln(' ', S); { <-- Выводим результат }
end
else writeln('Ошибка ввода!');
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535**type** string;
: Представляет текст как последовательность знаков Юникода.A **div** B
- целочисленное деление А на ВA **div** B
- целочисленное деление А на ВA **mod** B
- остаток при целочисленном делении А на ВA **mod** B
- остаток при целочисленном делении А на В