Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 29.02.2020
Сообщений: 39

Сортировка во множествах

28.06.2020, 19:12. Показов 492. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
type город = (a, b, c, d, e, f, h); Города = set of город; Рейсы = array[ город ] of города;
Составить программу, которая определяет множество городов, в которые можно попасть автобусом за один рейс или через другие города из города h.
Сделал заполнение дорог, а вот с процедурой и выводом беда...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
type
  town=(a,b,c,d,e,f,g,h);
  towns=set of town;
  trips=array [town] of towns;
  town2 = array [1..8] of town;
  
 
procedure CanReach(r: trips; n: town; var k: towns);
var i, j: town;
begin
  k:=r[n];
  for i:=succ(a) to pred(h) do
    for j:=a to h do
      if j in k then k:=k+r[j];
end;
 
var
town1:town;
globaltowns:towns;
trips1:trips;
i,j:town;
ran:integer;
town22:town2;
 
begin
  
 randomize;
   
 
 
 
 for i:=a to h do begin
   for j:=a to b do begin 
    
    
    ran := random(10);
    
    case ran of 
    1:Include(trips1[i],j);
    2:Include(trips1[i],j) ;
    3: Include(trips1[i],j);
    4:  Include(trips1[i],j);
    5:  Include(trips1[i],j);
    6:  Include(trips1[i],j);
    7:  Include(trips1[i],j);
    8: Include(trips1[i],j);
    
    
    
    end;
    end;
    end;
     
   
   
   CanReach(trips1,h,globaltowns);
   writeln();
   
  
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2020, 19:12
Ответы с готовыми решениями:

Отношения на множествах
Здравствуйте, Скажите пожалуйста. Правильно ли я понимаю отношения на множествах. С уважением, Юрий

Вычитание в множествах
Здравствуйте. Читая книгу Лутца столкнулся с непониманием одного момента: (скрин приложил) Вопрос: Почему при вычитании...

непонятно условие о множествах
народ обьясните плиз, просто непонял само условие. сконструировать множество, элементами которых есть буквы 'а'..'т' . Вывести их на...

3
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
29.06.2020, 08:42
Pascal
38
39
40
41
42
43
44
45
46
47
48
49
50
    case ran of 
    1:Include(trips1[i],j);
    2:Include(trips1[i],j) ;
    3: Include(trips1[i],j);
    4:  Include(trips1[i],j);
    5:  Include(trips1[i],j);
    6:  Include(trips1[i],j);
    7:  Include(trips1[i],j);
    8: Include(trips1[i],j);
    
    
    
    end;
Что это? И зачем столько раз повторять один и тот-же код?
А вывести ваш массив множеств можно одной командой: trips1.Print;
0
 Аватар для canadamoscow
1179 / 430 / 194
Регистрация: 23.03.2020
Сообщений: 1,021
Записей в блоге: 1
29.06.2020, 16:50
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
type
  town = (a,b,c,d,e,f,g,h);
  towns = set of town;
  trips = array [town] of towns;
  town2 = array [0..8] of towns; //пересадки
 
function TownSucc(t: town; i: integer): town :=
  if i = 0 then t else TownSucc(succ(t), i-1);
 
begin
 var trips1: trips; 
 loop 25 do trips1[TownSucc(a, Random(8))] += [TownSucc(a, Random(8))]; //генерируем рейсы для каждого города
 for var z := 0 to 7 do trips1[TownSucc(a, z)] -= [TownSucc(a, z)]; //удаляем рейсы сам в себя (из а -> а и т.д.)
 'Существующие рейсы:'.Println;
 trips1.Numerate.Select(t -> $'{t[0]}. {TownSucc(a, t[0]-1)} -> {t[1]}').PrintLines; // вывод всех рейсов
 var per: town2; // per[0] -  рейсы без пересадок, per[1] - с одной пересадкой ...
 var x := 0; // количество пересадок
 per[x]:= trips1[h]; //в per[0] (0 пересадок) записать рейсы из города h
 repeat
   x += 1;  
   per[x] += per[x-1];
   forEach var z in per[x-1] do per[x] += trips1[z];   
   per[x] -= [h];
 until per[x] = per[x-1];
 for var z := x downto 1 do per[z] -= per[z-1]; //удалить рейсы ранее имеющиеся
 'Из города h можно доехать до '.Println;
 for var z := 0 to x-1 do $'кол-во рейсов {z+1} (пересадок {z}): {per[z]}'.PrintLn;
end.
0
 Аватар для canadamoscow
1179 / 430 / 194
Регистрация: 23.03.2020
Сообщений: 1,021
Записей в блоге: 1
29.06.2020, 23:57
Исправился, всё немного проще
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
type
  town = (a,b,c,d,e,f,g,h);
  towns = set of town;
  trips = array [town] of towns;  
begin
 var trips1: trips; 
 loop 25 do trips1[town(Random(8))] += [town(Random(8))]; //генерируем рейсы для каждого города
 for var z := 0 to 7 do trips1[town(z)] -= [Town(z)]; //удаляем рейсы сам в себя (из а -> а и т.д.)
 'Существующие рейсы:'.Println;
 trips1.Numerate.Select(t -> $'{t[0]}. {Town(t[0]-1)} -> {t[1]}').PrintLines; // вывод всех рейсов
 var per := new List<towns>; // per[0] -  рейсы без пересадок, per[1] - с одной пересадкой ...
 per.Add(trips1[h]); //в per[0] (0 пересадок) записать рейсы из города h
 var x := 0; // количество пересадок
 repeat
   x += 1;
   per.Add(per[x-1]); //добавить в список множество при x пересадок
   forEach var z in per[x-1] do per[x] += trips1[z];
   per[x] -= [h];
 until per[x] = per[x-1];
 for var z := x downto 1 do per[z] -= per[z-1]; //удалить рейсы ранее имеющиеся
 'Из города h можно доехать до '.Println;
 for var z := 0 to x-1 do $'кол-во рейсов {z+1} (пересадок {z}): {per[z]}'.PrintLn;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2020, 23:57
Помогаю со студенческими работами здесь

Доказать тождества на множествах
Здравствуйте форумчане! Сам пока в процессе обучения, поэтому не понимаю. Помогите, пожалуйста, доказать: 1) А ∪ В = В &lt; = &gt;...

матриця видношень в множествах
Сформувати та вивести матрицю видношень R={(x,y)\2x-y&gt;1} ет задание в теми множества Помогите сделать или хоть обисните(дайте...

Установить биекцию на множествах
Есть задание - установить биекцию из X на Y, где X = ,Y = R. Подойдет ли под данное задание функция y = -ln(x)? Она для каждого y ставит в...

Сравнить количества элементов во множествах
Во сколько раз больше элементов во множестве натуральных чисел, чем во множестве целых положительных чисел, кратных 3.(дискретный анализ)

Исследовать на равномерную сходимость на множествах
Исследовать ряд на сходимость и на равномерную сходимость по x на множествах E1=(0;1) и Е2=(1;+БЕСКОНЕЧНОСТЬ) \sum_{1}^{\infty }...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru