Си шарп видео уроки

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

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

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE CLASS - Кошка и Собака без видео
5 тестов
62 чел. ★ 4.9 Done
  На этом уроке мы создадим в одном файле сразу три класса.
Основной публичный класс Animals и два внутренних класса - Cat и Dog.
У кошек и собак будет один метод "голос" - voice.
Отчёт отправил: 13417. Chip Выполнено за 35 мин. [Показать отчёт]
Научился: Решил немного подурачиться, написать ООП программу на языке Си и посмотреть что в итоге получится. Выполнил задание по уроку, создал "классы" Cat и Dog, добавил в каждый из них метод voice. Вывод программы на экран аналогичен по заданию. 
2 CLASS - Каждой тваре по файлу без видео
2 теста
57 чел. ★ 5 Done
  Размещать все классы в одном файле - не дальновидное решение.
В этом случае только внутри этого класса можно ими воспользоваться.
Более правильный подход - размещение каждого класса в отдельном файле.
Тогда ими можно воспользоваться откуда угодно.


Отчёт отправил: 13417. Chip Выполнено за 22 мин. [Показать отчёт]
Научился: Повторил как создавать заголовочный файл, компилировать файлы. Выполнил задание по уроку, сначала скомпилировал файлы по отдельности, потом собрал исполняемый файл. Затем сразу из исходников собрал исполняемый файл. 
3 CLASS - Кошкин дом без видео
2 теста
55 чел. ★ 5 Done
  На этом уроке мы продемонстрируем, что мы в самом деле можем воспользоваться созданными на прошлом уроке классами, которые хранятся в отдельных файлах.

Для этого мы создадим "Кошкин дом" для кошек и "Собачкин дом" для собак.

Обратите внимание, что при компиляции кошкиного дома - кото-класс компилируется, а собако-класс нет.
Отчёт отправил: 13417. Chip Выполнено за 21 мин. [Показать отчёт]
Научился: Создал кошкин дом и собачкин дом. Кошкин дом "не зависит" от собак, а собачкин дом от котов. В моём случае нужно явно указывать компилятору какие файлы компилировать, поэтому феерическая магия по поиску файлов как в Java не сработала :) 
4 CLASS - Пакеты для зверей без видео
3 теста
53 чел. ★ 5 Done
  На этом уроке мы пропишем всех зверей в отдельную папку animal.
Для подключения этих классов нужно будет указать полное имя пакета.
Разместите все файлы по каталогам, откомпилируйте и запустите нашу программу.

Важно! Название пакета должно совпадать с названием папки!
Отчёт отправил: 13417. Chip Выполнено за 25 мин. [Показать отчёт]
Научился: Создал папку animal, перенёс в неё зверей. В моём случае нет пакетов, всё гораздо примитивнее, нужно явно указывать файлы для компиляции и пути поиска. Процесс можно автоматизировать, но я пока что всё делаю вручную и следую пути курса :) 
5 CLASS - Красная книга без видео
3 теста
51 чел. ★ 5 Done
  Попробуйте сохранить созданную программу на флешку и запустить её оттуда.
Для этого вам придётся скопировать не только файл с запускаемым классом - Animal.class,
но также и папку Animal со всеми зверинными файлами-классами.

Сделайте это!

Отчёт отправил: 13417. Chip Выполнено за 1 час. 50 мин. [Показать отчёт]
Научился: В этом уроке я научился создавать jar-архив, делать его запускаемым. Проверил работу программы, скопировав jar-файл в другую директорию. Аналогично выполнил решения для Си. Для создания архива использовал утилиту ar. Правда в этом случае архив не является самозапускаемым, поэтому файлы кота и собаки ушли в архив, а animal статически линкуется к этом архиву и содержит main-функцию, в результате чего получается исполняемое приложение, как в случае с Java. 
6 CLASS - Зоопарк без видео
49 чел. ★ 5 Done
  По аналогии с предыдущими уроками создайте
несколько классов и разместите их в иерархии пакетов/папок.

animal.Cat - животные - кошка
animal.Dog - животные - собака
fish.Carp - рыбы - карп
fish.Ling - рыбы - щука
bird.poultry.Chicken - домашние птицы - курица
bird.poultry.Hen - домашние птицы - петух
bird.prey.Eagle - хищные птицы - орёл
bird.prey.Kite - хищные птицы - коршун
* Обратите внимание, что имена пакетов принято записывать в единственном числе.

Придумайте, как каждая из них говорит,
организуйте зоопарк из всех животных, рыб и птиц,
сархивируйте все классы в один файл,
запустите его с флешки.
Отчёт отправил: 13417. Chip Выполнено за 56 мин. [Показать отчёт]
Научился: Научился вкладывать один пакет в другой, повторил как создавать jar-архивы. Выполнил аналогичные действия для Си. P.S. Трудно представить, как разговаривает орёл или щука, поэтому я для новых зверей просто вывел факт их "голоса" :) 
7 CLASS - Звериное наследство без видео
3 теста
52 чел. ★ 5 Done
  В этом уроке мы познакомимся с понятием ООП - "Наследование".
Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).

Отчёт отправил: 13417. Chip Выполнено за 47 мин. [Показать отчёт]
Научился: Написал Java-код, скомпилировал, запустил. Аналогично создал Си-код, в котором есть схожая реализация Java-кода. 
8 CLASS - Три заветных слова 00:17:36
3 теста
37 чел. ★ 5 Done
  На этой видеолекции я предоставлю свой взгляд на ООП - что это такое, зачем это нужно и как этим пользоваться.
Отчёт отправил: 13417. Chip Выполнено за 1 час. 50 мин. [Показать отчёт]
Научился: Повторил как наследовать классы в Java, создавать поля и методы в базовом классе и использовать их в наследнике. В методе voice кроме голоса добавил вывод клички животного. Аналогично создал Си-код со схожей функциональностью Java-кода. Наследование - это создание нового класса на базе другого класса. 
9 CLASS - Общий голос без видео
3 теста
49 чел. ★ 4.9 Done
  Научим зверей издавать звуки.
Для этого в родительском классе Animal создадим функцию voice().

Но каждый зверь говорит своим голосом, как это реализовать?

Создадим переменную String word - как говорит зверь.
Останется в конструкторе каждой зверушки вписать - как именно она разговаривает.

Как видете, звери умеют подовать голос, хотя эта функция в их классах не описана.
Используется функция из родительского класса.
Отчёт отправил: 13417. Chip Выполнено за 17 мин. [Показать отчёт]
Научился: Повторил как создавать базовый и производный классы, инициализировать переменную в базовом классе из конструктора производного класса. 
10 CLASS - Модификаторы доступа 00:06:44
3 теста
40 чел. ★ 5 Done
  На этом уроке мы поговорим о модификаторах доступа
Отчёт отправил: 13417. Chip Выполнено за 10 мин. [Показать отчёт]
Научился: Познакомился с модификаторами доступа к полям и методам в языке Java. Если модификатор не указан, то считается, что модификатор доступа package. 
11 CLASS - Подготовка к зачёту - Вспомним дроби без видео
48 чел. ★ 4.9 Done
  Решить четыре примера с дробями.
Решать на бумаге или в паинте, подробно расписать каждое действие.
Ответы должны быть видны на картинке.
В комментарии написать, какие поля и методы нужны
для класса Fraction, который будет работать с дробями.

Как работать с дробями: http://math-prosto.ru/?page=pages/drob/drob4.php
Отчёт отправил: 13417. Chip Выполнено за 32 мин. [Показать отчёт]
Научился: Вспомнил школьную математику, прорешал примеры по заданию. Для класса Fraction нужны два поля: числитель и знаменатель. Можно добавить третье поле - целое число дроби. Методы: суммирования, вычитания, умножения и деления дробей. 
12 CLASS - Зачётная задача № 1 00:20:41
3 теста
45 чел. ★ 5 Done
  Создать класс Fraction.
