Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 16:59   #1
Евгения55555555555
Новичок
Джуниор
 
Регистрация: 13.04.2010
Сообщений: 1
Восклицание задание второе

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

Код:
uses crt;
var
n,p:byte;
s:array[1..100,1..100] of string;
a:array[1..100] of string;
slovo,slovo2:string;
B: set of char;
C: set of char;

procedure vvod (var n:byte);
var
i,j,menu,k,d,p:byte;

begin
randomize;
for i:=1 to n do
  begin
  for j:=1 to n do
    begin
    menu:=random(2);
    if (j>=3) and (s[i,j-1]<>' ') and (s[i,j-2]=' ') then menu:=1;
    case menu of
      0: s[i,j]:=chr(32);
      1: s[i,j]:=chr(65+random(26));
      end;
    if (j=n) and (s[i,j-1]=' ') and (s[i,j]<>' ') then s[i,j]:=chr(32);
    if (j=2) and (s[i,j-1]<>' ') and (s[i,j]=' ') then s[i,j]:=chr(65+random(26));
    write(s[i,j]:2);
    end;
  writeln;
  end;
end;



procedure kol (var n:byte);
var
i,j,d,k,p:byte;
begin
d:=0;
B:=['Q','W','R','T','P','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'];
C:=['E','Y','U','I','O','A'];
                      {По горизонтали}
for i:=1 to n do
begin
for j:=1 to n do
begin
If  (s[i,j]<>' ')  then begin

slovo:=slovo+s[i,j];if  (j=n) or (s[i,j+1]=' ') then
begin writeln('Слово по горизонтали ',slovo);writeln;slovo:=' '; d:=d+1;
 end   else end;
end;
end; writeln(d);
                                 {По вертикали}
for j:=1 to n do
begin
for i:=1 to n do
begin
If  s[i,j]<>' ' then begin
slovo:=slovo+s[i,j];if  (i=n) or (s[i+1,j]=' ') then
begin if length(slovo)>2 then writeln('Слово по вертикали ',slovo);writeln;slovo:=' '; end else end;
end;
end;

end;

begin
clrscr;
writeln('Введите размер матрицы nxn, 12<=n<=20');
write('n=');
readln(n);
vvod(n);
kol(n);

writeln('Нажмите Enter для завершение программы');
end.
программа выводит слова, а нужно выписать те слова у которых буквы чередуются, как это сделать???

заранее спасибо

Последний раз редактировалось Stilet; 31.05.2010 в 17:17.
Евгения55555555555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
второе название таблицы Neymexa SQL, базы данных 11 28.04.2010 08:48
Второе высшее переводчика fs444 Свободное общение 4 24.04.2010 23:14
Второе высшее. Нужен совет. barfly Свободное общение 8 07.03.2010 14:17
Задание Олфелия Помощь студентам 6 08.10.2009 16:59
не выполняется второе условие if Division Общие вопросы C/C++ 5 24.12.2008 03:16