С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 45

Определить являются ли массивы похожими

21.01.2015, 08:23. Показов 1772. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Два массива называются похожими, если совпадают множества чисел, встречающихся в этих массивах.

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

Входной файл INPUT.TXT содержит в первой строке два числа M и N - длины массивов (1 <= M, N <= 16000). Во второй строке записаны M чисел – элементы первого массива. В третьей строке записаны N чисел – элементы второго массива. Числа в строках разделены пробелами, элементы массивов - целые числа, не превышающие 32000 по абсолютной величине.
Выходные данные

Выходной файл OUTPUT.TXT должен содержать 1, если массивы похожи и 0 иначе.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2015, 08:23
Ответы с готовыми решениями:

Разработать алгоритм и написать программу, которая проверяет, являются ли это таблицы похожими.
Решите плс задачу. Заранее Спасибо!!! Даны две целочисленных таблицы A и B . Разработать алгоритм и написать программу, которая...

Массив: создать одномерный массив, элементами которого являются двумерные массивы, элементами которых являются записи
создать одномерный массив, элементами которого являются двумерные массивы, элементами которых являются записи с полями целочисленного,...

Определить,являются ли похожими массивы
Здравствуйте. Помогите пожалуйста с задачей. Задача: Заданы два одномерных массива , каждый из которых содержит n элементов....

3
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
21.01.2015, 09:55
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
type
  TSet=array [-32000..32000] of Boolean;
var
  a, b: ^TSet;
  m, n, i, k: Integer;
begin
  Assign(input,'input.txt'); Reset(input);
  Assign(output,'input.txt'); Rewrite(output);
  New(a); FillChar(a^,SizeOf(a^),#0);
  New(b); FillChar(b^,SizeOf(b^),#0);
  ReadLn(m,n);
  for i:=1 to m do begin
    Read(k); a^[k]:=True;
  end; ReadLn;
  for i:=1 to n do begin
    Read(k); b^[k]:=True;
  end; ReadLn;
  for i:=-32000 to 32000 do
    if a^[i]<>b^[i] then begin
      WriteLn(0); Exit;
    end;
  WriteLn(1);
  {Dispose(b); Dispose(a); Close(input); Close(output);}
end.
1
1 / 1 / 0
Регистрация: 22.01.2014
Сообщений: 45
21.01.2015, 11:20  [ТС]
Объясните что означают эти строчки 9 и 10
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
21.01.2015, 12:07
Вопрос задан в общей теме по Паскалю, следовательно, возможен и Турбо Паскаль.
Турбо Паскаль работает под MS-DOS или ее эмуляцией в реальном режиме процессора, размер переменных ограничен 64 килобайтами. В 64 килобайта два массива типа TSet не помещаются. Чтобы обойти этот момент, место под эти массивы распределяется в динамической памяти вызовом New(a).
Выделенная память очищается вызовом FillChar(a^,SizeOf(a^),#0). Это быстрый аналог
Pascal
1
for i:=-32000 to 32000 do a^[i]:=False;
Если используемый компилятор позволяет разместить данные в сегменте данных, нужды в использовании динамической памяти нет, достаточно:
Pascal
1
2
var
  a, b: TSet;
Если используемый компилятор не инициализирует глобальные переменные самостоятельно, то строки 9, 10 (инициализация) примут вид:
Pascal
9
10
  FillChar(a,SizeOf(a),#0);
  FillChar(b,SizeOf(b),#0);
Добавлено через 9 минут
Возможен аналогичный вариант без динамической памяти и для TP:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var
  a: array [-32000..32000] of Byte;
  m, n, i, k: Integer;
begin
  Assign(input,'input.txt'); Reset(input);
  Assign(output,'input.txt'); Rewrite(output);
  FillChar(a,SizeOf(a),#0); { для TP строка не нужна }
  ReadLn(m,n);
  for i:=1 to m do begin
    Read(k); a^[k]:=a^[k] or 1;
  end; ReadLn;
  for i:=1 to n do begin
    Read(k); a^[k]:=a^[k] or 2;
  end; ReadLn;
  for i:=-32000 to 32000 do
    if not (a[i] in [0,3]) then begin
      WriteLn(0); Exit;
    end;
  WriteLn(1);
  {Close(input); Close(output);}
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.01.2015, 12:07
Помогаю со студенческими работами здесь

Являются ли два массивы похожими?
Заданы два массива чисел, написать программу, проверяющую, являются ли эти массивы похожими(совпадают множества чисел, встречающихся в...

Определить, являются ли похожими две вводимые логические формулы
Здравствуйте. Пишу к вам с просьбой, в надежде, что найдется добрый человек, который хотя бы примерно сможет мне объяснить что нужно делать...

Одномерные массивы. Определить те его элементы, индексы которых являются степенями двойки
Здравствуйте,помогите пожалуйста заранее благодарю. Составить программу по обработке одномерного массива согласно условию. Дан...

Массив, элементами которого являются массивы
на загрузку страницы пишу private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page...

Процедуры: проверить, являются ли массивы G(20) и H(30) упорядоченными по возрастанию
Задание: Проверить, являются ли массивы G(20) и H(30) упорядоченными по возрастанию. Я вот написал прогу, но она просто выводит на экран...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru