Си шарп с нуля

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

основатель — Волосатов Евгений Витольдович

Azelka
  • Звание: Алгоритмист
  • Накопленный опыт: 146 часов
  • Баланс Мегахешей: собрано 0 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2021-07-17 08:09:49
  • Возраст: 48 лет

Видеокурсы

Дата активности Видеокурс Прогресс
2021-07-14 game0 Демо игры 7 из 10 70 %
2021-06-26 soft0 Демо софт 3 из 8 43 %
2021-06-24 start Начало здесь 6 из 9 %
Итого: 16 из 27 60 %

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

Дата активности Консольный раздел Прогресс
2021-07-17 solo C# набор 14 из 17 83 %
2021-07-15 task1 Лирика 7 из 14 50 %
2021-07-15 task2 Типы данных 4 из 5 80 %
2021-07-14 book 101. Математика 3 из 7 43 %
2021-07-11 book 100. Массивы все 8 100 %
2021-07-11 task2 Алгоритмика все 20 100 %
2021-07-08 task1 Строки все 14 100 %
2021-07-03 solo Java - Вывод данных 2 из 7 29 %
2021-07-02 solo Java - Запуск 10 из 13 77 %
2021-06-29 solo Java - Циклы все 2 100 %
2021-06-28 book 011. Циклы все 8 100 %
2021-06-19 olimp Олимпиада 1 из 40 3 %
2021-06-18 book 010. Условия все 8 100 %
2021-06-17 book 001. Числа все 8 100 %
2021-06-13 book 000. Строки все 8 100 %
2021-06-13 task1 Целые числа все 7 100 %
2021-06-11 task1 Семантика все 6 100 %
Итого: 130 из 192 68 %
Сохранить страницу:

29835. --
Daniyar Serjanovich
Daniyar Serjanovich
ответить
→  Azelka  # Демо игры / Бот для Быстрощёлка / 2021-07-13 19:30

Интересно однако!



31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Регулярные выражения / 2021-07-11 10:38

Я , так понимаю, класс Regex схож с классом String , только возможностей в этом классе больше, это целая глава для изучения


31374. --
Залимхан
Залимхан
ответить
→  Azelka  # Демо игры / Лабиринт 2D - меню / 2021-07-11 01:18

Отличная реализация поставленной задачи.
Выполнено отлично!


31196. --
Azelka
Azelka
ответить
→  Залимхан  # Демо софт / Вступительное слово / 2021-07-08 18:09

"Взять себя и заставить сделать все это." --Это сложно, но ещё сложнее это делать каждый день. Наберись терпения и скоро это покажется пустяком. Удачи!


31196. --
Azelka
Azelka
ответить
# Консоль / 100. Массивы / Инкремент / 2021-07-07 10:27

Запятые и точка сделали простую задачу интересной
        int n = int.Parse(Console.ReadLine());
            string[] num = Console.ReadLine().Split();
            int[] a = new int[n];
            string line = "";
            for (int i = 0; i < n; i++)
            {
                a[i] = int.Parse(num[i]);
                line += Convert.ToString(++a[i]) + ",";
            }
            Console.WriteLine(line.TrimEnd(',') + ".");


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / По цифрам / 2021-07-03 12:11

Мне показалось так проще:

            string num = Console.ReadLine();
            if ((num[0] + num[3]) == (num[1] + num[2]))
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }


2146. --
Иван
Иван
ответить
→  Azelka  # Демо софт / Двенадцать месяцев / 2021-07-01 20:57

Сделано своими руками - и это главное. В этом самое большое удовольствие!


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Последовательность / 2021-06-30 20:34

Автору задачи 5 звёзд! Задуматься заставил вопрос : как создать массив строк? Когда осознал, что строка и есть массив ( символов, слов, строк) и строки можно складывать, решение пришло сразу же:
            string s;
            string str = "";
            int sum = 0;

            while (str != (s =  Console.ReadLine()))
            {
                if (s == ".") break;
                str += s + " ";
            }
            str = str.TrimEnd(' ');
            string[] ai = str.Split();
            float[] bi = new float[ai.Length];

            for (int i = 0; i < ai.Length; i++)
            {
                sum += int.Parse(ai[i]);
                bi[i] = ((float)sum) / (i + 1);
                Console.WriteLine("{0:0.00}", bi[i]);
            }
Посмотрел видео-решение -в VS программа не прошла до конца, ошибка, да и вывод результата чередуется с вводом данных , не по условию.


31196. --
Azelka
Azelka
ответить
→  Dmitry Sinitsin  # Дневник успеха / 2020-10-11 : Кто любит труд, того люди чтут. / 2021-06-30 18:09

Не знаю , как оценить твою работу. На "хорошо" ты сделал мало , а  "плохо"  ты перевалил. Поставлю удовлетворительно, только кнопки такой нет, извини:)


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Точка и плоскость / 2021-06-28 18:20

Интересная программа. Пришлось вспомнить школьную программу. Возник вопрос : какие переменные нужно вводить для проверки сектора? Пришлось писать программу по нахождению координат точки окружности.


31196. --
Azelka
Azelka
ответить
# Консоль / 011. Циклы / Степень / 2021-06-27 09:23

Хорошая задача. Заставила подумать и найти решение к нулевой степени.
    string[] num = Console.ReadLine().Split();
            int x = int.Parse(num[0]);
            int y = int.Parse(num[1]);
            long step = 1;
            for (int i = 0; i < y; i++)
            {
                step *= x;
            }
            Console.WriteLine("{0}", step);


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Do-рацикл / 2021-06-26 19:37

Хорошая  задачка. Цикл do сам напрашивается на применение, когда тестируешь маленькие числа. Интересно, что тестирует Робот Шарп - унего 10 тестов?


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Вечность / 2021-06-24 18:07

что-то подобное раньше приходилось делать, так что, проблем не возникло
  int mes = int.Parse(Console.ReadLine());
            string poraGoda = "";
            switch (mes)
            {
                case 1:
                case 2: poraGoda = "der Winter"; break;
                case 3:
                case 4:
                case 5: poraGoda = "der Fruhling"; break;
                case 6:
                case 7:
                case 8: poraGoda = "der Sommer"; break;
                case 9:
                case 10:
                case 11: poraGoda = "der Herbst"; break;
                case 12: poraGoda = "der Winter"; break;

                default:
                    break;
            }
            Console.WriteLine("{0}", poraGoda);


31196. --
Azelka
Azelka
ответить
# Консоль / Java - Запуск / Скобки / 2021-06-24 16:47

какая каверзная задача, не получается скорость набрать, не думал , что так сложно будет


31196. --
Azelka
Azelka
ответить
→  Николай Денисов   / 2021-06-23 17:27

Привет! Изначально я положил папку с картинками к ехе файлу , но VS2019 не видит этой папки, а я не знаю как прописать, пробовал через
ресурсы , опять столкнулся маленьким багажом знаний. хотел прописывать полный путь через директорию, но это не отвечало условию урока,
и прописать полный путь остался единственным решением. Задумка программы интересная и я вернусь к  ней , просто в ней что-то не хватает.


9014. --
Николай Денисов
Николай Денисов
ответить
→  Azelka  # Демо софт / Двенадцать месяцев / 2021-06-23 08:31

Ну да полный путь прописывать сложновато, но зачем так издеватся? Надо было засунуть картинки в папку с исполняемым exe фаилом или положить картинки в ресурсы.  Полный путь к картинкам непозволит заустиьт программу на другом компютере, так что программа не уневирсальная. Требуется доработка.
Вцелом всё отлично, молодец отличная работа !!!


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Условный оператор / 2021-06-22 18:16

Интерсная задача . Немного напутал с длиной массива, понял ошибку и всё встало на свои места
          string a = Console.ReadLine();
            string b = Console.ReadLine();

            char aN = a[a.Length - 1];
            char bN = b[b.Length - 1];
            if (aN == bN)
            {
                Console.WriteLine("YES");
            }
            else
            {
                Console.WriteLine("NO");
            }


31196. --
Azelka
Azelka
ответить
# Консоль / Алгоритмика / Типы данных / 2021-06-21 20:42

Хорошая задачка! Семь потов сошло, пока понял, что точка(запятая) тоже считается знакоместом. Надо будет хорошенько разобрать в этом.
            double n = double.Parse(Console.ReadLine());
            Console.WriteLine("{0:0.00000}", n);
            Console.WriteLine("{0:000.00000}", n);
            Console.WriteLine("{0,9:0.00000}", n);


31196. --
Azelka
Azelka
ответить
# Консоль / Строки / Length / 2021-06-21 19:22

Не очень сложная задача, главное акуратно написать.


9014. --
Николай Денисов
Николай Денисов
ответить
→  Azelka  # Начало здесь / День №3. Безошибочное владение Клавиатурой. / 2021-06-20 11:04

Молодец, отличный результат!!! Так держать и результаны будут переходить в опыт программирования.  Занимаясь активным изучением программирования, незаметиш как станиш отличным и востребованным программистом.
Удачи, у тебя уже все получается !!!


31196. --
Azelka
Azelka
ответить
→  Всеволод   # Демо софт / Двенадцать месяцев / 2021-06-20 10:41

Ты хорошо справился с программой, молодец! У меня возникли такие же трудности, при написании этой программы. Спасибо за подсказку. Хотелось бы в новой версии написать эту программу. Штурмуй следующие ступени программирования!


9014. --
Николай Денисов
Николай Денисов
ответить
→  Azelka  # Начало здесь / День №2. Общение с Единомышленниками. / 2021-06-20 07:32

Молодец всегда спрашивай не стесняйся!!! Конкретно описывай свою проблему, чтобы тебе моги помочь.
Двигайся к своей цели не отступай и всеё у тебя получится .


31196. --
Azelka
Azelka
ответить
# Консоль / Олимпиада / Открытка в конверте / 2021-06-19 21:41

интерсная задачка
            string[] otkr = Console.ReadLine().Split();
            string[] pismo = Console.ReadLine().Split();
            int a, b, c, d;
            int.TryParse(otkr[0], out a);
            int.TryParse(otkr[1], out b);
            int.TryParse(pismo[0], out c);
            int.TryParse(pismo[1], out d);
            if (a < b)
            {
                int t = a;
                a = b;
                b = t;
            }
            if (c < d)
            {
                int t = c;
                c = d;
                d = t;
            }
            Console.WriteLine((c >= a & d >= b || d >= a) ? "True" : "False");
            Console.ReadLine();


31196. --
Azelka
Azelka
ответить
# Консоль / 011. Циклы / Делитель Макса / 2021-06-19 16:43

Странное отношение робота шарпа к тестам программы. Если использовать программу из видео-решения, где пользователь вводит число 1,
то результат будет 0, что неверно, а робот шарп оценивает 100%. Изменил программу вот так:
            ulong n = ulong.Parse(Console.ReadLine());
            ulong t;
            for ( t = n/2 ; t >= 0 ; t--)
            {
                if (n == 1)
                {
                    t = 1; break;}
                else if (n % t == 0) break;
            }
            Console.WriteLine(t);
чтобы, на ввод пользователя выводился результат 1. В итоге робот шарп ставит 100% , странно... Прихожу к выводу, что важное, в этой программе, правильно использовать оператор break.


31196. --
Azelka
Azelka
ответить
# Консоль / 010. Условия / Неделька / 2021-06-18 22:32

Не сложное задание
          int num = int.Parse(Console.ReadLine());
            switch (num)
            {
                case 1: Console.WriteLine("понедельник"); break;
                case 2: Console.WriteLine("вторник"); break;
                case 3: Console.WriteLine("среда"); break;
                case 4: Console.WriteLine("четверг"); break;
                case 5: Console.WriteLine("пятница"); break;
                case 6: Console.WriteLine("суббота"); break;
                case 7: Console.WriteLine("воскресенье"); break;
                default:
                    break;
            }


31196. --
Azelka
Azelka
ответить
# Консоль / 010. Условия / Минимальное расстояние / 2021-06-17 21:41

string[] num = Console.ReadLine().Split();
            long a = long.Parse(num[0]) - long.Parse(num[1]);
            a = (a>0)? a: -a;
            long b = long.Parse(num[1]) - long.Parse(num[2]);
            b = (b > 0) ? b : -b;
            long c = long.Parse(num[2]) - long.Parse(num[3]);
            c = (c > 0) ? c : -c;
            long d = long.Parse(num[3]) - long.Parse(num[0]);
            d = (d > 0) ? d : -d;
            long min = a;
            if (min > b ) min = b ;
            if (min > c ) min = c;
            if (min > d ) min = d;
            Console.WriteLine(min);


31196. --
Azelka
Azelka
ответить
→  Харитонов Данил  # Начало здесь / День №1. Создание микро-Привычки. / 2021-06-15 17:55

Для создания микро-привычки это хорошо, но чтобы стать программистом этого мало. Пиши программы, решай задачки, изучай программы 
написанные другими людьми. Это будут твоими следующими микро-привычками. Главное - писать программы каждый день, тогда и результат
не заставит себя ждать. И пожелаю тебе удачи!


