# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 | WRITE - Комментарии |
3 теста |
|||
На этом уроке мы поговорим о комментариях на языке Java. Какие они бывают, для чего их обычно используют, и как пользоваться утилитой javadoc Примечание: Программа javadoc.exe находится там же, где и javac.exe, для её запуска может потребоваться указание полного пути, как это было в первом уроке. Отчёт отправил: 13417. Chip Выполнено за 1 час. 11 мин. [Показать отчёт] Научился: Портал videosharp поражает уже в который раз. Начал делать просто урок по типам комментариев, а узнал дополнительно про автоматическую документацию исходного кода. Для этого в Java применяется утилита javadoc, а для языка Си я еще давным-давно в интернете часто видел приятную единообразную документацию по библиотекам, где внизу html-страницы было указано магическое слово doxygen. Вспомнив про это, я решил подружиться с doxygen, установил его, выполнил простую настройку, изучил типы комментариев. Получилось здорово, теперь могу документировать свой код:) |
|||||
2 |
![]() |
без видео 2 теста |
|||
Написать программу, которая выводит квадрат из #. Далее, перебрать различные условия и проанализировать результат. Сделать скриншот двух самых классных квадратных узоров. * Придумать своё условие для узора. Отчёт отправил: 13417. Chip Выполнено за 18 мин. [Показать отчёт] Научился: Попрактиковался во вложенных циклах, условиях во внутреннем цикле. Задание похоже на урок из курса Графоциклы, Квадрат Гарри Поттера, но там эти заклинания нужно было составить самому по рисункам :) |
|||||
3 |
![]() |
без видео 2 теста |
|||
На этом уроке мы напишем программу с графическим интерфейсом - окошко с сообщением. Попробуйте закомментировать каждую строчку по отдельности, перекомпилируйте и запустите - что изменилось? Напишите свои выводы в комментариях. Отчёт отправил: 13417. Chip Выполнено за 1 час. 4 мин. [Показать отчёт] Научился: Давненько компьютер не ловил кучу segmentation fault, как во время выполнения этого урока. А всё дело в том, что по заданию требовалось комментировать по очереди каждую строчку программы и это выдавало весьма причудливые результаты. На первом скриншоте программа без комментариев, на втором с закомментированным добавлением метки на форму. По заданию требовалось описать результаты экспериментов по комментированию каждой строчки, ниже результаты. 1: #include <gtk/gtk.h> Ошибка компиляции. Ух, куча предупреждений, ошибки об обсутствующих функциях, макросах. Поди да и разберись в этом, а все лишь из-за того, что не включил заголовочный файл... 2: пустая строка Компилируется, запускается, все работает. А чего вы хотели, если закомментировать пустую строку? :) 3: int main(int argc, char *argv[]) Ошибка компиляция. Компилятор намекает, что должно быть что-то перед открывающейся скобкой, которая идет ниже, на 4 строке. 4: { Ошибка компиляции. Куча различных сообщений, причем разного характера, в основном касаются того, что я пытаюсь использовать выражения не в том месте, вне функции, так нет открывающейся скобки. 5: GtkWidget *frame, *label; Ошибка компиляции, не были объявлены переменные frame, label. 6: gtk_init(&argc, &argv) Программа компилируется, при запуске ловит Segmentation fault, так как не была выполнена инициализация GTK. 7: frame = gtk_window_new(GTK_WINDOW_TOPLEVEL) Успешная компиляция, после запуска выдает предупреждения о неуспешной попытке работать с объектом frame. Окно программы не показывается, но программа работает. Для завершения Ctrl+C. 8: gtk_window_set_title(GTK_WINDOW(frame), "Hello, Java!"); Программа компилируется, запускается, работает. Ошибок нет. Узнал для себя новое - если не указать заголовок окна, то вместо него пишется имя исполняемого файла. Мелочь, а приятно узнать:) 9: label = gtk_label_new("Welcome!"); Компиляция успешна. А дальше Segmentation fault! Вот тут удивило. В отличие от 7, где программа тихо-мирно как-то пыталась работать без окна приложения. 10: gtk_container_add(GTK_CONTAINER(frame), label); Программа компилируется, запускается, работает, ошибок нет. Все на месте, кроме метки :) Так как её не добавили на форму. 11-12: g_signal_connect(G_OBJECT(frame), "destroy", G_CALLBACK(gtk_main_quit), NULL); Программа компилируется, запускается, работает, ошибок нет. Ну... почти нет ошибок, кроме одной логической. При попытке закрыть приложение, нажав на крестик, кликнув на пункт меню или даже Alt+F4, окно закрывается, но приложение работает! 13: gtk_window_set_default_size(GTK_WINDOW(frame), 250, 100); Все почти окей - компилируется, запускается, метка на месте, успешно закрывается. Проблема в том, что в GTK используется динамическая компоновка виджетов и размер окна подгоняется под минимальный необходимый размер для отображения элементов. Поэтому окно очень маленькое - но метку Welcome видно полностью :) 14: gtk_widget_show_all(frame); Компиляция успешна, далее запускаю и... ничего, просто окно терминала, ожидающего заверешения работы программы. Окна приложения нет, так как мы не сказали GTK что нужно показать на экране. 15: gtk_main(); Компилиция успешна, программа запускается и сразу завершается. При комментировании этой строчки мы не попадаем в цикл обработки сообщений. 16: } Ошибка компиляции. Удивительно, он ожидает продолжения банкета! :) Ищет какое-нибудь объявление или выражение после 15 строчки. Надеюсь, не слишком много букв. Спасибо за эксперименты, сам бы вряд ли так дурачился со своей программой :) |
|||||
Итого: 3 видеоурока |
09 мин. 7 тестов |
71 чел. | |||
Финалисты: Kiril Palajev, Vladimir Falejev, Michail Ostryj, Renat Kanbekov, vdimae, Zulchumor Kurbonova, Vladimir Fedotov, Dmitrij Starikovič, Antonina Ignatjeva, Евгений Мехтиев, Ivan Bykov, Leonid Shevchenko, Erik Obuchovič, Иван Воронин, Новопашин Владимир, Алексей В., Monachov Maksim, Vitalii Iudichev, Auksė Cycarienė, Валерий Жданов, Елена, Jevgenij Kariagin, Stanislav Čuličkov, Константин, Tekashnik, Denis Morozov, Максим Лапшинов, Alvydas Buičenka, Александр Заскотченко, Кирилл Бравин, Сергей Соколов, Reinis Stacevič, Сергей, Roman Poliakovskij, Dmitrij Novikov, Александр, Дмитрий, Кирилл Лебедев, Rita, Константин, Вася, Станислав, Фомичева Наталья, Александр, Алексей|BrisK|Кривицкий, Andrej Petrunev, Kiril Krutiajev, Andrej Gladkov, Povilas Abramovicius, Sergej Šugajev, Kapitanov Dmitrij, Jurij Cyburevkin, Андрей Гладков, Serge, Andrew, Danil42Russia, Trira, Chip, Dmitry Sinitsin, Слава, Arslan, Сергей, крем сода, Yefim, Андрей Трофимов, grom518, Игорь Бойко, Anatoli, Григорий, Владимир, Tom . |