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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2008, 01:25   #1
FANDREY21
Новичок
Джуниор
 
Регистрация: 15.12.2008
Сообщений: 2
По умолчанию выделить цветом и подсчитать число слов,удовлетворяющих следующим условиям

Пожалуйста, помогите составить условие задачи, никак не могу додуматься...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>...
Задание. С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K..L символов A..Z (одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать с использованием типа множества. Вывести на экран сформированный массив в виде таблицы, выделив цветом подсчитанные элементы. Результат подсчета вывести на экран в отдельном окне.
вариант:
выделить цветом и подсчитать число слов,удовлетворяющих следующим условиям.
1.средняя буква в слове-согласная
2.Слов принадлнэит строке, к которой суммарное число гласных букв меньше, чем в следующе за ней
(нижерасположенной) строке.
K=2 , L=7 , M=20 ,N=10
(Здесь: M и N - соответственно число строк и столбцов формируемой
таблицы; K и L - соответственно минимальное и максимальное число букв в формируемых словах - элементах массива).
Методические указания
При формировании массива использовать стандартные подпрограммы ПСП - Random, Randomize, а также, возможно использование функции CHR. Коды ASCII символов A..Z - 65..90. Слова формируются в одномерных массивах, каждый из которых состоит из L ячеек; буквы записываются без пробела, начиная с первой ячейки.
Незаполненные буквами позиции массива в конце слов заполнить символами пробела - код ASCII - 32.
Для вывода на экран строки заданного цвета необходимо:
- в программе указать об использовании модуля CRT (USES CRT; - эта
директива должна присутствовать в начале текста программы).
- перед использованием стандартной процедуры вывода необходимо задать
цвет вывода соответствующим значением параметра X стандартной
процедуры TextColor(X).
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>
FANDREY21 вне форума Ответить с цитированием
Старый 15.12.2008, 01:27   #2
FANDREY21
Новичок
Джуниор
 
Регистрация: 15.12.2008
Сообщений: 2
По умолчанию

Как составить само условие, сам шаблон решения я составил так...
Код:
PROGRAM LabRab;
USES
  CRT;
CONST
  K     = 2;
  L     = 7;
  M     = 20;
  N     = 10;
  CharA = 65; {Ord('A');}
  CharZ = 90; {Ord('Z');}
TYPE
  TWord    = String[L];
  TArrWord = array[1..M,1..N] of TWord;

{возвращает случайный символ от A до Z}
FUNCTION  RandChar:Char;
BEGIN
  RandChar:=Chr(CharA+Random(CharZ-CharA));
END;

{возвращает случайное слово от A до Z}
PROCEDURE RandWord(VAR S : TWord);
VAR
  Len : Integer;
  i   : Integer;
BEGIN
  Len:=K+Random(L-K);    {случайная длина слова}
  S:='';
  for i:=1 to K do begin
    S:=S+RandChar;
  end;
END;

VAR
  i     : Integer;
  j     : Integer;
  Mass  : TArrWord;   {массив слов}
BEGIN
  Randomize;  {инициализация генератора случайных чисел}
  {заполнение массива слов}
  for i:=1 to M do begin
    for j:=1 to N do begin
      RandWord(Mass[i,j]);
    end;
  end;

  {теперь есть случайный массив слов}

  {.............................}
  {выполнение проверок          }
  {вывод результатов            }
  {.............................}

END.
FANDREY21 вне форума Ответить с цитированием
Старый 02.02.2009, 19:06   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Нужно создавать новую тему, могут и удалить.
Код:
uses crt;
const n=5;{количество слов}
function Rev(a:string):string;{функция выдает перевернутое слово РОТ-ТОР}
var i:byte;
    b:string;
begin
b:='';
for i:=length(a)downto 1 do {читаем слово с конца}
b:=b+a[i];{и записываем}
Rev:=b;
end;
var s:array[1..n] of string;
    i,j,k:byte;
begin
clrscr;
writeln('Vvedite ',n,' slov:');
for i:=1 to n do
   begin
    write('Slovo ',i,':');
    readln(s[i]);
   end;
writeln;
k:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if Rev(s[j])=s[i] then {если находим пару}
  begin
    k:=1;{фиксируем}
    write('Eta para: ',s[i],'-',s[j]);{выводим}
    break;{прекращаем поиск}
  end;
if k=0 then write('Takoj pary net!');{если не нашли}
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый файл. Подсчитать в нем количество слов, символов, абзацев. Xeon332 Помощь студентам 3 24.12.2009 01:23
СУММЕСЛИ по нескольким условиям Gadar Microsoft Office Excel 6 26.05.2008 10:07
Число перемен знака в массиве. Количество слов в тексте. Pascal. Cartman18 Помощь студентам 1 10.12.2007 12:58
подсчитать количество символов слов и предложений nev Помощь студентам 4 09.06.2007 21:22