С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
1

Нужно разобраться с небольшим примером

06.10.2013, 10:22. Показов 471. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте . Есть такая программа , где два массива записываются в 2 разных файла , потом считываются с него , а далее нужно найти общие элементы этих массивов и записать их в третий массив.
C++
1
2
int h4[20]={......}
int h5[12]={....}
Эти массивы записали , вывели с файла.
Далее нужно общие элементы записать в массив h3[].
Нашёл такой пример , но не совсем понимаю , как она работает .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int h3[5];                                      //массив для хранения общих элементов
 int t=0;                                         
 int k=0;
 while (t<20)
      {for (int i=0; i<12; i++)         //прогоняет все элементы первого массива, сравнивая с
        {                      //одним (j-м) элементом второго массива
         int p=0;       
           if (h5[i]==h4[t])                      //элементы двух массивов одинаковы
              {for (int l=0; l<20; l++)
                  if (h5[i]==h3[l])              //проверяет наличие подобного элемента в 3-м массиве
                    p+=1;   
               if (p==0)                        //если элементы двух массивов одинаковы и он(элемент) не нашёлся в 3 массиве
                    {h3[k]=h5[i];
                     cout <<endl<< "\n  Element h3 = " << h3[k]<< endl;
                     k+=1;
                     }}}
          t++;}                               //начинаем прогон следующего элемента второго массива
Комментарии писал не я.
Помогите разобраться , зачем нужно условие
C++
1
while (t<20)
И немного запутался в алгоритме : получается сначала мы делаем цикл по массиву h5[12].
Дальше я не понимаю , зачем нужна переменная p?

Помогите , пожалуйста , хотя бы немного разобраться с этими вопросами .Буду очень признателен Вам .
0
Programming
Эксперт
9485 / 562 / 19
Регистрация: 12.04.2006
Сообщений: 11,671
Блог
06.10.2013, 10:22
Ответы с готовыми решениями:

Не могу разобраться с примером из книги Липпмана
#include &lt;iostream&gt; #include &lt;string&gt; using std::string; string &amp; shorterString(string &amp;s1,...

Нужно разобраться с небольшим примером
Здравствуйте . Возникла проблема с ДУ. Делал пример с учебника и ничего не получилось , выдаёт...

нужно разобраться с примером.
Всем доброго времени суток! Прошу вас помогите разобраться. Нужно решить задание 5.91... а я не...

Не могу разобраться с примером
Есть пример программы календаря . Не могу разобраться с логикой. Создаётся панель , на ней...

3
3566 / 2713 / 348
Регистрация: 11.03.2009
Сообщений: 6,247
06.10.2013, 10:52 2
while тоже цикл, почему тут вперемешку два вида цикла, нужно спрашивать у автора этого кода.
Алгоритм такой:
-берем элемент массива h4 (цикл while)
-в цикле сравниваем со всеми элементами массива h5 (первый цикл for)
-если есть совпадение, в еще одном цикле сравниваем совпавший элемент со всеми элементами массива h3 (второй цикл for)
-если совпавшие элементы h4 и h5 отсутствуют в h3, записать элемент в h3
Переменная р используется как флаг
0
9 / 9 / 10
Регистрация: 05.09.2013
Сообщений: 502
06.10.2013, 10:58  [ТС] 3
Цитата Сообщение от kazak Посмотреть сообщение
while тоже цикл, почему тут вперемешку два вида цикла, нужно спрашивать у автора этого кода.
Алгоритм такой:
-берем элемент массива h4 (цикл while)
-в цикле сравниваем со всеми элементами массива h5 (первый цикл for)
-если есть совпадение, в еще одном цикле сравниваем совпавший элемент со всеми элементами массива h3 (второй цикл for)
-если совпавшие элементы h4 и h5 отсутствуют в h3, записать элемент в h3
Переменная р используется как флаг
Спасибо за ответ . Про флаг уже сам догадался)
Но всё равно немного не понятно с while. Почему используется переменная t? Какими образом она относится к массиву?
0
3566 / 2713 / 348
Регистрация: 11.03.2009
Сообщений: 6,247
06.10.2013, 11:25 4
9 строка
Цитата Сообщение от NNN7 Посмотреть сообщение
if (h5[i]==h4[t])
0
06.10.2013, 11:25
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
06.10.2013, 11:25
Помогаю со студенческими работами здесь

Не могу разобраться с примером из книги
Здраствуйте. Изучаю книгу Энди Харриса &quot;РНР и MySQl для начинающих&quot;. В примере, имеется два...

Не могу разобраться с одним примером
public class Leaf{ int i = 0; Leaf increment(){ i++; return this; } void print(){...

Не могу разобраться с примером по работе JavaScript
Здравствуйте, начал изучать javascript по книге Прохоренок Н.А. - HTML, JavaScript, PHP и MySQL....

Не могу разобраться с примером Classification Yard
Не могу разобраться с примером Classification Yard. При запуске модели возврат в окно проекта. В...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru