Си шарп с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Денис Авгурин
  • Звание: Алгоритмист
  • Накопленный опыт: 114 часов
  • Баланс Мегахешей: собрано 0 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2016-04-28 07:46:52
  • Город проживания: Южно-Сахалинск

Видеокурсы

Дата активности Видеокурс Прогресс
2016-03-13 aspnet Базовый ASP.ект 4 из 24 17 %
2015-03-04 game0 Демо игры 5 из 10 50 %
2015-03-04 soft0 Демо софт 2 из 8 29 %
2015-03-01 lines Шарики 3 из 9 38 %
2015-02-26 game1 Нано-игры 2 из 9 20 %
2015-02-25 game2 Микроигры 6 из 17 40 %
2015-02-12 words Игры со словами 2 из 7 29 %
Итого: 24 из 84 29 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2016-01-07 task1 Целые задачи все 11 100 %
2015-03-31 task1 Календарь 1 из 16 7 %
2015-03-26 task1 Геометрия все 8 100 %
2015-03-24 task1 Формулы все 9 100 %
2015-03-24 task1 Символы все 5 100 %
2015-03-23 task1 Лирика 12 из 14 86 %
2015-03-19 task1 Целые числа все 7 100 %
2015-03-13 task1 Строки все 14 100 %
2015-03-05 task1 Семантика все 6 100 %
Итого: 73 из 90 82 %
Сохранить страницу:

9932. --
Семён Амелькин
Семён Амелькин
ответить
→  Денис Авгурин  # Микроигры / Крестики-Нолики. Игра на двоих / 2020-11-24 10:08

извиняюсь, если вы создадите объект класса counter, то чтобы взывать метод UpCount вам нужно сделать его публичным, то есть не private void UpCount(){col++} а public void UpCount(){col++}
ну и не только с int это можно сделать, например если это будет текстовая публичная переменная string с полямии get; private set, то написать какой-либо текст в ней вы можете только внутри класса в котором она объявлена, снаружи при использовании только доступными методами класса


9932. --
Семён Амелькин
Семён Амелькин
ответить
→  Денис Авгурин  # Микроигры / Крестики-Нолики. Игра на двоих / 2020-11-24 10:04

Static это объект который создаётся в памяти при запуске, его не надо создавать через new и он висит в памяти готовый к применению, очень сложно умудриться поймать NullReferenceException на статике, с опытом приходит, не стоит на этом зацикливаться, а когда поймёте всю суть статики не стоит применять её везде, это непроизводительно.
private set означает что переменная int может изменяться только внутри своего класса методами класса в котором она находится, то есть вы например объявляете класс Counter, внутри класса public int col {get; private set;} сделать col ++ или col = 5 вы можете ТОЛЬКО внутри класса Counter вызвав например метод private void UpCount(){col++} а снаружи, в других классах при создании нового объекта Counter counter = new Counter(); вы чтобы поменять значение можете вызвать только метод couner.UpCount, либо только получить значение публичного поля, но не изменять его напрямую.
Надеюсь понятно объяснил


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Базовый ASP.ект / Создание пустых страниц / 2016-03-13 17:24

А какая цена для тебя была бы приемлимой?


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Консоль / Целые задачи / Площадь / 2015-04-01 08:51

Спасибо, исправил опечатку!


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Целые задачи / Секундомер / 2015-03-31 10:02

У Вас тут нет проверки на случай, если секунд больше чем секунд в 24 часах
N = N % 86400; //отбрасываем дни


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Целые задачи / Площадь / 2015-03-31 10:00

очепятка
Площадь прямоугольного прямоугольника равна полупроизведению длин его катетов.
Площадь прямоугольного ТРЕУГОЛЬНИКА равна полупроизведению длин его катетов.


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Целые задачи / Площадь / 2015-03-31 09:59

очепятка


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Лирика / Любимые цифры / 2015-03-23 17:01

вот это я нагородил вместо while (x>=10) x = x/10+x%10;  :(((


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Лирика / Билетики / 2015-03-23 15:46

Вы схитрили, Евгений Витольдович :) Использовали цикл в теме до темы с циклами. Я применил Ваше решение из задачи "Классики" videosharp.info/console/task/level=141


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Строки / Contains / 2015-03-05 22:56

что-то даже на Ваш вариант Шарп ругается :(

using System;
class VideoSharp
{
    static void Main()
    {
        string terem = Console.ReadLine();
        string a1 = Console.ReadLine();
        string a2 = Console.ReadLine();
        string a3 = Console.ReadLine();
        string a4 = Console.ReadLine();
        string a5 = Console.ReadLine();
        Console.WriteLine(terem.Contains(a1));
        Console.WriteLine(terem.Contains(a2));
        Console.WriteLine(terem.Contains(a3));
        Console.WriteLine(terem.Contains(a4));
        Console.WriteLine(terem.Contains(a5));
    }
}

> Программа отсылается...
> Робот Шарп проверил программу, 10 с.
Компиляция: OK
Тест 000: ВЕРНО
Тест 001: НЕВЕРНЫЙ ОТВЕТ
Тест 002: НЕВЕРНЫЙ ОТВЕТ
Тест 003: НЕВЕРНЫЙ ОТВЕТ
Тест 004: ВЕРНО
ИТОГО: 40 %
Робот Шарп: Найди, исправь ошибку и пробуй снова!


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Консоль / Строки / Contains / 2015-03-05 22:49

Я написал, но робот Шарп ругается. Почему?

using System;
class VideoSharp
{
    static void Main()
    {
        string word = Console.ReadLine();
        string s = "";
        s=s+"\n"+word.Contains(Console.ReadLine());
        s=s+"\n"+word.Contains(Console.ReadLine());
        s=s+"\n"+word.Contains(Console.ReadLine());
        s=s+"\n"+word.Contains(Console.ReadLine());
        s=s+"\n"+word.Contains(Console.ReadLine());
        Console.WriteLine(s);
    }
}


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Прикладные / Двенадцать месяцев / 2015-03-04 08:25

Молодец, Денис. Отлично!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Мини игры / Вступительное слово / 2015-03-03 09:09

Есть у нас и пятнашки, и 2048 :)
Первый раз посмотришь, как делать, а в 5ятый раз сам напишешь!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин   / 2015-03-03 09:08

Делегаты на кубиках - первый урок в Новых технологиях.
www.videosharp.info/video/soft2/nr=61


2540. --
Денис Авгурин
Денис Авгурин
ответить
→  Евгений Волосатов   / 2015-03-03 08:38

Евгений Витольдович, не вспомните на память в каком уроке Вы рассказываете про делегаты?


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Шарики, часть 2. Создание логики игры + реализация. / 2015-03-01 05:43

Денис, зато в следующий раз будет так: "А, я это уже где-то видел!"
И сможешь быстро разобраться. С первого раза и я не понял этот алгоритм,
когда познакомился с ним в универе. А теперь по памяти пишу его без проблем.


2540. --
Денис Авгурин
Денис Авгурин
ответить
→  Евгений Волосатов   / 2015-02-25 17:46

Да. Промазал стрелочкой :( А еще промазал 30 поставил не в минуты, а в часы :(
Видать надо было пойти спать в 11.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Шарики, часть 0. Вступление / 2015-02-25 08:24

Что то с блок схемой ты немного напутал.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Стрелялка / 2015-02-25 04:09

Молодец, Денис!
Ты прошёл почти все игры этого раздела.
Напиши, пожалуйста, в ответном сообщении отзыв об этом разделе.
Спасибо!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Профи вебинар / 2048 - Интерфейс / 2015-02-22 04:35

В разделе профи вебинар пока лежат


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Sokoban - Редактор уровней / 2015-02-22 03:21

Согласен. Надо перезаписать эти уроки.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Sokoban - Правила игры / 2015-02-19 11:27

Молодец, Денис!


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Змейка / 2015-02-15 06:46

Молодец, Денис! Отличная работа.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Бот для игры БАЛДА / 2015-02-12 01:33

Денис, в этом суть моей методики. Полное погружение. Сразу к сложному. Практический подход. Теперь ты сам взмолишься о необходимости изучения теории - и, уже сам (!), начнёшь её жадно изучать, понимая, для чего она тебе нужна.
Я горжусь тобой, Денис, что ты, превозмогая непонятки, довёл дело до конца.
Количество неминуемо переходит в качество.
Главное - не останавливайся!


4121. --
Андрей
Андрей
ответить

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Супер игры / Виселица / 2015-02-09 11:25

Отличная работа, Денис, молодец!
Придумывание с опытом приходит само собой.


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Видео-приклад / Библиотека твоих программ / 2014-11-25 21:56

НАШЕЛ решение! На мысль натолкнула Натали (www.videosharp.info/1726) Она писала в своей задаче "Добавление существующей формы: сначала добавила, выделив 3 файла - .cs, .resx, .designer.cs, и импорт прошел неверно. необходимо интегрировать, добавляя только .cs, зависимости подтянутся сами"
Я попробовал импортировать только .cs, но ничего не само не "подтянулось". Импортировались только .cs. НО! Если импортировать .resx ОТДЕЛЬНО, то файл импортируется по-другому, чем если импортировать сразу 3 файла (.cs, .Designer.cs, .resx).


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Видео-приклад / Библиотека твоих программ / 2014-11-25 21:35

Сделал одно и то же задание "Библиотека твоих программ" в  Visual Studio Community 2013 и в  Visual Studio 2008 Express. Результаты эксперимента: в 2008 всё работает, в 2013 - ошибка. Создаваемая форма не может найти иконку в файле ресурсов: this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")))
Переделывал эксперимент несколько раз - результат одинаковый.


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Видео-приклад / Библиотека твоих программ / 2014-11-25 08:35

При запуске "встроенной программы" вылетает ошибка если встроенная программа содержала свою иконку. В Вашей версии Visual Studio импорта 3х файлов было достаточно для запуска. Я перенес все те же 3 файла (Form1.cs, Form1.Designer.cs, Form1.resx), но запуск встроенной программы вылетает с ошибкой если есть иконка. (с иконкой по умолчанию всё работает). У меня Visual Studio Community 2013.


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Видео-игры / Отзыв о видеокурсе / 2014-11-24 09:44

Спасибо Денис. И сочувствую. Когда-нибудь мы решим эту проблему :)


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Видео-игры / Бот для Быстрощёлка / 2014-11-22 02:29

Знак | означает побитовое сложение. Получается что-то вроде 64 | 32 = 96,
это значение говорит о том, что годится как левая кнопка "вверх", так и правая кнопка "вверх".


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Денис Авгурин  # Видео-игры / Игра Быстрощёлк / 2014-11-21 06:51

Тип string удобнее, так как при необходимости можно будет использовать и другие состояния программы, например, если добавить кнопку "пауза", будет режим mode = "pause".
Ещё лучше, конечно, использовать структуру Enum, где выписать все значения.


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Видео-игры / Игра Быстрощёлк / 2014-11-21 06:31

В уроке "Быстрощелк" почему мы использовали тип string mode = "stop"/"play", а не тип bool mode = true/false? Это в угоду упрощения примера или действительно тут string удобнее bool?


2763. --
Александр
Александр
ответить
→  Денис Авгурин  # Видео-игры / Лабиринт / 2014-11-20 09:50

Visible не просто делает обьект невидимым,оно его полностью игнорирует,т.е. если Visible =false то обьект как бы не существует.


2540. --
Денис Авгурин
Денис Авгурин
ответить
# Видео-игры / Лабиринт / 2014-11-20 09:16

Здравствуйте,
Просто интересно узнать: Не пойму, почему когда исчезает задетый квадратик, то по нему не срабатывает больше событие MouseEnter пока он остается невидимым. Квадратик же перестал быть Visible, но как бы должен существовать на том же месте?
Спасибо


  • Звание: Алгоритмист
  • Накопленный опыт: 114 часов
  • Собранный капитал: нет

Клуб формулистов

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


1) Евгений Витольдович, это один из самых подробнообъясняемых и подробнокомментируемых Ваших уроков. Самое то для новичков! 2) У меня исчез из списка уроков урок про игру 2048. Ссылку на урок "2048 - Интерфейс" нашел в History. Как мне увидеть продолжение?


Трудности: Закончилась подписка на супер-игры по льготной цене :) . Решил продолжить решать бесплатные уроки. Последняя задача - игра 2048.
Ожидания - научиться когда-нибудь САМОСТОЯТЕЛЬНО (100%) решить сложную задачу вроде "пятнашек" или "2048"