Определить, что последовательность b содержит все элементы последовательности a - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста исправить нерациональность в коде, такое условие: даны 2 последовательности a и b, неповторяющихся элементов (b>a), определить, верно ли то, что последовательность b содержит все элементы последовательности a. Вот что получилось, показал учителю, он сказал что нерациональное решение и надо переделать. Как можно переделать?
Листинг программы
  1. uses crt;
  2. const n=5;
  3. m=7;
  4. var a:array [1..n] of integer;
  5. b:array [1..m] of integer;
  6. p, i, j: integer;
  7. begin
  8. clrscr;
  9. p:=0;
  10. writeln ('введите последовательность а, состоящию из ',n,' неповторяющихся элементов');
  11. for i:=1 to n do
  12. read (a[i]);
  13. writeln ('введите последовательность b, состоящию из ',m,' неповторяющихся элементов');
  14. for j:=1 to m do
  15. read (b[j]);
  16. p:=0;
  17. for i:=1 to n do
  18. begin
  19. for j:=1 to m do
  20. if a[i]=b[j] then
  21. p:=p+1;
  22. end;
  23. if p=n then write ('Верно') else write ('Не верно');
  24. end.

Решение задачи: «Определить, что последовательность b содержит все элементы последовательности a»

textual
Листинг программы
  1. uses crt;
  2. var a : array [1..100] of integer;
  3.     n, m, p, i, j : byte;
  4.     b : integer;
  5. begin
  6. clrscr;
  7.   write('Введите количество элементов последовательности а (n<100): ');
  8.   readln(n);
  9.   writeln ('Введите последовательность а:');
  10.   for i:=1 to n do
  11.     read (a[i]);
  12.    
  13.   repeat
  14.     write('Введите количество элементов последовательности b (m<n): ');
  15.     readln(m);
  16.   until m<n;
  17.  
  18.   writeln('Введите последовательность b: ');
  19.   for i:=1 to m do
  20.     begin
  21.     read(b);
  22.       for j:= 1 to n do
  23.         if a[j] = b then p:= p + 1;
  24.     end;
  25.  
  26.   if p = m then write ('Верно')
  27.            else write ('Не верно');
  28.  
  29. end.

Объяснение кода листинга программы

  1. В начале кода подключается библиотека crt.
  2. Создается переменная a типа array[1..100]of integer, которая будет хранить последовательность a.
  3. Создаются переменные n, m, p и i типа byte, которые будут использоваться для контроля ввода данных и обработки последовательностей.
  4. Создается переменная b типа integer, которая будет хранить элемент из последовательности b.
  5. Выводится сообщение для ввода количества элементов последовательности a.
  6. Считывается количество элементов последовательности a с помощью функции readln.
  7. Выводится сообщение для ввода последовательности a.
  8. Запускается цикл for, который считывает каждый элемент последовательности a с помощью функции read и сохраняет его в соответствующем элементе массива a.
  9. Проверяется, пока количество элементов последовательности b не будет меньше или равно количеству элементов последовательности a.
  10. Выводится сообщение для ввода последовательности b.
  11. Запускается цикл for, который считывает каждый элемент последовательности b с помощью функции read и сохраняет его в соответствующем элементе массива a.
  12. Проверяется, пока количество элементов последовательности b не будет равно количеству элементов последовательности a.
  13. Выводится сообщение, указывающее, была ли последовательность b найдена в последовательности a.
  14. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы