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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 14:03   #1
Shick
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию Работа с псевдослучайными последовательностями (ПСП). Работа с цветом.(Pascal)

Помогите пожалуйста)
Задание. С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K..L символов A..Z (одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать с использованием типа множества. Вывести на экран сформированный массив в виде таблицы, выделив цветом подсчитанные элементы. Результат подсчета вывести на экран в отдельном окне.
(Здесь: М и N-соответственно число строк и столбцов формируемой
таблицы; К и L - соответственно минимальное и максимальное число букв в формируемых словах -элементах массива).

Выделить цветом и подсчитать число слов, удовлетворяющих следующим условиям.
1. Слово содержит нечетное число гласных букв.
2. Слово принадлежит строке, в которой хотя бы 3 слова содержат не более 5 букв.
К = 2, L = 7, М = 20, N = 10
Shick вне форума Ответить с цитированием
Старый 10.12.2013, 15:07   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

что вызывает вопросы/сложности?

и ещё, в связи с тем, что в задании "Выделить цветом", определитесь, с тем, в каком Паскале и каком режиме Вы будете выполнять вывод и "выделение цветом".
(консоль текстовая или графическая, визуальные компоненты в окне Windows и т.п.)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.12.2013, 15:10   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Цитата:
С помощью ПСП сформировать двухмерный MxN массив из элементов.
В качестве элементов использовать слова из K..L символов
A..Z (одномерный массив символов латинского алфавита
Код:
...

Randomize;
For i:=1 to m do
For j:=1 to n do
Begin
  Len:=RandomRange(k,l);
  For k:=1 to len do
    Mas[i,j]:=mas[i,j]+chr(random(26)+64)); 
 // не помню код буквы Латинской А 64?
 End;
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 10.12.2013, 15:25   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
// не помню код буквы Латинской А 64?
нет, 65
кстати, я в таких случая пишу вот так:
Код:
....chr(random(26)+ord('A'));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.12.2013, 15:33   #5
Shick
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
что вызывает вопросы/сложности?

и ещё, в связи с тем, что в задании "Выделить цветом", определитесь, с тем, в каком Паскале и каком режиме Вы будете выполнять вывод и "выделение цветом".
(консоль текстовая или графическая, визуальные компоненты в окне Windows и т.п.)
Pascal ABC net)
сложность вызывает сам паскаль,не знаю как делать абсолютно ничего
Shick вне форума Ответить с цитированием
Старый 10.12.2013, 15:36   #6
Shick
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию

если можно переделайте эту прогу , под моё условие)
Код:
Uses Crt;
Const
     k=2; l=7; m=20; n=10;
     CharA = 65; {Ord('A');}
     CharZ = 90; {Ord('Z');}
     G=['A','E','I','O','U','Y'];
TYPE
     TWord    = String[L];
     TArrWord = array[1..M,1..N] of TWord;
     
//функции для набора рандомной строки
FUNCTION  RandChar:Char;
BEGIN
  RandChar:=Chr(CharA+Random(CharZ-CharA));
END;

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

VAR
  i,j,w,z,mtr,v:Integer;
  Mass  : TArrWord;
  d:string[L];

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

z:=0;
v:=0;
mtr:=0;
for i:=1 to M do begin
    for j:=1 to N do begin
    TextColor(0);
    begin d:=Mass[i,j];
        for w:=1 to Length(d) do begin
                                              If d[w] in G Then
                                                 z:=z+1         {кол-во гласных}
                                                           else
                                                 v:=v+1;
                                         end;
        If (z=v) and (i mod 2 <> 0) Then begin
                          mtr:=mtr+1;            {счетчик подходящих слов}
                          TextBackground(15);
                          TextColor(5);
                          end;
                          end;
         Write(Mass[i,j]:7);
         z:=0;
         v:=0;
         end;
    writeln;
    end;
    WriteLn(mtr);
end.
Shick вне форума Ответить с цитированием
Старый 10.12.2013, 15:38   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Цитата:
кстати, я в таких случая пишу вот так:
Спасибо. И в отличие от моего кода, будет работать на других таблицах кодировки.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 11.12.2013, 19:25   #8
Shick
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию Работа с псевдослучайными последовательностями (ПСП). Работа с цветом.(Pascal)Помогите переделать прогрмму

Добрый вечер)Помогите пожалуйста переделать программу под вот это условие:
Задание. С помощью ПСП сформировать двухмерный MxN массив из элементов. В качестве элементов использовать слова из K..L символов A..Z (одномерный массив символов латинского алфавита). Осуществить подсчет элементов, удовлетворяющих условиям задания. Проверку заданных условий поиска реализовать с использованием типа множества. Вывести на экран сформированный массив в виде таблицы, выделив цветом подсчитанные элементы. Результат подсчета вывести на экран в отдельном окне.
(Здесь: М и N-соответственно число строк и столбцов формируемой
таблицы; К и L - соответственно минимальное и максимальное число букв в формируемых словах -элементах массива).

Выделить цветом и подсчитать число слов, удовлетворяющих следующим условиям.
1. Слово содержит нечетное число гласных букв.
2. Слово принадлежит строке, в которой хотя бы 3 слова содержат не более 5 букв.
К = 2, L = 7, М = 20, N = 10

Программа:
Код:
Uses Crt;
Const
     k=2; l=7; m=20; n=10;
     CharA = 65; {Ord('A');}
     CharZ = 90; {Ord('Z');}
     G=['A','E','I','O','U','Y'];
TYPE
     TWord    = String[L];
     TArrWord = array[1..M,1..N] of TWord;
     
//функции для набора рандомной строки
FUNCTION  RandChar:Char;
BEGIN
  RandChar:=Chr(CharA+Random(CharZ-CharA));
END;

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

VAR
  i,j,w,z,mtr,v:Integer;
  Mass  : TArrWord;
  d:string[L];

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

z:=0;
v:=0;
mtr:=0;
for i:=1 to M do begin
    for j:=1 to N do begin
    TextColor(0);
    begin d:=Mass[i,j];
        for w:=1 to Length(d) do begin
                                              If d[w] in G Then
                                                 z:=z+1         {кол-во гласных}
                                                           else
                                                 v:=v+1;
                                         end;
        If (z=v) and (i mod 2 <> 0) Then begin
                          mtr:=mtr+1;            {счетчик подходящих слов}
                          TextBackground(15);
                          TextColor(5);
                          end;
                          end;
         Write(Mass[i,j]:7);
         z:=0;
         v:=0;
         end;
    writeln;
    end;
    WriteLn(mtr);
end.
Shick вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коде. Работа с последовательностями чисел (Pascal) Uniastrum Помощь студентам 2 28.11.2012 13:47
Работа с массивами и псевдослучайными последовательностями (Pascal). Задача YkkRolex Помощь студентам 0 31.10.2012 08:20
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
работа с последовательностями (С++) JIyHaTuK Помощь студентам 0 06.10.2009 17:13