Дата активности | Видеокурс | Прогресс | ||
---|---|---|---|---|
2016-09-08 | sweep | Боты Сапёра | 7 % | |
2016-08-23 | soft0 | Демо софт | 29 % | |
2016-07-09 | bilife | Бинарная жизнь | 84 % | |
2016-03-11 | task3 | Комбинаторика | 78 % | |
2015-12-26 | words | Игры со словами | 43 % | |
2015-12-21 | soft2 | Новые технологии | 7 % | |
2015-12-17 | game6 | Морской Бой | 82 % | |
2015-12-03 | game0 | Демо игры | 80 % | |
2015-12-01 | game1 | Нано-игры | 50 % | |
2015-11-29 | task4 | Графические циклы | 24 % | |
Итого: | 42 % |
Дата активности | Консольный раздел | Прогресс | ||
---|---|---|---|---|
2016-09-11 | solo | Java - Вывод данных | 29 % | |
2016-09-11 | club | 24 - Муза Оля | 67 % | |
2016-09-10 | solo | HTML - тексты | 100 % | |
2016-09-10 | solo | Java - Циклы | 100 % | |
2016-09-09 | task2 | Алгоритмика | 100 % | |
2016-09-09 | solo | HTML - таблицы | 100 % | |
2016-09-07 | club | 10162 - Дмитрий Гринь | 20 % | |
2016-09-06 | solo | Java - Запуск | 93 % | |
2016-09-06 | solo | C# набор | 89 % | |
2016-07-02 | olimp | Олимпиада | 13 % | |
2016-03-12 | task5 | pascal_for_1_norm | 100 % | |
2016-03-12 | task5 | pascal_for_2_good | 8 % | |
2016-03-11 | task2 | Динамика | 100 % | |
2016-03-04 | task2 | Комбинаторика | 100 % | |
2016-02-12 | task2 | Рекурсия | 100 % | |
2016-02-07 | task2 | Do-рацикл | 25 % | |
2016-01-12 | task2 | Пока-цикл | 100 % | |
2016-01-03 | task2 | Условный оператор | 100 % | |
2016-01-03 | task2 | For-to-чки | 100 % | |
2015-12-31 | task2 | Логика | 100 % | |
2015-12-29 | task2 | Типы данных | 100 % | |
2015-12-26 | task2 | Матрёшки | 45 % | |
2015-12-01 | task1 | Строки | 100 % | |
2015-11-16 | task1 | Семантика | 100 % | |
Итого: | 71 % |
Ностальгия!))) Лет в 5 - 7 родители показали такую "игрушку", кажется, даже самодельную, собранную по схемам... И магнитофон, с которого грузили программы тоже очень напоминал этот.)) Уже потом - системник с 5-дюймовым дисководом в отдельном корпусе (тоже спектрум) - на нём начал пробовать самостоятельно писать программы на Бейсике.
Вот это тру комп! Мой первый спек был в таком корпусе. Ностальгия)
Был похожий магнитофон, только кассеты с русскими надписями.
Отличное поздравление!
Действительно интересная и полезная задачка! Спасибо!!!
Спасибо, Сергей, у меня были схожие ощущения, когда несколько раз проиграл своей программе "Крестики-нолики" из курса Микроигры. Там ощущения были более яркие, так как процесс игры очень быстрый и частенько проигрывал из-за невнимательности)
Да угадывать сложновото
Хорошо получилось так держать
Поздравляю!!! Вспомнил свои ощущения, когда первый раз проиграл собственной программе!)))
Спасибо! Интересного много... Вполне возможные варианты - API ВКонтакте, Морской флот, Новые технологии.
Молодец Сергей, поздравляю завершением ещё одного курса! Какой курс будешь проходить следующим?
Сергей, чудесно что этот урок принес тебе полезность! Рада что делаешь с удовольствием, так и продолжай! :)
Здорово, что все просто получилось!
Отличный результат, молодец!
Всё очень понятно и логично! Узнал, в чём заключается идея динамического программирования. Сам пришёл практически к этому же решению, когда пытался самостоятельно написать программу для 10-значных чисел (искал решение в общем виде). Только я вместо 10-кратной перезаписи строк и сложения сразу стал складывать для каждой подсуммы (которых 9*N) по 10 (или меньше) подсумм для (N-1) - варианта. Получилось не так наглядно для понимания и с большим количеством особенностей при программировании. А вариант, рассмотренный на вебинаре, кажется, предельно наглядный!) Спасибо!
Сергей, отлично позанимался на этом уроке и рада что результат отличный! Молодец! :)
Нач данные нулевого теста пишется под задачей
Всё верно.
Да я как-то прозевал этот момент (в уроке примерно с 31:39 по 31:41)... Зато теперь разобрался как следует!)))
А вообще, сейчас я стараюсь решать уроки так:
- сначала пробую решить задачу в общих чертах в уме (если легкая - сразу программу, если посложней - прикинуть возможные пути решения);
- потом смотрю видеоурок, надеясь найти в нём что-нибдь новое для себя;
- наконец, пытаюсь самостоятельно написать программу и отладить её;
- и только, если что-нибудь долго не получается, снова внимательно просматриваю урок, сверяясь с ним на каждом шагу.
На видео я делал подсказка, что начинать надо было с 9.
Сергей, Благодарю на подробный ответ, даже отчет, уверена что не одной мне он станет полезен! СПАСИБО! Молодец! :)
Спасибо!
Видеоурок я посмотрел позже, уже после отправки отчёта: оказалось, что там разбирается решение в общем случае, с которым у меня возникли трудности при самостоятельном решении. Так что, в поле "Чему научился" надо было бы вписать это решение: идея с диагоналями в таком виде в голову не пришла. Я хотел на каждом шаге делать проверку для фигуры: стоит она под боем или нет. Для этого предусмотрена процедура, проверяющая совпадение вертикали, горизонтали или диагонали. Последняя проверяется в общем случае по правилу |ф1.x - ф2.x| == |ф1.y - ф2.y|. Но моё решение для N стало слишком запутанным. А программа для доски 4x4 вот такая:
//www.VideoSharp.info/Консоль/Комбинаторика/Четыре ферзя
using System;
class VideoSharp
{
static void Main(string[] args)
{
ferz a = new ferz(0, 0),
b = new ferz(0, 1),
c = new ferz(0, 2),
d = new ferz(0, 3);
int result = 0;
for (int i = 0; i < 4; ++i)
for (int j = 0; j < 4; ++j)
for (int k = 0; k < 4; ++k)
for (int l = 0; l < 4; ++l)
{
a.x = i; b.x = j; c.x = k; d.x = l;
if (!check(a,b) &&
!check(a,c) &&
!check(a,d) &&
!check(b,c) &&
!check(b,d) &&
!check(c,d))
result++;
}
Console.WriteLine(result);
}
private static bool check(ferz a, ferz b)
{
if (a.x == b.x ||
a.y == b.y ||
b.y - a.y == Math.Abs(b.x - a.x))
return true;
return false;
}
}
class ferz
{
public int x, y;
public ferz(int i, int j)
{
x = i;
y = j;
}
}
Сергей, рада что тебе нравится и интересно, хотя ты так и не написала насколько твое решение лучше остальных и что в других решениях было полезно! :)
Молодец, рада что сам уже делаешь! :)
Чуть-чуть доработал:
namespace Combinatorics
{
class Program
{
static void Main(string[] args)
{
long[] sum, sum2;// Массивы, хранящие количество комбинаций из N цифр для каждой возможной суммы цифр (диапазон 0..9*N)
long S = 0;
int N;
N = int.Parse(Console.ReadLine());
sum = new long[9 * N + 1];
sum2 = new long[9 * N + 1]; //Здесь будем хранить значения для предыдущего N
for (int i = 0; i <= 9*N; ++i)//Для N == 1 заполняем массив вручную
if (i < 10)
sum[i] = 1;
else
sum[i] = 0;
if (N > 1)
for (int k = 2; k <= N; ++k)
{
sum.CopyTo(sum2, 0);
for (int i = 1; i <= 9 * k; ++i)
if (i < 10)
sum[i] += sum[i - 1];
else
sum[i] += sum[i - 1] - sum2[i - 10];
}
for (int i = 0; i <= 9 * N; ++i)//Считаем количество счастливых билетов для 2*N цифр
S += sum[i] * sum[i];
Console.WriteLine(S);
Console.ReadKey();
}
}
}
Оптимизация творит чудеса!
Сергей, уверена теперь ты уже знаешь и расширил своих понятия и знания! :)
Согласен, такой вариант, безусловно, эффективней. Только программа-то отрабатывает (даже довольно быстро) при вычислении разности прямо в параметре, но зависает при попытке сделать это отдельно в дополнительной переменной. Вот это уже и не понятно. Я пока не очень хорошо представляю, что при этом происходит в реальности.
проблема не в переполнении, а в том, что от миллиарда отнимать десятку нужно очень, ОЧЕНЬ много раз.
Можешь добавить условие что-то вроде if (a > b * 1000) и тогда отнимать сразу 1000 раз b,
в 1000 раз ускоришь алгоритм :)
Я видел этот вариант, но ведь это уже принципиально другой алгоритм, резко сокращающий число ходов... А мне было интересно просто максимально ускорить все вычисления, АБСОЛЮТНО не меняя алгоритм. Да и просто сама причина такого поведения не понятна. Вроде, для переполнения long нужны гораздо большие значения...
Используй операцию взятия остатка %, вместо вычитания.
Сергей, замечательно что урок понравился и принес пользу! :)
Сергей, здорово что прочувствовал магию рекурсии, и выполнил урок замечательно! Отличные идеи у тебя! :)
Есть. Пока я смотрел на раздел с задачками по Паскалю и думал, что он мог бы стать отличным тренажёром...
Сергей, есть ли у вас желание использовать наш сайт в школе для решения контрольных задач?
Сергей, замечательно позанимался, и я рада тебя приветствовать на этом увлекательном и познавательном курсе! Поздравляю! :)
Очень красивые картинки подобрал! Особенно верхняя!
Да просто задачки некоторые почти одинаковые... Ну и время свободное было спокойно посидеть, порешать!))
Странно только, что в условии указан диапазон входных данных -10^9..10^9, а для правильного решения необходимо использовать тип long, а не int с его диапазоном -2 147 483 648 .. 2 147 483 647
Спасибо! Всех ещё раз с Новым годом!!!)
Легко все получается! С Новым годом и новым опытом программирования!
Сергей, уверена, у тебя все получится, главное есть желание. Удачи!
И вас тоже с новым годом
Предоставте еще скриншот выполненых в алгоритмике темы Матрешка
Я частично сегодня разобрался с этим вопросом. Похоже, что это какие-то свойства операционной системы: при копировании с рабочего компьютера на домашний или при изменении имени файла на новое, которое раньше не использовалось, всё отображается правильно. Но на работе как в папке Debug, так и на рабочем столе (куда я тоже успел раньше кинуть копию) остаётся первый вариант иконки. При этом система где-то хранит даже прошлое имя файла (Viselka и Виселица), но когда тому же файлу на работе дал заведомо новое имя "Viselk", иконка сразу изменилась на текущую.
Сергей, не совсем понимаю твоего вопроса, ведь иконка у тебя везде корректно отображается и на панели и на рабочем столе и в самой программе!
Все у тебя очень классно получилось, мне нравится твоя программа! Молодец! :)
Вот так отчёт! Я даже и не заметил, что "стена" - прочитал всё с большим интересом и удовольствием!!!)
Сергей, замечательные знания получил от этого урока и рада что ты уже делаешь самостоятельно! Молодец! :)
Сергей, хорошо, что ты разобрался с тестированием. На самом деле очень полезный урок. Молодец!
Я не заметил сразу, что нужно было все тесты сделать успешными. Нарочно оставил пару ошибочных, возникших из-за переполнения int.
Сергей, Спасибо за пожелания! Кстати, у нас тут растет команда сильных программистов, так что скоро мы сможем осилить большой проект!
Спасибо, Сергей.
Очень понравилась картинка, одна из моих мечт :)
Поставил на фон рабочего стола на работе.
Благодарю!
Спасибо! Опыта и знаний, действительно, ощутимо прибавилось!) А насчёт увлекательности - самое интересное было , конечно, с олимпиадной частью, но ещё осталась доработка программы. Хочется доработать ИИ до уровня хорошего игрока, чтобы результат игры с человеком был примерно 50:50... Пока поразвлекался, заставил два разных ИИ играть друг против друга: мой вариант всё-таки уступает предложенному в уроке, но тем заманчивей придумать что-то более достойное!))
Сергей, рада очень и Поздравляю с замечательной игрой и приобретенным опытом! Ты, Молодец! :)
Здорово! Поздравляю с завершением курса! Создание такой программы - увлекательное дело!
Молодец, Сергей! Красивая игра получилась. Очень рада за тебя, что так уверенно осваиваешь материал и добиваешься отличных результатов. Успехов!
Сергей, я рада что у тебя все уже отлично! Молодец! :)
Посмотри видеоурок "почем рандом возвращает одинаковые значения".
www.videosharp.info/webinar/answers/id=27
Сергей, я очень рада твоим достижениям, это очень классно! Молодец! :)
Спасибо! При такой поддержке не может не получиться!!!))
Сергей, спасибо за подробное объяснение! :)
Уверена что после реализации полностью игры ты тоже сделаешь рефакторинг, наведешь красоту и у себя! :)
На данном этапе главное что работает и об этого Евгений часто говорит: "для начало сделать чтобы работало"! Молодец! :)
Отличное описание алгоритма и замечательная работа, Сергей, ты молодец!
Попробую сравнить.)
Сами алгоритмы разные. Свой я описал в уроке "Самый лучший алгоритм", а реализованный здесь алгоритм разбирается в самом уроке. Поэтому подробно каждый из них описывать не стоит.
Дальше: что касается реализации моего алгоритма, то не всё удалось сделать так, как задумывал. Не получилось отмечать поля вокруг подбитого/ убитого корабля как "мимо". Была мысль, что хорошо бы ввести для этого свою матрицу (как, кстати, и сделано в алгоритме Евгения Витольдовича), но я побоялся сделать программу совсем запутанной. Теперь, просмотрев урок, прочувствовал всю пользу от такой "личной" карты.) Вместо этого я просто стал проверять, какие клетки окружают поле будущего выстрела и на месте решать: стрелять или нет. В отличие от разобранного здесь алгоритма, мой не отслеживал подбитые корабли (какой длины и сколько).
Ну и самое главное: разобранный здесь алгоритм очень аккуратно разделён на отдельные процедуры и функции, имеет чёткую структуру. Поэтому в нём намного легче ориентироваться. А в моём пока беспорядок, так как многое дорабатывалось по ходу написания программы и оставалось в том виде, в каком только-только переставало "глючить".
В общем, мой алгоритм вполне работоспособен, но очень плохо структурирован. Приведённый же в этом уроке алгоритм имеет хорошо продуманную структуру.
Именно такому подходу к написанию программ, такому мышлению я и пытаюсь научиться!)
Отличные знания получил, и классно что все получилось отлично! Молодец! :)
Сергей, как я рада что все у тебя супер! Вот только ты сравнил, а не поделился впечатлениями? Интересно узнать твое мнение о предложенном в уроке коде!
Сергей, очень хорошо проработал урок и получил отличные знания! Молодец! :)
Понятно!))) Разные цвета появлялись почти случайно. Я для себя помечал небольшие группы одним цветом, чтобы самому отслеживать равномерность и заполнения поля числами. А потом для облегчения повторного поиска внизу добавил шкалу с соответствием числовых диапазонов цветам.
Здорово! Попробовал искать цифры 1, 2, 3, 4, 5,.... из-за смены цветов это оказалось непросто! Ищешь то старый цвет и думаешь - ну где же где же 13.... Красиво, молодец!
Хороший алгоритм.
Понравилось, что достаточно быстро проверяются клетки на граничных линиях, на 5-12 ходах.
Опытные игроки отдают под бой многопалубные корабли и оставляют одиночным целых 60 клеток в распоряжение.
Чем раньше уничтожишь многопалубники, тем лучше.
Красота! Очень здорово придумал.
Сергей, это очень круто! Вижу как ты старательно и усердно проработал урок! Молодец! :)
Красивый алгоритм!
Хотелось бы!)) Это действительно интересная, хотя и довольно запутанная конструкция.
Сергей, очень рада что ты познакомился с делегатами и у вас познала крепкая дружба, уверена что ты их дальше будешь применять! :)
Согласен, расслабился. Думал, что в конце создания игры с оформлением разберусь, но раз уж так - обязательно поправлю на следующем уроке!!!)
Хорошо получается! Но было бы хорошо все-таки давать осмысленные названия кнопкам. А иконку можно сделать на favicon.ru
Серей, очень классно позанимался и рада что появились новые знания и много понимания!!! Молодец! :)
Сергей, планирование это главный этап в жизни будущей программы, уверена ты это оценишь и поймешь как важен этот урок!
Поздравляю с началом этого классного курса!!! :)
Молодец! Хорошие доработки. Вот из таких мелочей и получаются шедевры! Так что если твоё внимание уже обращено на мелочи, значит в общем всё уже можешь сам!!!
Сергей, мне н нравится как ты позанимался на этом уроке и приобрел отличнейший опыт! Молодец! :)
Здравствуйте!
Робот Шарп почему-то зависает ("запутался в проводах" :-( ), когда отправляю ему это решение:
string s = Console.ReadLine(),
s1 = Console.ReadLine();
int index1 = s.IndexOf('(') + 1, index2 = s.IndexOf(')');
Console.WriteLine(s.Remove(index1, index2 - index1).Insert(index1,s1));
Сейчас помню, что набирал RANDOMIZE USR 156??, заучив наизусть для каких-то целей. )) А для чего именно - забыл... Возможно, для загрузки программ с дискет (был 5-дюймовый привод).
RANDOMIZE USR 15616
Говорит тебе о чём-нибудь? :)
Здорово получилось! Видно, что программа понравилась!
Сергей, замечательно позанимался в этом уроке! Думаю ты сможешь реализовать отскакивая шарика самостоятельно! Попробуй, если сразу не получится, двигайся дальше, а потом вернись и знаю что обязательно получится! :)
Спасибо за отзыв, интересно было прочитать! Желаю успехов в этом увлекательном деле! И ждем новых отчетов о новых программах!
Спасибо, посмотрю!)) Уточнение: сейчас картинка не меняется до ЗАВЕРШЕНИЯ следующего раунда.
Сергей, классно придумал, а для ничья, посмотрен как у меня в отчете крестики-нолики, такое дружественное рукопожатие может подойдет или что-то в этом духе!!!
В случае победы или проигрыша до начала следующего раунда посередине отображается результат игры (соответствующим образом сориентированная картинка). Для "ничьей" пока ничего не придумал.