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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2016, 09:07   #11
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию Помощь студентам по программированию на Паскале

Если не врёте с формулировкой, то массив C вроде не нужен.
Множества представлены целыми числами и фактически, задача просто сделать выборку чисел уникальных и повторяющихся.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 29.02.2016, 13:55   #12
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Цитата:
Множества представлены целыми числами
Кэп Ваш, множественный тип по определению целочисленный, а точнее простого порядкового типа, ограниченного по диапозону 0..255
Цитата:
Если не врёте с формулировкой
С какой формулировкой?
CMY_3 вне форума Ответить с цитированием
Старый 29.02.2016, 14:27   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

CMY_3, Вы путаете порядковый и целочисленный типы.
Да, множество должно иметь в основе порядковый тип.
Но это отнюдь не означает, что элементы множества должны быть целые числа.

например,
Код:
  Var A : Set Of Char; 
        B : Set Of 'a'..'z'; 
        C : Set Of Boolean;

type
	week_days = (Mon, Tue, Wed, Thu, Fri);
var
	work_days: set of week_days;
впрочем, это всё равно не объясняет, зачем ПРИНЦИПИАЛЬНО нужен массив C
Да и не важно это.
Уже задача давно решена!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.02.2016, 14:27   #14
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию Программы на Паскале

Цитата:
Сообщение от CMY_3 Посмотреть сообщение
Кэп Ваш, множественный тип по определению целочисленный
Я не вижу определения у ТС слову "тип". И моя скромная практика показывает, что если в программе на Паскале есть array, то про set в студенческих задачах не вспоминают.
Возьму в кредит мильён по 100% годовых на сто лет.

Последний раз редактировалось ProBeginner; 29.02.2016 в 17:51.
ProBeginner вне форума Ответить с цитированием
Старый 29.02.2016, 15:12   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от ProBeginner Посмотреть сообщение
что если есть array, то про set в студенческих задачах не вспоминают.
Ошибаетесь. Вспоминают.
И тут на форуме полно примеров.
Да и посмотрите решение в данной теме.
Оно как раз через множества и сделано.
Чтобы найти элементы, которые есть в обоих множествах A и B достаточно написать
Код:
A*B
и всё!
А чтобы сделать то же самое с массивами вам понадобятся циклы, да ещё и вложенные, да ещё и неэффективные (полный перебор).

Плохо, что в стандартном Паскале не придумали, как выводить содержимое множества. Хотя в том же PascalABC/PABC.NET авторы языка это позволяют.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.02.2016, 15:41   #16
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Цитата:
Я не вижу определения у ТС слову "тип".
В данном случае, речь о стандартном типе, который определять может только документация ЯП.
CMY_3 вне форума Ответить с цитированием
Старый 29.02.2016, 15:53   #17
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию Помощь студентам Pascal

Цитата:
Сообщение от CMY_3 Посмотреть сообщение
В данном случае, речь о стандартном типе, который определять может только документация ЯП.
Я не понял, вы ясновидец или Vika2016 сменившая регистрацию?
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 29.02.2016, 16:02   #18
Vika2016
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 69
По умолчанию

Цитата:
Сообщение от CMY_3 Посмотреть сообщение
Код:
program work_prog;
{$mode fpc}
const
  Nm = 100;
var
  A, B, mn : set of byte;
  C : array[1..Nm] of byte;
  n,i : byte;
begin
  write('Размер массива <=',Nm,' n = '); readln(n);
  randomize;
  A:=[]; B:=[];
  writeln('Массив C:');
  for i := 1 to n do begin
    C[i]:=random(15);
    write(C[i]:3);
    if (i<=n div 2) then A := A + [C[i]]
    else B := B + [C[i]];
  end;
  writeln(#10,#13,'Множество А:');
  for i := 1 to 255 do
    if i in A then write(i:3);
  writeln(#10,#13,'Множество B:');
  for i := 1 to 255 do
    if i in B then write(i:3);
  mn := A * B;
  writeln(#10,#13,'Список общих элем:');
  for i := 1 to 255 do
    if i in mn then write(i:3);
  writeln(#10,#13,'Список различных элем:');
  mn := A - B;
  for i := 1 to 255 do
    if i in mn then write(i:3);
  mn := B - A;
  for i := 1 to 255 do
    if i in mn then write(i:3);
  readln;
end.

Огромное вам спасибо за помощь а также всем кто принимал участие в решени задачи

А что значит вот это
Код:
#10,#13
?
Vika2016 вне форума Ответить с цитированием
Старый 29.02.2016, 16:08   #19
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию

Управляющие символы для терминала - конец строки и перевод каретки.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Старый 29.02.2016, 16:15   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вика, замените все строчки
вида
Код:
writeln(#10,#13,'какой-то текст');
на
Код:
WriteLn;
WriteLn('какой-то текст');
так будет проще и надежней!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
тема-кубик рубика!может кто-то знает как делать? сега21 Помощь студентам 1 20.05.2012 13:57
кто нибудь знает, как это работает? Акоб Свободное общение 17 07.02.2011 07:52
кто знает что это такое и как исправить? Yury111 Безопасность, Шифрование 4 17.06.2009 08:59