31196. --
Azelka
Azelka
ответить
# Консоль / 001. Числа / Цифробайты / 2021-06-14 21:54

Интересно, как долго медитирует робот шарп?


31196. --
Azelka
Azelka
ответить
# Консоль / 001. Числа / Чтение / 2021-06-14 18:43

Так получилось)
  {
            long num1 = Convert.ToInt64(Console.ReadLine());
            long num2 = long.Parse(Console.ReadLine());
            long num3;
            long.TryParse(Console.ReadLine(), out num3);
            Console.WriteLine("{0} {1} {2}", num1 + 1, num2 + 1, num3 + 1); 
    }


31196. --
Azelka
Azelka
ответить
→  Tim  # Консоль / Целые числа / Пять чисел / 2021-06-13 18:55

По условию: нужно сложить 5 целых чисел, а цикл foreach перебирает все числа. Лучше использовать for , с пятью циклами
            string[] num = Console.ReadLine().Split();
            long sum = 0;
            for (int i = 0; i < 5; i++)
            {
                sum += Convert.ToInt64(num[i]);
            }
            Console.WriteLine(sum);


31196. --
Azelka
Azelka
ответить
# Консоль / 000. Строки / Пробелы / 2021-06-13 13:58

Задание очень простое, но !!! 3 ошибки !!!
Читайте внимательно условие задания!!!
            string text = Console.ReadLine();
            string tx = text.Trim('[', ']');
            string strStart = tx.TrimStart();
            string strEnd = tx.TrimEnd();
            string str = tx.Trim();


            Console.WriteLine('[' + strStart + ']');
            Console.WriteLine('[' + strEnd + ']');
            Console.WriteLine('[' + str +']');


31196. --
Azelka
Azelka
ответить
# Консоль / Семантика / Китайская стена / 2021-06-11 22:08

Не знал, подсмотрел(


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

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

Формулист За сегодня За неделю
Разминка Обучение Бонусы Сумма
1 KF Tom 30514 5 25 5 40 240
2 -- Николай Денисов 9014 5 15 5 25 150
3 -- Tim 30187 115
4 -- MaxB 25450 84
5 -- Посетитель 0 5 5 30
6 -- Arthur 32368 5 5 25
7 -- Timoha 9980 10 10 20
8 -- Владимир 31464 20
9 -- Валерий Жданов 791 5 5 17
10 -- ALEX IMAGO 32614 15
11 KF Yefim 11589 10
12 -- Alex Imago 31279 5 1 6 6
13 -- Григорий 3850 6
14 -- Иван 2146 5
15 -- Ivan 32515 5
16 -- Андрей 32607 5
17 -- Alina 31513 2
18 -- Павел 21605 1 1 1
19 -- ростислав 32733 1 1 1
20 -- Dmitry Sinitsin 17947 1
21 -- Татьяна 31024 1
22 -- Мария 32679 1
23 -- Airat 32686 1
24 -- Дмитриев Максим 32692 1
25 -- Alisher 32693 1
26 -- Андрей 32694 1
27 -- Yan 32697 1
28 -- artyr 32699 1
29 -- valeryao 32700 1
30 -- Abdulla 32701 1
31 -- Gennadiy 32708 1
32 -- Никита 32709 1
33 -- Александр 32713 1
34 -- Владимир 32714 1
35 -- Danil 32715 1
36 -- Нурсултан 32717 1
37 -- Madara 32718 1
38 -- Cacka 32719 1
39 -- Ростислав 32724 1
40 -- Сергей 32725 1

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

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

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

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

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

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





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

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

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

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


Научился: Узнал про новые элементы панели TabelLayoutPanel и TrackBar, применили библиотеку DllImport.
Трудности: Не понятно , что за библиотеку мы подключили, понял -- мы взяли данные для мышки из этой библиотеке



Научился: Программа получилась интересной! Столько нового! 1.Работа с несколькими формами, взаимодействие форм 2. Применение звуковых файлов с помощью SoundPlayer 3.Применение элемента label в роли декора( стен , ключей , вход, выход) 4.Узнал новое событие .Shown 5.Новый элемент timer 6. Учусь (так будет правильней) отлаживать программу
Трудности: Самым трудным , есть и пока остаётся, отладка программы. Создал третий уровень игры, описал события как в уроке, запускаю игру, после прохождения первого уровня переход происходит сразу на третий, выхожу в меню и начинаю проходить сначала -- всё работает. В чём причина не разобрался((