Дата активности | Видеокурс | Прогресс | ||
---|---|---|---|---|
2017-07-08 | base2 | БД - Управление гостиницей | 100 % | |
2017-06-14 | wpf | WPF Clocks | 10 % | |
2017-06-13 | base1 | БД - Книжка оценок | 100 % | |
2017-06-01 | compiler | Компилятор | 100 % | |
2017-06-01 | iterator | Итератор | 100 % | |
2017-05-23 | soft3 | Теория ООП | 100 % | |
2017-04-21 | soft0 | Демо софт | 72 % | |
2017-01-05 | soft1 | Нанософт | 10 % | |
Итого: | 75 % |
Я пока не нашел нигде инфы, где бы был описан механизм соединения 3х частей.
Сегодня на хабре увидел как раз статью про это.
habrahabr.ru/company/alconost/blog/332530/
Да и у меня нет еще достаточных знаний для написания моего приложения.
У тебя есть возможность самостоятельно его пройти до конца.
Курс не дописан. что очень печально, видимо в будущем планируется, но на этом проекте имеются курсы, которые остались незаконченными.
если писать this не обязательно, то его наличие ошибок не выдаст. Компилятор если видит this сразу берёт за пределами, а если он не видит у переменной this, то он вначале ищет её в пределах функции, если не нашёл, ищет за пределами.
Так ведь в той функции не было вообще входных параметров.
public void UpdateMap()
{
do sql.Update("UPDATE map " +
"SET satus = '" + sql.addslashes(status) + "', " +
"adults = '" + adults + "', " +
"childs = '" + childs + "'" +
" WHERE room_id='" + sql.addslashes(this.room_id.ToString()) + "'" +
" AND book_id='" + sql.addslashes(this.book_id.ToString()) + "'" +
" AND calendar_day='" + sql.DateToString(this.calendar_day) + "' LIMIT 1");
while (sql.SqlError());
}
Я думал, что и в этом случае надо this, который бы четко указывал на глобальную переменную в классе.
Теперь оказывает, что если в функции нет входных параметров, то не обязательно указывать this? А я первый раз сам написал, а потом в ролик глянул, а там без. И компилятор ничего не подчеркивал.
А говорил, что разобрался в этих this =) в данном случае всё верно, если бы был ВХОДНОЙ ОДНОИМЁННЫЙ параметр, то чтобы компилятор понял из какого брать данные из входного или того, кто за пределами функции и придумали this который указывает на тот, который за пределами, а не тот, что входной.
Ну вот и отлично, лишний раз доказано, что понимание приходится с практикой.
судя по строчке this.till_day = till_day; после этого они оба имеют идентичные данные, а так как это присвоение было ДО строчки SET till_day = '" + till_day.ToString("yyyy-MM-dd"), то и не важно, без this или с ним, данные там идентичные!!!
по поводу ИЛИ, последовательность || означает именно ИЛИ, а И это будет &&. так что не понятно, где написан неверный код и о чём речь.
Да, монотонность убивает интерес, в точку попал. =)
Обычная практика. С опытом привыкаешь сразу находить причину ошибки.
Чтобы тест работал так как надо, надо самому понимать как это должно работать. ПК тупой, ему что программист сказал, то он и делает.
Так и есть, идеальных тестов нет, особенно когда дело касается промежуточных данных, а sql запросы, это как логика записи файла или структуру передаваемого пакета, если формируется не верно, то это сразу и не узнать, если только не проверять после формирования и отправки/записи на корректность выполнения, но это доп. ресурсы, которые можно задействовать в дебаг режиме, а в релиз уже эта часть кода не будет компилироваться.
Ну у меня не возникало вопросов в понимании работы фрезерного станка. Только я его не стал делать. Купил готовый.
С виду кажется все сделано просто, а вот как начнеш сверлить отверстия под крепления без станка и получиш станок с такой погрешностью, что придется выбросить. А цена материала равна половине цены готового.
чтобы построть станок - надо сначала понять, что он должен делать.
в программировании - создать тесты, которые он должен проходить.
Молодец :)
мукусл можно запускать со спец. параметром, который позволяет ставить пробел после count.
0 для того, чтобы было подставлено очередное значение счётчика.
Как всегда шикарное сочинение))
Не всегда много времени. Бывает и быстро пишешь.
Хорошо поработал, правда.
Если немного откатить назад, то полдня назад у тебя даже вопроса не было. Что такое м, что такое л? Сейчас он у тебя есть. Через какой то промежуток времени, если тебя это действительно интересует, будет ответ. Вот это и есть процесс получения знаний. Вопрос-ответ. Так что полпути ты уже прошел, вопрос у тебя есть, осталось найти только ответ:)
А если серьёзно, то книга хороший помощник. Для понимания теорий всё равно придётся обращаться к литературе.
Как по мне, то куча форм записей только усложняет все это.
Откуда взять эти цифры? Должен же быть редактор объектов. А так практика без представления о предмете это объяний труд. У меня вот ошибка где-то, а я даже понять не могу, где. Что такое м, что такое л?
Урок действительно немного "забегает" вперед. Теорий уделяется очень мало внимания, упор делался на практику. Тут я могу посоветовать подождать немного, думаю через некоторое время появятся курсы с уклоном на теорию, но лучше начать самому потихонечку вникать, если конечно этот вопрос интересует. Хорошая книга "WPF Windows Presentation Foundation в .NET 4.0 с примерами на C 2010". На многое "открывает" глаза. Она старенькая, но во многом актуальная до сих пор.
По поводу магических цифр. Я видимо не совсем понятно объяснил. Я попытался различными способами нарисовать три стрелки. Секундная стрелка записана была без использования мини-языка геометрий, а последние две стрелки с использование мини-языка геометрий. Это сокращает код, но теряется информативность. Что видимо и произошло. Можно все стрелки нарисовать без мини-языка и будет работать.
Вместо этого Data="M240,170 120 0 l-5 -110 l-5 -5 l-5,5 Z" нужно записать вот это Data="M 240,170 l 20,0 l -5,-110 l -5,-5 l -5,5 Z ". Запись в мини-языке l20,0 равносильна записи l20 0 или l 20 0 или l 20,0. Т.е. мы от предыдущей точки, с координатами (х,у) двигаемся в следующую с координатами (х+20,у+0).
))) Рад, что мой отчёт помог))) А я писал в комментариях, что курс не лёгкий))
string scalar = cmd.ExecuteScalar().ToString();
эта строчка может косячить, проверь что она возвращает при дебаге, чтобы в переменной scalar было то, что нужно!!!
Я бы конечно стал делать select max(id) - понятное дело лучше это надо отдать на откуп БД. Да насчет интуиции согласен.
Обижеются терпилы. Я просто сказал, что понятия не имел о такой функции.
Я все больше прихожу к выводу, что надо прокачивать интуицию, а то она там в уголке сидит и попискивает.
Ну в принципе да - мы не волшебники - только учимся. Просто все ошибки с БД я кожей чувствую - это мой хлеб - не обижайся на мое ворчание.
Откуда мне знать, что такаяфункция есть?
Я сделал проще - ид всегда должен быть автоинкремент в подобных случаях.
Вот так все четко работает.
private void insert_subject()
{
do sql.Open();
while (db_error());
do sql.Exec("INSERT INTO subject (subject) VALUES (\"" + text_subject.Text + "\")");
while (db_error());
text_subject.Text = "";
do sql.Close();
while (db_error());
load_subject_table();
}
Зачем так извращаться? Достаточно было сделать SELECT isnull( MAX(id),0) FROM subject
Ну да, их там нет уже.
Я сделал вот так:
private void insert_subject()
{
do sql.Open();
while (db_error());
int id;
id = int.Parse(sql.Scalar("SELECT MAX(id) FROM subject")) + 1;
if (id == null) id = 0;
do sql.Exec("INSERT INTO subject (id, subject) VALUES (" + id.ToString() + ", \"" + text_subject.Text + "\")");
while (db_error());
text_subject.Text = "";
load_subject_table();
do sql.Close();
while (db_error());
}
Additional information: Input string was not in a correct format.
Ошибка в той же строке.
Я так полагаю id нельзя конвертировать в строку, т.к. в базе это тип инт. Я это еще опять интуитивно заметил, но как я могу сомневаться? Сейчас переделаю и посмотрю.
А если select max(id) from subject - вернет null? Может вовсе записей нет в таблице - тогда у тебя будет ошибка.
Вот я ее тоже пересмотрел 100 раз.
Может глаз где замылился.
public string Scalar(string query)
{
error = "";
this.query = query;
try
{
OleDbCommand cmd = odc.CreateCommand();
cmd.CommandText = query;
string scalar = cmd.ExecuteScalar().ToString();
return scalar;
}
catch (Exception ex)
{
error = ex.Message;
return "";
}
}
С виду всё ок, копай функцию Scalar() что она делает, возможно она криво работает.
С виду SQL запрос верный. Видимо, проблема в чем-то другом. Может таблица не так называется или еще что...
Потому что курсов много, а таких, чтобы заставляли повторять за учителем, тоже только тут нашёл, на этом проекте все курсы годные!
У меня софт под ключ, чтобы был код только того, что надо, не было лишнего мусора, который никогда не будет использоваться, чего во всяких фреймворках МОРЕ.
А какого рода твой софт, что нет какого-то функционала сейчас. Можно конечно и свое собирать. Раньше вон на пхп классы собирали и лепили свое, а зенд был чем-то далеким и для бородатых гуру. Сейчас же даже нуб должен уметь фреймворки.
У меня баба знакомая в школе искусств учится, практику ищет. Я ей говорю, что сейчас надо знать не просто хтмл с цсс, надо яваскрипт еще знать и фреймворки как для цсс, так и для яваскрипта. Хотя бы жквери.
В паяльстве раньше можно было собрать детекторный приемник или мультивибратор, то сейчас уже нужно уметь писать код для контроллера, а детекторный приемник - это как минимум супергетеродин с синтезатором частот, а то и вообще сдр.
Полностью согласен, но фреймворки на деревьях не растут =) их тоже пишут люди, вот я пишу свои, так как тот функционал, который требуется моим клиента, нет в сети, поэтому приходится писать самому, плюс ход должен быть маленьким и быстрым, это как писать для чипов, если каждый байт имеет значение, а сейчас изза того, что доступны чужие движки, очень много ковнокода, да он быстрый, но он однодневка. Это дело каждого, как писать код, используя чужие наработки, либо писать свои, можно это комбинировать, никто не запрещает создавать гибриды.
Зачем писать с нуля, если есть фреймворк и их писали люди явно более лучше. Изобретать велосипеды мне не хочется и делать ошибки тоже. Сейчас не то время, когда программист был богом. Сейчас это обычная работа ремесленника, когда надо еще вчера было, иначе конкурент сделает первым. Сейчас и в паяльстве преобладает модульная сборка. Китаезы клепают высокотехнологичные модули, которые дешевле, чем если бы ты сам покупал и паял их.
Так не используй фреймворки, пиши свои, я своё пишу, не использую чужой код, если он мне не понятен или не нравится, так как чужой код это чужие баги и ошибки, а я не хочу отвечать за чужие ошибки, поэтому всегда всё пишу под ключ с нуля и уверен в своём коде.
Ну вон есть куча деталей, ты сам можеш соединять их. Только могу тебе сказать, что врят ли у тебя что-то заработает.
Мне понадобилось 5 лет, чтобы самостоятельно правильно соединить 5 деталей и получить рабочую схему. Если бы мне показали один раз, я бы все понял.
Я только на 4м десятке недавно понял, как работает детекторный приемник. Точнее как получается звук при выпрямлении вч тока. Оказалось, что в книжках пишут полный бред.
Так и в программировании - без просмотра процесса эволюции кода ничего не поймеш. Будеш на уровне хеловорлда писать простые формочки.
Я вот например понятия не имею, как и какая инфа передается в каком-нибудь пхп фреймворке между моделью и контроллером и как этот механизм реализован. Без его ощущения я не ощущаю контроля. Ни в какой книжке это не написано.
"Везде говорится про все куски всего, только нигде не говорится, как их собрать в одну _полезную_ работающую прогу."
я об этом, везде дают куски, так как программирование из него и состоит, чем больше у тебя кусков, тем больше вариантов можно из них сварганить, а это уже дело интимное.
Сборкой в одно единое целое занимается каждый сам для себя, так как сколько людей, столько и своих пирамид, дерзай! =)
Сочинение писал по ходу просмотра ролика.
Так-то все понятно, но я не умею алгоритмы придумывать и писать их в коде. Я инвалид на левое половину мозгов, которая за логику отвечает.
А что тогда такое .net core? Я могу сейчас использовать линупс на арм и написать под него серверное приложение с использованием виндовса и протестировать сначала на виндовсе, а потом туда перенести?
Приложение это простой вебсервер для отдачи статики и джейсона + работа с ком портами или библиотеками хид усб.
Ничего себе сочинение. В курсе вроде достаточно понятно объяснено как что и откуда брать что бы было понятно
В том то и дело что не на .net пишу, а на mono. Но разница в изучении программирования невелика. Не портировали они ничего. Сделали visual studio code, который является продвинутым блокнотом. Плюс сертифицировали байт код, из-за чего компилятор может теперь создать любой (что и сделали в моно). Гтк - замена виндовс.формс. Так же есть некритичные отличия. Зато моя среда разработки открывается за секунду, и программа запускается за секунду. В студии оба этих процесса до минуты занимает. Еще плюс, что мои программы можно запустить и в лине и в винде, что мне и надо. Я работаю в лине, а коллеги в винде, а программы нужны всем. Переучивать коллег на линуху дело неблагодарное.
Поставить линупс, чтобы потом писать на .нет.
А чистый .нет не работает что ли? Я слышал мелкасофт портировал там что-то или на гитхаб выложил. А тут гтк надо прикручивать еще.
> Курс называется "разложение числа на простые множители".
> Сначала я подумал, что число 123 будет раскладываться на 1, 2 и 3.
Ну, ... я даже не знаю, что тут сказать.
Поражаюсь твоей напористости.
решай консольные задачи.
Курс в профи, но разве это из профи раздела? Я думал для профи это всякие паттерны проектирования уже.
А синтаксис и ключевые слова с классами входят в базовый курс. Нельзя стать профи, если не знаеш основ.
А так я и так гуглю и что понимание с практикой приходит - тоже понятно.
Молодец, поздравляю, удачи в дальнейшем. Совет, если не хватает понимания, либо гугли, либо просто повторяй за учителем, понимание приходит с практикой.
Я посмотрел категории, у меня он в категории номер 2, начинающие.
Так как этот курс находится в категории ПРОФИ, и до него все курсы по C# у тебя не 100% выполнены, то чего ты хотел? бежать впереди паровоза? ребёнок вначале учится ходить, а потом всё остальное, а не сразу с пелёнок в космос =) Плюс этот курс был записан давно, лучше про итераторы с отличным примером сортировку карточной колоды продемонстрировано в курсе по языку Java: www.videosharp.info/video/design-iterator
Я не лез в гугл, чтобы оценить курс как целое. Сейчас я полез в гугл и читаю. Могу тебе сказать, что и тут тоже ничего не понял. Но напишу много букв.
Если бы не лез в гугл и решил поставленную задачу, это круто, а когда есть вопросы и не лезть в гугл, это не красиво. Жду когда закончить прохождение курса и хочется почитать претензии. Так как я его прошёл и только один баг в конце нашёл, остальное всё ясно как день.
Молодец, хорошо поработал, а отдыхать тоже надо, новая информация всегда сложнее, чем повторение пройденного.
Когда пройдёшь курс целиком, тогда сделаешь выводы, пришло понимание или нет.
Молодец, kalobyte! Хороший темп взял!
Потому что примеры создаваемых программ имеют смысл, динамичны. Поэтому хочется их набирать. Поздравляю с получением посылки :)
Хорошо поработал
Поздравляю с прохождением курса
Про чтение книг за кадром верно подмечено. Это напоминает мне уроки в школе. Учитель тупо по книжке что-то читает и от этого спать хочется. Конечно это больше к системе обучения претензия, учителя не могут выдумывать свои программы или отходить от учебников.
А ролик хорош, мне он сразу запомнился простотой объяснения, как сделать подобие жизни.
Потому что тут усиленная практика, поэтому и желание есть кодить за Игромистром, а другие только книги читают за кадром, могли просто mp3 выложить, чтобы люди на ночь слушали. Так что не удивительно, что этот курс понравился и увлёк не только слушать и смотреть, но и самому кодить.
Отличное видео, посмотрел с удовольствием, так как уже реализовывал игру Жизнь не один раз на этом проекте, даже на поле игры сапёр, скинул это видео себе в коллекцию, надо будет реализовать аналогичную версию, интересная штука =)
Целое сочинение на тему: "Как я полюбил ООП")))
Можно считать, что одни над другими. Одни на земле, другие на небе =) Было бы 3Д, было бы понятнее =)
Это не мое видео, я его приложил к моему каменту про творца.
Молодец, kalobyte! Хорошо поработал и видео отличное сделал! С финалом!
В программировании больше нужна логика. Математика на втором месте.
Не вижу тут никакой крутой математики, программа 3 класса. По поводу sx и sy - это смещение координат круга относительно текущих его координат.
У нас тоже в школе были пентиумы, но урок информатики был только у малолеток. Так что нормальный компутер я увидел только в 99м.
У меня еще была книжка тогда, насколько я помню, у спектрума был какой-то диапазон памяти типа буфер принтера или что-то такое, куда загружались шрифты или символы пользователя. Я тогда мало понимал, что это такое. В книжке были наборы цифр от 0 до 255 и был массив. А откуда эти цифры берутся - никто нигде не написал. Это я уже потом много лет спустя разбирался с индикатором hd44780 и там в даташите был как раз показан весь принцип создания собственных символов в озу и пзу знакогенератора.
Так что толстая книга про написание игр на спектруме оказалась макулатурой. С тех пор я стал все меньше и меньше читать книг, а с приходом ютуба и совсем забил на них.
Да, во всех 2D играх квадратные спрайты.
Я когда на спектруме изучал этот же вопрос, создал необходимые спрайты через редактор шрифта, подгружал его в программу и рисовали ими объекты, получалось как надо. На бейсике всё медленее да, но работу по информатике надо было гдето делать, а у меня был только спекки, а на информатике уже были пентиумы 100, там писали на QBasic, вот и занимался портированием туда-сюда =))))))
Здесь нет никакого матана :-) это элементарная школьная геометрия.
Sqrt без дополнительных скобок вычисляет квадратный корень только первой разности. Скорее всего там получилось отрицательное число, из-за чего и вышло исключение
Вот именно поэтому я так долго думал про бильярдные шары, какова формула их столкновения. А Интернета тогда не было :-)
Какие замечательные воспоминания из прошлого века :-) я в школьное время не один вечер думал, чтобы вывести формулы для столкновения Шаров, хотел написать бильярд, но тех знаний так и не хватило, чтобы сделать это.
Быстро разобрался.
Тут тоже можно передавать, если надо.
А я его как раз и посмотрел. Не всегда доходит с первого раза.
Но я понял, что рандом надо тупо статично вызывать.
Посмотри это видео:
www.youtube.com/watch?v=a03X9gmDmto
Кстати с исправлением ошибок - да ты ошибку исправил, но пока не перекомпилируешь будет гореть синим.