
Написать программу в паскаль Дан целочисленный массив размера NN, содержащий ровно два одинаковых
элемента. Найти номера одинаковых элементов и вывести эти номера в порядке возрастания.

Ответы на вопрос

Variant 1
var
A: array[1..100] of integer;
N, i, j: byte;
begin
write('N = ');
readln(N);
for i := 1 to N do
begin
write('a[', i, '] = ');
read(a[i])
end;
writeln;
for i := 2 to N do
for j := 1 to i - 1 do
if a[i] = a[j] then begin
writeln('Номера: ', j, ' и ', i);
exit
end;
writeln
end.




Для решения этой задачи в Pascal можно написать следующую программу. Для простоты, предположим, что массив заполняется пользователем.
pascalprogram FindDuplicateElements; const MAX_N = 100; type TIntArray = array[1..MAX_N] of Integer; var N: Integer; Arr: TIntArray; DuplicateElement, i, j: Integer; FoundDuplicate: Boolean; procedure ReadArray(var Arr: TIntArray; N: Integer); var i: Integer; begin for i := 1 to N do begin Write('Введите элемент массива Arr[', i, ']: '); ReadLn(Arr[i]); end; end; procedure FindDuplicateElements(const Arr: TIntArray; N: Integer; var DuplicateElement: Integer); var i, j: Integer; begin FoundDuplicate := False; for i := 1 to N - 1 do begin for j := i + 1 to N do begin if Arr[i] = Arr[j] then begin DuplicateElement := Arr[i]; FoundDuplicate := True; Break; end; end; if FoundDuplicate then Break; end; end; procedure PrintDuplicateIndexes(const Arr: TIntArray; N, DuplicateElement: Integer); var i: Integer; begin Write('Номера одинаковых элементов (', DuplicateElement, '): '); for i := 1 to N do begin if Arr[i] = DuplicateElement then Write(i, ' '); end; WriteLn; end; begin Write('Введите размер массива N (N > 1 и N <= ', MAX_N, '): '); ReadLn(N); if (N <= 1) or (N > MAX_N) then begin WriteLn('Некорректный размер массива N. Пожалуйста, повторите ввод.'); Exit; end; ReadArray(Arr, N); FindDuplicateElements(Arr, N, DuplicateElement); if FoundDuplicate then PrintDuplicateIndexes(Arr, N, DuplicateElement) else WriteLn('В массиве нет двух одинаковых элементов.'); end.
В данной программе, предполагается, что пользователь сначала вводит размер массива N
, а затем вводит его элементы. После этого, программа ищет два одинаковых элемента и выводит номера этих элементов в порядке возрастания.
Обратите внимание, что программа преднамеренно использует простой алгоритм для поиска одинаковых элементов, который может быть неэффективен для больших массивов. Однако, он хорошо подходит для небольших массивов, которые вам, возможно, понадобятся для тестирования. Если нужно оптимизировать для больших массивов, можно рассмотреть более эффективные алгоритмы поиска дубликатов, такие как использование хэш-таблицы или сортировки массива.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili