
Написать программу на Паскале. Заполнить массив случайным образом буквами латинского алфавита и
цифрами (арабскими). Отсортировать массив следующим образом: сначала гласные ,затем цифры,затем согласные. Позиции элементов относительно элементов того же вида не должны измениться.

Ответы на вопрос

// Внимание! Если программа не работает, обновите версию!
begin
var dig:=['0'..'9'];
var glas:=['a','e','i','o','u','y'];
var sogl:set of char:=['a'..'z']-glas;
var alpha:='0123456789abcdefghijklmnopqrstuvwxyz';
var n:=ReadInteger('Количество символов:');
var a:=SeqRandom(n,1,36).Select(k->alpha[k]).ToArray;
a.Println;
a.Where(c->c in glas).Concat(a.Where(c->c in dig)).ToArray.
Concat(a.Where(c->c in sogl)).Println
end.
Пример
Количество символов: 50
xkdh00nhw8qr32cgcxiwm8ewbnqagmiquew3e6bc7rs2a05ids
ieaiueeai008328367205xkdhnhwqrcgcxwmwbnqgmqwbcrsds



Программа на Паскале для сортировки массива
Вот пример программы на Паскале, которая заполняет массив случайным образом буквами латинского алфавита и цифрами, а затем сортирует его таким образом, чтобы сначала шли гласные, затем цифры, и в конце - согласные. При этом позиции элементов относительно элементов того же вида не должны измениться:
```pascal program SortArray;
const N = 10; // Размер массива
type TCharType = (Vowel, Digit, Consonant); // Типы символов
var arr: array[1..N] of Char; // Массив символов vowels: array[1..N] of Char; // Массив для гласных digits: array[1..N] of Char; // Массив для цифр consonants: array[1..N] of Char; // Массив для согласных vowelCount, digitCount, consonantCount: Integer; // Счетчики для каждого типа символов i: Integer; // Счетчик для циклов
// Функция для проверки, является ли символ гласным function IsVowel(ch: Char): Boolean; begin ch := UpCase(ch); IsVowel := (ch = 'A') or (ch = 'E') or (ch = 'I') or (ch = 'O') or (ch = 'U'); end;
// Функция для проверки, является ли символ цифрой function IsDigit(ch: Char): Boolean; begin IsDigit := (ch >= '0') and (ch <= '9'); end;
// Функция для проверки, является ли символ согласным function IsConsonant(ch: Char): Boolean; begin ch := UpCase(ch); IsConsonant := (ch >= 'B') and (ch <= 'Z') and not IsVowel(ch); end;
// Процедура для заполнения массива случайными символами procedure FillArrayRandomly; var ch: Char; begin Randomize; for i := 1 to N do begin case Random(3) of 0: ch := Chr(Random(26) + Ord('A')); // Генерация случайной буквы 1: ch := Chr(Random(10) + Ord('0')); // Генерация случайной цифры 2: ch := Chr(Random(26) + Ord('A')); // Генерация случайной буквы end; arr[i] := ch; end; end;
// Процедура для сортировки массива procedure SortArray; begin vowelCount := 0; digitCount := 0; consonantCount := 0;
// Разделение символов на гласные, цифры и согласные for i := 1 to N do begin if IsVowel(arr[i]) then begin Inc(vowelCount); vowels[vowelCount] := arr[i]; end else if IsDigit(arr[i]) then begin Inc(digitCount); digits[digitCount] := arr[i]; end else if IsConsonant(arr[i]) then begin Inc(consonantCount); consonants[consonantCount] := arr[i]; end; end;
// Замена исходного массива отсортированными символами for i := 1 to N do begin if i <= vowelCount then arr[i] := vowels[i] else if i <= vowelCount + digitCount then arr[i] := digits[i - vowelCount] else arr[i] := consonants[i - vowelCount - digitCount]; end; end;
// Процедура для вывода массива на экран procedure PrintArray; begin for i := 1 to N do Write(arr[i], ' '); Writeln; end;
begin FillArrayRandomly; Writeln('Исходный массив:'); PrintArray;
SortArray; Writeln('Отсортированный массив:'); PrintArray; end. ```
Программа начинается с объявления константы `N`, которая определяет размер массива. Затем определяется тип `TCharType`, который представляет типы символов: гласные, цифры и согласные. Далее объявляются массивы для каждого типа символов, а также счетчики для подсчета количества символов каждого типа.
Функции `IsVowel`, `IsDigit` и `IsConsonant` используются для проверки типа символа. Процедура `FillArrayRandomly` заполняет массив случайными символами, используя функцию `Random` для генерации случайных чисел. Процедура `SortArray` разделяет символы на гласные, цифры и согласные, а затем заменяет исходный массив отсортированными символами. Процедура `PrintArray` выводит массив на экран.
В основной части программы вызываются процедуры `FillArrayRandomly`, `SortArray` и `PrintArray` для заполнения, сортировки и вывода массива соответственно.
Примечание: Пожалуйста, обратите внимание, что данная программа представляет только один из возможных вариантов решения задачи.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili