Как написать программу на Паскале для выполнения следующих задач?
Информатика 10 класс Программирование на Паскале
Для решения поставленных задач на языке Паскаль, мы будем писать три отдельные программы. Давайте разберем каждую из них по шагам.
1. Программа для записи числа от 1 до 1000 русскими буквами.Эта программа будет использовать массивы для хранения слов, представляющих числа. Мы будем обрабатывать числа по частям: единицы, десятки и сотни.
program NumberToWords;
var
n, hundreds, tens, units: integer;
words: array[0..19] of string;
tensWords: array[0..9] of string;
hundredsWords: array[0..9] of string;
begin
words[0] := 'ноль'; words[1] := 'один'; words[2] := 'два'; words[3] := 'три';
words[4] := 'четыре'; words[5] := 'пять'; words[6] := 'шесть'; words[7] := 'семь';
words[8] := 'восемь'; words[9] := 'девять'; words[10] := 'десять';
words[11] := 'одиннадцать'; words[12] := 'двенадцать'; words[13] := 'тринадцать';
words[14] := 'четырнадцать'; words[15] := 'пятнадцать'; words[16] := 'шестнадцать';
words[17] := 'семнадцать'; words[18] := 'восемнадцать'; words[19] := 'девятнадцать';
tensWords[2] := 'двадцать'; tensWords[3] := 'тридцать'; tensWords[4] := 'сорок';
tensWords[5] := 'пятьдесят'; tensWords[6] := 'шестьдесят'; tensWords[7] := 'семьдесят';
tensWords[8] := 'восемьдесят'; tensWords[9] := 'девяносто';
hundredsWords[1] := 'сто'; hundredsWords[2] := 'двести'; hundredsWords[3] := 'триста';
hundredsWords[4] := 'четыреста'; hundredsWords[5] := 'пятьсот'; hundredsWords[6] := 'шестьсот';
hundredsWords[7] := 'семьсот'; hundredsWords[8] := 'восемьсот'; hundredsWords[9] := 'девятьсот';
write('Введите число от 1 до 1000: ');
readln(n);
hundreds := n div 100;
tens := (n mod 100) div 10;
units := n mod 10;
if hundreds > 0 then
write(hundredsWords[hundreds], ' ');
if tens > 1 then
write(tensWords[tens], ' ');
if tens = 1 then
write(words[tens * 10 + units], ' ')
else
if units > 0 then
write(words[units], ' ');
writeln;
end.
2. Программа для определения года по старояпонскому календарю.
Эта программа будет использовать остатки от деления для определения цвета и животного. Мы будем использовать массивы для хранения названий цветов и животных.
program JapaneseCalendar;
var
year, colorIndex, animalIndex: integer;
colors: array[0..4] of string;
animals: array[0..11] of string;
begin
colors[0] := 'зеленый'; colors[1] := 'красный'; colors[2] := 'желтый';
colors[3] := 'белый'; colors[4] := 'черный';
animals[0] := 'крыса'; animals[1] := 'корова'; animals[2] := 'тигр';
animals[3] := 'заяц'; animals[4] := 'дракон'; animals[5] := 'змея';
animals[6] := 'лошадь'; animals[7] := 'овца'; animals[8] := 'обезьяна';
animals[9] := 'курица'; animals[10] := 'собака'; animals[11] := 'свинья';
write('Введите год: ');
readln(year);
colorIndex := (year - 1984) mod 5;
animalIndex := (year - 1984) mod 12;
writeln('Год ', year, ' - ', colors[colorIndex], ' ', animals[animalIndex]);
end.
3. Программа для вывода чисел от 1 до N русскими буквами.
Эта программа будет использовать цикл для перебора чисел от 1 до N и выводить их в текстовом формате, если количество букв совпадает с введенным числом.
program NumbersWithLetters;
var
n, i: integer;
words: array[1..100] of string;
begin
words[1] := 'один'; words[2] := 'два'; words[3] := 'три'; words[4] := 'четыре';
words[5] := 'пять'; words[6] := 'шесть'; words[7] := 'семь'; words[8] := 'восемь';
words[9] := 'девять'; words[10] := 'десять'; words[11] := 'одиннадцать';
words[12] := 'двенадцать'; words[13] := 'тринадцать'; words[14] := 'четырнадцать';
words[15] := 'пятнадцать'; words[16] := 'шестнадцать'; words[17] := 'семнадцать';
words[18] := 'восемнадцать'; words[19] := 'девятнадцать'; words[20] := 'двадцать';
words[21] := 'двадцать один'; words[22] := 'двадцать два'; // и так далее до 100
write('Введите число от 1 до 100: ');
readln(n);
for i := 1 to 100 do
if length(words[i]) = n then
writeln(words[i]);
end.
Эти программы решают поставленные задачи, используя базовые конструкции языка Паскаль: массивы, циклы и условия. Убедитесь, что вы правильно вводите данные, и программа будет работать корректно.