# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | LOOP - Мужской / женский цикл |
3 теста |
|||
На этой видеолекции я расскажу о двух циклах в языке Java - while () и do - while(), чем они отличаются друг от друга, почему один называется мужским, а другой женским, а также об особенностях их использования. Отчёт отправил: 13417. Chip Выполнено за 38 мин. [Показать отчёт] Научился: Вывел числа от 0 до 4 и от 4 до 0 с помощью циклов while и do-while. |
|||||
2 | LOOP - Пока четыре цикла |
без видео 2 теста |
|||
На этом уроке мы познакомимся с циклом while. Напишем программу, которая выводит числа от 1 до 10. И сделаем это четырьмя разными способами. На картинке в одном из примеров есть ошибка. Найдите её! Отчёт отправил: 13417. Chip Выполнено за 51 мин. [Показать отчёт] Научился: Вывел четырьмя разными способами числа от 1 до 10. Когда вводил второй вариант мне показалось странным, что number = 0, вместо 1. Набрал программу на Си как по заданию, программа вывела список от 0 до 10. 0 лишний. Заменил на 1, сработало как надо. Вообще говоря, в Си нежелательно передавать в функции в качестве аргументов значения с side-effects (например number++ или вызов других функций), мало ли, вдруг эта функция на самом деле является макросом, жди причудливых результатов. Потом решил-таки проверить Java-вариант на предмет какой-нибудь неведомой мне магии :) Он тоже сработал как Си-вариант, выводит от 0 до 10. Вывод - ошибка в коде задания. Спокойно выдохнул, никакой магии тут нет :) Мой вариант: цикл 5 представляет собой вариацию цикла 4, отличие в том, что я сначала увеличиваю число, проверяю, а потом печатаю. |
|||||
3 | LOOP - Блок-схема цикла FOR |
2 теста |
|||
На этом уроке мы поговорим о составном цикле for. Этот цикл используют, когда заранее известно, сколько раз должен выполиться цикл. Заголовок цикла состоит из трёх частей каждая из которых отвечает за свой этап. Не размещайте в заголовке действия, которые должны быть в теле цикла. В заголовке цикла находятся только те действия, которые отвечают за организацию цикла. Отчёт отправил: 13417. Chip Выполнено за 29 мин. [Показать отчёт] Научился: Попрактиковался в цикле for. Создал цикл, который не выполнится ни разу. Организовал бесконечный цикл, пустой цикл. |
|||||
4 | LOOP - Три части Forа |
без видео 3 теста |
|||
На этом уроке мы выясним, из каких частей состоит заголовок цикла for, Каждую часть можно вынести из заголовка указанным способом. Написать все четыре функции и поочерёдно вызвать их. Отчёт отправил: 13417. Chip Выполнено за 37 мин. [Показать отчёт] Научился: Хороший урок, наглядно показывается за что отвечает каждая часть цикла for. Я немного изменил вывод циклов, чтобы числа выводились в строчку, так как в столбик получаются вытянутые скриншоты. Думаю формулистами неудобно листать вниз страничку, чтобы оценить работу или прочитать комментарии. Как обычно, добавил тест после пройдённого урока, надеюсь формулировка не запутанная :) |
|||||
5 | LOOP - Сумма и Произведение |
2 теста |
|||
Как найти сумму? Как найти произведение? В чём сходство и отличие этих алгоритмов? Отчёт отправил: 13417. Chip Выполнено за 28 мин. [Показать отчёт] Научился: Повторил как находить сумму и произведение последовательностей чисел с помощью цикла for. Добавил по третьему заданию цикл для подсчета чисел от 1 до 10 кратных 3. Все три цикла разместил в одной программе вместо трёх отдельных для экономии места на скриншотах. |
|||||
6 | LOOP - Вся коллекция циклов |
3 теста |
|||
На этом уроке мы вспомним, какие бываю циклы в языке Java. Какие из них хорошие, какие плохие, какие несуществующие. Ваше задание - вспомнить и записать любой интересный факт о циклах в программировании, не обязательно по языку Java. Отчёт отправил: 13417. Chip Выполнено за 1 час. 31 мин. [Показать отчёт] Научился: Так как прохожу уроки на языках C/C++, то напишу факт про циклы в этих языках. Условие проверки, как обычно, может быть истиной или ложью. Если условие истинно, то цикл выполняется, если ложь - нет. Но в отличие от Java, в этих языках истиной является любое выражение, которое не равно 0. Например, 123, -987, 3.14, 'a', "Hello World" - всё это является истиной, в том смысле, что оно не равно 0. 123 != 0 -987 != 0 3.14 != 0 'a' != 0, так как если на машине где запущена программа базовой кодировкой является ASCII, то 'a' == 97 ==> 97 != 0. "Hello World!" != 0, так как строка "Hello World" по сути это обычный статичный массив, который скорее всего хранится где-то в сегменте кода программы, у этого массива есть адрес, он точно не равен нулю, так как любой объект имеет адрес не равный нулю. Пусть его адрес 0xfe. Значит в этом выражении мы сравниваем некое значение 0xfe != 0, что является истиной, значит цикл выполнится :) |
|||||
7 | LOOP - Цикл for |
12 тестов |
|||
На этом уроке мы поэкспериментируем с различными вариациями обычного цикла for. Отчёт отправил: 13417. Chip Выполнено за 37 мин. [Показать отчёт] Научился: Больше всего понравился последний пример, где сначала выводятся числа от 1 до 9 включительно, а потом от 10 до 1 включительно. В C++ предпочтительнее использовать != вместо < > <= >=, в случае сравнения итераторов. Итераторы бывают разных типов, например ввода, вывода, однонаправленные, двунаправленные или произвольного доступа. Если в цикле использовать < вместо !=, то цикл можно использовать только с итераторами произвольного доступа, например обычный указатель. С другими итераторами код не скомпилируется, так как у них не определен оператор <. Код получается негибкий, необобщённый. Ещё одна причина использования != или == в том, что они якобы быстрее, особенно если сравнивать с 0, но это не точно, могу ошибаться :) В остальных случаях, конечно, использовать < вместо != безопаснее, не проскочешь пороговое значение по нелепости :) |
|||||
8 | LOOP - Счастливые билеты |
без видео 3 теста |
|||
Написать программу, которая вывведет список всех 6-значных счастливых билетов и подсчитает их количество. Отчёт отправил: 13417. Chip Выполнено за 15 мин. [Показать отчёт] Научился: Написал программу подсчёта 6-значных счастливых билетов, вывел их список и количество. |
|||||
9 | LOOP - Цикл for/each |
3 теста |
|||
На этом уроке мы поработаем с новой возможностью цикла for, которую удобно использовать для перебора элементов массива. Отчёт отправил: 13417. Chip Выполнено за 34 мин. [Показать отчёт] Научился: Создал массив, список, множество. Заполнил их данными и вывел на экран с помощью нового синтаксиса цикла for. Добавил вывод аргументов командной строки. |
|||||
10 | LOOP - Развёртка цикла |
3 теста |
|||
На этом уроке мы поэкспериментируем с оптимизацией развёртки цикла. Вычислим, сколько времени выполняется схожий код с циклом и без него. Отчёт отправил: 13417. Chip Выполнено за 45 мин. [Показать отчёт] Научился: Написал код по уроку, в первом случае ведётся подсчёт суммы с помощью цикла, во-втором - без него. Обернул каждый вариант в цикл из 1 000 000 000 итераций. Замерил время выполнения. В первом случае время выполнения составило 3585 мс, во-втором 1889 мс. В итоге, развёртка сократила время выполнения в два раза. |
|||||
Итого: 10 видеоуроков |
1 час. 13 мин. 36 тестов |
36 чел. | |||
Финалисты: vdimae, Jevgenij Kariagin, Алексей В., Tekashnik, Новопашин Владимир, Zulchumor Kurbonova, Vladimir Falejev, Michail Ostryj, Vladimir Fedotov, Елена, Александр Заскотченко, Максим Лапшинов, Сергей, Reinis Stacevič, Сергей Соколов, Иван Воронин, Auksė Cycarienė, Dmitrij Starikovič, Станислав, Алексей|BrisK|Кривицкий, Sergej Šugajev, Andrej Petrunev, Andrej Gladkov, Kiril Krutiajev, Povilas Abramovicius, Kapitanov Dmitrij, Павел, Andrew, Chip, Dmitry Sinitsin, Слава, крем сода, grom518, Anatoli, Yefim, Tom . |