
1. Дан одномерный целочисленный массив А, состоящий из N элементов, N - заданное натуральное
число. Элемент Ai (i=1,2,3…, N) назовем особыми, если он больше суммы остальных элементов. Составить одномерный массив В из особых элементов массива А, оканчивающихся на 5. Если таких элементов нет, то выдать соответствующее текстовое сообщение.2.Дан одномерный массив А, состоящий из N элементов, N - заданное натуральное число. Сколько значений элементов в массиве А встречается .более одного раза.(Язык Паскаль)

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

===== PascalABC.NET =====
= 1 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -99, 99);
A.Println;
// собственно, решение
var s := A.Sum; // сумма всех элементов массива
var L := new List<integer>; // то, что войдет в массив В
// берем каждого претендента и сравниваем его с остальной суммой
for var i := 0 to A.High do
if (Abs(A[i] mod 10) = 5) and (A[i] > s - A[i]) then
L.Add(A[i]);
var B := L.ToArray;
if B.Length > 0 then
begin
Print('Особые элементы:');
B.Print
end
else
Print('Нет "особых" элементов');
end.
= 2 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -10, 10);
A.Println;
// собственно, решение
var D := new Dictionary<integer, integer>; // словарь
foreach var k in A do // перебор элементов
if D.ContainsKey(k) then
D[k] += 1 // +1, если такой элемент был
else
D.Add(k, 1); // 1, если элемент встретился впервые
D.Count(p -> p.Value > 1).Print
end.





Приведу решения задач на языке Паскаль:
- Найти особые элементы массива А, оканчивающиеся на 5:
pascalprogram SpecialElements; const MaxN = 100; // Максимальное количество элементов массива var A, B: array[1..MaxN] of Integer; // Массивы N, Sum, i, j: Integer; begin // Ввод количества элементов Write('Введите количество элементов N: '); Readln(N); // Ввод элементов массива А WriteLn('Введите элементы массива A:'); for i := 1 to N do Readln(A[i]); // Поиск суммы всех элементов Sum := 0; for i := 1 to N do Sum := Sum + A[i]; // Формирование массива В j := 0; for i := 1 to N do begin if (A[i] > Sum - A[i]) and (A[i] mod 10 = 5) then begin j := j + 1; B[j] := A[i]; end; end; // Вывод массива В или сообщения if j > 0 then begin WriteLn('Массив B из особых элементов:'); for i := 1 to j do WriteLn(B[i]); end else WriteLn('Особых элементов, оканчивающихся на 5, нет.'); end.
- Найти количество значений элементов, встречающихся более одного раза:
pascalprogram CountDuplicateValues; const MaxN = 100; // Максимальное количество элементов массива var A: array[1..MaxN] of Integer; // Массив N, i, j, count: Integer; duplicates: array[1..MaxN] of Boolean; begin // Ввод количества элементов Write('Введите количество элементов N: '); Readln(N); // Ввод элементов массива А WriteLn('Введите элементы массива A:'); for i := 1 to N do Readln(A[i]); // Инициализация массива для отслеживания дубликатов for i := 1 to N do duplicates[i] := False; // Подсчет дубликатов count := 0; for i := 1 to N - 1 do begin if not duplicates[i] then begin for j := i + 1 to N do begin if (A[i] = A[j]) and not duplicates[j] then begin duplicates[i] := True; duplicates[j] := True; count := count + 1; Break; end; end; end; end; // Вывод результата WriteLn('Количество значений элементов, встречающихся более одного раза: ', count); end.
Обратите внимание, что данные решения предполагают, что ввод элементов массива будет корректным.


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