Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pascal [дискретная математика], Множества и операции над ними 
:(
    Опции темы
M9C1K
Дата 23.6.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.5.2009

Репутация: нет
Всего: -1



Напишите пожалуйста одну операцию для примера. А то не представляю как с этими множествами работать.

Написать программу, в которой для конечных упорядоченных множеств реализовать все основные операции (Объединением,Пересечением,Разностью,Симметрической разностью) с помощью алгоритма типа слияния . Допустима организация множеств в виде списка или в виде массива.
1. На вход подаются два упорядоченных множества A и B (вводятся с клавиатуры, элементы множеств – буквы латинского алфавита).
2. После ввода множеств выбирается требуемая операция (посредством текстового меню, вводом определенного символа в ответ на запрос – выбор по желанию автора).
3. Программа посредством алгоритма типа слияния определяет результат выбранной операции и выдает его на экран с необходимыми пояснениями.                      Одновременно с результатом на экране должны присутствовать и исходные множества. 
4.Возврат на п.2 (выбор операции).
5. Завершение работы программы – из п.2 (например, по ESC).
PM MAIL   Вверх
LoveMeCozImBLONDE
Дата 23.6.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



ну как ето не представляю..
напиши хоть что-то., а то писать весь код за тебя нету желания.
PM MAIL   Вверх
M9C1K
Дата 24.6.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.5.2009

Репутация: нет
Всего: -1



Множества ввожу ,а дальше никак.

Код
Program dm1;
  uses crt;
 Type
  Simvol = set of 'a'..'z';
 Var
  A,B:simvol;
  i:integer;
  x,key:char;
 begin
  A:=[];
  B:=[];
  i:=1;
   repeat
   clrscr;
    writeln(' Vvedite ',i,'-y element mnogestva A ');
    readln(x);
    if (x in A)
     then
      begin
       writeln(x,' uje sodergitsya v mnogestve A ');
       i:=i-1;
      end
     else
      begin
       writeln(x,' pomeschon v mnogestvo A ');
       A:=A+[x];
      end;
     i:=i+1;
      until i>5;
      i:=1;
       repeat
       clrscr;
    writeln(' Vvedite ',i,'-y element mnogestva B ');
    readln(x);
    if (x in B)
     then
      begin
       writeln(x,' uje sodergitsya v mnogestve B ');
       i:=i-1;
      end
     else
      begin
       writeln(x,' pomeschon v mnogestvo B ');
       B:=B+[x];
      end;
     i:=i+1;

    until i>5;
     clrscr;
      writeln('     mnojestvo A: ');
      writeln;
    for x:='A' to 'z' do if x in A then write(x,' ');
      writeln;
      writeln('     mnojestvo B: ');
      writeln;
    for x:='A' to 'z' do if x in B then write(x,' ');
     procedure obyedinenie(c:chat):simvol;
      begin
       C:=A+B;
       writeln(C);
       end;
     procedure perese4enie(c:chat):simvol;
      begin
       C:=A*B;
       writeln(C);
      end;
     procedure raznosty(c:chat):simvol;
      C:=A-B;
      writeln(C);
      repeat
      clrscr;
      writeln('===========================');
      writeln('1: obyedinenie');
      writeln('2: perese4enie');
      writeln('3: simmetr. raznosty');
      writeln('4: raznosty');
      writeln('o: vyhod');
      key:=readkey;
      clrscr;
      case key of
           '1': obyedinenie();
           '2': perese4enie();
           '3': simmetr();
           '4': raznosty();

    until key='0';
  end.


PM MAIL   Вверх
LoveMeCozImBLONDE
Дата 24.6.2009, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 27.5.2009

Репутация: нет
Всего: нет



процедура описывается перед кодом основной программы...
и вызывать её еще потребуется.
PM MAIL   Вверх
M9C1K
Дата 24.6.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.5.2009

Репутация: нет
Всего: -1



процедура объявлена след. образом
procedure obyedinenie(first_set,second_set:si mvol; var tird_set:simvol);
Как правильно записать вызов процедуры obyedinуnie

Код
Program dm1;
  uses crt;
 Type
  Simvol = set of 'a'..'z';
 Var
  A,B,C:simvol;
  i:integer;
  x,key:char;
  procedure vvod(name_set:string; var num_elem:integer; var one_set:simvol);
  var x:char;
  begin
          writeln('vvedite ',num_elem,' element mnojestva ',name_set);
          readln(x);
          if (x in one_set)
          then begin
                writeln(x,' uje soderjitsya v mnojestve',name_set);
          end
          else begin
                writeln(x,' pomeschon v mnojestvo',name_set);
                one_set:=one_set+[x];
                num_elem:=num_elem+1;
          end;
   end;
   procedure vyvod(name_set:string;var one_set:simvol);
   var x:char;
   begin
                writeln(' mnojestvo ',name_set);
                for x:='a' to 'z' do if x in A then write(x,' ');
                writeln;
   end;

   procedure obyedinenie(first_set,second_set:simvol; var third_set:simvol);
   begin
                third_set:=first_set+second_set;
   end;
   procedure perese4enie(first_set,second_set:simvol; var third_set:simvol);
   begin
                third_set:=first_set*second_set;
   end;
   procedure raznosty(first_set,second_set:simvol; var third_set:simvol);
   begin
                third_set:=first_set-second_set;
   end;
   procedure simmetr(first_set,second_set:simvol; var third_set:simvol);
   begin
                third_set:=(first_set-second_set)+(second_set-first_set);
   end;
   begin
                A:=[];
                B:=[];
                i:=1;
                repeat
                        vvod('A',i,A);
                until i>5;
                i:=1;
                repeat
                        vvod('B',i,B);
                until i>5;
                clrscr;
                vyvod('A',A);
                vyvod('B',B);
                repeat
                         clrscr;
                           writeln('===========================');
                           writeln('1: obyedinenie');
                           writeln('2: perese4enie');
                           writeln('3: simmetr. raznosty');
                           writeln('4: raznosty');
                           writeln('o: vyhod');
                           writeln('->');
                           repeat until keyPressed;
                           key:=readkey;
                           case key of
                           '1': obyedinenie('C',third_setC); vyvod('C',C);end;
                           '2': perese4enie('C',third_set); vyvod('C',C);end;
                           '3': simmetr('C',third_set);     vyvod('C',C);end;
                           '4': raznosty('C',third_set);    vyvod('C',C);end;
                           end;
                    until ord(key)=ESC;
  end.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.