Как написать программу на Паскале для выполнения следующих задач?
Информатика 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.
Эти программы решают поставленные задачи, используя базовые конструкции языка Паскаль: массивы, циклы и условия. Убедитесь, что вы правильно вводите данные, и программа будет работать корректно.