Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка символьной матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Joker
2.12 Имеется матрица, состоящая из слов длиной в 5 символов. Получить новую матрицу, слова к которой записаны наоборот, а на обоих диагоналях удалены из слов все гласные буквы.
Для каждой строки подсчитать количество слов, начинающихся с гласной и согласной букв.
Обе Матрицы распечатать.
Ozzя
Вот я начал программу, массив перевернутых слов получил. Дальше сам.

Hint: Как получить элементы главной и побочной диагоналей, см. FAQ.

Rem: на ужас с заполнением массива русских букв не обращать внимания rolleyes.gif Взял откуда-то. rolleyes.gif

const
n=5;
var
a : array[1..33] of char;
b : array [1..n,1..n] of string [n];
i,j,k : Integer;
s : String[n];

begin

a[1]:='а'; a[2]:='б'; a[3]:='в'; a[4]:='г'; a[5]:='д';
a[6]:='е'; a[7]:='ж'; a[8]:='з'; a[9]:='и'; a[10]:='й';
a[11]:='к'; a[12]:='л'; a[13]:='м'; a[14]:='н'; a[15]:='о';
a[16]:='п'; a[17]:='р'; a[18]:='с'; a[19]:='т'; a[20]:='у';
a[21]:='ф'; a[22]:='х'; a[23]:='ц'; a[24]:='ч'; a[25]:='ш';
a[26]:='щ'; a[27]:='ь'; a[28]:='ы'; a[29]:='ъ'; a[30]:='э';
a[31]:='ю'; a[32]:='я'; a[33]:='ё';
{ Заполнение массива случайными строками }
for i:=1 to n do
for j:=1 to n do
begin
s:='';
for k:=1 to n do
s:=s+a[random(33)+1];
b[i,j]:=s;
end;
{ Вывод исходного массива }
WriteLn('Вывод исходного массива:');
for i:=1 to n do
begin
for j:=1 to n do
Write(b[i,j]:7);
WriteLn;
end;
{ Переворачиваем строки в массиве }
for i:=1 to n do
for j:=1 to n do
begin
s:='';
for k:=n downto 1 do
s:=s+b[i,j] [k];
b[i,j]:=s;
end;

WriteLn('Вывод перевернутого массива:');
for i:=1 to n do
begin
for j:=1 to n do
Write(b[i,j]:7);
WriteLn;
end;

ReadLn;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.