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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 18:22   #1
pascal_luzer
 
Регистрация: 03.04.2012
Сообщений: 4
По умолчанию Сформировать два множества

Сформировать два множества. Первое множество содержит следующие элементы: 1, 17, 2, 27, 3, 37, 4, 47, 5, 57, 6, 67, 7, 77. Второе множество должно быть введено пользователем. Распечатать оба множества. Вывести на экран все элементы принадлежащие хотя бы одному из множеств.
pascal_luzer вне форума Ответить с цитированием
Старый 10.04.2012, 19:48   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
uses
  CRT;

var
  a, b: set of byte;
  n, i, k: byte;

begin
  a := [1, 17, 2, 27, 3, 37, 4, 47, 5, 57, 6, 67, 7, 77];
  b := [];
  write('Input count of elements in B set: ');
  readln(n);
  for i := 1 to n do
  begin
    read(k);
    b := b + [k];
  end;
  writeln;
  writeln('Elements in A set:');
  for i := 0 to 255 do
    if i in a then
      write(i, ' ');
  writeln;
  writeln('Elements in B set:');
  for i := 0 to 255 do
    if i in b then
      write(i, ' ');
  writeln;
  writeln('Elements in A or B set:');
  for i := 0 to 255 do
    if (i in a) or (i in b) then
      write(i, ' ');  
  readln;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 10.04.2012 в 20:05.
BDA вне форума Ответить с цитированием
Старый 10.04.2012, 20:03   #3
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Код:
type tset=set of byte;

procedure readset(var afile:text;var aset:tset);
var n:byte;
begin
  while not eoln(afile) do begin
    read(afile,n);
    aset:=aset+[n];
  end;
  readln(afile);
end;

procedure writeset(var afile:text;var aset:tset);
var n:byte;
begin
  for n:=1 to 255 do
    if n in aset then
      write(afile,n:4);
  writeln(afile);
end;

var sn,sen,asn,asen:tset;
    f:text;

begin
  assign(f,'');
  reset(f);
  sn:=[1,17,2,27,3,37,4,47,5,57,6,67,7,77];
  sen:=[];
  readset(f,sen);
  close(f);
  assign(f,'');
  rewrite(f);
  writeln('1-ое множество');
  writeset(f,sn);
  writeln('2-ое множество');
  writeset(f,sen);
  writeln('элементы входящие только в 1-ое множество');
  asn:=sn-(sn*sen);
  writeset(f,asn);
  writeln('элементы входящие только во 2-е множество');
  asen:=sen-(sn*sen);
  writeset(f,asen);
  writeln('элементы входящие в оба множества');
  asen:=sn*sen;
  writeset(f,asen);
  close(f);
  readln
end.

Последний раз редактировалось Paster Fob; 10.04.2012 в 21:45.
Paster Fob вне форума Ответить с цитированием
Старый 10.04.2012, 20:11   #4
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
uses
  CRT;

var
  a, b: set of byte;
  n, i, k: byte;

begin
  a := [1, 17, 2, 27, 3, 37, 4, 47, 5, 57, 6, 67, 7, 77];
  b := [];
  write('Input count of elements in B set: ');
  readln(n);
  for i := 1 to n do
  begin
    read(k);
    b := b + [k];
  end;
  writeln;
  writeln('Elements in A set:');
  for i := 0 to 255 do
    if i in a then
      write(i, ' ');
  writeln;
  writeln('Elements in B set:');
  for i := 0 to 255 do
    if i in b then
      write(i, ' ');
  writeln;
  writeln('Elements in A or B set:');
  for i := 0 to 255 do
    if (i in a) or (i in b) then
      write(i, ' ');  
  readln;
end.
ваш код кстати не много криво работает.

Последний раз редактировалось Paster Fob; 10.04.2012 в 20:20.
Paster Fob вне форума Ответить с цитированием
Старый 10.04.2012, 20:15   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Paster Fob, в чем выражается "кривость" работы?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.04.2012, 20:26   #6
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

мне не понятно как вводить элементы,набираю жму enter ,но нифига не происходит,программа ждёт дальнейшего ввода.
Paster Fob вне форума Ответить с цитированием
Старый 10.04.2012, 20:46   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию


От того, что вам не понятно, как вводить, программа кривее не становится
Сначала программа запрашивает n (Input count of elements in B set), а потом n чисел (они должны быть от 0 до 255).
Цитата:
4
1 100 4 80
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.04.2012, 21:13   #8
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение

От того, что вам не понятно, как вводить, программа кривее не становится
Сначала программа запрашивает n (Input count of elements in B set), а потом n чисел (они должны быть от 0 до 255).
я просто не разобрался в вашем коде.
задание понял,сделал полностью,свой код исправил, зацените.

Последний раз редактировалось Paster Fob; 10.04.2012 в 21:18.
Paster Fob вне форума Ответить с цитированием
Старый 10.04.2012, 21:26   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Paster Fob, теперь разобрались?
В вашем коде лучше указать как комментарий, что имя файла нужно написать свое:
Код:
assign(f,'');//свой файл
Цитата:
все элементы принадлежащие хотя бы одному из множеств
- обозначает, что элементы принадлежат объединению множеств sn и sen.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.04.2012, 21:40   #10
Paster Fob
Форумчанин
 
Аватар для Paster Fob
 
Регистрация: 06.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Paster Fobобозначает, что элементы принадлежат объединению множеств sn и sen.
что-то не похоже на это,или надо норм. вопрос задавать.Такое ощущение что в заданиях спец. вопрос ставят так,что бы запутать.
Подправил код.

Цитата:
Сообщение от BDA Посмотреть сообщение
Paster Fob, теперь разобрались?
В вашем коде лучше указать как комментарий, что имя файла нужно написать свое:
Код:
assign(f,'');//свой файл
Не понял зачем комментарий.Файловая переменная связана с экраном,читает данные введённые пользователем и выводит на экран результат работы программы.К файлу путь указывать не надо.
Paster Fob вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сформировать 2 множества,состоящих из заглавных букв латинского алфавита. Определить элементы,принадлежащ Aktor1992 Паскаль, Turbo Pascal, PascalABC.NET 0 12.04.2011 22:13
Два одномерных массива A и B. Сформировать два новых массива. Паскаль. Где ошибка в коде? Tomny Помощь студентам 1 27.03.2011 16:47
Даны два конечных множества А и В dexter2145 Помощь студентам 1 16.06.2010 15:01
Сравнить два множества. Pascal MaxMelnikov Помощь студентам 3 16.03.2009 09:35