
Составьте программу вычисления суммы элементов одномерного массива A(N), встречающихся в массиве
B(N) ровно два раза. pascalABC

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

Ответ:
begin
var s: integer;
var x := ReadInteger('Введите размер массива');
var a := ArrRandomInteger(x, 1, 10); Println('Массив А'); a.Println;
var b := ArrRandomInteger(x, 1, 10); Println('Массив B'); b.Println;
for var i := 0 to High(a) do
begin
var k := 0;
for var j := 0 to High(b) do
if (a[i] = b[j]) then Inc(k);
if k = 2 then
s += a[i];
end;
Print('Сумма', s);
end.



===== PascalABC.NET =====
begin
var n := ReadInteger('n =');
var A := ArrRandom(n, -10, 10);
A.Println;
var B := ArrRandom(n, -10, 10);
B.Println;
// массивы получены
var D := new Dictionary<integer, integer>;
foreach var m in B do
if D.ContainsKey(m) then
D[m] += 1
else
D[m] := 1;
// словарь создан
A.Where(p -> D.ContainsKey(p) and (D[p] = 2)).Sum.Print
end.




Для составления программы на языке PascalABC, рассмотрим следующий алгоритм:
- Создаем два одномерных массива
A
иB
размерностиN
. - Заполняем массивы данными.
- Создаем переменную
sum
для хранения суммы элементовA
, встречающихся вB
ровно два раза. - Перебираем элементы массива
A
и проверяем, сколько раз они встречаются в массивеB
. - Если элемент встречается два раза, добавляем его к
sum
. - Выводим значение
sum
.
Вот программа на языке PascalABC:
pascalprogram SumOfElements; const N = 10; // Размер массивов var A, B: array[1..N] of Integer; sum: Integer; i, j, count: Integer; begin // Заполнение массивов A и B (пример случайного заполнения) Randomize; for i := 1 to N do begin A[i] := Random(10); // Заполняем A случайными числами от 0 до 9 B[i] := Random(10); // Заполняем B случайными числами от 0 до 9 end; // Вывод содержимого массивов A и B WriteLn('Массив A:'); for i := 1 to N do Write(A[i], ' '); WriteLn; WriteLn('Массив B:'); for i := 1 to N do Write(B[i], ' '); WriteLn; // Вычисление суммы элементов A, встречающихся в B ровно два раза sum := 0; for i := 1 to N do begin count := 0; for j := 1 to N do begin if A[i] = B[j] then count := count + 1; end; if count = 2 then sum := sum + A[i]; end; // Вывод результата WriteLn('Сумма элементов A, встречающихся в B ровно два раза: ', sum); end.
Заметим, что в программе я использовал случайное заполнение массивов A
и B
для демонстрации работы алгоритма. Вы можете заменить эту часть кода на заполнение массивов с помощью пользовательского ввода или считывания данных из файла.


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