Добавить в него два поля: nominator / denominator.
Создать конструктор с двумя параметрами для инициализации дроби.
Добавить методы для увеличения, уменьшения, домножения и деления исходной дроби на другую дробь.
Создать две дроби, выполнить с ними все действия, вывести результат на экран (из основной программы).
* Написать метод для упрощения дроби (поделить числитель и знаменатель на их НОД).

Отчёт отправил: 13417. Chip Выполнено за 1 час. 47 мин. [Показать отчёт]
Научился: Написал класс Fraction, создал в нём конструктор, методы сложения, вычитания, умножения и деления дробей. Добавил метод simplify для упрощения дроби. Проверил работу программы на примерах из предыдущего урока. Добавил свой пример, в котором проверяется работа метода simplify. Написал "аналогичную" программу на Си, проверил на тех же примерах. В программе на Си немного сжульничал, не хочу возиться с кучей там где без неё можно обойтись, поэтому новые дроби создаю на стеке поверх старых. В Java, насколько я понимаю, каждая новая дробь создаётся в куче, а перезаписывается только ссылка, добрый сборщик мусора сам приберёт недоступные объекты :) 
13 CLASS - Зачётная задача № 2 00:14:14
1 тест
38 чел. ★ 4.9 Done
  Создайте класс FractionRW, унаследуйте его от Fraction.
Создайте конструктор, который принимает числитель и знаменатель,
в нём необходимо вызывать конструктор родительского класса.
Добавьте в него методы для ввода дроби с клавиатуры и для её вывода на экран.
Создайте конструктор без параметров, который запрашивает ввод дроби с клавиатуры.
Перепишите программу из прошлого урока с этим классом.

Внимание! Метод super() должен вызываться в начале конструктора.

Отчёт отправил: 13417. Chip Выполнено за 3 час. 5 мин. [Показать отчёт]
Научился: Создал класс FractionRW на базе классе Fraction. Добавил в него методы read и write. Реализовал вывод дроби в три строчки. Написал программу, которая спрашивает пользователя ввести дроби для выполнения сложения, вычитания, умножения и деления. Аналогично, создал схожую программу на языке Си.  
Видеообзор: I0k-jFbviDk
14 CLASS - VIP - Крутятся пластинки без видео
1 тест
38 чел. ★ 5 Done
  На этом уроке мы научимся воспроизводить музыкальные файлы на языке Java.
Для начала необходимо выбрать и скачать пару музыкальных файлов в формате WAV.
Это можно сделать на сайте: http://freewavesamples.com/
Музыкальные файлы необходимо разместить в корневой папке вашего проекта.

Далее - написать программу для их воспроизведения и проверить её работу.
Отчёт отправил: 13417. Chip Выполнено за 3 час. 23 мин. [Показать отчёт]
Научился: В этом уроке я научился воспроизводить музыкальные файлы с помощью языка Java. Скачал 2 wav-файла с предложенного сайта, переписал программу с картинки к уроку, всё сразу заработало :) Потом приступил к программе на Си. В арсенале стандартной библиотеки нет возможности производить музыкальные файлы, в системных вызовах тоже нет. Остается выбор среди пользовательских библиотек. Раньше я использовал библиотеку PulseAudio, но она довольно-таки низкоуровневая. В уроке английские карточки я использовал libvlc для воспроизведения звука и видео. Сейчас решил попробовать что-то новенькое. Остановился на игровой библиотеке SDL2, там есть работа со звуком. Написал аналогичную программу на Си и для демонстрации вывода звука записал видео. 
Видеообзор: HZ6o-yhrjRQ
15 CLASS2 - Человекостудент без видео
1 тест
37 чел. ★ 4.9 Done
  Начнём знакомство с наследованием.

Чтобы узнать, кто кого наследует, задавайте себе вопросы:
человек это студент?
студент это человек?

При положительных ответах используйте наследование - пишите extends

Наберите программу, откомпилируйте и запустите.
Отчёт отправил: 13417. Chip Выполнено за 13 мин. [Показать отчёт]
Научился: Студент - это человек. Переписал программу с картинки к уроку, указал extends в объявлении класса Student. Перенёс классы внутрь класса Program, возникла ошибка чего-то там со статиками. Создал объект класса Program, добавил нестатичный метод doit, перенёс в него весь код. 
16 CLASS2 - Европейская Прибалтика без видео
1 тест
34 чел. ★ 5 Done
  Пропишите наследование среди указанных классов.
Создайте экземпляр каждой страны.
class Lithuania {}
class Latvia {}
class Estonia {}
class Europe {}
class Country {}
class Baltic {}

* Объявите один класс абстрактным.
Отчёт отправил: 13417. Chip Выполнено за 26 мин. [Показать отчёт]
Научился: На мой взгляд, нет смысла создавать классы Lithuania, Latvia, Estonia - это просто объекты, экземпляры класса Country. А классы Baltic и Europe - это обычные контейнеры, в которых хранится список объектов класса Country. Но по заданию требуется сделать нечто иное, использовать наследование, возможно даже среди всех классов :D Поэтому нашёл какое-то странное среднее решение, учитывая все задания со звёздочками. На первой картинке иерархия, на второй - факт того, что программа компилируется и запускается. 
17 CLASS2 - Напиток Наследника без видео
1 тест
33 чел. ★ 5 Done
  Проставьте правильно наследование в следующих классах.
Создайте некоторые классы абстрактными.
В остальных классах сделайте метод toString(), который вернёт название напитка.
Создайте экземпляры популярных напитков и отобразите их на экране.
Нарисуйте диаграму наследования классов.
Отчёт отправил: 13417. Chip Выполнено за 34 мин. [Показать отчёт]
Научился: Проставил наследование среди указанных классов, надеюсь, я правильно уловил идею Евгения Витольдовича. Нарисовал диаграмму на сайте draw.io. Я не нашел специального блока для абстрактного класса. Позже узнал, что для отображения абстрактного класса используется блок обычного класса, но имя класса пишется курсивом. Век живи - век учись :) 
18 CLASS2 - Песец Членистоногий без видео
28 чел. ★ 5 Done
  На этом уроке мы вспомним Биологию.
Оказывается классы в языке Java можно называть по-русски.
Создайте 39 классов, используя наследование по схеме.
Определите, какие из них должны быть абстрактными.
Имена классов ПИШИТЕ РУССКИМИ БУКВАМИ.
Откройте дерево наследований классов, комбинация клавиш Ctrl-T.
public class Animals 
{
   public static void main(String[] args)
   {
       Грызуны a = new Грызуны();
       System.out.println(a);
   }
}

class Грызуны extends Млекопитающие
{}

...

Отчёт отправил: 13417. Chip Выполнено за 59 мин. [Показать отчёт]
Научился: Попал на урок биологии, узнал, что лисицы оказывается чем-то связаны с собаками и волками. Создал иерархию наследования из 39 классов, практически все сделал абстрактными, кроме тех классов, которые указаны в разделе Вид. 
  Итого:   18 видеоуроков 59 мин.
35 тестов
24 чел. ★ 4.98  
  Финалисты:   Vladimir Fedotov,   Новопашин Владимир,   Michail Ostryj,   Tekashnik,   Vladimir Falejev,   Алексей В.,   Александр Заскотченко,   Jevgenij Kariagin,   Иван Воронин,   Erik Obuchovič,   Сергей Соколов,   Zulchumor Kurbonova,   Станислав,   Сергей,   Максим Лапшинов,   Andrej Petrunev,   Володимир,   Chip,   Dmitry Sinitsin,   Слава,   Andrew,   Anatoli,   Yefim,   Tom .

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





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

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

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

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


Научился: Научился реализовывать наследуемый метод.
Вообще удивительно - получается, что методы по умолчанию имеют свойство protected.


Научился: Создал класс дроби Frac, добавил в него два поля для числителя и знаменателя. Добавил методы для сложения, вычитания, умножения и деления дробей.