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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2009, 20:06   #11
Unikummm
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 33
По умолчанию

вроде прикрепил...
Вложения
Тип файла: rar demo.rar (5.6 Кб, 13 просмотров)
Unikummm вне форума Ответить с цитированием
Старый 23.01.2009, 21:09   #12
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Что-то запутался с выводом, 86 слов выводит и все. Считает правильно, цвет правильно, но не до конца.
puporev вне форума Ответить с цитированием
Старый 23.01.2009, 21:14   #13
Unikummm
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 33
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Что-то запутался с выводом, 86 слов выводит и все. Считает правильно, цвет правильно, но не до конца.
Чем то помочь могу?
Unikummm вне форума Ответить с цитированием
Старый 23.01.2009, 21:17   #14
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Все основное сделал. Сейчас в порядок приведу и выложу. Вывод в новом окне с ходу не помню как делать, ни разу не делал, если сам не знаешь, то по-позднее или завтра, а то у меня уже поздно.
puporev вне форума Ответить с цитированием
Старый 23.01.2009, 21:19   #15
Unikummm
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 33
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Все основное сделал. Сейчас в порядок приведу и выложу. Вывод в новом окне с ходу не помню как делать, ни разу не делал, если сам не знаешь, то по-позднее или завтра, а то у меня уже поздно.
СПАСИБО огромное!
Завтра я на работе, так что можно не торопиться до послезавтра!
Unikummm вне форума Ответить с цитированием
Старый 23.01.2009, 21:24   #16
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
const
  K=2; 
  L=7; 
  M=20;
  N=10;
  AA=Ord('A');           {код буквы А в таблице символов}
  ZZ=Ord('Z');            {код буквы Z в таблице символов}
 gl=['A','E','I','O','U','Y'];
 sgl=['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'];
var
  mas:  array [1..M,1..N] of string[L];
  i,j,t,p,q, {счетчики циклов}
  len,           {длина текущей строки=элемента матрицы (K..L)}
  ss,kg,ks, {кол. букв в столбце, кол. гласных и согласных в слове}
  kol: byte;              {кол-во слов, удовлетвлоряющих условию }
begin
clrscr;
randomize;
for i:=1 to M do
for j:=1 to N do
 	begin
   	len:=random(L-K+1)+K;
   	mas[i,j]:='';             {строка соответствующая сначала пустая}
    for t:=1 to len do          {затем добавляем по одному к ней символы в количестве len}
    mas[i,j]:=mas[i,j]+Char(random(ZZ-AA+1)+AA);         {псевдослучайные от A до Z}
  end;
TextColor(0); {цвет текста по умолчанию}
kol:=0; {пока не нашли ни одного подходящего слова}
for j:=1 to N do {идем по столбцам}
  begin
    ss:=0;
    for i:=1 to M  do {считаем буквы в столбцах}
    ss:=ss+length(mas[i,j]);
    if ss mod 3=0 then{если кратно 3}
      for p:=1 to M do {снова по этому столбцу}
          begin
            kg:=0;ks:=0;
            for q:=1 to length(mas[p,j]) do {смотрим каждое слово}
               begin
                if mas[p,j][q] in gl then kg:=kg+1; {считаем гласные}
                if mas[p,j][q] in sgl then ks:=ks+1; {считаем согласные}
               end;
            if kg*5<=ks then {если согласных в 5 раз больше}
              begin
               TextColor(red);                  {меняем цвет на красный}
			         write(mas[p,j]:8);                 {выводим красным}
			         kol:=kol+1;   {считаем количество}
               TextColor(0);  {цвет по умолчанию}
              end
            else write(mas[p,j]:8); {выводим обычные слова в этом столбце}
          end
     else
       for i:=1 to M do
       write(mas[i,j]:8); {выводим обычным столбцы где сумма букв не кратна 3}
  end;
readln;
write('Kolichestvo slov=',kol);{это надо в отдельном окне}
readln
end.
puporev вне форума Ответить с цитированием
Старый 23.01.2009, 21:42   #17
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот доделал конец, исправьте. С цветами и положением окна можете поэкспериментировать.
Код:
 write(mas[i,j]:8); {выводим обычным столбцы где сумма букв не кратна 3}
  end;
window(50,23,78,25);{новое окно}
TextBackGround(14); {цвет фона}
TextColor(0); {цвет текста}
write('Kolichestvo slov=',kol);{это вводим в отдельном окне}
readln
end.
puporev вне форума Ответить с цитированием
Старый 23.01.2009, 22:21   #18
Unikummm
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 33
По умолчанию

Почти получилось, но почему то кроме выделенных слов не видно остального массива, а вроде как должно, и так и не открывается следуещее окно в котором должно быть написано: столько то слов удовлетворяют условию 1(это написано на этой же странице) и должно быть написано слово(слова) удовлетворяющее(ие) условию 2.
Unikummm вне форума Ответить с цитированием
Старый 23.01.2009, 22:27   #19
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ой, простите, у меня на экране по умолчанию стоит светло-серый цвет, а текст черный. Исправте где TextColor(0) на (15) -белый.
А новое окно не открывается, а создпется в пределах этого экранного поля по координатам, которые задаем, т.е. у нас оно находится в пределах 23-25 строк с позиции в строке от 50 до 78.

P.S. Если хотите не в новом окне, а на чистом экране, то напишите так:
readln;
clrscr;
write('Kolichestvo slov=',kol);{это надо в отдельном окне}
readln
end.

Последний раз редактировалось puporev; 23.01.2009 в 22:29.
puporev вне форума Ответить с цитированием
Старый 23.01.2009, 22:33   #20
Unikummm
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 33
По умолчанию

с цветом разобрался, осталось маленький НО:
скачет количество строк....Как исправить?

И упорно не хочет показывать слово подпадающее под второе условие...

Последний раз редактировалось Unikummm; 23.01.2009 в 22:41.
Unikummm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двухмерный массив С++(задача) Monzo Помощь студентам 3 22.12.2008 16:19
двухмерный массив Enchantner Паскаль, Turbo Pascal, PascalABC.NET 3 22.04.2008 20:47
Двухмерный массив xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 2 22.04.2008 18:17
Двухмерный массив (кинозал) fudzy79 Помощь студентам 3 10.04.2008 00:07
Двухмерный массив Atheist Общие вопросы C/C++ 4 22.11.2007 14:05