Помощь - Поиск - Пользователи - Календарь
Полная версия: Подсчет слов, начинающихся с глас/согл для КАЖДОЙ строки матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ashtray
Составил прогу, выводящую на экран матрицу, состоящую из 5буковных слов, которая затем переворачивает слова, и удаляет гласные из слов на диагоналях. Ещё для каждой строки надо подсчитать кол-во слов, начинающихся с гласной и согласной буквы. Может у меня ступор, но я могу подсчитать кол-во слов только для всей матрицы в целом. Как разделить проверку слов для разных строк? И ещё посоветуйте, как вывести эти результаты подсчета, чтобы подходило под это условие задачи(подсчет слов нач с глас. и согл.). Текст программы:
Код

program word_matrix;
uses crt;

var p,n,i,j:integer;
    st,st1,st2,st3:string[5];
    lt:char;
    a:array [1..100,1..100] of string[5];
    d,g:byte;
const
    vow: set of char = ['a','e','i','o','u','y',' ','Ґ','Ё','®','г','л','н','о','п'];


begin
clrscr;
window(15, 3, 75, 25);
d:=wherex;
g:=wherey;
write('Enter n:');
readln(n);
   for i:=1 to n do
   for j:=1 to n do
    begin
     repeat
     write('a[',i,',',j,']=');
     readln(a[i,j]);
     st:=a[i,j];
     if length(st)<>5 then writeln ('Wrong input')
     until length(st)=5;
     end;

  clrscr;
  gotoxy (d+5,g);
  writeln ('Your matrix:');
  for i:=1 to n do
    begin
     for j:=1 to n do
     write (A[i,j]:5, '  ');
     writeln;
    end;

  for i:=1 to n do
  for j:=1 to n do
    begin
    st1:=a[i,j];
    st2:=a[i,j];
     st2[1]:=st1[5];
     st2[2]:=st1[4];
     st2[4]:=st1[2];
     st2[5]:=st1[1];
      a[i,j]:=st2;
    end;
   for i:=1 to n do
    begin
     st3:=a[i,i];
     for p:=1 to 5 do
      if st3[p] in vow then st3[p]:='_';
     a[i,i]:=st3;
    end;
   gotoxy (d+5,g+n+2);
  writeln ('Final matrix:');
   for i:=1 to n do
  begin
  for j:=1 to n do write (A[i,j]:5, '  ');
  writeln;
  end;

  readln;
end.



PS Не обращайте внимания на некоторые лишние переменные и элмементы. Остались после моих экспериментов. Заранее благодарен.
volvo
Цитата
Как разделить проверку слов для разных строк?


for i := 1 to n do begin
glas := 0;
for j := 1 to n do
if a[i, j][1] in vow then glas := glas + 1;
writeln('строка №', i:2, ' - с гласной: ', glas:3, '; с согласной: ', n - glas);
end;
ashtray
volvo
Спасибо огромное!!! biggrin.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.