No video

Заполнить массив случайными числами. Генератор уникальных случайных чисел. rand. srand ДЗ #7

  Рет қаралды 255,493

#SimpleCode

#SimpleCode

Күн бұрын

Понравилось видео или оказалось полезным? Подпишись!
Заполнить массив случайными числами. Генератор уникальных случайных чисел. rand. srand ДЗ #7
Исходный код topic-1...
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit

Пікірлер: 833
@user-cp7pi3ik9g
@user-cp7pi3ik9g 4 жыл бұрын
Вернулся с 125 урока помня что где-то на час на этом задании подсел. Сейчас кажется таким легким. Крепитесь!
@mar_kha
@mar_kha 3 жыл бұрын
О, спасибо за комментарий) Именно такого рода ищу (для поддержания мотивации) Вы сейчас на каком уроке? Или уже всё прошли?) В каких видео возникли трудности?
@el1oz155
@el1oz155 3 жыл бұрын
прошло 4 месяца после вашего коментария. мне бы очень хотелось знать как хорошо вы обучились и смогли ли уже найти работу?
@60jib_i3_tejie8
@60jib_i3_tejie8 3 жыл бұрын
Это нормально что мне сложно понять эти уроки, но мне 13?
@el1oz155
@el1oz155 3 жыл бұрын
@@60jib_i3_tejie8 всем все дается по разному. если ты считаешь что тебе сложно попробуй изучить что то по проще. например html. а так сложно мне тоже и мне 25.
@60jib_i3_tejie8
@60jib_i3_tejie8 3 жыл бұрын
@@el1oz155 ну попробую, я просто хочу изучить какой нибудь язык, чтобы уже к 18-20 мог более-менее сам зарабатывать.
@dmitriyshumikhin9285
@dmitriyshumikhin9285 2 жыл бұрын
Очень долго не получалось решить эту задачу и совершенно не понимал код в видео, в итоге отложил это дело и просто обучался дальше. Через пару недель попробовал посидеть и порешать, в итоге всё получилось. Сейчас спустя какое-то время вернулся к этому уроку, в итоге полностью понял написанный код. Так что не расстраивайтесь сильно, если не получается что-то, и не делайте сразу выводов, что сфера не ваша. Продолжайте и у вас обязательно получится
@sS1nT-oib
@sS1nT-oib 5 ай бұрын
спасибо)
@user-un4hq5nh1h
@user-un4hq5nh1h 7 жыл бұрын
Сложное задание... Знал, что нужно использовать цикл if, только не знал как реализовать...
@lost3575
@lost3575 7 жыл бұрын
согласен
@user-lb1zt9kp9k
@user-lb1zt9kp9k 7 жыл бұрын
if - это не цикл)
@garp_tv4849
@garp_tv4849 6 жыл бұрын
Евгений Пернач молодец, хороший мальчик(сарказм)
@viacheslavivanskiy8658
@viacheslavivanskiy8658 6 жыл бұрын
ахаха тип правильно говорит
@DragonnSteve
@DragonnSteve 5 жыл бұрын
Конечно сложное. Если циклом называть условие, то будет сложно)
@dualsense7323
@dualsense7323 2 жыл бұрын
Знал, что в первом цикле с заполнением массива должно быть осуществлено главное условие ДЗ. Знал, что нужен будет break или continue. Знал, что нужна конструкция if. Подозревал, что понадобится вложенный цикл. Но всё-равно не смог:( Но был близок.
@user-ej5or6sj5t
@user-ej5or6sj5t 2 жыл бұрын
Тоже думал, что потребуется, например, continue, но после не придумал, как его применить. Решил использовать вложенные циклы while (проверял условие положения двух переменных - i и j) и if (сверял два элемента массива) - а всё это было вложено в цикл for. До этого, конечно, хорошо занимался на информатике в школе, но весьма сильно подзабыл материал, и язык в школе был совсем другой.
@alchevskiy
@alchevskiy Жыл бұрын
Я сделал без if без break или continue. Чисто одними массивами, правда использовал их 4 штуки. Так что можно по разному решить
@w0njet
@w0njet 9 ай бұрын
Я сделал без break, continue
@user-cb8ws8qx4f
@user-cb8ws8qx4f 6 ай бұрын
​@@alchevskiyтоже думаю про массивы, но подозреваю что можно сделать это проще без сильной "загрузки кода"
@vitusink6445
@vitusink6445 5 жыл бұрын
"Возможно сложно для восприятия" :))) Это охрененный скачек сложности в сравнении с прошлыми уроками... И без разрисовки алгоритма на бумаге такое поднять не реально...
@valerabruy6397
@valerabruy6397 5 жыл бұрын
Нечего не разрисовывал и написал. Код правда полное говно, но зато написал сам. Вот так получилось: #include #include #include // содержит time() using namespace std; int main() { setlocale(LC_ALL, "rus"); srand(time(NULL)); const int SIZE = 19; //объявляем константу int Arr[SIZE]{}; //объявляем массив с количеством элементов SIZE int a = 0, b = 0, rand_number = 0; for (int f = 0; f < SIZE; f++) { a = 0; for (; a == 0;) { rand_number = rand() % 20; for (int i = 0; i < SIZE; i++) { if (Arr[i] == rand_number) { break; } else if (Arr[i] != rand_number && i == SIZE - 1) { Arr[f] = rand_number; a = 1; break; } else if (Arr[i] != rand_number) { continue; } } if (a == 1) { continue; } } } for (int f = 0; f < SIZE; f++) { cout
@arteria-circumflexa6527
@arteria-circumflexa6527 5 жыл бұрын
Это вполне нормально. Просто нужно сесть и напрячь мозги разок. Думаешь = развиваешься. Это не столь сложно, как кажется. На таком этапе и отсеиваются те, кому лень.
@vitusink6445
@vitusink6445 5 жыл бұрын
@@arteria-circumflexa6527 Отсеиванием ленивых вообще можно обозвать любую дичь :)
@Xlolka-bj4xz
@Xlolka-bj4xz 3 ай бұрын
@@valerabruy6397 бля ахуенный код по нём немного может лучше начну читать коды
@floype7441
@floype7441 5 жыл бұрын
Скажу честно, это первое действительно сложное дз для меня, я его делал по видео, но все равно часть кода не понимал, пока не пересмотрел раз 5 и сам писал код раз 6,чтобы понимать каждую строчку в коде, спасибо за уроки, сейчас понимаю, что это легко)
@user-ph9ck1ch2s
@user-ph9ck1ch2s 7 ай бұрын
5 часов упорного мозгового штурма были не зря. Без откладки я бы никогда в жизни не справился, ведь это действительно самая полезная вещь для программистов. За весь предоставленный контент и домашку я искренне благодарю
@semi_di
@semi_di Жыл бұрын
Задание, которое заставляет переосмыслить мои поверхностные знания о массивах и итерации.
@HmaPaYT
@HmaPaYT 7 жыл бұрын
Самый тяжёлый урок из всех предыдущих для меня. Пол часа не мог понять как это работает.
@eldorado7566
@eldorado7566 6 жыл бұрын
кто то полчаса не мог понять , а кто то полтора((
@zumaxrussia
@zumaxrussia 6 жыл бұрын
я сам так и не решил.
@KreesKiss
@KreesKiss 6 жыл бұрын
*facepalm
@kadyshev2759
@kadyshev2759 5 жыл бұрын
Я так и не понял.
@vitusink6445
@vitusink6445 5 жыл бұрын
Я понял, как что и чего включает, но одновременно осознаю что такую конструкцию я бы не придумал. По крайней мере с той наренированность в логике алгоритмов что есть сейчас.
@user-cb8ws8qx4f
@user-cb8ws8qx4f 5 ай бұрын
В голове это сложно представить... Но по частям касался капельку и представлял как примерно должно работать, но не увидел банальных вещей... Я разачарон в себе что не смог решить данную задачу.. Разобрал код очень досконально и понял как это работает... Не собираюсь опускать руки! Практика, практика и ещё раз Практика! Надо улучшать логистику и познания и только тогда можно чего-то достичь! Классный курс! Спасибо. Надеюсь смогу это же написать на 120 уроке..
@Yar1s.
@Yar1s. 2 ай бұрын
ку, как успехи?
@user-vq7sm9no5f
@user-vq7sm9no5f 6 жыл бұрын
*Блин, оказывается всё проще, чем ожидалось. Видели бы вы что я там намудрил*
@MRWOLFHACK
@MRWOLFHACK 5 жыл бұрын
А не сохранился ли у вас код от этого задания я осваю c++ и мне интересно как это задание делали другие "програмисты"
@MRWOLFHACK
@MRWOLFHACK 5 жыл бұрын
@Даниил Хмелевский Окей ВК есть
@MRWOLFHACK
@MRWOLFHACK 5 жыл бұрын
Ты кто
@leshiyni
@leshiyni 4 жыл бұрын
@@MRWOLFHACK Вот как я реализовал: for (int i = 0; i < SIZE; i++) { arr[i] = rand() % 20; for (int j = 0; j < i; j++) { if (arr[i] == arr[j]) { arr[i] = rand() % 20; j = -1; } } cout
@user-sg2fx5zq9r
@user-sg2fx5zq9r 4 жыл бұрын
@@leshiyni Точно так же думал и сделал, мороки вообще нету. Надо ток додуматься про откат второго цикла при совпадении)
@MrBlackKinght
@MrBlackKinght 6 жыл бұрын
Его уроки очень понятливые, да и объяснения великолепные. Не зря 0 дизлайков под каждым видео.
@manefik
@manefik Ай бұрын
Потратил больше 6-ти часов на выполнение этого задания. Долго не получалось, но в итоге смог сделать. Правда, с использованием Goto, что не очень, конечно. Код так себе, но работает. Главное, что получилось, и я сделал это сам, своими силами, не подсматривая. Хочу сказать спасибо Вам за ваши уроки и отладчику, без которого я бы не смог анализировать свои ошибки.
@CNC-ENGINEER
@CNC-ENGINEER 5 жыл бұрын
Первое ДЗ, которое так и не удалось реализовать своими силами. В принципе в голове решение крутиться, а вот в код перевести не получается.
@yourai3339
@yourai3339 3 жыл бұрын
@@johauk7038 ты серьёзно? ты вообще хоть смотришь уроки или так сразу делаешь?
@albertabdykadyrov8343
@albertabdykadyrov8343 3 жыл бұрын
@@yourai3339 Слишком грубо, у меня тоже не получалось нечего на первом языке но на втором это кажется проще простого.
@axisorr
@axisorr 6 ай бұрын
@@yourai3339 Действительно , тут большинство решило эту задачу тыкая пальцем в небо , ибо для решения этой задачи информации из предыдущих уроков недостаточно.
@Uliana165
@Uliana165 2 жыл бұрын
раз 10 пересмотрела видео, еще столько же наверное написала этот код самостоятельно, сама искала ошибки, теперь наконец понимаю как это работает
@pispis3617
@pispis3617 7 жыл бұрын
Капец, я даун! Минут 5-10 не мог понять очевидное, а когда понял, то аж мурашки по коже пошли. Это круто и интересно. Спасибо за ваш труд)
@tolikbegyn9999
@tolikbegyn9999 6 жыл бұрын
Я изначально догадался, что нужно юзать вложки и if, но не додумался как нужно реализовать. Я даже goto и continue использовал.
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
Я использовал goto
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
Зачем нужен был continue?
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
Мой код: #include #include using namespace std; int main() { srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; for (int i = 0; i < SIZE; i++) { again: arr[i] = rand() % 100; for (int c = 0; c < i; c++) { if (arr[i] == arr[c]) { goto again; } } } for (int i = 0; i < SIZE; i++) { cout
@tolikbegyn9999
@tolikbegyn9999 4 жыл бұрын
@@SaffronChipMCPE это год назад было, я не помню уже)
@SaffronChipMCPE
@SaffronChipMCPE 4 жыл бұрын
@@tolikbegyn9999 как успехи?
@isyldur2449
@isyldur2449 6 жыл бұрын
В общем минут 10, нехило подгоревшая пятая точка и получилось сделать, правда не так как у вас. Но вроде работает, проверил на работоспособность уменьшив разброс с 20 до 10, в итоге получил числа до 10 без повторений. Вот решение #include "stdafx.h" #include #include using namespace std; void main() { srand(time(NULL)); int arr[10]; arr[0] = rand() % 10; //cout
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
В этом видео показана ещё одна интересная фишка для работы с отладчиком.
@Torpedo-ZIL
@Torpedo-ZIL 6 жыл бұрын
Чё за видео? Кинь сюда, Учитель!
@Torpedo-ZIL
@Torpedo-ZIL 6 жыл бұрын
Всё понял, про то, что можно в отладчике другие цифры вбивать. Хороша фишка. Только у меня не работает так отладчик. Снимите видео, как его правильно настроить.
@tricking16
@tricking16 6 жыл бұрын
а у тебя какого года VS?
@faustomendez6567
@faustomendez6567 6 жыл бұрын
17
@user-jk3eo4gg7v
@user-jk3eo4gg7v 4 жыл бұрын
Самолайк залог успеха.
@lexlutor1367
@lexlutor1367 4 жыл бұрын
Переписал раз 10 код программы, осталось до конца разобраться как именно работает тут булевая переменная. Решил, буду отрабатывать каждое ДЗ пока не смогу самостоятельно никуда не подсматривая написать эту программу и досконально объяснить каждую строчку кода!
@user-ko3qu9mf3u
@user-ko3qu9mf3u 4 жыл бұрын
Добрый день, спасибо за уроки. В сочетании с книгой Лафоре полученые знания настолько дополняют друг друга, что с заданиями проблем не возникает.
@viktorperov3104
@viktorperov3104 3 жыл бұрын
пиар
@TheNiagarka
@TheNiagarka 2 жыл бұрын
@@viktorperov3104 какой пиар? чел, это очень популярная книга. я сама по ней учусь.
@ECHO-bw4ce
@ECHO-bw4ce Жыл бұрын
Полтора часа думал как это сделать, но увидел начало этого ролика смог сам дописать код. Спасибо за уроки.
@varan7099
@varan7099 8 ай бұрын
Задача действительно была сложной, заняла 2 дня, в сумме часов 6, однако была выполнена полностью и самостоятельно, вот таких задач хочется видеть больше
@ustavshayabulochka
@ustavshayabulochka 4 жыл бұрын
Спасибо большое за ваши уроки, в особенности это видео мне очень пригодилось, так как в процессе изучения С++ с этой темой в массивах были проблемы. Премного вам благодарна😌🤗 С каждым видео понимаю больше и узнаю что-то новое и полезное!
@likercol806
@likercol806 Жыл бұрын
2 года назад уже выполнял это задание сейчас снова занялся программированием и дошёл до этого задания, думал несколько часов, слооооожно. Решил только после просмотра видео
@user-vw8uh7vh9v
@user-vw8uh7vh9v 4 жыл бұрын
Спасибо за урок с откладкой программы. Ошибки видно сразу при выполнение. Очень помогает
@MrWappirat
@MrWappirat Жыл бұрын
Вот что значит оптимизировать алгоритм. А я нафигачил так что сначала все записывается в память, а потом проверяется, и если есть совпадения, то генерится и записывается заново во все ячейки))) Но вывел себе в консоль подсказку какое число и в каких ячейках совпало))) Будем думать. Все что до этого смотрел запихал, и do while, и for, и goto))
@nikitapechalev6339
@nikitapechalev6339 2 жыл бұрын
Ещё раз здравствуйте, я понял, как здесь всё работает. Спасибо за понятные уроки. Побольше бы таких учителей.
@EvelinGame
@EvelinGame 4 ай бұрын
А я вообще пошла не тем путем. Я сразу заполнила массив рандомными числами, а потом пыталась их сравнивать между собой и заменять результаты. Может идея и имела место быть, но реализация подкачала и я сдалась ((( Стыдно прям. Но были уже у меня такие задачи, которые я не могла решить. Итогом многодневных мозговых штурмов становилось частичное выгорание: возникала мысль, что я слишком тупая для программирования вообще и какой смысл дальше учиться, если уже на начальном этапе я не могу решить задачу. Как-то так. Искреннее спасибо комментаторам: во-первых, понимаю, что не я одна не решила, во-вторых, спасибо за комментарии относительно того, что через пару десятков уроков данная задача покажется легкой и понятно. Отдельно спасибо автору видео. Оно до сих пор актуально, востребовано) привет из 2024 )))
@seeyou7400
@seeyou7400 3 жыл бұрын
Йепать, бро. Да это прям для шевеления извилинами превосходно подходит! И для итерации головной боли от урока к уроку 😀😀😀
@MrBreOr
@MrBreOr 3 жыл бұрын
Может это кому-то покажется проще. Спасибо за уроки! int main() { setlocale(LC_ALL, "Rus"); srand(time(NULL)); const short SIZE = 10; short a[SIZE]; for (short i = 0; i < SIZE; i++) { a[i] = rand() % 20; for (short t = 0; t < i; t++) { if (a[i] == a[t]) { i--; break; } } } for (short i = 0; i < SIZE; i++) { cout
@ivanberezhanskyi
@ivanberezhanskyi 2 жыл бұрын
Лол. У меня почти такой же как и у тебя) Только я воспользовался гоуту const int size = 10; int array[size]; for (int i = 0; i < size; i++) { array[i] = rand() % 20; loop: for (int j = 0; j < i; j++) { if (array[j] == array[i]){ array[i] = rand() % 20; goto loop; } } } for (int i = 0; i < 10; i++) { cout
@user-hb5vb2vo2d
@user-hb5vb2vo2d 2 жыл бұрын
Привет, можешь кратко объяснить почему i - - ?
@MrBreOr
@MrBreOr 2 жыл бұрын
@@user-hb5vb2vo2d второй цикл, в котором i--, предназначен для проверки на существование точно такого же числа. Если такое число уже имеется, то необходимо запустить конкретно для этой переменной цикл ещё раз, т.к. при завершении первого цикла i увеличится на единицу, его(i) необходимо заранее уменьшить.
@gdkor
@gdkor 2 жыл бұрын
@@ivanberezhanskyi жиза
@gdkor
@gdkor 2 жыл бұрын
@@ivanberezhanskyi как успехи? уже прошел курс?
@ThePunkRom
@ThePunkRom 4 жыл бұрын
Ееееее, когда делал ДЗ, я написал более оптимальное решение!!! Не кардинально, но, как мне кажется, лучше! Для нуба - это круто!!! for (int i = 0; i < LENGTH; i++) { mass[i] = rand() % 20; for (int j = 0; j < i; j++) { if (mass[i] == mass[j]) { mass[i] = rand() % 20; j = -1; } } }
@user-yn7gi6os8d
@user-yn7gi6os8d 3 жыл бұрын
Действительно, вполне логично. Спасибо за подсказку!
@user-db9xw3ht7w
@user-db9xw3ht7w 3 жыл бұрын
Первая из домашек, что не додумался, с начала курса(( Радует, что не один я... Может еще есть шанс?))
@RomanZverev-yc5qc
@RomanZverev-yc5qc 3 жыл бұрын
Как прогресс?)Сам сижу на этой задаче несколько дней(
@adilmuratow8552
@adilmuratow8552 Ай бұрын
Переписывал код 5 раз, но это это того стоило, правда, у меня вышло все иначе но код рабочий, создал другой массив в котором содержались числа от 1 до 20 и был цикл который при создании нового элемента заменял идентичное число 20 (имхо так как это число не могло сгенерироваться) и все заработала
@rojok2077
@rojok2077 4 жыл бұрын
Я тоже долго не мог понять как реализовать. Во время еды меня осенило и я побежал записывать пока не забыл)
@Shiefavv
@Shiefavv 3 жыл бұрын
Главное правило. Не пить слабые алкогольные напитки во время и перед учебой. Так и ничего и не понял. На следующий день - всё понятно, разобрался. Сергей, спасибо за разбор домашнего задания, оно оказалось сложным, но после ваших объяснений и самостоятельной работы с отладчиком все стало понятно.
@gfhitdxaahn
@gfhitdxaahn Жыл бұрын
Иногда без 100 грамм не разобраться
@2912kar
@2912kar 2 жыл бұрын
А я, вот специально не смотрел видео с решением ДЗ и потратил на него два дня, 8(( "Хотелось самому решить задачку" да и как-то ускользнула у меня фраза, что нужно сделать рандомный счетчик на 20. Я все пробовал сделать с 10-ю и вот что у меня вышло. srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; int Value_in_Array_Index; int Rand_Value =0; //для увеличения диапазона Рандомных чисел if (Rand_Value < 0) //Проверка на отрицательное значение { Rand_Value = -Rand_Value; } for (int i = 0; i < SIZE; i++) { Value_in_Array_Index = rand() % (Rand_Value+SIZE); //если рандомно генерируемый диапазон чисел меньше индексов массива, цикл будет бесконечный. int j = 0; for (; j < SIZE; j++) { if (Value_in_Array_Index == arr[j]) //Выход из цикла если рандомное число равно значению под индексе в массиве. { break; } } if (Value_in_Array_Index == arr[j]) //Если число и значению в индексе равны делаем декремент. { i--; } if (Value_in_Array_Index != arr[j]) //Если число и значению в индексе не равны, добавляем значение в массив по индексу i и выводим его в консоль. { arr[i] = Value_in_Array_Index; cout
@RedstoneAndCB
@RedstoneAndCB 2 жыл бұрын
Какой-то длинный код. Я используя предыдущие уроки написал так: For (int i = 0; i < size; i++) { arr[i] = rand()%20; For (int j = 0; j < i; j++) { If (arr[i] == arr[j]) { i--; Continue; } } } Работает, как надо, меньше переменных, короче код
@zenit-e
@zenit-e 5 ай бұрын
Я тоже такой код написал: massiv[0] = rand() % 20; for (int i = 1; i < SIZE; i++) { massiv[i] = rand() % 20; for (int j = 0; j < i; j++) { if (massiv[i] == massiv[j]) { i--; } } } for (int i = 0; i < SIZE; i++) { cout
@zenit-e
@zenit-e 5 ай бұрын
а вот если после i-- gjcnfdbnm j=i, то проверятся будет до первого совпадения и код короче.
@stensej6841
@stensej6841 4 жыл бұрын
У меня все почилось кроме одинаковвых чисел , только с ними не разобрался . Примерная реализация была но решил не ломать голову а посмотреть . СПАСИБО СЕРГЕЙ!
@anrideburje7127
@anrideburje7127 3 жыл бұрын
А я создал массив и каждое число проверял, и если были повторы, менял на случайное и снова проверял и менял, так поэлементно. Всё получилось. Здесь как раз мы сначала число генерируем, а потом проверяем на совпадение со всеми элементами массива и отбраковываем, либо присваиваем его следующему элементу. Всё элементарно, оказывается. Изящно, я бы сказал.
@user-jw3xg1xi7h
@user-jw3xg1xi7h 6 жыл бұрын
Не получилось к сожалению сделать. Понял что цикл нужен и if проверка, но не допёр делать булевую переменную))) попробую второе задание
@avamnepohui7260
@avamnepohui7260 6 жыл бұрын
То же самое, не додумался сделать через bool, пытался написать собственный велосипед, в итоге не получалось либо нормально выйти из цикла, не сломав ничего, либо код ломался полностью.
@gamerov3180
@gamerov3180 5 жыл бұрын
А я без bool справился 😋
@vitusink6445
@vitusink6445 5 жыл бұрын
Не обязательно делать булевую, это понты. Можно и интовую с присваиваеванием ей значений 0 или 1. А потом проверкой значений и на основании проверки дальнейшими действиями. Но для понтов есть буль :)
@philomelnightingale6263
@philomelnightingale6263 4 жыл бұрын
@@vitusink6445 а можно вообще без дополнительной переменной: и без булевой, и без интовой.
@salidzhanmikhmanov2053
@salidzhanmikhmanov2053 4 жыл бұрын
@@philomelnightingale6263 И как?
@user-gd6bz6om3i
@user-gd6bz6om3i 6 жыл бұрын
Видно, не один я не смог решить это задание. Оно сложное для меня
@user-ty8rf9jt1c
@user-ty8rf9jt1c 3 жыл бұрын
Я тоже не смог, но как сказал мой одногруппник: "все с опытом придет. главное не бросать это дело". =)
@user-gd6bz6om3i
@user-gd6bz6om3i 3 жыл бұрын
@@user-ty8rf9jt1c Одногруппник прав. Спустя 2 года изучения плюсов в универе меня пригласили на собес в компанию
@user-ty8rf9jt1c
@user-ty8rf9jt1c 3 жыл бұрын
@@user-gd6bz6om3i круто. Спс вам за мотивацию.)
@inmortal5416
@inmortal5416 3 жыл бұрын
@@user-gd6bz6om3i и как там?)
@user-qs2yl9kj2i
@user-qs2yl9kj2i 3 жыл бұрын
@@user-gd6bz6om3i вау, это очень мотивирует, потому что когда что-то не получается то начинаешь думать что ты очень тупой для программирования или просто что это не твоё, но ваш комментарий теперь будет для меня пинком
@AI_Niko
@AI_Niko Жыл бұрын
С моей любимой меткой: ( Просто перезаполняем элемент массива, если есть совпадение.) for (int i = 0; i < lenght; i++) { label1: arr[i] = rand() % 20; for (int j = 0; j < i; j++) { if (arr[j] == arr[i]) { goto label1; } } } С декрементом i вместо метки тоже вариант.
@mikael8741
@mikael8741 Жыл бұрын
Я так же сделал, отвечаю😂
@user4872cpp
@user4872cpp Жыл бұрын
лайк от любителей опасной метки.
@Sibir-bv2hp
@Sibir-bv2hp 5 жыл бұрын
Большое Вам спасибо, за понятное, приятное изложение С++
@frazismert3071
@frazismert3071 Жыл бұрын
Помню сидел над этим) ну, это кажется легким спустя время
@Dana-kp8dn
@Dana-kp8dn 4 жыл бұрын
Блиннн.Смотрела твои уроки про массивы и ты там сказал если не знаете как заполнять рандомными числами ,то смотрите предыдущий урок.Так я пришла сюда.Затем ты здесь сказал смотреть предыдущий урок если не знаете что это такое😮Я пошла смотреть твой предыдущий урок
@s1lvera
@s1lvera 2 жыл бұрын
Я долго с этим кудахтался, пока с for не перешел на while. Совсем по своему получилось, зато работает
@s1lvera
@s1lvera 2 жыл бұрын
Получилось в итоге вот: int main() { int err=1, num, size=10, x=20, i=0; int cell[size]; srand(time(0)); for (int i; i
@mrskorpion1655
@mrskorpion1655 3 ай бұрын
Я почти сам сделал это задание, но не догадался с булевым значением , что так оказывается можно проверять. У меня была более сложная проверка он проверял весь массив и смотрел есть ли то рандомное чилсо в массиве
@fantasy1970
@fantasy1970 Жыл бұрын
Задачка легкая, но это не помешало ей убедить меня взять листок и нарисовать схему. Я ещё не смотрел это видео, потому-что гордость велила разобраться самому. Теперь когда я из (как такое простое задание может занимать столько времени и сил) перешёл в (Сам все сделал по красоте) мое ЧСВ выросло до уровня джуна. Короч я написал код который перед тем как заполнять массив рандом чисел кидает их в временную переменную которая в свою очередь циклом проходит по каждому сектору массива. Для этого в начальном состоянии массива сделал так чтоб неинициализированные переменные были нулями. Int mass[ten] = {}; а после сверять временную переменную с каждым нулем и в итоге цикл будет заполнять 0 числами и с каждым новым числом проходить проверку на повторение.
@sansierror972
@sansierror972 2 жыл бұрын
Скажу как есть. Я не смогу сам это сделать. Теперь можно поливать меня помоями
@Torpedo-ZIL
@Torpedo-ZIL 6 жыл бұрын
Всем привет! Я ещё самый новичок. Внимательно смотрел уроки автора. Спасибо, тебе большое, дорогой Учитель! Но выполнить задание не смог. 2 дня думал, как же сделать. Уже сократил массив до 3-х чисел и сократил диапазон чисел до 5-ти. И никак с for не получалось у меня ничего сделать даже на этих числах. В итоге вот, что получилось (хотя что там получилось ахаха лол я не умею с циклом for работать): #include //библиотека отвечает за ввод и вывод информации #include//библиотека для подключения функции генератора случайных чисел using namespace std; void main() { setlocale(LC_ALL, "ru"); srand(time(NULL)); int const SIZE = 3; int arr[SIZE]; for (int i = 0; i
@Nyamchik-0_0
@Nyamchik-0_0 4 жыл бұрын
Хоть и не актуально уже но может другие сделают выводы, ты был близко если совсем примитивно реализовать то можно было и так сделать. int main() { setlocale(LC_ALL, ""); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; for (int i = 0; i < SIZE; i++) //Общий цикл { int a = rand() % 20 + 1 if (a != arr[0] && a != arr[1] && a != arr[2] && a != arr[3] && a != arr[4] && a != arr[5] && a != arr[6] && a != arr[7] && a != arr[8] && a != arr[9]) {arr[i] = a;}else{i--; } for (int i = 0; i < SIZE; i++) { cout
@cnhfgjy
@cnhfgjy 2 жыл бұрын
Очень интересная задача, надо обязательно поэкспериментировать с вариантами исполнения.
@easyxdd5507
@easyxdd5507 3 жыл бұрын
Я думал, что немного подсмотрел решение, а оказывается почти один в один содрал) Но все равно рад, что понял как работает. Для тех, кто пытается решить: Напишу, вдруг кому-то поможет). У меня в начале возникли сложности из-за того, что пытался сначала подставить число в массив, а уже потом сравнивать его с другими, в голове получалась каша и непонимание, что делать дальше. Когда подсмотрел, что сначала надо сгенерировать, потом проверить на совпадения, и уже только потом подставлять в ячейку массива, стало гораздо проще. решил вот так (собственно только ИФы немного иначе получились, а так все как на видосе): void main() { setlocale(LC_ALL, "ru"); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; for (int i = 0; i < SIZE; ) { int newRandom = rand() % 20; bool alreadyThere = false; for (int j = 0; j < i; j++) { if (arr[j] == newRandom) { alreadyThere = true; break; } else { alreadyThere = false; } } if (alreadyThere == false) { arr[i] = newRandom; i++; } }
@sh1nra798
@sh1nra798 Жыл бұрын
как успехи в программировнии?
@George-hu3im
@George-hu3im 2 жыл бұрын
Полдня прошло пока дошло, еле нашел свою ошибку. Спасибо Сергей!
@eixi16
@eixi16 4 жыл бұрын
Ну, можно сказать... ходил я рядом. Вот одна из моих попыток. Я и костыли пробовал делать, с помощью 9 ветвлений if(). Если повезло, то массив заполнился полностью, естественно уникальными числами. Если не повезло, то массив заполнялся не полностью, т.к повторяющиеся цифры отбрасывались, а нормальное условие для новой генерации нового числа на незаполненную ячейку я не смог сделать. Ну, я догадывался, что по-любому нужен вложенный цикл, и оператор ветвления. Эх, печально. Но, это не повод бросать изучение языка программирования, опыт все таки имеет свойство накапливаться, да и мышление может меняться, как ты пишешь код. Я лет 5-6 назад тоже начинал заниматься программированием, в школе еще, тогда поленился подумать и бросил изучение, думал не мое. Но недавно вернуться решил в программирование, т.к все таки хочется. есть свои причины и желания. Конечно пожалел, что тогда отступил, все таки сколько времени упустил, за это время даже если бы шел маленькими шажками, то вероятно даже и программистом мог бы уже работать. Еще слово про опыт. Как раз таки причиной ухода, была школьная олимпиада по ЯП. Там была задачка на палиндром, которую я не смог решить. Когда вернулся в изучение ЯП, попалась задачка на палиндром, которую я решил, немного подумав над ней.
@zhumabeksmagulov1508
@zhumabeksmagulov1508 Жыл бұрын
Отличное задание. Я его так решил 😉 int const SIZE = 20; int const DIP = 20; int arr[SIZE]; for (int i = 0; i < SIZE; i++) { arr[i] = rand() % DIP; int j = 0; do { if (arr[i] == arr[j]) { arr[i] = rand() % DIP; j = -1; } j++; } while (j < i); }
@sh1nra798
@sh1nra798 Жыл бұрын
как успехи?
@Xack3r
@Xack3r 7 ай бұрын
Оххх капец я на этом задание просидел дня 3-4 думал все и не как не мог придумать решения пока не посмотрел метод сортировки и после него еще час сидел и думал, и все придумал спустя время все тщательно проверяя в отладке, я его выполнил с использованием goto!!!
@antandgen
@antandgen 6 жыл бұрын
М-да полное разочарование в себе.Забыл вывести в консоль данные (cout) и жду чего-то от программы.
@eazy8537
@eazy8537 7 ай бұрын
сделал это задание логически подумав, как это должно работать, и это не работало, хотя не понимал почему не работает, т.к. по логике все правильно, потратил кучу времени чтобы понять что не так, пока не решил запустить через дебагер и тогда я понял, что не задал значение переменным в цикле, а просто объявил их, так что если что-то не получается не забывайте про дебагер, полезная штука, можно себе кучу времени сэкономить
@jija5121
@jija5121 10 ай бұрын
жесть,я ишел в правильном направлении но до конца никак не додумал как сделать,спасибо за обьяснения
@user-ze5hi5cx1i
@user-ze5hi5cx1i 4 жыл бұрын
Реализовал иначе. Если найдено совпадение, применял i-- чтобы вернуться на элемент и перезаписать в него случайное число
@Colorblind77
@Colorblind77 2 жыл бұрын
оп, я также сделал
@giorgikiladze3230
@giorgikiladze3230 5 жыл бұрын
vi genialno obyasnaete Sergei ogromnoye spasibo
@ilyagr9771
@ilyagr9771 4 жыл бұрын
Еле сделал, знал, что тут многие могут сдаться) , получилось вот так вот, это число цикл проверки. Ещё в конце сделал сумму чисел массива, и она всегда равна 190, значит всё правильно, хотя в начале сделал через goto xD(возвращал код до начала всего цикла), а потом понял, что нужно просто поставить m=0,j=0. for (int j = 0; j < SIZE; j++) { for (int m = 0; m < SIZE; m++) { if (m == j) { continue; } if (arr[m] == arr[j]) { arr[j] = rand() % 20; m = 0; j = 0; } } }
@sergeykiriuchuk7867
@sergeykiriuchuk7867 10 ай бұрын
srand(time(NULL)); я вообще пошёл через второй массив, в который записал значения, которые могут попасться по условию задачи, потом я начал сравнивать полученное число со вторым массивом и записывать в тот индекс о, а в случае когда мы попали в тот же индекс массива то начинаем перебирать второй с 0 до 20 и первое свободное значение мы записываем в массив который выводим на экран... Вообщем, очень круто! спасибо int const SIZE = 10; int array[SIZE]; int between; int arrayTwo[20]; //second array with space equal amount of your available random numbers bool help; for (int i = 0; i
@pluginiforcsgo94
@pluginiforcsgo94 6 жыл бұрын
Мой вариант решения очень простой, в первом цикле задаются рандомные значения, во втором цикле берется значение arr[i] и сравнивается с остальными значениями в третьем цикле, если значение arr[i] совпадает с arr[j](другим элементом массива), то она дает новое рандомное число этой переменной и используется оператор goto go который заставляет программу опять перепроверить это же число еще раз, если все ок, то берется следующее #include #include using namespace std; int main() { setlocale(LC_ALL, "Russian"); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; for (int i = 0; i < SIZE; i++) { arr[i] = rand() % 10; } for (int i = 0; i < SIZE; i++) { go:for (int j = 0; j < SIZE; j++) { if (arr[i] == arr[j] && i != j) { arr[i] = rand() % 10; goto go; } else { } } cout
@Andrey-oz6qn
@Andrey-oz6qn 6 жыл бұрын
О, боже! goto? За что?!! На держи, я исправил) #include #include using namespace std; int main() { setlocale(LC_ALL, "Russian"); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; for (int i = 0; i < SIZE; i++) { arr[i] = rand() % 10; } for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { if (arr[i] == arr[j] && i != j) { arr[i] = rand() % 10; j = 0; } else { } } cout
@pavlopikul
@pavlopikul 6 жыл бұрын
Андрей Окси зачем else пустой писать?
@vladilion90
@vladilion90 5 ай бұрын
Можно ещё сделать чтобы потом все эти цифры выводились в строку по возрастанию или убыванию) во тема для ДЗ)
@vladilion90
@vladilion90 5 ай бұрын
Почти угадал с следующим ДЗ)
@user-ko3qu9mf3u
@user-ko3qu9mf3u 4 жыл бұрын
Выполняя это задание не просто создавал константный массив для заполнения его случайными числами. А написал программу с возможностью выбора количества генерируемых случайных чисел. И с возможностью задать границ, в диапазоне между которыми должны быть значения сгенерированых чисел. В процессе поиска "границ возможного" и ошибок обнаружил, что используемая библиотечная функция генерирует числа только в пределах "половины типа short" - от нуля и до 32 767. Думаю, это стоит отметить в задании ))
@cynabr
@cynabr Жыл бұрын
Я конечно придумал как это сделать, но совершенно по другому (зато сам). Однако без goto не обошлось, а больше я как ни думал не смог ничего придумать. Так и пришлось смотреть и просвещаться. (стараюсь домашку сам делать, а уж потом смотреть).
@karenjantv2302
@karenjantv2302 3 жыл бұрын
Вау, сам не догадался, но после работы с отладчиком разобрался, спасибо!
@facemanfacemachine1800
@facemanfacemachine1800 2 жыл бұрын
int arr7[SIZEARRAY]; for (int i = 0; i < SIZEARRAY; i++) { arr7[i] = rand() % 20; for (int j = i-1; j >= 0; j--) { if (arr7[i]==arr7[j]) { arr7[i] = rand() % 20; j+i; } } cout
@dmitriystepanenko3676
@dmitriystepanenko3676 5 жыл бұрын
Здравствуйте! Я являюсь новичком в программировании на С++. Но считаю, что код написанный мной (приведенный далее) более эффективен, чем тот который изложен автором на видео. Так как в моём коде используется одно условие IF вместо двух, и не происходит прыжков из вложенного цикла в первый цикл, а потом обратно во вложенный для проведения повторной операции для одного и того же элемента массива. При малом количестве элементов массива конечно это не будет заметно, но например если задать размер массива более 30000, то думаю будет заметна разница (хотя у меня дальше 32768 элемента почему то не идет, почему не разбирался). А вообще спасибо автору за отличные уроки!!! :) ----------------------------------------------------------------------- int i, n, rnd; //Объявление переменных const int SIZE = 200; //Размер массива srand(time(NULL)) //ГЕНЕРАЦИЯ МАССИВА С ПРОВЕРКОЙ НА СОВПАДЕНИЯ for (i = 0; i < SIZE; i++) { cout
@DenikFeed
@DenikFeed 4 жыл бұрын
Диапазон типа int начинается с -32768 до 32768, такое свойство интересное, поэтому и 32768 это последнее число.
@user-qp5rx7fm3l
@user-qp5rx7fm3l 3 жыл бұрын
Сочинял этот код 2 часа, получилось почти тоже самое что и в разборе, но во вложенном цикле допустил ошибку(если это конечно ошибка) в условии выхода из цикла у меня было j < SIZE а у вас j < i. Спасибо за уроки!
@aruvim
@aruvim Жыл бұрын
Я справился с этим: for(int i=0; i
@user-ri3bo2ee3n
@user-ri3bo2ee3n 2 жыл бұрын
Посмотрел урок, понял что нужно сделать, но реализовать так и не смог. Убил где - то часа 4, перебирая код, чтобы сделать проверку на уникальность....но сдался и решил глянуть как оно должно было быть. (Я был близок):D
@polarix2398
@polarix2398 6 жыл бұрын
Сергей, огромное Вам спасибо за Ваши уроки. Задачу решил самостоятельно через do-while и вложенный в него for. Алгоритм тот же. В дополнение хочу сказать, что неплохо бы было показать защиту от несоответствия размера массива и диапазона уникальных случайных чисел. Конкретно в этом видео, если размер массива 10, а rand() % 9 (и менее) получим бесконечный цикл.
@perkarter
@perkarter 4 жыл бұрын
Размер массива пихаешь в переменную, и заменяеш переменной девятку
@vitusink6445
@vitusink6445 5 жыл бұрын
Если вывести через сиаут описание того что делается в каждом цикле и значения переменных получается такой забавный лог в консоли: Отработал первый цикл, сгенерированно число: 3 Присваиваю в ячейку массива: 0 значение: 3 Отработал первый цикл, сгенерированно число: 2 Проверяю массив: 3 Присваиваю в ячейку массива: 1 значение: 2 Отработал первый цикл, сгенерированно число: 3 Проверяю массив: 3 Нашел повторение: 3 Отработал первый цикл, сгенерированно число: 6 Проверяю массив: 3 Проверяю массив: 2 Присваиваю в ячейку массива: 2 значение: 6 Отработал первый цикл, сгенерированно число: 1 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Присваиваю в ячейку массива: 3 значение: 1 Отработал первый цикл, сгенерированно число: 8 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Присваиваю в ячейку массива: 4 значение: 8 Отработал первый цикл, сгенерированно число: 4 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Присваиваю в ячейку массива: 5 значение: 4 Отработал первый цикл, сгенерированно число: 5 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Присваиваю в ячейку массива: 6 значение: 5 Отработал первый цикл, сгенерированно число: 9 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Присваиваю в ячейку массива: 7 значение: 9 Отработал первый цикл, сгенерированно число: 9 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Нашел повторение: 9 Отработал первый цикл, сгенерированно число: 9 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Нашел повторение: 9 Отработал первый цикл, сгенерированно число: 7 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Присваиваю в ячейку массива: 8 значение: 7 Отработал первый цикл, сгенерированно число: 3 Проверяю массив: 3 Нашел повторение: 3 Отработал первый цикл, сгенерированно число: 7 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Проверяю массив: 7 Нашел повторение: 7 Отработал первый цикл, сгенерированно число: 8 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Нашел повторение: 8 Отработал первый цикл, сгенерированно число: 6 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Нашел повторение: 6 Отработал первый цикл, сгенерированно число: 7 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Проверяю массив: 7 Нашел повторение: 7 Отработал первый цикл, сгенерированно число: 2 Проверяю массив: 3 Проверяю массив: 2 Нашел повторение: 2 Отработал первый цикл, сгенерированно число: 4 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Нашел повторение: 4 Отработал первый цикл, сгенерированно число: 5 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Нашел повторение: 5 Отработал первый цикл, сгенерированно число: 5 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Нашел повторение: 5 Отработал первый цикл, сгенерированно число: 7 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Проверяю массив: 7 Нашел повторение: 7 Отработал первый цикл, сгенерированно число: 5 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Нашел повторение: 5 Отработал первый цикл, сгенерированно число: 3 Проверяю массив: 3 Нашел повторение: 3 Отработал первый цикл, сгенерированно число: 0 Проверяю массив: 3 Проверяю массив: 2 Проверяю массив: 6 Проверяю массив: 1 Проверяю массив: 8 Проверяю массив: 4 Проверяю массив: 5 Проверяю массив: 9 Проверяю массив: 7 Присваиваю в ячейку массива: 9 значение: 0 3 2 6 1 8 4 5 9 7 0 Для продолжения нажмите любую клавишу . . .
@user-ei2ze6eh8b
@user-ei2ze6eh8b 5 ай бұрын
Немного забегая вперед с минимальным значением, но все работает, и тоже код получился чуть короче: void main() { setlocale(LC_ALL, "RUS"); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; int maxrangevalue = 20; int minvalue = maxrangevalue; for (int i = 0; i < SIZE; i++) { arr[i] = rand() % maxrangevalue; for (int j = 0; j < i; j++) { if (arr[j] == arr[i]) { arr[i] = rand() % maxrangevalue; j = -1; } } if (arr[i] < minvalue) { minvalue = arr[i]; } cout
@semik8412
@semik8412 3 жыл бұрын
спс за взрыв мозга :D логически я вроде бы писал все правильно но сам не справился, просто не выводило на экран
@user-cv9tm4ry9b
@user-cv9tm4ry9b 2 жыл бұрын
все домашки до,были трудноватые но после просмотра все понимал и делал сам.Но эта задачка трудна,вазможно из-за недостатка знаний в теме функций.вернусь позже сюда и пересмотрю этот урок,в скором времени.
@Nyamchik-0_0
@Nyamchik-0_0 5 жыл бұрын
Жесть, раз пять хотел уже глянуть ответ в ютубе но потом себя останавливал и спустя 3 часа таки сделал правда не как автор но все же работает)) Код сделал так что в консоли видно что там происходит, для тех кому интересно. #include #include using namespace std; int main() { setlocale(0, ""); int const SIZE = 10; int arr[SIZE]{}; srand(time(NULL)); for (int i=0; i < SIZE; i++) { cout
@sergius647
@sergius647 5 жыл бұрын
Как ни странно, додумался до почти того же, за исключением отсутствия проверочного alreadythere, но, тем не менее работает тоже исправно, занимает меньше строк(29) и ещё добавил личной прихотью увеличение всего массива на единицу, чтобы там нуля не было и было 20))
@ancient8341
@ancient8341 3 жыл бұрын
Очень крутое задание!Я лично сначала как обычно заполнил массив,а потом занялся сортировкой ,сравнивая текущий элемент(например k) со всеми следующими после увеличивал k на единицу.Когда я доходил до максимального элемента отправлялся в обратное путешествие ,делая то же самое только в обратную сторону.Правда -это всё же неправильное решение ,ибо где-то на 10 итерации мне всё-таки попались одинаковые числа).Всё дело в том ,что когда я хожу вперёд и назад по массиву ,каждый раз числа позади текущего остаются в так называемой слепой зоне и я на них никак не влияю)Обидно,что не получилось решить ,но вся жизнь -это движение от поражения к поражению ,так что работаем дальше! ;)
@somethingsecretsteersus5115
@somethingsecretsteersus5115 3 жыл бұрын
Это неправильное решение(сам так сначала сделал) и одинаковые числа будут попадаться постоянно, если поставить диапазон rand равный кол-ву элементов массива, например. Но исправляется в одну строчку по сути: надо чтобы в ходе проверки при любом совпадении проверка сбрасывалась на самое начало и шла заново. Это костыль, но на малых числах работает хорошо.
@user-xo4hs5dm2d
@user-xo4hs5dm2d 5 жыл бұрын
Если кто не понимает, как работает проверка на уникальность и зачем декремент "i--", запустите этот код. Он выведет все этапы проверок и в конце полученный массив. int main() { setlocale(LC_ALL, "ru"); srand(time(NULL)); int const ARRAY_SIZE=10; int range=20; int flag=0; int arr_1[ARRAY_SIZE]; for (int i = 0; i < ARRAY_SIZE; ++i) { int x=rand()%range; cout
@truedeveloper7422
@truedeveloper7422 5 жыл бұрын
Слишком морочный код, рациональней сделать так: int main() { setlocale(LC_ALL, "ru"); int const size = 5; int mass[size]; int randomBox; srand(time(NULL)); for (int i = 0; i < size; i++) { randomBox = rand()% size; for (int j = 0; j
@user-pk3tq5vk9b
@user-pk3tq5vk9b 4 жыл бұрын
Ох не давала мне покоя возможность simplecode так быстро создавать массивы и циклы из шаблонов. Докопался до истины! Нажимаешь Ctrl+K+X и выпадает весь список стандартных шаблонов конструкций(они тут сниппетами называются) из которых дальше уже хоть избушку на курьих ножках лепи без лишней траты времени. Спасибо! Я в некотором смятении от того что вы не даёте эту информацию на первых уроках. Хотя как и вы наверное считаю что давать или не давать эту информацию - довольно неоднозначное решение.
@user-pk3tq5vk9b
@user-pk3tq5vk9b 4 жыл бұрын
P.S. Ваш подход, стиль решения проблем методами параметризации, дал мне повод подумать, что данные знания пришли к вам из B2B направления)
@user-jb8xk4iz2w
@user-jb8xk4iz2w 6 жыл бұрын
Максимально непросто. Пожалуй, сложнейшее задание из всех вами выданных. Но, пожалуй, справился. #include //библиотека, которую мы подключаем #include using namespace std;/*без этой штуки пришлось бы больше писать*/ /* Операторы сравнения: < - меньше > - больше = больше либо равно Операторы равенства: == - равно != - не равно Логические операторы объединения и отрицательная инверсия: && - и || - или != - не Конструкция логического выбора if: Лесенка if - else if if(утверждение или выражение) { действие 1; } Альтернатива if-else: switch (какое-то значение) { case 1: ...; break; default: ...; break; } while (утверждение) { действие для повторения; } do { } while (true); for(...;...;...) { ... } goto = бяка ошибки: 1. не компилируется; (f5 OR f10, f9 also) */ int main() { setlocale(LC_ALL, "ru"); srand(time(NULL)); int const SIZE = 20; int arr[SIZE]; for (int i = 0; i < SIZE; i++) { arr[i] = rand() % 100; for (int q = 0; q < SIZE; q++) { if ((arr[i] == arr[q]) && (i != q)) while (arr[i] == arr[q]) { arr[i] = rand() % 100; } } } for (int j = 0; j < SIZE; j++) { cout
@DwarfProwler
@DwarfProwler Ай бұрын
У меня так вышло, с использованием goto правда, но не думаю что в таком маленьком коде это будет чем-то противозаконным. srand(time(NULL)); int const SIZE = 10; int arr[SIZE]{}; for(int i = 0; i < SIZE; i ++) { b: arr[i] = rand() % 20; for (int j = 0; j < i; ) { if(arr[i] != arr[j]) { j++; } else { goto b; } } cout
@manfix2582
@manfix2582 3 жыл бұрын
Афигеть. Час думал как это работает. Ребят кто не понял обьясню кратко что эта программа действует как перепроверятель, тоесть если вы поняли то с каждым циклом i росло и каждому новому i тоесть 0,1,2,3 и т.д присваивалось новое число и j на один меньше i всегда, и тоесть тут надо понять логику что если присваивать массиву какоето число и увеличивать его постоянно то оно будет присваиваться именно увеличенному массиву а если идет ЗАЦИКЛИРОВАННАЯ проверка на равенство, то проверятся все числа известные программе, и если какоето число совпадёт или просто ни одно не подойдет то ЦИКЛ закончится
@user-sv8em3fq5y
@user-sv8em3fq5y 6 жыл бұрын
Самое интересное ДЗ. Сделал практически так же) только с небольшой вариацией: #include #include using namespace std; void main() { setlocale(LC_ALL, "ru"); // Массив на 10 элементов, числа от 0 до 20 без одинаковых значений srand(time(NULL)); const int SIZE = 10; int MyArray[SIZE]; int Var; bool IsExist; //Если забить массив 0 - то это нехорошо, т.к. противоречит условию, что ВСЕ числа должны быть рандомными //Если не забивать массив никак - там будут случайные числа, но полученные НЕ методом rand //Поэтому забьем массив числом 21; for (int i = 0; i < SIZE; i++) { MyArray[i] = 21; } for (int i = 0; i < SIZE; ) { Var = rand() % 20; IsExist = false; for (int a = 0; a < i; a++) { if (MyArray[a]==Var) { IsExist = true; break; } } if (!IsExist) { MyArray[i] = Var; i++; } } for (int i = 0; i < SIZE; i++) { cout
@zumaxrussia
@zumaxrussia 6 жыл бұрын
Не смог сделать задание. Я тупой(( Хотя бы понимаю как работает каждая строчка, но вод догадаться сам не смог.
@clashersupercelov2697
@clashersupercelov2697 3 жыл бұрын
Я тоже долго тупил, но решил сделать самостоятельно. Конечно как всегда самым хреновым способом)) вспомнил ещё про goto.
@math1560
@math1560 3 жыл бұрын
@@clashersupercelov2697 Привет. Это нормально. Главное не скорость - а понимание. Алгоритм можно писать и неделю, но главное чтобы ты его понимал (пока учишься, это самое главное, конечно же, когда все знаешь, главное эффективность алгоритма и его скорость). Про хреновый способ, если ты смог реализовать алгоритм, и он выполняет свою задачу без ошибок, это уже хорошо, и означает, что задача выполнена. Когда наберешь много знаний, можно попробовать реализовать его как то получше (например, сделать его более компактным). И да, не забросил?) Если нет, то на каком уроке уже?)
@clashersupercelov2697
@clashersupercelov2697 3 жыл бұрын
@@math1560 как тебе сказать. Я как бы и не забросил и не так далеко ушёл. Сейчас просто не до этого. Вообще у меня это конечно на будущее в перспективе. А так я на 35-м.
@math1560
@math1560 3 жыл бұрын
@@clashersupercelov2697 Понял
@user-ho7db5oz8d
@user-ho7db5oz8d 3 жыл бұрын
фух, было сложно, но спасибо большое сам бы я такое дз не быстро сделал, и еще плюсом чуть шире стал смотреть на буливую переменную и массивы и так же на if & else, огромное спасибо сложная тема но усваивается хорошо))
@user-rd1hb8uf9b
@user-rd1hb8uf9b 7 жыл бұрын
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
@user-kh1ut5ow4x
@user-kh1ut5ow4x 4 жыл бұрын
Кому нужно про инверсию - урок в плейлисте называется "Логические операции.Операторы сравнения, равенства, объединения, инверсия. Приблизительно урок 10-11.
@way3280
@way3280 4 жыл бұрын
Когда сам сделал бегал по всему массиву и ещё условие с go to делал на перепроверку, пока не будет повторов
@user-rf2eq1bs1s
@user-rf2eq1bs1s 2 жыл бұрын
Переменную alreadyThere лучше объявлять и инициализировать внутри цикла, сделал его область видимости более локальной.
@user-r5jflfskjlaJJFs
@user-r5jflfskjlaJJFs Жыл бұрын
тогда бы в последнем условии он не был бы доступен
@igorbologov8452
@igorbologov8452 3 жыл бұрын
Народ пишет сложно было) Полчаса, час. Я бы писался от счастья, если бы через неделю смог решить это сам. Решил параллельно изучать матлогику и теорию формальных языков.
@metalhead-mh1864
@metalhead-mh1864 3 жыл бұрын
Хоть кто-то меня понимает
@user-xr8ws1bc6t
@user-xr8ws1bc6t 5 жыл бұрын
Первое, что пришло в голову - это сравнивать значение данного элемента со значениями предыдущих. Собственно дел на 15 минут. #include #include using namespace std; int main() { setlocale(LC_ALL, "Rus"); srand(time(NULL)); const int SIZE = 10; int arr[SIZE]; bool changing = false; for (int i = 0; i < SIZE; i++) { for( ; ; ) { arr[i] = rand() % 20; if (i != 0) { for (int k = i - 1; k >= 0; k--) { if (arr[i] == arr[k]) { changing = true; break; } } if (changing == true) { arr[i] = rand() % 20; changing = false; } else break; } else break; } } for (int i = 0; i < SIZE; i++) { cout
@47syorha52
@47syorha52 4 жыл бұрын
Вначале я решил это домашнее задание без goto. Потом я решил его с goto. С goto проверок в коде стало гораздо меньше, а следовательно и количество строчек.
@user-im9vz7xr4w
@user-im9vz7xr4w Жыл бұрын
может такой вариант для кого-то окажется проще: int const SIZE = 10; int arr[10]; for (int n = 0; n < SIZE; n++) { arr[n] = rand() % 20; for (int i = 0; i < n; i++) { if (arr[n] == arr[i]) { n--; break; } } } for (int i = 0; i < SIZE; i++) { cout
@user-su1ks7zp9f
@user-su1ks7zp9f 4 жыл бұрын
Очень подробно рассказано!
Kurs C++ odc. 7: Pliki tekstowe. Zapis i odczyt z pliku tekstowego
25:10
Pasja informatyki
Рет қаралды 831 М.
The Joker kisses Harley Quinn underwater!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 9 МЛН
Kids' Guide to Fire Safety: Essential Lessons #shorts
00:34
Fabiosa Animated
Рет қаралды 16 МЛН
Before VS during the CONCERT 🔥 "Aliby" | Andra Gogan
00:13
Andra Gogan
Рет қаралды 10 МЛН
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 4 МЛН
Списки в C#  - List
7:43
Infinite Education
Рет қаралды 857
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
The Joker kisses Harley Quinn underwater!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 9 МЛН