0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 23
1

Найти общие элементы двух массивов из 10 элементов

22.11.2015, 10:33. Показов 792. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
program prog5_4;
 
const
  N = 10;
 
type
  vector = array[1..N] of integer;
 
var
  x, y, m: vector;
  i, j, k: integer;
  t: integer;
  count: integer;
 
begin
  {Заполнение массивов случайными числами}
  randomize;
  for i := 1 to N do 
    x[i] := random(100);
  for j := 1 to N do
    y[j] := random(100);
  
  {Вывод массивов на экран}
  write('Массив х:');
  for i := 1 to N do
    write(x[i]:3);
  writeln;
  
  write('Массив y:');
  for j := 1 to N do
    write(y[j]:3);
  writeln;
  
  {Нахождение общих элементов}
  count := 0;
  for i := 1 to N do
    for j := 1 to N do
      if x[i] = y[j] then
      begin
        write(x[i]:3);
        inc(count);
      end;
  if count = 0 then 
    
    writeln('Нет общих элементов');
  
  
end.
Получился вот такой алгоритм, но 1. эта программа может дважды написать одно число, что не очень красиво
2. Сказали, что нужно сделать через цикл while, но я не понимаю как.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2015, 10:33
Ответы с готовыми решениями:

Найти совпадающие элементы двух одномерных массивов.
Заполните случайными числами в диапазоне от 1 до 5 два массива: A и B. Найдите и выведите на экран...

Найти только те элементы двух массивов, значения которых совпадают
необходимо написать программу Заполните случайными числами в диапазоне от 1 до 5 два массива: A и...

Найти наименьший из общих элементов двух массивов из 10-ти целых чисел.
Даны 2 массива из 10 целых чисел каждый. Найти наименьший из их общих элементов. program mass; ...

Как найти минимальную сумму всех элементов двух массивов
Имеются два массива А и Б. Нужно найти минимальную сумму всех элементов, учитывая что можно всегда...

4
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
22.11.2015, 11:24 2
Взято отсюда:
Написать функцию находящую количество общих элементов двух массивов

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{(C) vint-81}
const
  n = 10;
 
type
  mas = array[1..n] of integer;
 
var
  a, b, c: mas;
  i, t: integer;
 
procedure vvs(var x: mas; s: string);
var
  i, j, tmp: integer;
begin
  writeln(s);
  for i := 1 to n do 
    x[i] := random(10);
  for i := 1 to n - 1 do
    for j := 1 to n - i do 
      if x[j] < x[j + 1] then 
      begin
        tmp := x[j]; 
        x[j] := x[j + 1]; 
        x[j + 1] := tmp
      end;
  for i := 1 to n do 
    write(x[i]:2);
  writeln;
end;
 
//функция подсчета общих элементов в массивах x,y
function k_odin(x, y: mas; var z: mas): integer;
var
  i, j, k: integer;
begin
  i := 1;j := 1;k := 0;
  while (i <= n) and (j <= n) do
    if x[i] = y[j] then
    begin
      inc(k);
      c[k] := x[i];
      while (i < n) and (x[i] = x[i + 1]) do 
        inc(i);
      inc(i);
      while (j < n) and (y[j] = y[j + 1]) do 
        inc(j);
      inc(j)
    end
      else
    if x[i] > y[j] then 
    begin
      while (i < n) and (x[i] = x[i + 1]) do 
        inc(i);
      inc(i)
    end
    else 
    begin
      while (j < n) and (y[j] = y[j + 1]) do 
        inc(j);
      inc(j)
    end;
  k_odin := k;
end;
 
begin
  vvs(a, 'массив 1:');
  vvs(b, 'массив 2:');
  t := k_odin(a, b, c);
  writeln('количество общих элементов: ', t );
  writeln('Массив общих элементов: ' );  
  for i := 1 to t do
    write(c[i]:3);
end.
1
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 23
22.11.2015, 11:26  [ТС] 3
Эта лабораторная предусмотрена без использования функций и процедур. Забыл уточнить, извините.
0
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
22.11.2015, 11:39 4
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
61
62
63
64
program prog5_4;
 
const
  N = 10;
 
type
  vector = array[1..N] of integer;
 
var
  x, y, c: vector;
  i, j, k: integer;
  t: integer;
  count: integer;
 
begin
  {Заполнение массивов случайными числами}
  randomize;
  for i := 1 to N do 
    x[i] := random(100);
  for j := 1 to N do
    y[j] := random(100);
  
  {Вывод массивов на экран}
  write('Массив х:');
  for i := 1 to N do
    write(x[i]:3);
  writeln;
  
  write('Массив y:');
  for j := 1 to N do
    write(y[j]:3);
  writeln;
  
  {Нахождение общих элементов}
  i := 1;j := 1;k := 0;
  while (i <= n) and (j <= n) do
    if x[i] = y[j] then
    begin
      inc(k);
      c[k] := x[i];
      while (i < n) and (x[i] = x[i + 1]) do 
        inc(i);
      inc(i);
      while (j < n) and (y[j] = y[j + 1]) do 
        inc(j);
      inc(j)
    end
      else
    if x[i] > y[j] then 
    begin
      while (i < n) and (x[i] = x[i + 1]) do 
        inc(i);
      inc(i)
    end
    else 
    begin
      while (j < n) and (y[j] = y[j + 1]) do 
        inc(j);
      inc(j)
    end;
  write('Массив C:');    
  for i := 1 to k do
    write(c[i]:3);
end.
1
0 / 0 / 0
Регистрация: 23.12.2014
Сообщений: 23
23.11.2015, 21:40  [ТС] 5
Программа работает некорректно, как ни пытался найти ошибку не получается. Если взять случайные значения до 10, например, то программа выдает далеко не все значения
0
23.11.2015, 21:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2015, 21:40
Помогаю со студенческими работами здесь

Найти общие элементы двух массивов
Даны два линейных массива x и y по N целых чисел в каж-дом (N=10). Найти такие значения элементов,...

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

Общие элементы двух массивов
Помогите решить проблему, всю голову поломал себе уже. Вообщем нужно найти общие элементы из двух...

Общие элементы двух массивов
Есть два массива, 1-ий -- на 10 элементов, 2-ой – на 20 элементов. - найти все одинаковые числа,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru