Вопрос задан 31.07.2018 в 13:48. Предмет Информатика. Спрашивает Чернова Александра.

Написать программу на Паскале. Заполнить массив случайным образом буквами латинского алфавита и

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Калмыков Вася.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа на Паскале для сортировки массива

Вот пример программы на Паскале, которая заполняет массив случайным образом буквами латинского алфавита и цифрами, а затем сортирует его таким образом, чтобы сначала шли гласные, затем цифры, и в конце - согласные. При этом позиции элементов относительно элементов того же вида не должны измениться:

```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` для заполнения, сортировки и вывода массива соответственно.

Примечание: Пожалуйста, обратите внимание, что данная программа представляет только один из возможных вариантов решения задачи.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос