Скачать "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА"

Скачайте это видео через UDL Client
Скачатьarrow down icon
  • Видео mp4 HD+ со звуком
  • Mp3 в максимальном качестве
  • Файлы любого размера
"videoThumbnail C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА
play-icon
Оглавление
|

Оглавление

0:00
Предисловие от Романа Сакутина
2:27
Введение в программирование
5:15
Установка Visual Studio бесплатно
9:50
Переменные в сишарп
19:40
Как правильно именовать переменные в сишарп
21:00
Арифметические операторы в сишарп
29:30
Логические операторы в сишарп
32:30
Конкатенация в сишарп
35:28
Интерполяция в сишарп
40:24
Конвертация типов в сишарп
44:20
Действия с консоль на языке сишарп
52:23
Инкремент и декремент в Сишарп
56:58
Практическая задача "Систему урона" на сишарп
1:06:31
Оператор If в CSharp
1:16:39
Логическое И и ИЛИ в сишарп
1:23:55
Условный оператор Switch в сишарп
1:31:31
Практика условных операторов в сишарп
1:43:10
Циклы в сишарп - while
1:47:50
Циклы в сишарп - for
1:55:27
Практика циклов в сишарп
2:08:55
Генератор случайных чисел (Random) в сишарп
2:11:30
Создание игры "Угадай число"
2:21:05
Создание игры "Гладиаторские бои"
2:31:05
Хитрости работы с консолью
2:39:17
Одномерные массивы в сишарп
2:50:52
Практика работы с массивами в сишарп
3:17:07
Многомерные массивы в сишарп
3:32:13
Практика работы с многомерными массивами в сишарп
3:48:26
Ссылочные типы в сишарп
3:56:42
Как увеличить массив в сишарп?
4:00:35
Создание консольные игры "Бродилка" на сишарп
4:13:32
Строка - ЭТО МАССИВ?
4:14:20
Цикл Foreach в сишарп
4:17:02
Функции в сишарп
4:25:17
Возврат значений и return в сишарп
4:27:57
Необязательные параметры
4:32:11
Ref и out в CSharp
4:43:55
Перегрузка
4:48:24
Практика "Healthbar"
4:54:14
Роман Сакутин "Делаем Pacman в консоли на C#"
5:31:01
Коллекция List в сишарп
5:38:04
Queue или очередь, FIFO коллекция в сишарп
5:42:19
Stack FILO коллекция в сишарп
5:44:55
Dictionary или словарь в сишарп
5:52:36
Что такое ООП?
5:53:58
Отношения в объектно ориентированном программирование
5:56:38
Типизация в ООП
6:01:24
Абстракция (Полиморфизм) в сишарп
6:02:08
Классы и объекты в сишарп
6:05:53
Поля и модификаторы доступа в сишарп
6:12:16
Методы в сишарп
6:18:12
Конструкторы в сишарп
6:25:00
Практика ООП "Программа для администратора кафе"
6:34:41
Связь Has-a в языке сишарп
6:40:31
Связь Is-a в языке сишарп
6:52:26
Свойства в сишарп
7:00:21
Это ломает вашу инкапсуляцию!
7:06:28
Практика ООП "Бой героев"
7:17:05
Виртуальные методы
7:22:36
Паттерн "Цикл обновления"
7:24:49
Интерфейсы в сишарп
7:28:04
Абстрактные классы в сишарп
7:32:34
Статические члены и классы
7:35:56
Распространённые проблемы static
7:38:35
Статичеческий конструктор в сишарп
7:41:49
СТАТИКА ЭТО ПЛОХО
7:44:00
Структура VS Класс
7:48:14
Ошибка при работе со структурой
7:52:25
Практика ООП "Симулятор компьютерного клуба"
8:27:16
Роман Сакутин "Явное и неявное преобразование типов в C#"
8:33:20
Upcasting и Downcasting в сишарп
8:43:41
Преобразование объектов с помощью is и as
8:48:23
Pattern Matching в сишарп
8:51:05
enum - что за тип данных в сишарп?
8:56:15
Введение в LINQ
9:03:31
Методы расширения LINQ
Теги видео
|

Теги видео

айти
код
компьютер
сишарп
гоша дударь
хауди хо
программирование
visual studio
переменная
метод
функция
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
дорогие россияне в этом видео вы не
00:00:02
увидите новогоднего поздравления но
00:00:03
увидите новогодний подарок сразу после
00:00:06
минутки которую я попрошу вас мне
00:00:08
уделить вы найдёте гигантский гигантский
00:00:11
курс по СИ шарпу который был раньше
00:00:13
платным А сейчас мы решили выложить его
00:00:15
бесплатно на Ютюбе чтобы каждый мог
00:00:17
ознакомиться с хорошим материалом не со
00:00:20
всеми этими инфо циганских бредни или
00:00:22
хренью от различных блогеров а
00:00:23
действительно с профессиональным
00:00:25
материалом и мы продолжим эту тенденцию
00:00:27
конечно же если вы поддержите нас лайком
00:00:29
подпиской
00:00:30
разол это видео друзьям и оно наберёт
00:00:32
много просмотров мы продолжим эту
00:00:33
тенденцию и выложим большой курс по
00:00:35
Юнити большой курс по архитектуре В
00:00:38
разработке игр и много других материалов
00:00:41
конечно же не стоит забывать что мы
00:00:42
школа и мы хотим на этом зарабатывать
00:00:45
материал мы выкладываем бесплатно и с
00:00:46
этого к сожалению не заработаем если мы
00:00:48
Прикрепи ссылку на донаты Или Вы
00:00:50
посмотрите рекламу в этом видео которую
00:00:51
на юбе К сожалению в России нет А мы не
00:00:54
сможем окупить весь этот продакшн
00:00:56
поэтому мы решили сделать важное
00:00:58
действие в нашей компании мы больше не
00:01:00
продаём курсы мы не занимаемся продажей
00:01:03
видео Там домашек и так далее Теперь мы
00:01:05
занимаемся только обучением мы сервисная
00:01:08
компания все наши курсы теперь будут
00:01:10
проходить в индивидуальном формате это
00:01:12
означает записывая на них вы получаете
00:01:14
индивидуальную команду менторов и
00:01:16
гарантию определённого результата и
00:01:18
собственно это видео подтверждение наших
00:01:21
намерений Вы действительно теперь
00:01:23
бесплатно можете посмотреть весь наш
00:01:24
материал мы его не скрываем и мы его не
00:01:26
продаём он действительно есть в
00:01:27
интернете в книжках и так далее мы не мы
00:01:29
мы мы не из этих Если вы хотите
00:01:32
поддержать нашу школу или пройти этот
00:01:33
материал с индивидуальным ментором потом
00:01:35
попасть в специальную программу пыточной
00:01:37
которую ведут сотрудники нашей студии и
00:01:39
вместе с вами делают ваш выпускной
00:01:41
проект переходите по ссылке в описании
00:01:43
Скажите менеджеру что вы с этого видео и
00:01:45
получите скидочку от 10 до 20%
00:01:48
собственно на этом и всё мне сказать
00:01:50
больше нечего приступайте к просмотру
00:01:52
изучайте программирование становитесь
00:01:53
востребованным специалистом и
00:01:55
зарабатывать на этом деньги это самое
00:01:56
главное а если хотите пройти этот
00:01:58
материал в индивидуальном с
00:02:00
индивидуальным ментором с нашими чарами
00:02:02
которые помогут вам подготовиться к
00:02:04
трудоустройству и к собеседования с
00:02:06
хорошим выпускным проектом полноценной
00:02:08
игрой тогда переходите по ссылке в
00:02:09
описании и записывайтесь на этом всё
00:02:12
передаю Слово нашим коллегам которые
00:02:14
зачитаю для вас полноценный курс по СИ
00:02:16
шарпу в котором я тоже буду
00:02:17
присутствовать но к сожалению не в таком
00:02:19
большом объёме Как мне хотелось бы но
00:02:21
при этом это всё ещё высококлассный
00:02:23
материал который я лично от смотрел и
00:02:24
который соответствует определённому
00:02:26
качеству Всем привет дорогие друзья рад
00:02:29
Приве
00:02:30
вас на нашем курсе CSP и Меня зовут
00:02:33
Валентин Кравченко в ближайшее время
00:02:35
именно я буду работать с вами над
00:02:38
изучением этого языка начнём с самых
00:02:40
Азов Что такое программа программа - это
00:02:43
набор поэтапно расположенных команд
00:02:46
позволяющих нашему компьютеру выполнять
00:02:48
поставленную задачу компьютер может
00:02:51
выполнять абсолютно различные задачи это
00:02:54
и обработка слов и рисование и отправка
00:02:56
сообщений а также наши с вами любимые
00:02:59
игры программы пишутся на одном из
00:03:01
многих языков программирования И один из
00:03:04
них мы с вами начинаем изучать и
00:03:05
программировать мы будем на языке CSP
00:03:08
CSP - это компилируемый язык а для чего
00:03:11
же нам нужна компиляция исходный файл -
00:03:13
это файл с расширением cs cs Это всего
00:03:16
лишь наш код и его невозможно
00:03:18
воспринимать как программу поэтому
00:03:20
исходный файл требуется скомпилировать в
00:03:23
исполняемый файл с расширением CS - это
00:03:26
просто файл в котором мы написали свой
00:03:27
код для компьютера это текст и он его не
00:03:30
понимает компиляции называют процесс
00:03:32
преобразования исходной программы
00:03:34
написанной на одном из языков высокого
00:03:36
уровня в исполняемую программу
00:03:39
написанную на языке низкого уровня
00:03:42
например assembler возникает логичный
00:03:44
вопрос может нам всё писать на
00:03:46
ассемблере и всё будет быстрее работать
00:03:48
нет есть одна загвоздка ассемблер очень
00:03:51
сложен и даже обычная операция умножения
00:03:54
будет длина в описании и сложна в
00:03:56
понимании по сути можно сказать что
00:03:58
языки высокого уровня были разработаны
00:04:00
для удобства программистов и для
00:04:02
быстроты разработки CSP компилятор не
00:04:05
встроен сам компилятор работает в рамках
00:04:07
экосистемы dnet в ней есть огромные
00:04:09
библиотеки промежуточные языки и сам
00:04:12
компилятор так как же нам
00:04:13
воспользоваться этой экосистемой и где
00:04:16
мы будем писать код делать мы это будем
00:04:18
в Visual Studio Visual Studio - это IDE
00:04:22
или интегрированная среда разработки тут
00:04:25
есть и редактор для набора кода и сам
00:04:27
компилятор на данный момент Студио Для
00:04:30
нас - это текстовый редактор который
00:04:32
позволяет удобно управлять нашим
00:04:34
проектом и легко запускать нашу
00:04:36
программу для продолжения нам следует
00:04:38
разобраться с понятием императивного
00:04:40
программирования под императивным
00:04:42
программированием понимается стиль
00:04:44
программирования при котором мы
00:04:45
описываем как добиться желаемого
00:04:47
результата Это значит что мы будем
00:04:49
писать инструкции которые будут
00:04:51
выполняться последовательно к примеру
00:04:53
возьмём ситуацию из жизни простенькую мы
00:04:56
хотим сделать яичницу мы пишем
00:04:59
инструкцию возьми сковородку поставь на
00:05:02
плиту Зажги плиту налей масло возьми
00:05:05
яйцо нанеси удар ножом вылез
00:05:10
содержимых белок именно так Шаг за шагом
00:05:13
мы будем писать наши программы чтобы нам
00:05:16
начать уже разрабатывать Visual Studio
00:05:18
нам надо её скачать и
00:05:20
установить в Гугле вбиваем Visual Studio
00:05:23
и первая ссылка ведёт нас на официальный
00:05:26
сайт и вот мы видим сайт интегрированной
00:05:30
среды разработки здесь мы качаем Visual
00:05:32
Studio Community 2019 и она перекидывает
00:05:36
нас на новую страницу Здесь начинается
00:05:39
загрузка открываем файл перед началом
00:05:42
необходимо кое-что настроить чтобы
00:05:44
установка прошла успешно он на самом
00:05:47
деле докачивает себе определённое
00:05:49
обновление и после того как он обновится
00:05:51
нам будет доступен полный функционал А
00:05:53
пока немножко подождём теперь нам надо
00:05:55
установить Visual Studio Community
00:05:58
2022 так Как у вас ничего нет перед вами
00:06:01
откроется вот такое вот окошко нам надо
00:06:04
выбрать что установить в рамках курса
00:06:06
нам понадобится следующие компоненты
00:06:08
asp.net и разработка веб-приложений
00:06:11
разработка классических приложений dnet
00:06:15
и разработка игр с помощью Unity
00:06:18
языковые пакеты Какие Вам нравятся и
00:06:21
расположение установки - это где будет
00:06:23
находиться ваша Visual Studio Community
00:06:26
далее можно нажать кнопку установить
00:06:28
подождём пока Загрузи Visual stud
00:06:30
Community и
00:06:32
установится и мы можем приступать к
00:06:34
работе Visual Studio давайте сейчас в
00:06:37
него перейдём и попытаемся создать
00:06:39
какой-то консольный проект мы нажимаем
00:06:41
кнопку создание проекта в окне поиска
00:06:44
вбиваем консольное приложение и выбираем
00:06:47
консольное приложение dnet жмём далее
00:06:49
вводим название проекта выбираем путь
00:06:52
Где наш проект будет храниться Вы можете
00:06:54
нажать создать Но для тех у кого уже
00:06:57
была установлена Visual Studio у вас
00:06:59
этого консольного проекта может и не
00:07:02
быть в этом случае Вы можете либо
00:07:04
переустановить Visual Studio либо
00:07:06
добавить новое компоненты для того чтобы
00:07:08
их добавить Вам нужно открыть Visual
00:07:11
Studio любым образом к примеру просто
00:07:13
продолжить без
00:07:18
кода здесь мы выбираем средство получить
00:07:22
средства и компоненты и в общем-то нас
00:07:26
перебрасывает обратно в установщик и
00:07:29
здесь Если у вас нету разработки
00:07:31
классических приложений net Вам следует
00:07:34
выбрать этот пункт и до грузить нужный
00:07:37
вам компонент а также загрузить
00:07:39
компоненты которые мы рассмотрели ранее
00:07:41
и всё у вас будет хороо И теперь закроем
00:07:45
инсталлятор снова выберем файл создать
00:07:48
проект в окне поиска вдм консольное
00:07:52
приложение и выберем консольное
00:07:55
приложение снова зададим название путь у
00:07:58
меня уже выбран
00:07:59
жмём создать Мы с вами уже создали свой
00:08:03
проект и перед нами Вот такой шаблон
00:08:05
есть в котором мы можем писать возникает
00:08:07
вопрос Где нам собственно писать код
00:08:10
программа вообще у нас всегда начинается
00:08:12
с одной точки и эту точку называют
00:08:15
точкой входа в нашем случае сейчас это
00:08:17
блок Main когда мы запускаем программу
00:08:20
именно оттуда начинается выполнение всех
00:08:23
наших команд То есть пока что мы с вами
00:08:25
весь код пишем вот в этом блоке Main
00:08:27
между этими фигурными скобками и только
00:08:29
там чуть позже Конечно мы будем писать
00:08:31
не только в блоке Main но пока что мы
00:08:33
ограничимся именно этим Давайте по
00:08:35
традиции выведем в консоль какое-то
00:08:37
сообщение чтобы вывести какое-то
00:08:39
сообщение в консоль мы пишем conso
00:08:42
оператор точка wr L круглые скобки и
00:08:46
ставим двойные кавычки кстати говоря
00:08:48
двойные кавычки обозначают строку но об
00:08:50
этом чуть попозже а сейчас напишем
00:08:52
какое-нибудь сообщение Привет мир точка
00:08:55
с запятой и теперь нам надо запустить
00:08:57
нашу программу мы можем нажать ть пуск
00:09:00
или клавишу F5
00:09:03
и консоль открылась и закрылась нас это
00:09:06
конечно же не устраивает Почему так
00:09:09
потому что у нас выполнила одна команда
00:09:11
она быстро выполнила и закрылась мы
00:09:14
можем нажать комбинацию клавиш Ctrl F5 и
00:09:17
в этом случае в конце у нас также
00:09:18
добавится сообщение для продолжения
00:09:21
нажмите любую клавишу или Press any Key
00:09:24
to continue это работает именно при
00:09:26
сочетании клавиш Ctrl F5 или же мы можем
00:09:30
после команды console Right line
00:09:32
добавить ещё одну команду напишем
00:09:35
console read Key круглая скобки точка
00:09:38
запятой и нажмём пуск и вот мы видим
00:09:40
вывод нашего сообщения Привет мир и
00:09:43
мигающий курсор мигающий курсор
00:09:44
обозначает что консоль ожидает от нас
00:09:47
нажатие любой клавиши нажимаем пробел и
00:09:50
консоль закрывается любая программа
00:09:52
использует данные и для хранения этих
00:09:54
данных применяются переменные программа
00:09:56
всегда имеет на вход какие-то данные а
00:09:59
какие-то данные отдаёт пользователю если
00:10:01
приводить точное определение то
00:10:03
переменное - это поименованная или
00:10:06
адресуемая каким-то образом область
00:10:08
памяти адрес которой мы используем для
00:10:10
получения доступа к файлам или изменения
00:10:13
значения В ходе исполнения программы
00:10:15
Блин вот эти программистский штучки
00:10:17
Конечно переменную можно представить в
00:10:19
виде подписанной коробки на ней написано
00:10:22
что она хранит и её имя а внутри коробки
00:10:25
уже лежит её значение к примеру У вас
00:10:27
есть коробка с деньгами она хранит в
00:10:29
себе целое числа и название у неё Money
00:10:32
а внутри лежит 3.000 вы с ними приходите
00:10:36
к кому-то на какие-то курсы отдаёте
00:10:38
3.000 После этого у вас не остаётся
00:10:40
денег но в итоге вы приобретаете
00:10:43
определённые знания и теперь у вас горы
00:10:46
денег Таким образом мы можем проследить
00:10:48
определённую тенденцию в начале у нас
00:10:50
было 3.000 потом ноль Потом 200.000
00:10:53
переменная У нас осталась та же мани Но
00:10:56
вот её значение постоянно менялось 3000
00:11:00
200 переменное можно Объявлять и
00:11:03
инициализировать так вот объявление -
00:11:06
это создание переменной в тексте
00:11:07
программы а инициализация - это
00:11:10
присвоение переменной начального
00:11:12
значения взглянем на пример слева у нас
00:11:14
идёт объявление здесь целочисленная M и
00:11:18
строка а справа у нас инициализация
00:11:21
здесь есть целочисленный M и оно
00:11:24
равно А также есть строка и она равна
00:11:29
как наши переменные вообще описываются
00:11:32
первым делом идёт тип данных типы мы с
00:11:34
вами немножечко позже разберём их
00:11:37
довольно-таки много а пока что нам нужно
00:11:39
сдать общий шаблон так вот первым делом
00:11:43
идёт тип данных потом имя переменной
00:11:46
потом оператор равно потом её значение и
00:11:50
точка запятой имя может содержать любые
00:11:52
цифры буквы и символ подчёркивания при
00:11:56
этом первый символ должен быть буквой
00:11:58
или подчеркивания в имени также не
00:12:01
должно быть знаков пунктуации и пробелов
00:12:04
Ещё есть одна такая вещь Она не
00:12:06
обязательна к исполнению но очень важно
00:12:08
когда вы будете создавать переменную вы
00:12:10
будете придумывать ей имя
00:12:12
придерживайтесь Такого имени которое
00:12:14
отражает суть того что хранит в себе
00:12:16
переменные Давайте перейдём в Visual
00:12:18
Studio рассмотрим типы данных и немножко
00:12:21
попрактиковаться
00:12:29
будем использовать в основном начнём мы
00:12:31
с целочисленных мы вначале их
00:12:37
проинициализирован делом они отличаются
00:12:39
префиксами у байта - это S SB у шорта -
00:12:43
это U шр у Инта uint у Лонга лон Что же
00:12:47
это означает байт может принимать в себя
00:12:50
значение от нуля до
00:12:53
255 соответственно SB может принимать в
00:12:56
себя значение от -120
00:13:00
до 127 у шорта приставка U означает что
00:13:03
это unsigned шр соответственно шорт
00:13:06
принимает в себя значение от -
00:13:11
32.768 до
00:13:15
32767 шр принимает значение от нуля до
00:13:22
65535 инт принимает значение от
00:13:26
-2м 1447 млн
00:13:32
4648 до 2 млр 147 м
00:13:38
483 647 ign соответственно без знака от
00:13:43
нуля до
00:13:45
4.94
00:13:48
672 295 такие большие значения сложно
00:13:52
держать в голове поэтому была создана
00:13:55
функция которая нам помогает узнать
00:13:57
какие значения может принимать
00:13:59
переменное того или иного типа например
00:14:02
для Лонга Мы можем написать Long Max
00:14:05
value и здесь можем посмотреть какое
00:14:08
максимальное значение принимает Long
00:14:10
также мы можем узнать минимальное
00:14:11
значение Min value Такой тип как Long
00:14:15
нам не всегда нужен потому что он очень
00:14:17
огромный но и такие типы как by SB Short
00:14:20
и ushort мы не используем так часто наше
00:14:23
время компьютеры довольно-таки мощное и
00:14:25
использование этих значений и расчёта
00:14:27
переменных для экономии памяти не будет
00:14:30
иметь особого смысла целочисленные типы
00:14:32
мы рассмотрели и можно двигаться дальше
00:14:34
далее У нас числа с плавающей точкой
00:14:36
здесь у нас всего два типа флот и дабл
00:14:39
чем они отличаются у флота точность
00:14:41
значение до семи знаков после запятой у
00:14:45
дабла до пти знаков после запятой это
00:14:48
примерные данные но в целом они близки к
00:14:50
реальным Есть ещё одно небольшое отличия
00:14:53
Например если мы в wle запишем
00:14:56
5,7 всё будет нормально но при этом если
00:14:59
мы во флот запишем
00:15:01
5,7 он нам выдаст ошибку если мы наведём
00:15:05
на ошибку Литерал с типом Double не
00:15:07
может быть неявно преобразован к типу
00:15:10
флот Используйте суфикс F для создания
00:15:13
литералов этого типа соответственно мы
00:15:15
должны поставить суффикс F после
00:15:17
инициализации переменной типа флот и
00:15:19
ошибка исчезнет почему так происходит
00:15:21
Дело в том что флот он меньше чем Double
00:15:24
и поэтому когда мы присваиваем значение
00:15:27
переменной типа флот префикса F он
00:15:30
думает что это Double и пытается его к
00:15:32
нему конвертировать Но неявно это
00:15:34
сделать нельзя поэтому здесь следует
00:15:37
поставить префикс F таким образом после
00:15:39
всех переменных типа флот ставится F и
00:15:43
явно указывается что это тип flot чаще
00:15:46
всего мы будем использовать тип флот он
00:15:48
занимает меньше места и такая большая
00:15:51
точность как W нам не всегда нужна также
00:15:53
в основном мы с вами идём немножечко под
00:15:55
Unity а там все расчёты используются с
00:15:57
помощью типа FL Поэтому в основные типы
00:16:00
я запишу flot Давайте пойдём дальше А
00:16:03
дальше у нас символьный тип это у нас
00:16:06
тип Чар если мы хотим записать один
00:16:09
символ мы должны взять его в одинарные
00:16:12
кавычки например символ Т Если же мы
00:16:15
напишем два символа он сразу нам выдаст
00:16:17
ошибку Если же мы хотим записать пробел
00:16:20
нам нужно поставить пробел если кавычки
00:16:22
будут пустые и символ будет
00:16:23
отсутствовать то компилятор выдаст нам
00:16:26
ошибку так как Чар у нас символьный тип
00:16:28
то использовать мы будем Именно его идём
00:16:30
дальше далее У нас строковый Тип и это у
00:16:33
нас СН или строка чтобы присвоить
00:16:36
значение типу стрин надо взять его в
00:16:38
двойные кавычки Вы можете заметить что
00:16:41
Чар у нас определяется с одинарными
00:16:43
кавычками а стринг инициализируется с
00:16:46
двойными кавычками при этом стрин - это
00:16:49
набор чаров а значить строка - это набор
00:16:51
символов в стринге Мы можем написать
00:16:53
любое сообщение Например привет Как дела
00:16:56
и так далее Также мы часто используем
00:16:59
рин и поэтому в основные типы мы его
00:17:02
определим двигаемся дальше и дальше у
00:17:04
нас будет идти логический тип логический
00:17:07
тип - это у нас булевая переменная или
00:17:09
Бул это очень классная вещь Она может
00:17:11
принимать в себя два значения либо
00:17:14
истина либо ложь к примеру как это будет
00:17:16
выглядеть скажем что у покупателя сумма
00:17:18
на счёте больше чем сумма покупки в этом
00:17:21
случае переменная будет равняться True
00:17:24
или истине и мы сможем продать ему товар
00:17:28
Если же у покупателя сумма денег на
00:17:31
счёте будет меньше чем стоимость товара
00:17:33
то значение переменной будет fse и
00:17:36
операция не будет произведена таким
00:17:38
образом булевая переменная в основном
00:17:40
используется в условных конструкциях где
00:17:43
проверяются условия на соответствия
00:17:45
истине или лжи булеву переменную мы
00:17:48
будем обязательно использовать в
00:17:50
дальнейшем поэтому определим её в
00:17:52
основные типы В целом все типы данных мы
00:17:55
с вами рассмотрели Давайте далее
00:17:57
посмотрим как присваивать значение нашим
00:17:59
переменным в случае с Slot и Double мы
00:18:02
уже присваивали значение вот мы видим
00:18:06
5,7 F и 5,7 для дабла в Чар Мы тоже
00:18:10
присвоили значение пробела и в string мы
00:18:13
присвоили значение строки Привет Как
00:18:15
дела Как и во многих языках В CP
00:18:18
операция присваивания обозначается
00:18:21
знаком равно например Мы можем написать
00:18:24
int H возраст и присвоить ему значение и
00:18:28
получается что у нас базовая операция
00:18:30
присваивания то есть равно присваивает
00:18:32
значение правого операнда левому
00:18:35
операнду то есть теперь 27 у нас
00:18:38
хранится в H переменное можно объявить
00:18:41
но не инициализировать и
00:18:42
проинициализировать далее в программе
00:18:45
Например если бы мы просто объявили
00:18:46
переменную H и не присвоили значение то
00:18:50
Далее в коде мы просто могли бы сделать
00:18:52
следующую операцию равно 27 И тем самым
00:18:55
присвоить значение 27 дальше в коде то
00:18:58
есть конкретно вот в этот момент когда
00:19:01
мы ставим знак равно и пишем далее
00:19:03
значение для переменной и происходит её
00:19:07
инициализация то есть инициализация
00:19:09
необязательно происходит в момент
00:19:10
объявления переменной также вспомним что
00:19:13
у нас переменная может меняться например
00:19:15
в H Мы можем сейчас определить другое
00:19:18
значение то есть присвоить ей
00:19:19
какое-нибудь другое значение H = 10 и
00:19:23
теперь она хранит в себе значение 10 то
00:19:25
есть H теперь не равно 27 это очень
00:19:28
удобно потому что нам не приходится
00:19:31
заводить пять переменных сразу и мы
00:19:33
можем просто менять значение в этой
00:19:35
самой переменной в принципе Мы закончили
00:19:37
с переменными и Давайте идти дальше
00:19:40
многих новичков интересует вопрос как
00:19:42
правильно именовать переменные На
00:19:44
прошлом уроке мы с вами разобрали ряд
00:19:47
требований по именовани переменных но
00:19:49
существует ещё парочка правил Давайте
00:19:52
пройдём по порядку первое Не надо
00:19:55
называть переменную одной буквой
00:19:57
переменная должна отражать суть того что
00:19:59
она в себе хранит всегда помните что ваш
00:20:01
код не только для вас его кто-то будет
00:20:04
читать и тот кто будет его читать должен
00:20:07
понимать что это за переменная И что она
00:20:09
в себе хранит а второе так Или
00:20:11
так так О'кей второе а второе не
00:20:16
Используйте сокращение которое Понятно
00:20:18
только вам например Note в котором вы
00:20:21
сократили Name Of Dog третье читая ваш
00:20:24
код программисты из компании или студий
00:20:27
в которых вы будете работать всегда
00:20:29
ожидают видеть английские имена
00:20:31
переменных поэтому написанные транслитом
00:20:33
русские слова могут сбить с толку ваших
00:20:36
коллег также транслитом написанные
00:20:37
русские слова могут иметь другое
00:20:40
значение в ином языке например фамилия
00:20:43
на итальянском обозначает семья
00:20:45
переменное принято называть на
00:20:46
английском языке если у вас с этим туго
00:20:49
можете использовать Google переводчик
00:20:51
или любой другой четвёртое про составные
00:20:54
имена CP для написания составных имён
00:20:57
принято использовать
00:21:00
то есть мы называем переменной не просто
00:21:01
Wi через нижнее подчеркивание Time А
00:21:04
берм Wi с маленькой буквы и пишем та
00:21:07
большой все слова за исключением первого
00:21:09
мы пишем с большой буквы и Всё слитно и
00:21:12
последнее пятое имя переменной всегда
00:21:14
должно отражать суть того что она будет
00:21:17
В себе хранить Да это правило
00:21:19
повторяется для того чтобы подчеркнуть
00:21:21
его важность мы с вами изучили
00:21:23
переменные и теперь нам надо как-то с
00:21:25
ними работать и тут к нам на помощь
00:21:27
приходит тические
00:21:31
операторы Давайте поставим комментарии и
00:21:34
посмотрим какие вообще они у нас есть
00:21:36
это может быть плюс может быть минус
00:21:39
также это может быть умножить поделить а
00:21:42
также деление по модулю Это знак
00:21:44
процента в принципе всё как в обычной
00:21:47
математике Ну давайте рассмотрим как
00:21:49
работают некоторые особенности этих
00:21:51
языков для того чтобы это рассмотреть
00:21:53
Нам нужен CP Inter как его открыть идём
00:21:56
в
00:21:57
вид гие окна CP interactive и у нас
00:22:01
открывается внизу вот такое окно можно
00:22:04
его немного расширить и вот здесь мы
00:22:06
можем что-нибудь по-быстрому посчитать
00:22:08
это в принципе как компилятор к примеру
00:22:11
Я хочу посчитать 5 П 5 нажимаем Enter Он
00:22:16
немного сначала долго
00:22:28
5 он посчитает ноль также с минусом если
00:22:32
мы поставим
00:22:33
5 минус ми 5 мы получим 10 То есть у нас
00:22:38
всё с этим работает хорошо также 5 - 5
00:22:42
равно нулю умножение с умножением всё в
00:22:45
принципе тоже очень просто всё работает
00:22:47
как в математике Но вот с делением с
00:22:50
делением у нас возникнут маленькие
00:22:52
особенность если возьмём к примеру 5 и
00:22:55
разделим его на два то мы получим двойку
00:22:58
в чём же дело дело в том что мы делим
00:23:00
два целочисленных числа у них не может
00:23:03
быть дробной часть но не может быть и
00:23:05
всё из-за этого она отбрасывается как же
00:23:08
нам этого избежать Мы можем сказать что
00:23:10
у нас одно из чисел является дробным в
00:23:13
этом случае деление пройдёт как надо к
00:23:15
примеру я возьму 5 и разделю на
00:23:19
2,0 получу 2,5 Или наоборот я могу взять
00:23:24
5,0 и разделить на 2 и получу такой же
00:23:27
результат Но если опять же мы 5 делим на
00:23:30
2 всё равно мы получаем двойку Это
00:23:34
значит что делим на цело то есть дробная
00:23:36
часть просто отбрасывается и как же нам
00:23:39
это избежать в программе к примеру У нас
00:23:41
есть следующая ситуация у нас есть ФТ
00:23:44
result и мы в него хотим поместить
00:23:46
результат деления двух целых чисел
00:23:49
например int X и int Y кстати говоря два
00:23:54
раза писать тип не обязательно Мы можем
00:23:56
через запятую написать Y
00:23:59
и также она будет объявлена далее мы
00:24:01
присвой X она у нас будет равна п и
00:24:04
переменной Y она будет равна Д Далее в
00:24:08
значение переменной мы запишем X де Y
00:24:13
всё что нам осталось это вывести в
00:24:15
консоль пишем
00:24:18
cons
00:24:19
[музыка]
00:24:20
то и выводим наш нажимаем ctr F5 и у нас
00:24:26
получилось есть целая часть дробная
00:24:30
часть отбросила она не округли и с ней
00:24:32
ничего магического не произошло просто
00:24:34
её взяли и отбросили и также Если я
00:24:38
сделаю типом in целочисленным типом и
00:24:42
тоже выведу
00:24:43
результат у нас всё равно получится
00:24:45
двойка то есть флот для того чтобы вы
00:24:48
видели что дробная часть поддерживается
00:24:50
и мы можем в неё технически поместить
00:24:52
дробное значение Но его там нету как же
00:24:56
нам сделать так чтобы полилось Всё
00:24:57
правильно
00:24:58
слу можем конвертировать одно из
00:25:00
значение во любое то есть мы говорим что
00:25:06
X то есть грубо говоря
00:25:09
Con И сейчас всё должно быть правильно и
00:25:13
мы получаем результат 2 с по Но если я
00:25:16
сюда помещ X де Y то всё равно получится
00:25:21
двойка потому что сначала делится нало а
00:25:24
потом двойку мы конвертируем так делать
00:25:27
недо чтобы хотя бы одна переменная была
00:25:30
типа флот в принципе нам осталось
00:25:31
рассмотреть остаток отделения либо
00:25:34
деление по модулю если мы просто 5
00:25:36
поделим на 2 мы получим двойку А вот
00:25:39
если мы пять поделим по модулю на два у
00:25:42
нас останется единица и Это остаток от
00:25:45
деления Чтобы стало более понятно
00:25:47
Давайте разберём ещё один пример 7 де по
00:25:51
модулю на 5 равно 2 Почему так Какое
00:25:54
количество пятёрок находится в семёрке
00:25:57
правильно одно то есть семёрка один раз
00:26:00
поделилась на п и в остатке У нас
00:26:02
осталась двойка как это вообще может
00:26:04
помочь к примеру У нас есть следующая
00:26:05
ситуация у нас есть in Time in minut и
00:26:12
это время в минутах также у нас есть
00:26:14
переменная in Hour час и in minut минута
00:26:19
переменной время в минутах мы
00:26:21
присвоить
00:26:23
130 минут теперь мы хотим узнать сколько
00:26:27
в этом количестве минут целых часов и
00:26:30
остаточных минут Для этого нам надо в
00:26:32
переменную Hour записать вычисление Time
00:26:36
in minutes де 60 здесь мы получим ровное
00:26:40
количество часов а чтобы нам узнать
00:26:42
какое количество минут осталось от
00:26:46
130 Мы в переменную minute запишем Time
00:26:49
in minutes делённое по модулю на 60 и
00:26:54
теперь мы выведем значение этих
00:26:56
переменных в консоль
00:26:58
пишем conso Right
00:27:02
[музыка]
00:27:07
line жмём Ctrl F5 и мы видим часов у нас
00:27:12
два минут 10 и вот мы с вами рассмотрели
00:27:15
все наши арифметические операторы и их
00:27:17
особенности но есть ещё одна приколюшка
00:27:21
она маленькая но очень классная мне надо
00:27:23
взять и к этой переменной прибавить
00:27:25
единицу H равно
00:27:28
H + 1 это не самый удобный и приятный
00:27:32
глазу вид записи нам даже Visual Studio
00:27:35
подсказывает Как можно сократить это
00:27:37
выражение наводим на знак равно и Он нам
00:27:40
пишет Можно либо записать так H пс пс
00:27:46
либо поставить H п Рав едини получается
00:27:50
в этом случае мы к нашей переменной
00:27:52
которая стоит слева прибавляем значение
00:27:54
которое стоит справа Также можно сделать
00:27:57
и с минусом либо с умножением а также с
00:28:00
делением или с делением по модулю такая
00:28:03
запись очень удобна и мы очень часто
00:28:04
применяем конструкции подобного Типа мы
00:28:07
с вами уже узнали что мы можем
00:28:09
складывать умножать делить Вычитать и
00:28:11
так далее Но помимо того чтобы делать
00:28:14
какие-то различные операции мы можем
00:28:16
создавать довольно-таки большие
00:28:18
выражения к примеру У меня есть какой-то
00:28:22
int и он равен 5 + 12 - 4
00:28:28
3 -1 И П 5 и тут можно задаться вопросом
00:28:34
В каком порядке будут выполняться эти
00:28:36
арифметические операции тут всё как в
00:28:39
обычной математике то есть умножение
00:28:41
деление и деление по модулю имеют На
00:28:44
высший приоритет и выполняются в первую
00:28:46
очередь плюс-минус идут уже в последнюю
00:28:49
очередь и конечно же в порядке слева
00:28:51
направо Однако мы с вами можем выделить
00:28:54
свой какой-нибудь приоритет к примеру
00:28:56
выведем команду нашего с вами значение
00:28:59
мы получили 11 но я бы хотел чтобы 12 -
00:29:02
5 у меня выполнило в первую очередь я
00:29:04
ставлю круглые скобки нажимаем Ctrl F5 и
00:29:07
получаем значение 35 То есть то что
00:29:10
стоит в скобках всегда выполняется в
00:29:12
первую очередь то есть вот так просто
00:29:14
При помощи обычных скобок мы с вами
00:29:17
смогли выделить какую-то часть и
00:29:19
выполнить её в первую очередь возможен
00:29:21
вариант скобок в скобках и так далее в
00:29:25
общем-то говоря Вы можете делать всё что
00:29:27
и в обычно математики Ну на этом всё и
00:29:29
Давайте двигаться дальше следующими на
00:29:32
очереди у нас идут логические операторы
00:29:34
логические операторы - это на самом деле
00:29:36
очень важная вещь нашего языка она
00:29:39
участвует во многих конструкциях которые
00:29:41
мы рассмотрим далее давайте для начала
00:29:43
их просто рассмотрим У нас есть оператор
00:29:45
равенства причём оператор равенства -
00:29:48
это не то же самое что оператор равно
00:29:50
также существует
00:29:52
неравно больше больше либо равно меньше
00:29:56
либо равно и меньше это все логические
00:29:59
операторы так как мы смогли проводить
00:30:01
простые арифметические операции в CSP
00:30:04
interactive мы можем производить простые
00:30:06
логические операции всё в том же CSP
00:30:09
interactive выберем вид другие окна CSP
00:30:12
interactive например мы можем сравнить 5
00:30:14
равно равно п будет True Потому что это
00:30:17
правда 5 = че false потому что 5 не
00:30:21
равно четырём также мы можем проверить 5
00:30:24
не равно 4 у нас интерактив выдаст True
00:30:27
потому что 5 не равно четы получается
00:30:30
что после сравнения двух каких-то вещей
00:30:32
Нам может быть возвращено либо True либо
00:30:35
false а это значит что мы можем хранить
00:30:38
это значение в булевых переменных к
00:30:41
примеру создадим целочисленную
00:30:42
переменную int H это будет возраст к
00:30:46
примеру 18 также мы создадим булеву
00:30:49
переменную Access is all мы можем
00:30:53
рассматривать эту булеву переменную как
00:30:55
разрешение доступа в какой-нибудь клуб
00:30:58
17 п то есть туда могут входить люди
00:31:00
которым больше или равно 18 лет далее
00:31:03
переменной Access is allow присвоить H
00:31:07
больше либо равно 18 далее выведем эту
00:31:11
переменную в консоль conso Right L
00:31:14
круглые скобки Access sout точка запятой
00:31:18
Ctrl F5 и видим True Как это работает
00:31:21
ещё раз пройдёмся по коду мы объявили
00:31:23
переменную H и сразу присвоили ей
00:31:25
значение 18 далее объявили переменную
00:31:28
Access is allow и в эту переменную
00:31:30
присвоили значение H больше либо равно
00:31:33
18 то есть мы инициализировать
00:31:35
переменную Access и sout операции
00:31:38
сравнения H и возраста 18 лет а если бы
00:31:41
у нас H был например 17 то консоль бы
00:31:44
нам выдала false Почему Потому что 17 не
00:31:48
больше либо равно 18 поэтому доступ в
00:31:51
клуб 18+ этому человеку Пока ещё будет
00:31:54
запрещён также мы можем рассмотреть
00:31:56
примеры которые были у нас в CSP
00:31:58
interactive уберём значение H и
00:32:01
переменной axess is all Out
00:32:04
присвоить ра п выведем в консоль получим
00:32:08
True потому что у нас п соответственно
00:32:10
равно пяти далее 5 = 4 false потому что
00:32:14
5 не равно четырём также мы можем
00:32:16
проверить 5 не равно четырём в консоли
00:32:19
мы увидим True Потому что это правда так
00:32:22
и есть Мы рассмотрели все логические
00:32:23
операции и узнали что их можно
00:32:25
записывать в какую-то булеву переменную
00:32:27
в будущем Мы обязательно с ними ещё
00:32:30
поработаем Пока на этом всё и будем
00:32:32
продолжать в этой лекции поговорим про
00:32:34
конкатенацию конкатенация - Это сложение
00:32:37
двух и более строк Как же это работает
00:32:39
рассмотрим следующий пример у нас есть
00:32:41
две строковые переменные string greeting
00:32:45
она у нас будет равна значению Привет
00:32:47
точка запятой вторая string name она у
00:32:51
нас будет равна ленн далее мы создадим
00:32:54
переменную типа string message и ей
00:32:59
п после чего выведем её в консоль
00:33:03
cons и mtr F5 и видим что у нас
00:33:07
сложились две строки они сложились без
00:33:09
пробела Мы это с вами немного сейчас
00:33:12
подправить пробел в значение переменных
00:33:14
ставить не очень хорошая идея поэтому мы
00:33:17
можем после плюса поставить двойные
00:33:20
кавычки и поставить пробел а после него
00:33:23
поставить плюс на самом деле в двойных
00:33:25
кавычках мы можем писать всё что угодно
00:33:27
к примеру омлет ставим пробел жмём Ctrl
00:33:30
F5 и видим что у нас сложились все
00:33:32
строки и посередине добавился пробел
00:33:34
вместе с нашим омлетом Мы видим что в
00:33:37
значении переменной message мы можем
00:33:39
складывать наши переменные greeting in
00:33:41
name вместе со строковыми литерами в
00:33:44
двойных кавычках и в переменной message
00:33:46
будет выведено три слова привет омлет
00:33:49
Валентин также у нас есть возможность
00:33:51
записывать строковые литералы и
00:33:53
прибавлять их к строковый переменным не
00:33:56
вместе инициализации
00:33:58
в нашем случае переменной mess а сразу
00:34:01
выводе здесь пишем mess плюс открываем
00:34:05
двойные кавычки и пишем запятая пробел
00:34:08
рад тебя видеть восклицательный знак и в
00:34:13
консоли Мы видим что у нас сложились
00:34:15
Привет Валентин и то что мы написали
00:34:18
после знака плюс в команде cons Right L
00:34:21
то есть получилось такое что даже здесь
00:34:24
мы прибавили кусочек нашей строки Но к
00:34:26
переменным типан мы можем добавлять не
00:34:28
только строки а также и числа как это
00:34:31
будет работать уберём Всё что мы
00:34:33
написали и допустим что у нас есть
00:34:35
переменная целочисленного типа int H и
00:34:39
она равна пяти далее запишем команду
00:34:42
conso Right line двойные кавычки и
00:34:45
запишем Привет Завтра тебе исполнится
00:34:49
двоеточия пробел плюс H и тут компилятор
00:34:52
поймёт что H складывается строкой и
00:34:55
переведёт его в строковое значение и
00:34:58
добавит к строке запустим нашу программу
00:35:00
и увидим сообщение Привет Завтра тебе
00:35:03
исполнится пять но представим следующую
00:35:05
ситуацию допустим нам завтра исполнится
00:35:08
не пять а на один год больше здесь же в
00:35:11
скобках пишем плюс один выведем
00:35:15
сообщение в консоль и видим Привет
00:35:17
Завтра тебе исполнится 51 как такое
00:35:20
вообще возможно Дело в том что знак плюс
00:35:23
может играть немножко разные роли Он
00:35:26
может и складывать и быть конкатенации
00:35:28
Поэтому нам надо опять же вернуться к
00:35:31
приоритетам Какие в данном случае у нас
00:35:33
приоритеты сложения они у нас равны
00:35:35
значит будут выполняться по порядку
00:35:37
слева направо то есть первым делом
00:35:40
произойдёт конкатенация нашего сообщения
00:35:42
Привет Завтра тебе исполнится с
00:35:44
переменной H а далее произойдёт
00:35:46
конкатенация со значением один и у нас
00:35:49
получится та строка которую мы с вами
00:35:51
получили То есть у нас сообщение Привет
00:35:54
Завтра тебе исполнится складывается Sage
00:35:56
и получается цельная строка а далее эта
00:35:59
строка складывается уже с единицей и эта
00:36:01
единица складывается с этой строкой и
00:36:04
тоже превращается в строку чтобы нам
00:36:06
было немножечко более Понятно можем для
00:36:08
себя написать комментарий то есть в
00:36:10
начале у нас была строка плюс число и
00:36:13
после сложения это получилась строка в
00:36:16
следующем случае у нас осталась строка и
00:36:18
она сложилась с числом например один и
00:36:21
также у нас получилась строка чтобы нам
00:36:24
разрешить эту ситуацию нам нужно
00:36:26
поставить другой приоритет а как мы с
00:36:28
вами уже знаем приоритеты расставляются
00:36:30
с помощью скобок Поэтому в этом месте
00:36:32
где у нас идёт H ставим скобки и выводим
00:36:36
значение в консоль и получаем Привет
00:36:38
Завтра тебе исполнится шесть рассмотрим
00:36:41
этот же пример с другой стороны добавим
00:36:43
перед сообщением 5 + 5 и плюс наше
00:36:47
сообщение опять же смотрим на приоритеты
00:36:49
первым делом у нас выполнится
00:36:51
арифметическая операция сложения и мы
00:36:53
получим 10 дальше десятка сложится со
00:36:56
строкой слева направо и получится строка
00:36:59
после чего эта строка сложится с
00:37:01
шестёркой и мы получим строку 10 Привет
00:37:05
Завтра тебе исполнится 6 опять же если
00:37:08
возвысить приоритет и поставить скобку
00:37:10
перед пятёркой и после нашего сообщения
00:37:13
то мы получим следующее 5п Привет Завтра
00:37:17
тебе исполнится сть Мы даже можем
00:37:19
навести курсор на плюс и посмотреть
00:37:22
слева стоит у нас какой-то об а справа
00:37:25
строка и результатом ци сложения у нас
00:37:28
будет ринг также и с правой стороны
00:37:30
слева у нас стоит строка справа какой-то
00:37:33
обжект а результатом у нас будет
00:37:35
строковое значение то есть компилятор
00:37:37
понимает с какой стороны от строки стоит
00:37:39
плюс и по мере выполнения операций по
00:37:41
приоритетам он вначале либо переводит
00:37:44
числовое значение в строковое а потом
00:37:46
добавляется к строке либо в начале пишет
00:37:48
строку и потом переводит числовое
00:37:51
значения и вместе их складывает по мере
00:37:54
выполнения арифметических операций по
00:37:56
приоритетам р понимает с какой стороны
00:37:59
число стоит от строки и если оно стоит
00:38:01
слева то вначале оно преобразует его в
00:38:04
строку и потом прибавляет её с основной
00:38:07
строкой если стоит справа то вначале он
00:38:09
выводит строку потом преобразует
00:38:12
значение стоящее справа и уже добавляет
00:38:14
её к основной строке и вот примерно так
00:38:17
работает конкатенация теперь вы её
00:38:19
знаете и можете делать какой-нибудь
00:38:21
форматированный вывод данных и даже
00:38:23
написать программу по выводу возраста
00:38:25
человека мы можем соединять строки не
00:38:28
только конкатенации Как же можно это
00:38:30
сделать Давайте представим что у нас
00:38:32
есть следующие входные данные у нас
00:38:34
будет int
00:38:36
h27 и строка string name valentin и мы с
00:38:41
вами хотим вывести эти значения красиво
00:38:44
оформленные в консоль мы с вами пишем
00:38:47
conso Right L кстати говоря чтобы вот
00:38:50
так долго не писать conso Right line мы
00:38:53
можем просто написать C V два раза
00:38:56
нажать на tab у нас запишется эта
00:38:58
команда conso Right L и здесь мы пишем
00:39:01
ваше имя двоеточия пробел плюс
00:39:05
переменная name плюс пробел вам пробел
00:39:11
плюс H плюс двойные кавычки лет
00:39:15
восклицательный знак в принципе в такой
00:39:17
форме мы можем вывести это сообщение
00:39:20
Ctrl F5 и видим ваше имя Валентин Вам 27
00:39:24
лет но также мы можем выводить сообщени
00:39:26
с интерполяции как это сделать мы с вами
00:39:30
дублируем Эти строчки комбинацией Ctrl D
00:39:33
убираем всё содержимое ставим двойные
00:39:35
кавычки и перед ними ставим символ
00:39:37
доллара и теперь мы с вами можем писать
00:39:40
следующим образом ваше имя двоеточие
00:39:43
далее ставим фигурные скобки и пишем
00:39:46
нашу переменную далее просто ставим
00:39:48
пробел пишем вам далее снова фигурные
00:39:52
скобки 27 далее пробел лет и можем
00:39:56
вывести эту строчку в консоль то есть мы
00:39:58
видим вывод в консоль у нас одинаковый а
00:40:01
написание в команде console Right line
00:40:03
совсем другое согласитесь такая форма
00:40:06
написания довольно удобная и сохраняет
00:40:08
нам большое количество времени исключая
00:40:11
потребность повторять и постоянно писать
00:40:13
эти плюсы Таким образом мы сделали Точно
00:40:15
такую же строку но гораздо быстрее и
00:40:18
удобнее это и есть интерполяция и её
00:40:20
очень хорошо использовать одна из самых
00:40:23
важных тем - это конвертация для чего
00:40:25
она нужна допустим у меня есть
00:40:27
переменная типа int возраст а также у
00:40:29
нас будет строка которую ведёт
00:40:32
пользователь string Input и она будет
00:40:35
равна 15 и теперь в переменную H Мы
00:40:38
хотим присвоить значение инпута здесь мы
00:40:41
пишем H равно Input но пока что он
00:40:44
выводит нам ошибку ошибка появляется
00:40:47
потому что мы переменной H типа int
00:40:50
пытаемся присвоить значение типа string
00:40:52
Для этого нам и нужна конвертация как
00:40:55
она происходит для этого после зна равно
00:40:58
перед переменной Input мы пишем команду
00:41:00
convert to int в нашем случае будет 32
00:41:05
Далее выведем в консоль нашу переменную
00:41:07
H Ctrl W Tab Tab двойные кавычки можно
00:41:12
не писать и пишем наш H нажимаем Ctrl F5
00:41:16
и видим наше значение 15 оно
00:41:18
конвертирова и уже строкой не является
00:41:21
также это работает не только со строками
00:41:23
помните в предыдущих занятиях мы
00:41:25
переводили int дава Да попробуем это
00:41:28
повторить создадим переменную типа flot
00:41:31
назовём её result и создадим две
00:41:33
переменные типа int Пусть это будет X
00:41:36
который равен п и y который будет равен
00:41:39
двум теперь переменный result присвоив
00:41:42
значение деление X на
00:41:45
Y ра X / Y выведем это в консоль пишем
00:41:52
Ctrl F5 и мы получим результат 2 Почему
00:41:55
так Мы с вами уже знаем что если делить
00:41:58
одно целочисленное число на другое то
00:42:01
дробная часть просто отбросит и у нас
00:42:03
будет целая часть Но мы с вами также
00:42:06
можем командой convert to Single
00:42:08
конвертировать первое значение Ко флоту
00:42:11
и в результате у нас получится
00:42:14
2,5 соответственно мы преобразовали одну
00:42:17
переменную целочисленного типа в
00:42:19
переменную с плавающей точкой типа флот
00:42:22
далее давайте рассмотрим Какие вообще
00:42:24
бывают типы преобразования напишем
00:42:26
команду convert то и справа всплывает
00:42:29
подсказка к какому типу будет
00:42:31
преобразовано число Мы видим что T in 16
00:42:35
это будет Short T in 32 - это будет inin
00:42:39
64 это уже будет Long 2 SB - это будет
00:42:42
SB Мы с вами уже разбирались Что
00:42:45
означает приставка S to Single конечно
00:42:48
же ко флоту to string к строке toin 16in
00:42:52
32 unin 64 - это всё без знаковые типы
00:42:55
данных мы с вами уже их проходили Также
00:42:58
можно конвертировать значения к типу
00:43:00
Double и к булево типу Давайте разберём
00:43:03
пример с булевы типом запишем to bullion
00:43:06
перед этим создадим переменную типа int
00:43:09
зададим ему имя к примеру Trigger и
00:43:12
добавим значение оди после чего эту
00:43:16
команду приравняли к булевой переменной
00:43:19
назовём его Trigger in Pan и в скобках
00:43:22
запишем Trigger далее выведем значение в
00:43:25
консоль в скобках запишем
00:43:29
и запустим нашу программу и получим
00:43:32
потому что о в левом значении - Это
00:43:34
истина А если мы запишем но то мы
00:43:37
получим fse потому что но - это в
00:43:40
пулевом значении также мы можем сделать
00:43:42
обратную конвертацию мы создадим
00:43:45
переменную целочисленного типа int Recon
00:43:49
и
00:43:57
in buan Recon запустим нашу программу и
00:44:00
получим false и ноль то есть мы вначале
00:44:03
преобразовали ноль в булевое значение
00:44:06
получили false после чего это булевое
00:44:08
значение обратно вернули в int и
00:44:11
получили ноль также мы с вами можем
00:44:13
поменять обратно на единицу и получим
00:44:16
следующий результат True единица и таким
00:44:20
образом мы с Вами освоили конвертацию Мы
00:44:23
с вами изучили основы языка разобрались
00:44:25
с типами данных арифметическими И
00:44:28
логическими операторами С конвертацией
00:44:31
интерполяции И конкатенации теперь мы
00:44:34
можем более подробно поработать с
00:44:36
консолью Какие действия с консолью мы
00:44:38
уже с вами знаем это конечно же вывод
00:44:40
консоль при помощи console wr line
00:44:43
Однако вывод в консоль может
00:44:45
осуществляться не только при помощи
00:44:47
команды conso Right line ещё мы с вами
00:44:49
знаем Как попросить консоль не завершать
00:44:51
программу и ожидать от нас нажатие любой
00:44:55
клавиши Это команда cons
00:44:57
read Key круглые скобки другими словами
00:45:01
мы можем сказать что консоль ждёт от нас
00:45:03
ввода любой клавиши и также как с
00:45:06
командой console Right L ввод в консоль
00:45:09
может осуществляться не только с помощью
00:45:11
команды read Key к примеру у нас будет
00:45:14
переменная строкового типа string name и
00:45:18
мы хотим чтобы пользователь сам ввёл
00:45:20
своё имя для этого мы пишем conso read
00:45:25
после этого переменной мы присваиваем
00:45:28
значение этой команды то есть говорим
00:45:30
консоли считать строку которую ведёт
00:45:33
пользователь берём две первых команды
00:45:35
нажимаем Ctrl F5 и видим открылась
00:45:38
консоль и в ней мигающий курсор Это
00:45:40
означает что мы можем ввести любое
00:45:42
значение какое нам угодно к примеру
00:45:45
Привет Валентин восклицательный знак
00:45:48
нажимаем и или ввод консоль записала
00:45:51
наше значение в переменную И ждёт от нас
00:45:54
нажатие любой клавиши нажимаем и
00:45:56
программа
00:45:57
программа завершилась потому что мы у
00:45:59
консоли больше ничего не попросили
00:46:01
сделать Давайте Теперь попробуем это
00:46:03
значение вывести в консоль пишем CV
00:46:06
двойной Tab и записываем наш не знак
00:46:09
доллара двойные кавычки и пишем ваше имя
00:46:14
двоеточие фигурные скобки запустим нашу
00:46:18
программу вводим Валентин нажимаем ваше
00:46:22
имя Валентин и консоль ждт от нас
00:46:25
нажатия любой клавиши столкнуться с
00:46:27
такой ситуацией Я в своём примере
00:46:29
немного схитрил при выводе написал
00:46:32
английскими буквами Валентин и вывод
00:46:34
прошёл удачно то есть ваше имя -
00:46:36
Валентин но если мы введём Валентин
00:46:39
русскими буквами то у нас ничего не
00:46:41
выведется просто будет ваше имя и пустое
00:46:44
место с чем это связано Это может быть
00:46:47
связано с настройкой параметров
00:46:49
региональных стандартов либо с
00:46:51
вариантами кодировки ваших строк решить
00:46:53
эту проблему можно следующим образом
00:46:55
либо заходим в Панель управления
00:46:58
выбираем региональные стандарты
00:47:01
дополнительно изменить язык системы и
00:47:04
выбираем русский Окей Ну вот у меня
00:47:06
выбран русский и опять же вывод не
00:47:08
работает поэтому Visual Studio версии
00:47:10
2022 перед вводом и выводом символов
00:47:14
русского языка или кириллицы мы должны
00:47:17
писать следующие две команды мы пишем
00:47:20
conso Input encoding Рав encoding
00:47:25
Unicode также для вывода мы пишем
00:47:27
console output encoding равно encoding
00:47:31
Unicode на просторах интернета Вы можете
00:47:33
найти решение console output encoding
00:47:37
равно encoding utf8 но в моём примере он
00:47:41
не работает поэтому сотрём этот пример и
00:47:43
вначале введём а потом выведем наше
00:47:45
значение на русском языке пишем Валентин
00:47:49
ваше имя - Валентин всё работает
00:47:52
закрываем консоль двигаемся дальше
00:47:54
смотрите когда мы запускаем программу
00:47:57
непонятно что от нас хотят просто мигает
00:47:59
курсор и что нам делаеть дальше что от
00:48:01
нас требует программа вот Представьте
00:48:03
что вы пользователь и впервые открываете
00:48:05
программу и перед вами просто мигающий
00:48:07
курсор согласитесь непонятно а это
00:48:09
значит что нам с вами надо вывести
00:48:11
пользователю сообщение которое даст
00:48:14
понять чего мы от него хотим поэтому
00:48:17
перед командой ожидание ввода от
00:48:19
пользователя напишем console wr line
00:48:22
двойные кавычки введите ваше имя
00:48:26
запускаем вводим Валентин и получаем
00:48:29
ваше имя Валентин согласитесь это
00:48:31
выглядит некрасиво ваше имя на одной
00:48:33
строке Валентина другой хотелось бы
00:48:36
сразу после того как мы написали ваше
00:48:38
имя продолжить ввод поэтому мы можем
00:48:41
вызвать команду у консоли wr убрав line
00:48:44
для этого вместо команды wr line мы
00:48:47
можем у консоли попросить просто вывести
00:48:49
строчку wr и не переносить курсор на
00:48:52
следующую строку Давайте с вами
00:48:53
попробуем закрываем убираем line и
00:48:57
запускаем нашу программу и мы видим что
00:48:59
курсор мигает сразу после нашей строки
00:49:01
пишем Валентин Вот ваше имя Валентин Всё
00:49:05
верно Закрываем на этом моменте мы с
00:49:07
вами знаем что у консоли помимо команды
00:49:10
wr line есть команда wr то есть ещё одна
00:49:13
команда вывода которая не переносит
00:49:15
курсор на следующую строку также мы
00:49:18
теперь знаем что у консоли есть ещё одна
00:49:20
команда по работе с вводом информации
00:49:23
это conso readline то есть ожидание
00:49:25
ввода целой строки с переменной
00:49:27
строкового типа предельно всё понятно А
00:49:30
теперь Допустим что мы хотим чтобы у нас
00:49:32
был какой-нибудь
00:49:33
целочисленный in Age возраст и мы хотим
00:49:38
получить этот возраст от пользователя
00:49:40
для этого мы пишем
00:49:42
cons круглые скобки двойные кавычки
00:49:46
введите Ваш возраст двоеточие точка
00:49:50
запятой и здесь переменной H присваиваем
00:49:53
значение cons
00:49:56
Мы видим что компилятор выдаёт нам
00:49:58
ошибку с чем это может быть связано Это
00:50:01
связано с тем что при считывании данных
00:50:03
из консоли Она всегда возвращает строку
00:50:06
а H у нас является целочисленным
00:50:09
значением как же в этом случае быть в
00:50:11
этом случае нам поможет конвертация мы с
00:50:13
вами её уже изучали То есть перед
00:50:15
командой conso readline нам нужно
00:50:18
конвертировать это значение из
00:50:20
строкового типа в
00:50:22
int32 пишем convert to int 32
00:50:27
и берём эту команду в скобки теперь
00:50:29
выводим наш возраст в консоль используем
00:50:32
интерполяцию вам фигурные скобки H лет
00:50:37
двоеточие нажимаем Ctrl F5 введите ваше
00:50:40
имя вводим Валентин введите Ваш возраст
00:50:44
27 Всё верно Вам 27 лет в первое время
00:50:48
вы будете очень часто встречать
00:50:49
следующую ошибку закомментировать
00:50:57
Это связано с тем что переменным не
00:50:59
присвоено никакого значения то есть они
00:51:01
просто объявлены А значит нам нечего
00:51:04
выводить вот поэтому компилятор и выдаёт
00:51:06
нам ошибку говорящую о том что перед тем
00:51:08
как оперировать с нашей переменной нам
00:51:11
нужно её проинициализировать вы всегда
00:51:13
можете навести на эту Красное
00:51:14
подчёркивание и прочитать какая проблема
00:51:17
связана с этой ошибкой очень часто
00:51:19
Visual Studio даже подсказывает Как
00:51:21
решить ту или иную проблему чтобы
00:51:23
воспользоваться подсказкой Вы можете
00:51:25
поставить курсор после переменной нажать
00:51:27
Alt Enter И вам высветится Вот такая вот
00:51:31
лампочка и предложит ввести параметр
00:51:33
name либо ввести параметр value таким
00:51:36
образом всегда перед использованием
00:51:37
переменных в выводе в консоль их нужно
00:51:40
проинициализировать также у нас может
00:51:42
возникнуть ситуация когда мы введём
00:51:44
неверный формат строки То есть к примеру
00:51:46
Здесь всё будет нормально потому что мы
00:51:48
запрашиваем string из консоли всегда
00:51:50
идёт стринг пишем Валентин ваше имя
00:51:54
Валентин введите Ваш возраст здесь пишем
00:51:57
вместо числа например русские символы он
00:52:00
пишет необработанное исключение Входная
00:52:02
строка имела неверный формат так как в
00:52:05
этом месте у нас идёт конвертация tuin
00:52:07
32 именно с этого места он выдаёт нам
00:52:10
исключение пока что мы будем закрывать
00:52:12
на это глаза но в будущем Мы обязательно
00:52:14
научимся с этим бороться мы с вами
00:52:16
освоили ввод и можем считывать всё что
00:52:19
хотим с консоли также мы можем выводить
00:52:22
всё что угодно в консоль Давайте с вами
00:52:24
разберём такие прикольные штуки как
00:52:25
инкремент И декремент что это такое
00:52:28
объявим переменную int I и сразу же её
00:52:44
проинициализирован причём в постфиксной
00:52:46
форме инкремент увеличивает значение
00:52:48
переменной на единицу То есть если мы
00:52:51
нажмём на Ctrl F5 мы увидим единицу всё
00:52:53
правильно но также есть и декремент
00:52:56
пишем и минус Минус вводим консоль видим
00:53:00
минус оди Всё верно то есть инкремент
00:53:03
увеличивает значение на единицу
00:53:05
декремент уменьшает на единицу выглядит
00:53:08
всё просто пока мы не узнаём что есть
00:53:10
ещё и префиксная форма то есть мы
00:53:12
запишем плю п I выводим и мы видим всю
00:53:16
ту же единицу Так в чём же разница между
00:53:18
префиксной и постфиксной формой записи
00:53:21
чтобы это узнать нам необходимо нашу
00:53:23
переменную поместить в какое-нибудь
00:53:24
другое место например с месте вывода в
00:53:27
консоль то есть убираем п + I и пишем п
00:53:31
+ I выводим и видим единицу та же
00:53:34
история но если мы запишем теперь I п+ и
00:53:39
выведем консоль мы видим Ноль это значит
00:53:42
что при использовании постфиксной записи
00:53:44
нам будет возвращена наша переменная а
00:53:47
потом её значение изменится также и с
00:53:50
минусом то есть запишем ми - I выведем у
00:53:54
нас выдаст мину единиц если запишем I
00:53:57
минус Минус У нас выдаст опять ноль то
00:54:00
есть в начале мы выводим в консоль ноль
00:54:02
а потом уже отнимаем единицу То есть
00:54:05
если мы второй раз обратимся к нашей I
00:54:07
мы получим уже -1 соответственно 0 -1
00:54:11
Давайте разберём такой простой пример
00:54:13
запишем I п + п п п I консоль нам выдаст
00:54:19
результат два Давайте разберёмся
00:54:20
поподробнее поставим комментарий в этом
00:54:23
месте у нас будет возвращён просто I
00:54:26
данны момент он равен нулю а после чего
00:54:28
добавится единица значит возвращаем ноль
00:54:32
плюс в этом месте у нас уже есть единица
00:54:35
сохранённая в I и мы её сразу
00:54:38
увеличиваем на один соответственно у нас
00:54:42
тут будет 1 + 1 2 и в итоге 0 + 2 даст
00:54:46
нам двойку об этом говорит наш вывод в
00:54:49
консоль то есть запомним что префиксная
00:54:51
форма сначала увеличивает или уменьшает
00:54:54
значение а потом нам его возвращает а
00:54:56
постфиксная форма вначале возвращает нам
00:54:59
значение которое уже имеется в
00:55:01
переменной А потом его увеличивает или
00:55:03
уменьшает это нам может помочь в
00:55:05
абсолютно разных ситуациях Но более
00:55:08
подробно с этим мы поработаем в
00:55:09
следующих лекциях вот у нас есть теперь
00:55:12
такое более сложное выражение над
00:55:14
которым мы с вами сейчас подумаем причём
00:55:16
у нас даже по центру здесь есть строка
00:55:19
Давайте попробуем рассчитать начиная
00:55:21
расчёт нам важно помнить что у
00:55:23
инкремента и декремента всегда наивысший
00:55:25
Приори
00:55:27
то есть формально мы с вами можем
00:55:28
расставить в этом месте скобки сейчас мы
00:55:31
с вами особо ничего не поменяли мы
00:55:33
просто обозначили что инкремент
00:55:35
выполняется в первую очередь то есть
00:55:37
инкремент и декремент будет выше по
00:55:40
приоритету чем умножение и делени таким
00:55:43
образом получается поставим комментарий
00:55:45
переместимся в это место первым делом у
00:55:48
нас идёт инкремент префиксной форме
00:55:50
записи поэтому у нас ноль сразу будет
00:55:52
увеличен на единицу здесь 1 + 2 + 1
00:55:56
далее У нас идёт инкремент с постфиксной
00:55:59
формой записи соответственно мы получим
00:56:01
единицу А после чего её увеличим
00:56:04
соответственно здесь будет один далее
00:56:06
строка из единицы далее плюс Мы помним
00:56:10
что мы уже единицу увеличили на один и
00:56:13
здесь же её увеличиваем ещё на один и
00:56:15
потом возвращаем соответственно 2 + 1 =
00:56:18
3 у 2 и дальше мы можем просто начать
00:56:21
складывать 1 + 2 3 + 1 4 + 1 5 + 1 со
00:56:28
строкой далее идёт конкатенация со
00:56:30
строкой мы пять переводим в строку
00:56:33
получаем 50 о далее мы 3 умножаем на 2
00:56:37
получаем шестёрку после чего
00:56:38
конкатенировать
00:56:41
516 Ctrl F5 и Да всё верно мы получили
00:56:45
516 и мы приходим к выводу что первым
00:56:48
делом считаются все инкремент и
00:56:50
декремент а потом уже всё умножается
00:56:52
делится и складывается собственно говоря
00:56:54
на этом моменте мы разобрались с с
00:56:56
инкремента и декрементом Давайте немного
00:56:59
попрактиковаться
00:57:06
целочисленная int Health здоровье int
00:57:10
armor броня и int damage урон причём
00:57:15
armor будет определять процент того
00:57:17
сколько вообще урона будет нанесено
00:57:19
теперь нам следует У пользователя
00:57:21
запросить все данные и для запроса мы
00:57:23
пишем console Right двойные кавычки
00:57:26
введите количество здоровья двоеточие
00:57:30
После чего мы пишем переменную Health и
00:57:32
присваиваем ей значение conso readline
00:57:35
но помним так как консоль всегда у нас
00:57:38
конвертирует ввод в строку Нам
00:57:40
необходимо конвертировать это значение
00:57:42
чтобы привести эту строку к
00:57:43
целочисленному значению в нашем случае
00:57:45
это int и пишем convert to int 32 и
00:57:50
берём эту команду в скобки тоже самое
00:57:52
Нам нужно будет сделать с бронёй и с
00:57:55
уроном это мы можем легко сделать при
00:57:57
помощи комбинации Ctrl C Ctrl V Однако
00:57:59
чтобы сделать этот процесс ещё быстрее
00:58:01
разработчики Visual Studio сделали
00:58:03
следующую команду мы выделяем то что
00:58:05
хотим раскопина Ctrl D и получаем уже
00:58:09
две готовые строчки также Ctrl D и здесь
00:58:12
конечно же меняем введите количество
00:58:14
брони введите количество урона здесь
00:58:17
меняем переменные на armor и на damage и
00:58:20
теперь Давайте попробуем составить такое
00:58:22
вот выражение берём нашу Health минус
00:58:25
равно мы с вами изучали что это такое и
00:58:28
отнимем damage умноженное на armor
00:58:31
делённое на 100 и мы сейчас столкнулись
00:58:34
с такой ситуацией что нам непонятно что
00:58:36
такое 100 очень часто вы могли слышать
00:58:38
что в коде бывают магические числа это
00:58:41
как раз точно такой же случай то есть
00:58:43
100 у нас переводит переменную Ар в
00:58:46
проценты После чего мы damage умножаем
00:58:48
на эти проценты и получаем процент от
00:58:50
урона зачастую чтобы не путаться от этих
00:58:53
магических чисел стараются избавиться
00:58:55
поэтому нашу сотку забросить в
00:58:57
переменную тоже запишем int percent
00:59:00
Converter и присвоить значение 100 и уже
00:59:03
возьмём его отсюда и разделим на percent
00:59:07
Converter то есть в этом случае armor
00:59:09
дел на 100 - это процент на который надо
00:59:11
умножить damage чтобы получить итоговый
00:59:14
урон То есть это будет тот урон который
00:59:17
мы с вами получим Давайте теперь это
00:59:19
красиво всё выведем в консоль пишем
00:59:21
console Right line интерполяцию
00:59:24
используем пишем вам нанесли фигурные
00:59:28
скобки damage урона точка у вас осталась
00:59:33
фигурная скобки Health здоровье точка
00:59:37
запятой кстати говоря если в строке или
00:59:40
в скобках у нас образуется очень много
00:59:42
символов и сам код смещается влево мы
00:59:45
можем просто здесь поставить пробел у
00:59:48
нас образуется знак плюса и это будет
00:59:51
означать конкатенацию то есть вся строка
00:59:53
будет выполняться до точки запятой это
00:59:56
удаляем и выводим Ctrl F5 введите
00:59:59
количество здоровья пишем 100 введите
01:00:02
количество брони пишем 50 и количество
01:00:05
урона тоже 50 всё правильно у нас должно
01:00:08
было прийти 25 урона то есть половина и
01:00:11
остаться 75 здоровья но может быть и
01:00:14
совсем другая ситуация например к
01:00:16
процентам Мы хотели бы перевести эдж и
01:00:18
сразу бы эдж разделили на per Converter
01:00:21
возьмём и перенесём и смотрите Какая
01:00:23
штука получается Если мы возьмём 100
01:00:26
здоровя 50 брони и 50 урона мы получим
01:00:30
что нам нанесено 50 урона и у нас
01:00:32
осталось 100 здоровья ведь это же не так
01:00:35
почему так происходит потому что мы
01:00:37
делим друг на друга переменное со
01:00:38
значением in Для этого нам нужно хотя бы
01:00:41
одной из переменных привести ко флоту то
01:00:44
есть конвертировать пишем convert Single
01:00:48
но всё равно нам выдают ошибку потому
01:00:50
что теперь мы плотово значение хотим
01:00:52
запихнуть в А у нас значение инт в этом
01:00:57
случае у Health мы меняем значение на
01:00:59
флот и теперь запустим программу введём
01:01:02
здоровье 100 броня 50 урон 50 ите и
01:01:08
видим вы нанесли 50 урона у вас осталось
01:01:10
75 здоровья Всё верно попробуем ещё раз
01:01:14
введём 100 выберем брони 50 урона 24 Всё
01:01:19
верно урона 24 у нас осталось 88
01:01:21
здоровья то есть урон поделился на два и
01:01:23
отнялся от здоровья рассмотрим ещё е
01:01:26
один пример трём всё что мы написали у
01:01:28
нас будет какой-нибудь магазин в котором
01:01:30
мы будем продавать к примеру еду еду мы
01:01:33
покупаем соответственно за деньги
01:01:34
Поэтому у нас будет целочисленная in
01:01:37
Money далее У нас будет единица еды Full
01:01:41
и далее У нас будет цена за единицу еды
01:01:44
пишем in Food Unit Price цена за единицу
01:01:48
еды и пускай цена за единицу еды у нас
01:01:50
будет равняться 10 далее сделаем
01:01:53
красивый вывод cons
01:01:56
пожаловать в пекарню сегодня еда по плю
01:02:02
Price монет такое вот приветствие в
01:02:05
упрощённом игровом магазине на следующей
01:02:08
строке мы интересуемся
01:02:09
cons военые кавычки сколько у вас золота
01:02:14
вопросительный знак и мы выводим и
01:02:17
причём говорим что у нас равно сразу
01:02:23
конвертируем 32
01:02:27
круглые скобки далее Мы спрашиваем У
01:02:30
пользователя сколько еды он хочет купить
01:02:32
и мы пишем
01:02:34
conso сколько еды вам нужно и
01:02:38
пользователь нам вводит в нашу
01:02:40
переменную
01:02:41
равно
01:02:43
Con
01:02:46
32 теперь по сути от переменной Money
01:02:50
нам с вами надо отнять количество
01:02:52
желаемой еды умноженное на за единицу
01:02:56
еды Food Unit Price и далее выведем
01:02:59
conso Right L двойные кавычки
01:03:03
интерполяция перед кавычками и пишем у
01:03:06
вас в сумке фигурные
01:03:09
скобки единиц еды и фигурные скобки
01:03:15
монет Ctrl F5 запускаем нашу программу
01:03:18
сколько у вас золота напишем 100 далее
01:03:22
сколько еды вам нужно напишем 10 вво у
01:03:25
вас в сумке 10 еды и ноль монет всё
01:03:28
хорошо программа работает исправно
01:03:31
попробуем ещё раз сколько у вас золота
01:03:33
100 сколько еды вам нужно две и в итоге
01:03:37
у нас две еды и 80 монет Всё верно Как
01:03:40
же быть в том случае если денег у нас
01:03:42
меньше чем еды за которую мы хотим
01:03:44
заплатить то есть возьмём пример у нас
01:03:47
50 золота А мы хотим купить шесть булок
01:03:50
соответственно у нас в сумке шесть
01:03:52
единиц еды и минус 10 монет это неверно
01:03:55
и это неправильно магазин нам не может
01:03:57
давать еду вдолг как на нашем уровне в
01:04:00
этом случае быть нам с вами нужна будет
01:04:02
пулевая переменная заведём её bu и
01:04:06
назовём is able to Pay первоначальное
01:04:10
значение мы не задаём далее мы сделаем
01:04:13
такую проверку мы нашей булевой
01:04:14
переменной is able to Pay то есть имеет
01:04:17
способность заплатить присвоить
01:04:19
следующее значение disable to Pay равно
01:04:23
Money больше либо равно Foot умноженное
01:04:26
на F Unit Price Таким образом у нас в
01:04:28
переменную esbl to Pay запишется либо
01:04:31
True либо false True будет в том случае
01:04:33
если денег больше либо равно стоимости
01:04:36
еды которую мы хотим получить ЛС будет
01:04:39
если денег у нас меньше чем еды которую
01:04:41
мы хотим получить что мы можем далее с
01:04:43
этим сделать Как использовать эту
01:04:45
переменную далее мы результат умножения
01:04:47
количества желаемой еды на стоимость
01:04:49
единицы еды умножаем на конвертирова к
01:04:53
целочисленному значению переменную isbl
01:04:56
to Pay Теперь мы переменную Fo умножим
01:04:59
на следующее выражение а Выражение у нас
01:05:01
будет конвертация isbl to Pay к типу int
01:05:05
пишем convert to int 32 is able to Pay в
01:05:10
результате мы получим если isbl to Pay у
01:05:13
нас будет равно True она конвертируется
01:05:16
в единицы F запишется то количество еды
01:05:19
которое мы хотим И мы уже от переменной
01:05:22
Money отнимем реальное количество еды
01:05:24
которое хотим Если же isbl to Pay будет
01:05:27
false мы получим ноль умножим его на фут
01:05:31
фут запишется ноль и результат этого
01:05:33
выражения тоже будет ноль и в итоге у
01:05:36
нас от денег ничего не отнимется и в еду
01:05:38
ничего не прибавится нажмём Ctrl F5
01:05:41
введём количество золота 100 сколько еды
01:05:44
вам нужно напишем 20 и в итоге в сумке
01:05:47
ноль единиц еды и 100 монет Таким
01:05:49
образом мы ничего не потратили и не
01:05:51
получили никакой еды потому что у нас
01:05:54
недостаточно денег делаем ещё одну
01:05:56
проверку введём количество золота 100
01:05:59
хотим купить 30 в сумке ноль единиц еды
01:06:02
и 100 монет и ещё одну проверку 20 монет
01:06:07
три единицы еды в сумке ноль единиц еды
01:06:09
и 20 монет всё правильно и программа
01:06:12
наша Работает исправно таким образом без
01:06:14
лишних проверок мы достигли результата
01:06:17
невозможности ухода в отрицательный
01:06:19
баланс Таким образом мы изучили с вами
01:06:22
такой обходной путь посмотрели где можно
01:06:24
использовать бую переменную и как не
01:06:26
использовать каких-либо проверок чтобы
01:06:29
не уйти в отрицательный баланс
01:06:30
следующими на очереди рассмотрим
01:06:32
условные конструкции это одни из самых
01:06:34
базовых компонентов многих языков
01:06:36
программирования они направляют
01:06:38
программу по одному из путей в
01:06:39
зависимости от определённого условия
01:06:42
сейчас мы с Вами рассмотрим оператор If
01:06:44
оператор If определяет Какая инструкция
01:06:46
будет выполняться при удовлетворении
01:06:49
условия заданного каким-либо логическим
01:06:51
выражением взглянем на хороший пример
01:06:55
У нас есть переменная C равная девяти
01:06:58
всё что ниже - это блок условного
01:07:00
оператора If и раскрытие того что внутри
01:07:02
него происходит первым делом проверяется
01:07:05
какое-то условие сейчас оно звучит так
01:07:07
си = 9 и тут может быть два варианта
01:07:09
ответа да или нет как мы с вами
01:07:12
прекрасно помним логические операторы
01:07:15
нам всегда возвращают либо True либо
01:07:17
false в нашем примере другими словами
01:07:20
оператор двойного равно вернёт нам либо
01:07:22
истину либо ложь и это как раз-таки и
01:07:25
играет решающую роль Если результат
01:07:27
сравнения True или истина тогда мы идём
01:07:30
по ветви Да вывод в консоль C равняется
01:07:34
нулю а если же оператор сравнения вернёт
01:07:37
Фолс либо ложно то мы пойдём по ветви
01:07:39
нет вывод в консоль C не равно нулю и
01:07:43
также вернёмся в нашу программу по такой
01:07:45
вот простой схеме условный оператор If и
01:07:48
работает Давайте сейчас перейдём в
01:07:50
Visual Studio и посмотрим как это всё
01:07:52
выглядит в коде как по-простому описать
01:07:54
условный опера If первым делом идт сам
01:07:57
If потом круглые скобки и фигурные
01:07:59
скобки в круглых скобках пишется условие
01:08:02
давайте сделаем следующую проверку что
01:08:04
если нашему пользователю больше 18 лет
01:08:07
то он войдёт в наш бар Для этого нам
01:08:09
понадобится целочисленная int H и мы
01:08:13
спросим у пользователя этот возраст то
01:08:16
есть попросим его ввести в консоль для
01:08:18
этого пишем
01:08:20
conso двойные кавычки введите свой
01:08:24
возраст двое точно конечно Wi line будет
01:08:27
некрасиво выглядеть он перенесёт наш
01:08:30
курсор на следующую строчку поэтому
01:08:32
оставим здесь просто wr далее переменной
01:08:34
H присвоение conso read L конечно же мы
01:08:39
не можем это просто так оставить Нам
01:08:41
надо ещё сконвертируйте
01:08:44
[музыка]
01:08:51
[музыка]
01:08:55
потому что переменная H у нас in и далее
01:08:57
У нас будет идти проверка само слово If
01:09:00
с английского обозначает если поэтому
01:09:03
можем говорить если H больше либо равен
01:09:07
18 на слайде с бок схемой у нас было что
01:09:10
после условия у нас идёт две ветви в
01:09:13
этом случае если мы в консоль введём
01:09:15
значение от 18 и больше то у нас
01:09:18
выполнится ветвь Да и как раз-таки блок
01:09:21
кода который отвечает за ветвь Да и
01:09:24
находится в фигурных скобках сразу же
01:09:26
после Иа то есть вот в этих вот фигурных
01:09:28
скобках поэтому мы с вами пишем
01:09:32
cons двойные кавычки Добро пожаловать в
01:09:36
наш бар второй командой запишем
01:09:40
cons двойные кавычки Что будете пить на
01:09:45
этот вопрос Мы уже не будем отвечать это
01:09:47
сделано для того чтобы показать что вот
01:09:49
эти вот фигурные скобки не только для
01:09:51
одной команды это целый блок кодов
01:09:53
котором можно писать более команды то
01:09:56
есть вот у нас есть блок Main у него
01:09:58
свои фигурные скобки здесь выполняется
01:10:00
наша программа и есть наш блок If и этот
01:10:04
блок отвечает за выполнение ветки True
01:10:06
или да как Мы помним из нашего примера
01:10:09
но как вы помните у нас также есть ветвь
01:10:11
нет И как раз-таки ветвь нет описывается
01:10:14
в фигурных скобках после специального
01:10:16
слова else фигурные скобки то есть If
01:10:20
else если переводить на русский язык то
01:10:22
будет звучать так если возраст больше
01:10:24
либо ра
01:10:26
то Мы выполняем этот блок а иначе
01:10:29
выполняем этот блок и в мы можем делать
01:10:32
уже какой-нибудь другой вывод к примеру
01:10:34
cons ные кавычки
01:10:37
Вы слишком юны давайте сделаем ещё один
01:10:42
вывод и запишем
01:10:45
cons Приходите к нам через пишем п
01:10:51
18 имы помним с Мири
01:10:55
скобки и дописывая плюс пробел лет точка
01:10:59
и Давайте проверим как это работает
01:11:01
допустим пользователь вводит 20 лет
01:11:04
Добро пожаловать в наш бар Что будете
01:11:06
пить то есть мы понимаем что у нас
01:11:08
отработал только вот этот вот блок
01:11:10
Давайте попробуем ещё один вариант и
01:11:12
напишем 13 Вы слишком юны Приходите к
01:11:16
нам через 5 лет то есть мы с вами
01:11:18
написали программу в которой в какой-то
01:11:19
момент происходит ветвление на два пути
01:11:22
и после этого она снова соединяется в
01:11:24
один путь чтобы это понять для примера
01:11:27
сделаем такой вот вывод cons Right L за
01:11:31
условным оператором нам всегда будет
01:11:33
выводиться наше последнее сообщение за
01:11:35
условным оператором проверим с другим
01:11:38
условием
01:11:40
13 мы видим за условным оператором стоит
01:11:44
заметить что ветвь else не обязательная
01:11:46
её может и не быть А вот ветвь If
01:11:49
обязательная Она всегда должна
01:11:51
присутствовать если мы хотим сделать
01:11:53
какую-то проверку давайте рассмотрим ещё
01:11:55
один пример у нас к примеру будет
01:11:58
строковая переменная string Day of Week
01:12:01
мы будем записывать наши дни недели
01:12:04
conso Здесь нам конвертация не нужна
01:12:06
потому что мы помним что из консоли
01:12:08
всегда возвращается строка чтобы
01:12:10
пользователь понимал что мы от него
01:12:12
Хотим мы запишем введите день недели до
01:12:16
точе и после этого делаем проверку если
01:12:19
день недели равен понедельник то в этом
01:12:22
случае мы с вами проходим курсы и
01:12:25
сделаем ещё одну проверку If Day of Week
01:12:28
равен вторник То в этом случае мы с вами
01:12:31
conso Right line военные кавычки делаем
01:12:35
домашнее задание точка делай ДЗ надо
01:12:38
делать ДЗ полезно и теперь если мы
01:12:41
запустим программу и введём понедельник
01:12:43
соответственно ничего не произойдёт и
01:12:45
никакой условный оператор не выполнит
01:12:47
свой блок это опять же происходит потому
01:12:50
что наша консоль не распознаёт кирилиця
01:12:52
Мы вводим в этих случаях мы опять же
01:12:54
запи cons output encoding encoding
01:12:59
Unicode Это для вывода а для ввода conso
01:13:03
Input encoding encoding Unicode и сейчас
01:13:07
запускаем вводим понедельник и видим что
01:13:10
мы проходим в понедельник курс но выбрав
01:13:12
понедельник мы явно можем понять что
01:13:14
вторник уже остаётся не актуален То есть
01:13:16
это можно сказать взаимоисключающие
01:13:19
условия и проверку во втором блоке уже
01:13:21
выполнять необязательно Давайте
01:13:23
попробуем выполнить программу в Поша
01:13:25
режи для этого нажимаем правой кнопкой
01:13:27
мыши и
01:13:29
выбираем выполнить до текущей позиции
01:13:32
программа выполнится до этой стоки и
01:13:34
остановится чтобы мы приняли следующие
01:13:36
действия выполняется мы видим консоль
01:13:39
нажимаем далее вводим понедельник и мы
01:13:42
проверяем Day of Week равен понедельник
01:13:46
жмём далее И мы заходим в наш блок здесь
01:13:49
мы выводим сообщение проходим курсы и
01:13:52
идм далее и по сути нам проверка of Week
01:13:55
уже не нужна но он всё равно в неё
01:13:57
заходит и делает эту проверку не нужна
01:14:00
она потому что мы уже знаем что у нас
01:14:02
понедельник и собственно говоря её
01:14:05
выполнять не требуется сделали проверку
01:14:07
в блок не зашли и завершили программу
01:14:11
вот программа закрылась то есть ещё раз
01:14:13
во втором блоке и у нас проверка не
01:14:15
прошла и программа вернулась в своё
01:14:18
русло после чего закрылось потому что
01:14:20
больше нет никаких команд что тут можно
01:14:22
сделать чтобы не выполнять
01:14:23
дополнительные проверки Вдруг у нас
01:14:25
таких сравнений будет очень много
01:14:27
Например семь или больше это будет не
01:14:29
очень выгодным занятием проверять каждое
01:14:32
условие когда мы знаем что они будут
01:14:34
ложные после одного истинного тут можно
01:14:37
прибегнуть такой вещи как else If то
01:14:39
есть после специального слово else мы
01:14:42
пишем ещё один блок If Теперь мы с вами
01:14:44
можем прочитать следующим образом если
01:14:46
день недели равен понедельник то мы
01:14:48
выполним вот этот блок и вернём
01:14:50
программу в обычное русло Иначе если
01:14:53
день недели равен втор
01:14:55
то мы выполним этот блок и вернёмся в
01:14:58
обычный режим программы то есть ещё раз
01:15:00
день недели равняется понедельник если
01:15:03
да в остальные проверки больше не
01:15:05
полезем Если же нет день недели
01:15:07
равняется вторник Если да то выполним
01:15:09
эту инструкцию А если нет мы просто
01:15:11
выйдем из блока If else И вот так
01:15:13
водопади ком будем идти это верно нет
01:15:16
переходим к следующему это верно нет
01:15:19
переходим к следующему и так далее либо
01:15:21
Выходим из блока и в случае если текущее
01:15:24
сравнение будет верно например это или
01:15:27
вот это то есть вернёт то выполнится
01:15:30
только этот блок кода а остальные
01:15:32
проверки выполняться не будут Давайте
01:15:34
ещё раз попробуем в пошаговом режиме
01:15:37
нажмём выполнить до текущей позиции
01:15:39
Давайте начнём сначала со вторника
01:15:41
вторник и и видим понедельник нет сразу
01:15:46
перескакивая на второе условие вторник
01:15:49
Да переходим в блок условной конструкции
01:15:52
Day of втому здесь результат выражения
01:15:56
был равен True пишем console Right L
01:15:58
делаем домашнее задание выводим в
01:16:00
консоль и мы видим в консоли делаем
01:16:02
домашнее задание Теперь попробуем дойти
01:16:05
до понедельника выполнить до следующей
01:16:06
позиции пишем понедельник нажимаем Enter
01:16:10
и смотрим Day of Week равен понедельник
01:16:13
Да он у нас равен вернулось True и мы
01:16:16
заходим в первый блок и нам выводится
01:16:19
conso Right L проходим курс Да всё верно
01:16:21
проходим курс и видите блок else If даже
01:16:25
не начинал проверять он его проскочил и
01:16:27
вернул программу к обычному состоянию и
01:16:29
мы видим что мы полностью вышли из
01:16:31
нашего Ифа потому что всё остальное идёт
01:16:34
по ветви
01:16:35
else в этом собственно вся прелесть
01:16:38
оператора If следующее что нам нужно
01:16:40
разобрать это операторы логического и и
01:16:43
или это такие операторы которые позволят
01:16:46
нам создавать более сложные условия в
01:16:48
блоках If как они работают Давайте
01:16:51
перейдём в наш CSP interactive
01:16:55
вид другие окна CF interactive и
01:17:00
попробуем воспользоваться одним из
01:17:01
операторов 5 ра 5 или 4 ра 3 и мы
01:17:08
получаем True и вот таким образом мы
01:17:10
можем комбинировать несколько проверок
01:17:12
вместе Давайте посмотрим как это
01:17:14
работает и разберёмся что это вообще
01:17:16
такое начнём мы с разбора логического и
01:17:18
сделаем комментарий напишем логическое и
01:17:23
C логическая и это 2 ампер Санта на
01:17:26
клавиатуре оператор ампер Сант
01:17:28
набирается при помощи Shift 7 Далее в
01:17:31
комментарии запишем следующую табличку
01:17:34
всегда у наших операторов слева или
01:17:36
справа есть операнды пусть у нас левый
01:17:39
операнд будет X правый у нас будет Y а
01:17:44
далее запишем X амперсанд
01:17:55
мы уже знаем что бу может принимать
01:17:57
только два значения True либо false
01:18:00
соответственно конвертируются они либо в
01:18:02
единицу либо в ноль так вот операторы
01:18:04
логического и и или работают с
01:18:08
операндами типа Бул но Для большей
01:18:10
наглядности их действия конвертируем
01:18:12
булевые переменные в in целочисленные и
01:18:16
запишем следующие возможные комбинации
01:18:18
True fse для и и и X может принимать
01:18:21
значение True и конвертируется оно в
01:18:23
единицу принимает значение True далее У
01:18:26
нас X может принимать значение 1 Y 0 X
01:18:30
может быть нулём Y единицей и y может
01:18:34
быть нулём в целом это все возможные
01:18:37
сочетания комбинации X и Y конвертирова
01:18:40
их True либо fse логическая и берёт и
01:18:43
объединяет два логических операнда можно
01:18:45
сказать что это умножение Давайте
01:18:47
вычислим каждое сочетание в CP
01:18:50
interactive запишем 5 = 5 и 3
01:18:55
не равно 4 слева 5 ра п Ит
01:18:59
конвертируется в единицу и вот единичку
01:19:02
Мы записали 3 не равно 4 и тоже У нас
01:19:05
будет т и тоже она с конвертируется в
01:19:08
единицу и вот у нас единица записана
01:19:10
нажмём Enter и видим True соответственно
01:19:14
True у нас это единица и здесь мы
01:19:16
запишем оди Далее по таблице у нас
01:19:18
единичка и ноль мы можем записать 5 не
01:19:21
ра 4 Да это тру и 3 = 2 это у нас с вами
01:19:27
будет 0 и мы получаем fse соответственно
01:19:31
слева у нас была единица справа ноль и
01:19:33
мы получили ноль Так и запишем далее У
01:19:36
нас 0 единица также пишем 3 = 3 это у
01:19:42
нас будет ЛС или ноль и 4 = 4 это у нас
01:19:48
будет True то есть слева получаем false
01:19:51
0 справа получаем True либо едини
01:19:55
Вот и получаем так в таблицу и запишем и
01:19:58
у нас осталась ситуация когда с двух
01:20:00
сторон будет стоять ЛС 1 равно 2 и мы с
01:20:05
вами помним что мы также можем
01:20:06
сравнивать строки Привет равно пока и и
01:20:11
мы выйдем fse слева у нас было fse либо
01:20:14
ноль и у нас был fse тоже ноль Так и
01:20:18
запишем конвертирова в но и у нас
01:20:22
получается что сначала считается вот эта
01:20:24
часть и заносится в X а потом считается
01:20:27
вот эта часть и заносится в Y а потом
01:20:30
формально
01:20:31
перемножаемых
01:20:36
И теперь мы можем Представлять что
01:20:38
логическая и - это просто умножение или
01:20:41
подробно изучить таблицу истинности А
01:20:44
лучше всего запомнить такое выражение
01:20:46
что если хотя бы один из операндов ноль
01:20:48
то и результат их умножения ноль То есть
01:20:52
если хотя бы один из операндов Фолс то и
01:20:55
результат fse также у нас есть
01:20:57
логическая или скопирую нашу табличку
01:21:00
или обозначается двумя вертикальными
01:21:03
чертами то есть комбинации у нас
01:21:05
остались прежние Но вот операция будет
01:21:07
совсем другая для логического или мы
01:21:09
можем представить что это операция
01:21:11
простого сложения только нужно запомнить
01:21:13
что 1 + 1 всегда будет равняться единице
01:21:16
Давайте точно также прорешал в CP
01:21:19
interactive нам нужно слева и справа
01:21:20
получить True Давайте сравним символы
01:21:25
ра C или 1 = 1 нажимаем Enter получаем
01:21:31
True и записываем конвертирова True
01:21:33
единица теперь нам нужно слева True
01:21:36
справа но 1 не равно Д или здесь Нам
01:21:40
нужен false 1 ра 2 Enter получаем True
01:21:44
далее слева нам нужно false справа True
01:21:48
либо но и единица на этот раз сравним
01:21:52
строки Рав мяу или здесь нам надо
01:21:56
получить True 4 ра 4 вот получаем True и
01:22:00
записываем единицу осталось проверить но
01:22:03
и но поэтому мы записываем 0 меньше ми4
01:22:08
или 4 меньше либо равно 3 вводим и
01:22:13
получаем fse потому что слева у нас fse
01:22:16
и справа у нас fse и записываем Но вот
01:22:20
мы и получили таблицу истинности для
01:22:22
логического или вы можете более подробно
01:22:24
изучить таблицу истинности или запомнить
01:22:27
следующее выражение что для сочетания в
01:22:29
логическом или хотя бы одна единица в
01:22:32
результате будет давать единицу или хотя
01:22:35
бы одно True будет давать True в
01:22:37
основном операторы логического и и или
01:22:40
используется в составных условиях для
01:22:43
наших блоков If к примеру У нашего
01:22:45
игрока будет целочисленная in ма Рав 500
01:22:50
также у него будет уровень in level ра
01:22:54
сделаем составную проверку если у нашего
01:22:56
игрока денег больше либо равно 500 или
01:22:59
его уровень например больше дев то мы
01:23:02
его пропустим на следующий уровень If
01:23:06
Money больше либо равно 500 или level
01:23:12
больше девятого то выведем cons Right L
01:23:15
двойные кавычки проходи Добро пожаловать
01:23:19
в нашу гильдию а иначе пишем выну
01:23:25
за двери Давайте выполним и видим у нас
01:23:28
было 500 монет и уровень 10 и результат
01:23:32
проходи Добро пожаловать в нашу гильдию
01:23:35
если мы изменим значение например 400 и
01:23:38
уровень сделаем восьмой и слева получим
01:23:41
fse и справа получим fse то у нас будет
01:23:44
fse в блоке If и выполнится блок else и
01:23:47
всё верно вас вынули за дверь то есть мы
01:23:49
теперь делаем более сложные составные
01:23:51
условия и это позволяет нам идти одному
01:23:54
из путей в этом видео Познакомимся с
01:23:56
условным оператором swich не так давно
01:23:59
мы изучали такой пример у нас была
01:24:02
переменная типа string Day of Week мы её
01:24:06
заполняли через console readline И после
01:24:10
этого проверяли если Day of Week равен
01:24:13
понедельник то Мы выполняем какое-то
01:24:16
действие Иначе если Day of We равен
01:24:21
вторник мы выполняли какое-то действие и
01:24:24
Иначе если Day of Week равен среда то мы
01:24:29
выполняли какое-то действие А если бы у
01:24:31
нас было не 3 дня а целая неделя то нам
01:24:35
бы пришлось так прописывать аж до самого
01:24:37
воскресенья согласитесь очень неудобно
01:24:40
их так описывать и неудобно будет потом
01:24:42
расширять эту программу так вот помимо
01:24:44
If есть ещё один условный оператор Это
01:24:47
условный оператор swich сдвинем наш
01:24:50
неудобный пример пониже мы его не
01:24:52
удаляем чтобы потом сравнить с тем что у
01:24:54
нас получилось для того чтобы
01:24:56
использовать условный оператор Switch мы
01:24:58
пишем Switch круглые скобки после чего
01:25:01
фигурные скобки в круглых скобках мы
01:25:04
будем указывать ту переменную значение
01:25:06
которой мы будем сравнивать с различными
01:25:08
вариантами пишем Day of Week и далее
01:25:11
будем сравнивать с вариантами чтобы
01:25:13
обозначить какой-то вариант мы пишем йс
01:25:16
наше значение у нас там был понедельник
01:25:19
далее пишем двое точи и Break точка
01:25:22
запятой Как вы видите здесь фигурных
01:25:24
скобок нету наш блок кода будет
01:25:26
определяться специальными словами Case и
01:25:28
Break И теперь мы с вами можем записать
01:25:30
абсолютно любые команды и причём их
01:25:33
здесь может быть сколько угодно к
01:25:35
примеру в понедельник мы идём в кино
01:25:39
cons Right L идём в кино ниже запишем
01:25:44
cons Right L двойные кавычки едим
01:25:48
попкорн также у нас будет второй вариант
01:25:51
пишем кейс вторник двоеточия также Брей
01:25:56
во вторник мы с вами будем проходить
01:25:58
курс Right L двойные кавычки
01:26:02
проходим курсы согласитесь Так намного
01:26:06
удобнее всё это будет описывать Когда
01:26:08
будет логично применять Switch А когда
01:26:11
If Дело в том что при использовании
01:26:13
Switch у нас все варианты
01:26:15
взаимоисключающие То есть если у нас
01:26:17
выбран вариант понедельник то явно ни
01:26:19
вторник ни среда ни четверг и так далее
01:26:22
Также Switch полез менять Когда у вас
01:26:25
много вариантов сравнения Например если
01:26:27
их се то логичнее будет взять Switch
01:26:29
продолжим нашу программу пишем Case
01:26:33
среда дото Break и йс четверг точи Break
01:26:41
и пятница двоеточие и Break и Давайте в
01:26:45
среду у нас будет Right line
01:26:48
изучаем Switch в четверг мы с вами
01:26:52
проектируем приложение а в пятницу
01:26:55
Пускай у нас будет выходной
01:26:59
полнейший чил про субботу и воскресенье
01:27:03
мы пока не знаем теперь запустим нашу
01:27:05
программу и проверим среда и видим
01:27:08
изучаем Switch Да всё верно У нас
01:27:11
вариант изучаем swich Давайте теперь в
01:27:13
пошаговом режиме
01:27:15
посмотрим выполнить для текущей позиции
01:27:19
консоль ждёт нас ввода пишем
01:27:23
четверг и видим программа заходит в
01:27:25
Switch проверяет значение значение у нас
01:27:28
четверг мы его ввели идём дальше и
01:27:31
смотрим Что сразу Switch перепрыгнул на
01:27:33
наше значение четвер и выведет намм
01:27:35
команд проектируем приложение и в
01:27:37
консоли отобразилась проектируем
01:27:39
приложение далее идём переходим на Break
01:27:42
и программа возвращается в своё русло то
01:27:45
есть Switch берёт значение из нашей
01:27:47
переменной и проверяет Ага У нас есть
01:27:50
четверг Если есть то он сразу к нему
01:27:53
телепортируется и выполняет блок кода
01:27:55
который к нему привязан А после чего
01:27:57
возвращается в нашу программу снова же
01:27:59
можно сказать что это выбор пути но при
01:28:02
условном операторе If Это только два
01:28:04
пути а при выборе оператора Switch у нас
01:28:07
получается своеобразная вилка то есть
01:28:10
несколько путей и Согласитесь что вот
01:28:12
так множество вариантов писать удобнее
01:28:15
чем вот так но может возникнуть такая
01:28:18
ситуация когда у нас для нескольких дней
01:28:20
выполняется один и тот же код то есть
01:28:23
выполняется од одно и то же действие к
01:28:25
примеру у нас будет кейс суббота
01:28:28
двоеточие Брей и здесь мы тоже бы хотели
01:28:32
сходить в кино и поесть попкорн И вот
01:28:34
так вот копируя делать не очень хорошо
01:28:37
это простой дубляж кода первым делом у
01:28:39
нас может возникнуть такая мысль что мы
01:28:41
здесь вот можем добавить операторы или и
01:28:45
напечатать суббота но в конструкции
01:28:47
условного оператора Switch нельзя
01:28:49
использовать операторы логического и и
01:28:52
логического или но два варианта для
01:28:55
одного блока кода здесь сделать можно
01:28:57
это делается следующим образом мы просто
01:29:00
к первому варианту понедельник добавляем
01:29:02
ещё один кейс двойные кавычки и пишем
01:29:06
суббота и причём здесь мы можем описать
01:29:09
сколько угодно вариантов например кейс и
01:29:12
запишем воскресенье То есть у нас
01:29:14
получается три варианта кейс идут друг
01:29:17
за другом и вот этот вот блок кода будет
01:29:19
соответствовать трём вариантам
01:29:21
понедельник суббота и воскресенье
01:29:23
Давайте с вами это
01:29:26
проверим Окей у нас возникла ошибка
01:29:29
всегда Когда возникает ошибка нужно
01:29:31
нажимать нет Иначе если вы нажмёте да у
01:29:34
вас запустится предыдущая Рабочая версия
01:29:36
а нам нужно выяснить В чём у нас ошибка
01:29:39
нажимаем нет и читаем ошибку
01:29:41
предположение Switch содержит несколько
01:29:43
случаев со значением метки суббота у нас
01:29:46
уже есть кейс суббота и он дублируется и
01:29:49
нам об этом Visual Studio говорит
01:29:52
поэтому здесь мы его просто удаляем
01:29:55
и запускаем ещ раз Ctrl F5 и проверяем
01:30:01
воскресенье идём в кино и едим попкорн
01:30:04
всё правильно и таким образом нам с вами
01:30:06
ничего не пришлось дублировать но ещё
01:30:08
может возникнуть такая ситуация когда мы
01:30:10
с вами вводим какой-то непонятный день
01:30:12
запустим нашу программу и введём
01:30:17
субботник и у нас ничего не выполнило но
01:30:20
нам бы с вами хотелось указать
01:30:22
пользователю что он что-то неверное Для
01:30:25
таких случаев есть специальное слово
01:30:27
default он ставится в конец свича пишем
01:30:31
default cons Right L я такого дня не
01:30:36
знаю И обязательно ставим в конце Break
01:30:39
проверяем вводим какую-то непонятка и
01:30:43
видим я такого дня не знаю Давайте
01:30:46
теперь посмотрим на всё вместе
01:30:48
согласитесь вот этот вариант намного
01:30:50
приятнее выглядит чем вот этот если бы
01:30:53
мы писали дополнительные условия для
01:30:55
первого блока кода If нам бы наверняка
01:30:58
пришлось бы делать так или Day of We
01:31:02
равен субботе или Day of We равен
01:31:08
воскресенье или и так далее Вот такая бы
01:31:12
у нас большая простыня получилась А вот
01:31:14
здесь мы написали всё компактно и в трёх
01:31:17
кейсах Итак конечно же намного удобнее в
01:31:19
принципе мы с вами сделали неплохой
01:31:21
календарик Мы конечно не можем его с ми
01:31:23
никак расширять но нам важно было узнать
01:31:26
как работает Switch на этом с ним всё и
01:31:28
Давайте продолжать дальше
01:31:30
попрактиковаться
01:31:42
с помощью одного оператора If Для этого
01:31:45
нам понадобится переменная строкового
01:31:47
типа string Password и мы говорим что
01:31:51
она имеет значение 1 2 3
01:31:54
Q Конечно же это надо взять в двойные
01:31:57
кавычки И также у нас будет вво от
01:32:00
пользователя string User Input то есть
01:32:04
та переменная в которую мы запишем то
01:32:06
что введёт пользователь И теперь мы
01:32:08
выведем инструкцию conso wr двойные
01:32:12
кавычки
01:32:15
введите пароль и теперь переменно User
01:32:18
Input мы приво значение cons read и
01:32:23
теперь мы делаем
01:32:24
проверку если User
01:32:28
Input R Password то мы с вами выводим
01:32:32
сообщение
01:32:34
cons кавычки Пароль принят доступ базе
01:32:40
данных разрешён а иначе else мы выводим
01:32:45
пользователю сообщение
01:32:48
conso двойные кавычки неверный пароль
01:32:52
доступ закрыт теперь Давайте проверим
01:32:55
работу нашей программы Ctrl F5 вводим 1
01:32:58
2 3
01:33:00
qwe конечно же на
01:33:03
английском Пароль принят доступ к базе
01:33:06
данных
01:33:08
разрешён закрываем программу и Давайте
01:33:11
теперь введём неверный пароль 1 2 3 4
01:33:14
qwe неверный пароль доступ закрыт всё
01:33:18
правильно программа работает исправно
01:33:20
таким образом Теперь мы с вами можем
01:33:22
делать программы защищённые паролем если
01:33:24
пароль будет верным то мы даём доступ
01:33:27
пользователю к какому-нибудь функционалу
01:33:29
вторым примером у нас будет конвертер
01:33:31
valute такой самый простой у нас с вами
01:33:34
будет две переменные flot значения
01:33:36
которых нам ведёт пользователь и это
01:33:38
будут flot rubbles in Wallet то есть
01:33:42
рубли в кошельке и flot dollars in
01:33:45
Wallet доллары в кошельке теперь зададим
01:33:48
курсы валют Пусть это будут
01:33:51
int RP 2
01:33:54
USD то есть рубли в доллары
01:33:57
и
01:34:01
USD Пускай рубли в доллары будет 64 А
01:34:06
USD в рубли 66 далее нам понадобится
01:34:10
переменная в которую мы запишем ту сумму
01:34:14
которую захочет обменять пользователь
01:34:16
это будет вещественно FL exch
01:34:21
currency количество Валю для
01:34:24
а также нам понадобится переменная
01:34:26
отражающая то какую операцию обмена
01:34:29
выбрал пользователь и это будет string
01:34:31
desired Operation то есть желаемая
01:34:34
операция далее мы с вами запишем
01:34:36
небольшое приветствие conso Right line
01:34:39
Добро пожаловать в обменник валют
01:34:43
следующим делом мы попросим у
01:34:44
пользователя ввести свой баланс и пишем
01:34:47
ко wr
01:34:50
введите
01:34:52
баланс рублей и теперь в переменную
01:34:55
rubbles inet мы запишем значение convert
01:34:59
int
01:35:01
32 а подождите у нас же flot значение
01:35:06
поэтому у нас будет convert to Single и
01:35:09
мы с конвертируем в от пользователя то
01:35:11
есть
01:35:12
conso read те же действия сделаем для
01:35:15
баланса в долларах
01:35:18
cons и теперь перемен
01:35:23
значение convert to Single console
01:35:27
readline После чего мы говорим
01:35:29
пользователю что надо выбрать
01:35:31
определённую операцию И для этого мы
01:35:34
пишем conso Right line двойные кавычки
01:35:38
выберите необходимую
01:35:40
операцию и предлагаем пользователю
01:35:43
следующий выбор скопирую строчки я это
01:35:45
сделал комбинацией клавиш ctr и
01:35:48
английская D и меняем содержимое здесь
01:35:51
запишем первый вариант обменять руб на
01:35:55
доллары а во второй вариант запишем 2 ти
01:35:59
обменять доллары на рубли и далее
01:36:02
обозначим
01:36:04
cons двойные кавычки ваш выбор двоеточие
01:36:08
и далее в переменную des Operation
01:36:10
запишем то что введёт пользователь то
01:36:13
есть ту операцию которую он выбрал и
01:36:15
пишем des
01:36:22
Operation потому что с консоли приходит
01:36:25
строковый тип данных а Design Operation
01:36:28
у нас строка как тут лучше поступить и
01:36:30
что выбрать для проверки по сути у нас
01:36:32
опять два взаимоисключающих варианта
01:36:35
если возможен первый то невозможен
01:36:37
второй если возможен второй то не первый
01:36:40
А если будет ещё и третий то невозможны
01:36:43
не первый и нени второй Конечно мы можем
01:36:45
расширять наш обменник до невозможности
01:36:47
Но для примера нам хватит двух вариантов
01:36:49
Исхода и Давайте здесь будем всё
01:36:51
сравнивать с помощью Switch Почему я
01:36:52
выбрал имя на оператор Switch Да можно
01:36:55
согласиться что с двумя вариантами
01:36:56
Исхода If будет достаточно удобен в
01:36:59
использовании но Давайте Представлять
01:37:02
что программа будет расширяться И у нас
01:37:04
в последствии будет не два варианта
01:37:06
Исхода а три иче и пять и так далее в
01:37:09
этом случае If начнёт разрастаться и
01:37:11
станет неудобен так как у нас желаемая
01:37:13
операция введённая пользователем
01:37:15
является типом строки то единственное
01:37:18
неудобство будет заключаться в том что
01:37:20
мы будем всё сравнивать со строковый
01:37:22
типом то есть каждое значение и каждый
01:37:25
вариант будет у нас в двойных кавычках и
01:37:28
далее запишем Switch круглые скобки
01:37:32
фигурные скобки и мы будем сравнивать
01:37:34
des Operation И как я уже сказал мы
01:37:37
будем сравнивать всё со строковый типом
01:37:39
данных То есть у нас будет кейс двойные
01:37:42
кавычки один То есть первая ситуация то
01:37:46
и
01:37:47
точи не забываем про Брей и второй
01:37:50
случай у нас будет кес двоечка bre и в
01:37:54
дефолтном значении когда пользователь
01:37:56
ведёт ни единицу ни двойку мы выведем
01:37:58
что мы не знаем такой операции поэтому я
01:38:01
пишу default двоеточие conso Right line
01:38:06
и пишем выбрана Неверная операция и
01:38:09
заканчиваем наш свич командой B в первом
01:38:12
варианте у нас будет обмен рублей на
01:38:14
доллары Так и запишем conso Right L той
01:38:18
двойные кавычки обмен рублей на доллары
01:38:22
далее спросим пользователя Сколько денег
01:38:24
он хочет обменять Какое количество
01:38:27
рублей
01:38:29
conso Сколько вы хотите обменять
01:38:34
двоеточие вопрос и теперь переменное
01:38:36
количество валюты для обмена или
01:38:39
Exchange currency
01:38:42
присвоение конвертирова к силу и
01:38:45
введённое от пользователя из консоли
01:38:48
cons read далее сделаем следующую
01:38:51
проверку которая нас защитит того чтобы
01:38:54
не оказалось ситуации когда у
01:38:56
пользователя меньше денег на балансе чем
01:38:58
он хочет обменять и проверяем If rubbles
01:39:02
inet больше либо равно Exchange currency
01:39:06
Count далее выполняем обменную операцию
01:39:09
мы от нашего количества рублей в
01:39:11
кошельке отнимаем столько сколько хотим
01:39:14
поменять и переводим рубли в доллары и
01:39:17
добавляем к нашим долларам в кошельке
01:39:19
столько сколько мы поменяли то есть
01:39:21
конвертирова ную валюту до
01:39:25
плю ра
01:39:31
curd а иначе если пользователь захотел
01:39:34
поменять больше денег чем у него в
01:39:38
кошельке мы выводим сообщение двойные
01:39:40
кавычки недопустимое количество рублей и
01:39:45
у нас второй случай во втором случае мы
01:39:47
будем менять доллары на рубли и мы пишем
01:39:53
кавычки обмен долларов на рубли далее
01:39:57
спрашиваем
01:39:58
conso wr Сколько вы хотите обменять
01:40:02
после чего той же переменной Exchange
01:40:04
currency Count присваиваем значение с
01:40:08
конвертирова to Single то что нам ввёл
01:40:11
пользователь
01:40:13
console readline круглые скобки и делаем
01:40:17
такую же проверку If теперь уже доллары
01:40:20
в кошельке больше либо равно
01:40:25
currency если это условие верно то мы
01:40:28
делаем следующую операцию то есть
01:40:30
операцию обмена dollars inet мину
01:40:34
равно currency и теперь к рублям в
01:40:38
кошельке
01:40:39
invet плю равно Exchange currency Count
01:40:42
умножаем на курс USD rbl а иначе выведем
01:40:47
такое же сообщение CV двойной Tab
01:40:50
двойные кавычки недопустимое количество
01:40:54
долларов и вот такой обменник у нас
01:40:56
получился и после чего мы можем вывести
01:41:00
содержимое нашего кошелька можем после
01:41:02
всех проверок и сравнений написать
01:41:05
двойные кавычки используем
01:41:07
интерполяцию ваш баланс двоеточия
01:41:10
фигурные скобки пишем переменную rubbles
01:41:14
invet далее запишем рублей плюс также
01:41:19
используем интерполяцию двойные кавычки
01:41:21
фигурные скобки dollars inet и запишем
01:41:26
долларов также после рублей можем
01:41:28
поставить запятую и теперь давайте
01:41:30
выполним нашу программу Добро пожаловать
01:41:32
в обменник валют введите баланс рублей
01:41:36
введём 500 руб долларов ноль теперь
01:41:39
выберем необходимую операцию будем
01:41:41
обменивать рубли так как долларов у нас
01:41:43
нету один обмен рублей на доллары
01:41:46
сколько мы хотим поменять конечно же мы
01:41:48
поменяем столько сколько у нас есть 500
01:41:51
и в итоге у нас в кошельке ру и 7
01:41:54
долларов 81 цент нажимаем любую клавишу
01:41:57
Давайте проверим для долларов Ctrl F5
01:42:00
рублей ставим ноль долларов ставим
01:42:04
100 Enter и выбираем операцию 2 обмен
01:42:08
долларов на рубли сколько мы хотим
01:42:10
обменять Ну давайте 50 долларов и мы
01:42:12
видим что у нас в кошельке 3.300 руб и
01:42:15
50 долларов а если бы при выборе
01:42:18
операции мы ввели Так давайте здесь
01:42:20
1.000 руб 100 долларов если бы мы ввели
01:42:24
какую-то непонятную операцию то он бы
01:42:26
сказал что выбрана Неверная операция и
01:42:28
выдал бы нам столько же денег сколько у
01:42:30
нас есть в кошельке и сколько было до
01:42:32
этого Давайте также попробуем обменять
01:42:34
больше чем у нас есть например 1.000 руб
01:42:37
50 долларов обменяем рубли на доллары и
01:42:40
попробуем обменять 2.000 и он пишет
01:42:43
недопустимое количество рублей ваш
01:42:45
баланс 1.000 руб и 50 долларов также
01:42:48
попробуем обменять больше долларов чем у
01:42:50
нас есть также ведём 1.000 50 обменять
01:42:54
доллары на рубли
01:42:55
и напишем к примеру 60 долларов
01:42:59
недопустимое количество долларов ваш
01:43:01
баланс 100 руб и 50 долларов и в целом
01:43:04
наш обменник успешно работает можем его
01:43:06
запускать в работу следующая важная тема
01:43:09
что мы будем изучать - это циклы циклы
01:43:11
являются управляющими конструкциями и в
01:43:14
зависимости от определённого условия они
01:43:16
позволяют нам выполнять некоторые
01:43:18
действия множество раз количество раз
01:43:20
может быть определённое А может и не
01:43:22
быть
01:43:23
Это зависит от цикла начнём мы с цикла
01:43:25
while while - это цикл с условием и это
01:43:28
условие может быть абсолютно любым цикл
01:43:31
будет выполняться до тех пор пока это
01:43:33
условие верно как правило в теле цикла
01:43:36
меняются переменные которые входит в
01:43:39
наше условия и эти переменные могут быть
01:43:41
абсолютно любого типа и как этот цикл
01:43:43
вообще
01:43:44
реализуется мы пишем while круглые
01:43:47
скобки фигурные скобки и в круглых
01:43:50
скобках пишем условия к примеру сом
01:43:53
переменную int H и мы хотим чтобы наша
01:43:56
программа поздравила пользователя такое
01:43:58
количество раз сколько он ведёт лет
01:44:00
поэтому пишем conso Wi двойные кавычки
01:44:04
введите Ваш возраст переменной H
01:44:07
присваиваем значение H ра console
01:44:10
readline и конвертируем наш ввод к иту
01:44:15
convert to int и не забываем скобки вот
01:44:19
пользователь сделает свой ввод и далее
01:44:22
Мы будем выполнять следующее действия до
01:44:24
тех пор пока
01:44:27
H больше нуля мы выводим cons wiel с
01:44:32
Днём Рождения и Давайте проверим работу
01:44:36
Ctrl F5 идите Ваш возраст Ну давайте
01:44:41
12 и мы видим что программа выполняется
01:44:44
бесконечное количество раз закроем её То
01:44:47
есть получается у нас программа
01:44:48
зациклилась либо всё сломалось Дело в
01:44:51
том что у нас условия которое в скобках
01:44:54
всегда верно то есть у нас всегда
01:44:56
возраст больше нуля то есть мы
01:44:58
переменную H вообще никак не изменяем
01:45:00
это значит что нам нужно принять
01:45:02
какие-то действия например чтобы у нас
01:45:04
закончился цикл мы пишем H минус Минус
01:45:07
то есть поставили декремент выполним
01:45:09
программу сделаем ввод 10 и нас
01:45:12
программа поздравила с днём рождения 10
01:45:14
раз 1 2 3 4 5 6 7 8 9 10 Всё верно то
01:45:22
есть программа меня поздравила 10 раз с
01:45:24
днём рождения закрываем программу также
01:45:27
мы могли с вами сделать это гораздо
01:45:28
компактнее поставив декремент прямо в
01:45:31
круглые скобки так тоже можно делать
01:45:34
Ctrl F5 2 с днём рождения С днём
01:45:37
рождения закрываем программу в целом мы
01:45:40
с вами оператор Wi изучили но у нас с
01:45:43
вами ещё есть такие крутые специальные
01:45:45
слова как Break и contin иногда у нас
01:45:47
возникают такие ситуации когда нам нужно
01:45:50
выйти из цикла не дожидаясь его
01:45:52
завершения и тут нам на помощь приходит
01:45:54
оператор Break это похоже на оператор
01:45:56
Break как в конструкции Switch но
01:45:58
немножечко по-другому давайте сделаем
01:46:00
следующую проверку если H равен пяти то
01:46:04
мы говорим Break суть заключается в том
01:46:08
что мы можем вать наш цикл в любой
01:46:11
момент запустим программу введём возраст
01:46:15
10 и нас поздравили пять раз а остальные
01:46:18
пять раз не поздравляли потому что мы
01:46:20
попросили поздравлять всего лишь до
01:46:22
пятилетнего возраста если бы мы просто
01:46:24
не делали брейк Давайте его
01:46:26
закомментировать
01:46:29
10 раз также есть следующий вариант
01:46:32
например Мы хотим чтобы цикл не
01:46:34
завершался а Пропустил одну итерацию
01:46:36
итераций называют одно выполнение цикла
01:46:39
То есть когда программа прошла по одному
01:46:41
блоку кода это и есть одна итерация так
01:46:44
вот чтобы пропустить одно значение У нас
01:46:47
есть оператор contin Он у нас не
01:46:49
прерывает Цикл А переносит к следующему
01:46:51
шагу то есть к началу итерации Давайте с
01:46:54
вами уберём Break и запишем continue
01:46:58
точка с запятой выполним се введём 10 и
01:47:03
видим что ничего не изменилось также 10
01:47:05
операций Это происходит потому что наш
01:47:08
оператор If стоит после вывода нашего
01:47:11
сообщения с Днём Рождения для этого мы
01:47:13
просто переносим его наверх и выполняем
01:47:16
программу
01:47:17
10 и видим 1 2 3 4 5 6 7 8 9 получается
01:47:25
мы пропустили один шаг можем здесь даже
01:47:28
выводить не с днём рождения а просто наш
01:47:30
H чтобы было более нагляднее 9 7 6 5 4 3
01:47:35
2 1 0 то есть мы видим что у нас шаг ь
01:47:38
пропустил так же как мы с вами И
01:47:40
записывали в проверке H = 8 то есть мы
01:47:43
видим что мы пропустили тот шаг который
01:47:45
указали в блоке If это нам помог сделать
01:47:47
оператор continue следующим на очереди у
01:47:50
нас идёт цикл 4 цикл 4 немного отличает
01:47:53
цикла while но суть примерно остаётся та
01:47:55
же for - это у нас цикл с параметром а
01:47:58
while - это у нас цикл с условием для
01:48:00
for обычно задаётся начальное и конечное
01:48:03
значение переменной и какие-то условия
01:48:06
для её изменения собственно э переменно
01:48:09
имеет у нас числовой тип либо
01:48:11
вещественный как же реализуется цикл р
01:48:14
первым делом мы пишем р далее круглые
01:48:17
скобки и фигурные скобки и у нас круглые
01:48:20
скобки будут делиться на три блока в
01:48:22
первом блоке мы создаём какую-то
01:48:24
переменную например int I и задаём ей
01:48:28
начальное значение ноль она
01:48:30
необязательно должна равняться нулю она
01:48:32
может начинаться либо с пяти с единицы с
01:48:35
абсолютно любого значения но пока пускай
01:48:37
будет ноль во втором блоке идёт какое-то
01:48:39
условие например и меньше де пускай
01:48:44
будет 10 то есть до тех пор пока
01:48:46
выполняется это условие у нас будет
01:48:48
выполняться наш цикл 4 и как вы видите
01:48:51
наша переменная и должна изменяться для
01:48:53
этого собственно и создан третий блок
01:48:55
здесь мы напишем и + + то есть будем её
01:48:58
увеличивать каждый цикл каждую итерацию
01:49:01
цикла на единицу То есть это и есть
01:49:04
способ изменения нашей переменной после
01:49:06
этого идут наши фигурные скобки и в этом
01:49:09
блоке кода мы можем выполнять наши любые
01:49:11
действия пишем console Right line и
01:49:14
Давайте с вами выведем ту же I выполним
01:49:16
нашу программу и видим что с нуля до
01:49:20
девяти мы вывели наш I тут может быть
01:49:23
немного сложнее чем с циклом while мы не
01:49:26
можем понять В каком порядке тут всё
01:49:28
происходит Давайте выполним в пошаговом
01:49:32
режиме и видим что у нас доходит до
01:49:34
блока for инициализируется in I
01:49:38
присваиваем ему значение ноль делаем
01:49:41
следующий шаг проверяем и меньше де если
01:49:45
True то по продолжаем наши
01:49:48
действия берм нашу I и Мы помним что
01:49:52
инкремент действует после того как мы
01:49:54
использовали нашу переменную
01:49:55
соответственно у нас выведется
01:49:58
ноль cons Right L видим ноль и после
01:50:03
чего этот ноль увеличится на единицу то
01:50:05
есть в переменной I сейчас лежит
01:50:07
единичка Продолжаем наш цикл проверяем
01:50:10
условие I меньше де Заходим в блок
01:50:13
выводим нашу единицу Выходим из блока
01:50:16
идём к декрету увеличиваем I на единицу
01:50:20
то есть мы сейчас видим что у нас в а
01:50:22
жит единица продолжаем и мы видим что I
01:50:26
увеличилась ещё на единичку и стала
01:50:27
равна двум далее проверяем условие I
01:50:30
меньше десяти видим да меньше True
01:50:34
соответственно мы зайдём в этот блок
01:50:36
conso Right line и выведем снова I
01:50:39
проходим оп и у нас вывела двойка то
01:50:44
есть ещё раз давайте например начнём с
01:50:46
единицы и дойдём до четырёх Ctrl F5 и
01:50:51
видим 1 2 3 формально мы не доходим до
01:50:54
чех потому что у нас условие I меньше че
01:50:57
Но если бы мы здесь поставили I меньше
01:50:59
либо равно четырём и вывели у нас бы
01:51:02
четвёрка включилась потому что оператор
01:51:04
меньше либо равно включает четвёрку свою
01:51:07
границу диапазона можем также сделать
01:51:09
это в пошаговом режиме у нас первым
01:51:12
делом инициализируется I присваивается
01:51:14
ей значение единицы Вот она была ноль
01:51:18
стала единице и проверяется меньше либо
01:51:20
равно че идм далее
01:51:25
выводим видим один вывелось увеличили на
01:51:28
единицу далее Она стала равна дву меньше
01:51:32
либо равно чем соответственно заходим
01:51:34
сюда и выводим
01:51:38
I и так
01:51:40
далее и мы видим I равно 3 увеличиваем
01:51:44
на единичку проверяем Теперь меньше либо
01:51:48
равно 4 У нас сейчас равно
01:51:51
соответственно мы пос раз его выведем
01:51:54
увеличим на единицу ста равен п теперь
01:51:58
здесь у нас в условии false и мы не
01:52:01
будем заходить в этот блок кода всё Мы
01:52:03
вышли и завершили нашу программу также
01:52:05
мы можем с вами сделать и другой шаг
01:52:07
Например если мы сделаем ноль и здесь
01:52:11
вернём десятку А здесь условие меньше
01:52:13
десяти и будем прибавлять не единицу а
01:52:16
двойку Ctrl F5 и мы видим у нас с каждым
01:52:19
шагом прибавляется по двойке 0 2 4 6 8
01:52:24
если бы мы здесь поставили равно и
01:52:26
выполнили нашу программу у нас бы
01:52:28
включилась и десятка также нам
01:52:29
необязательно всегда увеличить мы можем
01:52:32
пойти и в обратном направлении например
01:52:34
Здесь использовать декремент но чтобы
01:52:36
использовать декремент начальное
01:52:38
значение I должно быть равно дети и
01:52:41
выполняться до тех пор пока I больше
01:52:44
нуля выполним нашу программу и видим Мы
01:52:46
начинаем с 10 и до единицы ноль мы не
01:52:49
включаем потому что I должна быть строго
01:52:52
больше соответственно если мы тут
01:52:54
поставили равно больше либо равно и
01:52:56
выполнили программу у нас бы ноль
01:52:58
включился Давайте попробуем повторить
01:53:00
пример как с циклом while Мы также
01:53:02
создадим переменную
01:53:04
int попросим пользователя ввести это
01:53:07
значение конечно же здесь
01:53:10
команда присваиваем значение ввода от
01:53:13
пользователя переменной H сразу
01:53:16
конвертируем Con 32 наш
01:53:23
и далее будем сравнивать нашу I с
01:53:25
переменной H то есть вернём здесь 0 I
01:53:28
меньше либо равна нашему H здесь будем I
01:53:32
каждый раз увеличивать I + + то есть от
01:53:36
нуля и до нашего H и также будем писать
01:53:39
наше поздравление Днём Рождения и можем
01:53:42
записать Вам исполнилось используем
01:53:46
здесь интерполяцию H L так и теперь
01:53:50
запустим нашу программу и введём 10 и
01:53:53
видим что каждый раз нам исполнилось 10
01:53:55
лет что же не так потому что мы выводим
01:53:58
H а не I выберем I и запустим всё снова
01:54:02
вводим возраст и мы видим что начиная с
01:54:04
нуля нас каждый год поздравляли С днём
01:54:07
рождения то есть от самого рождения и до
01:54:10
дети Мы с вами можем сдвигать диапазон
01:54:13
например выберем I Рав едини и 10 лет не
01:54:17
включим то есть I меньше H Ctrl F5
01:54:20
вводим 10 и видим начиная с одного года
01:54:24
и до девяти нас поздравляли С днём
01:54:26
рождения также мы можем рассмотреть
01:54:28
такой пример когда нам нужно вывести
01:54:30
только чётное значение от I равно 0 до
01:54:34
100 I п ра 2 и выводим нашу I вво уберём
01:54:40
Ctrl F5 и мы видим что нам вывелись все
01:54:43
чётные
01:54:45
значения Однако Ноль - это нечётное
01:54:48
значение поэтому можем поставить
01:54:49
проверку If I ра ну мы пишем continue
01:54:54
Ctrl F5 и видим что начиная с двойки и
01:54:58
до дево нам вывели все чётные значения
01:55:01
то есть в этом случае мы видели чёткие
01:55:04
границы мы знали заранее какие у нас
01:55:06
будут числа мы даже могли их сами
01:55:09
посчитать соответственно в таких случаях
01:55:11
и применяется цикл for А вот к примеру
01:55:13
если бы цикл выполнялся неопределённое
01:55:15
количество раз то мы бы с вами не знали
01:55:18
его чётких границ например это игра И
01:55:20
пока пользователь сам не захочет её
01:55:22
завершить Мы её не закрываем тут конечно
01:55:25
же лучше всего использовать цикл while
01:55:27
Давайте попрактиковаться
01:55:52
1 2 3 4 5 6 а также у нас будет string
01:55:56
строка User Input и это то что нам будет
01:55:59
вводить пользователь на этом данных нам
01:56:02
достаточно и мы сразу видим что
01:56:04
Количество попыток у нас пять и размер
01:56:06
шага у нас будет равен единиц Значит нам
01:56:09
отлично подходит цикл for определяем for
01:56:12
и начинаем его заполнять
01:56:18
инициализирует Count и будем увеличивать
01:56:21
I каждый раз на единицу i+ + и теперь
01:56:24
каждый шаг будем запрашивать пароль
01:56:26
console Write и просим введите пароль
01:56:30
двоеточием пользователь вводит пароль и
01:56:34
снова у нас User Input Raven conso
01:56:37
readline И после этого мы делаем
01:56:40
проверку мы проверяем User Input равен
01:56:44
нашему паролю Password И после этого
01:56:46
если значения равны мы выводим наши
01:56:48
секреты conso Right line Так и запишем
01:56:51
секретики
01:56:52
а иначе если пароль был введён неверно
01:56:55
мы обработаем следующую ситуацию else
01:56:58
фигурные скобки conso wr line двойные
01:57:03
кавычки введён неверный пароль Следующее
01:57:07
сообщение у нас будет console Right line
01:57:10
двойные кавычки у вас осталось дальше
01:57:14
конкатенировать
01:57:22
У нас тут высвечивается ошибка потому
01:57:24
что нам Всё нужно взять в круглой
01:57:25
скобочки чтобы обозначить приоритет и
01:57:28
Чтобы исправить конкатенацию и также
01:57:30
ставим двойные кавычки записываем
01:57:32
попыток точка Что обозначает вот это вот
01:57:35
магическое число один так как у нас цикл
01:57:37
начинается с нуля то и попытки у нас бы
01:57:40
отображались как 0 1 2 3 4 А эта единица
01:57:44
помогает нам сделать небольшой сдвиг и
01:57:46
показать что у нас осталось не ноль
01:57:48
попыток а одна попытка то есть мы могли
01:57:50
бы записать I + 1 и взять это всё в
01:57:53
скобки и Давайте теперь проверим
01:57:55
правильность выполнения если мы введём
01:57:57
один У нас четыре попытки две если
01:58:00
ничего не вводим тоже выдаёт нам ноль
01:58:03
попыток введён неверный пароль отлично
01:58:05
сделаем небольшие правки введён неверный
01:58:08
пароль а также Давайте слово попыток
01:58:10
уберём вперёд чтобы у нас не менялись
01:58:13
падежи теперь запустим и видим что
01:58:16
четыре приклеилась К попыткам поставим
01:58:19
прол Ctrl F5 введите пароль вводим Один
01:58:23
введён неверный пароль ещё раз один
01:58:26
неверный неверный неверный неверный у
01:58:29
вас осталось ноль попыток и программа
01:58:31
завершается Давайте наглядно посмотрим
01:58:33
что бы было если бы у нас не стояла
01:58:35
единичка То есть у нас бы значение I
01:58:37
брались с нуля и получилось бы следующее
01:58:40
один у вас осталось пять попыток это же
01:58:42
неверно у нас было всего пять а мы одну
01:58:45
израсходовали 4 3 2 и так далее
01:58:49
закрываем возвращаем как было и теперь
01:58:51
давай проверим что будет когда мы введём
01:58:54
верный пароль 1 2 3 4 5 6 ввод секретики
01:58:58
и видите на снова просят ввести пароль и
01:59:01
так далее и тому подобное но нам по сути
01:59:04
Уже не надо вводить повторно пароль Ведь
01:59:06
мы узнали всё что нам надо было знать
01:59:08
что же в этой ситуации делать как мы с
01:59:10
вами изучали есть такой прекрасный
01:59:12
оператор как Break то есть с помощью его
01:59:14
мы сможем просто прервать в цикл Когда
01:59:16
получим наши секреты и вот конкретно В
01:59:19
таких случаях удобно использовать брейк
01:59:21
чтобы выйти из цикла и больше его не
01:59:23
повторять выполним се введём 1 2 3 4 5 6
01:59:27
вот секретики и видим что наша программа
01:59:30
вышла из цикла для продолжения нажмите
01:59:33
любую клавишу то есть мы видим Если бы
01:59:34
не было оператора Break Мы бы с вами
01:59:37
продолжали торчать в цикле даже когда бы
01:59:39
узнали наши секреты то есть ничего
01:59:41
нового цикл нам бы не выдал И в этом
01:59:43
случае брейк - самый лучший выход
01:59:45
следующая задача предположим что у нас
01:59:46
есть вклад в банке и этот вклад идёт под
01:59:49
процент и перед нами стоит задача
01:59:51
сделать так чтобы при нажатии на одну
01:59:53
клавишу Мы видели как вырос вклад за оди
01:59:56
год как же нам это сделать у нас будет
01:59:58
Flat Money это сумма будет внесена на
02:00:01
вклад и её нам введёт пользователь у нас
02:00:03
также будет int years эта переменная
02:00:06
будет показывать сколько вообще будет
02:00:08
длиться вклад и также у нас будет int
02:00:10
percent это будет процент теперь
02:00:12
попросим пользователя ввести все эти
02:00:14
данные пишем conso Right двойные кавычки
02:00:19
введите количество денег
02:00:22
в у нас будет вклад с которого нельзя
02:00:24
снять деньги раньше чем через
02:00:26
определённое количество лет и мы хотим
02:00:28
посмотреть как наши деньги будут
02:00:30
приумножать и поэтому наша Money равно
02:00:35
convert cons read точка запятой и снова
02:00:40
так как у нас флот мы сконвертируйте
02:00:52
лет открыт вклад вопрос здесь поменяем
02:00:56
на двоеточие и теперь нашей переменной
02:00:59
years то есть года конвертируем to in 32
02:01:04
и получим наш вот cons read line И
02:01:08
последнее что нам надо сделать - это
02:01:10
считать процент
02:01:13
conso двойные кавычки под Какой процент
02:01:19
вопрос и теперь ра
02:01:27
32 круглые скобки ВС мы с вами всё
02:01:30
заполнили и теперь нам надо сделать
02:01:32
расчёты так как мы знаем точное
02:01:34
количество лет здесь мы можем тоже
02:01:36
использовать цикл 4 пишем и начинаем его
02:01:39
заполнять здесь
02:01:47
инициализирует мы каждый шаг к
02:01:50
прибавляем есть у нас с каждой итераций
02:01:53
I увеличивается на оди год теперь нам
02:01:56
надо Money увеличивать на какой-то
02:01:57
процент процент у нас может быть
02:02:00
абсолютно любой Как нам вообще получить
02:02:02
процент мы к нашему Money берём
02:02:05
прибавляем опять же наш Money дено на
02:02:09
100 и умноженное на процент Мы помним
02:02:12
что у нас уже была такая задача и мы не
02:02:14
могли так просто разделить потому что у
02:02:16
нас было значение у денег int Именно
02:02:18
поэтому мы сразу выбрали флот и теперь
02:02:21
каждый шаг мы будем выводить сообщения
02:02:23
conso White Line в этом году у вас плюс
02:02:29
Money И теперь я хочу чтобы у меня не
02:02:32
сразу все года показались а мы шли
02:02:34
пошагово то есть нажимая клавишу и
02:02:37
поэтому мы пишем conso read Key точка
02:02:40
запятой то есть каждая итерация цикла
02:02:43
будет ожидать от пользователя нажатия
02:02:45
клавиши О'кей пусть у нас будет
02:02:48
количество денег внесённое на вклад 100
02:02:50
на 5 лет и под Какой процент давайте
02:02:53
выберем процент мечту 10 и нажмём Enter
02:02:57
в этом году у вас 110 в следующем
02:03:00
121 в следующем 133 и1 146 и1 и в
02:03:06
последнем году у нас 161 051 и у нас
02:03:09
завершился цикл и теперь выполним нашу
02:03:12
программу введём количество денег 100 на
02:03:15
5 лет и какой-нибудь заоблачный процент
02:03:18
10 в этом году у вас 110 в этом 120
02:03:22
131 и1
02:03:25
14641 161 051 в целом всё правильно и
02:03:29
наша программа выходит из цикла и
02:03:31
завершается мы с вами сделали программу
02:03:33
которая считает Как увеличивается вклад
02:03:35
по процентам и мы с вами получили верные
02:03:38
данные и напоследок давайте сделаем бой
02:03:40
игрока с противником у нас будет in
02:03:43
Player Health то есть здоровье игрока у
02:03:46
нас будет int Play damage то есть будет
02:03:50
урон который игрок будет наносить у нас
02:03:53
будет враг и у него будет здоровье Enemy
02:03:56
Health И также у него будет свой урон in
02:04:00
Enemy damage сразу присвоил значение
02:04:03
чтобы у нас не было ошибок Health 100
02:04:06
damage пусть будет 50 Enemy Health
02:04:10
пускай будет 50 А damage пускай будет 10
02:04:14
это данное предварительные потом мы их
02:04:16
поменяем то есть мы видим что Player
02:04:18
damage - Это с какой сил игрок бьёт
02:04:20
врага а en damage это С какой силой враг
02:04:24
бьёт игрока и Давайте посмотрим кто
02:04:26
победит и мы понимаем чтобы нам
02:04:28
реализовать какой-то бой нам необходим
02:04:30
цикл while Почему while потому что мы не
02:04:33
видим границы нашего цикла мы не знаем
02:04:36
сколько будут биться игрок и враг между
02:04:38
собой то есть мы не знаем сколько будет
02:04:40
длиться бой но мы знаем только то что
02:04:43
бой будет продолжаться до тех пор пока
02:04:45
один из персонажей не будет повержен И
02:04:47
теперь мы с вами пишем цикл while
02:04:50
круглые скобки фигур
02:04:52
и в круглых скобках пишем проверку То
02:04:55
есть каждый цикл мы проверяем здоровье
02:04:57
каждого из персонажей эти значения
02:04:59
больше нуля или нет Поэтому Play heth
02:05:03
больше нуля и Enemy heth больше нуля
02:05:07
если каждое из этих условий верно то Мы
02:05:10
выполняем следующее действие Мы у
02:05:12
здоровья игрока отнимаем урон наносимый
02:05:18
врагом А у здоровья врага
02:05:23
отнимаем урон наносимый
02:05:26
плеерам и Давайте будем выводить каждый
02:05:29
цикл здоровье каждого из
02:05:36
персонажей п тут запишем игрок на Ctrl D
02:05:50
продублируйте нам нужно выводить
02:05:52
какой-то результат какие варианты
02:05:54
исходов боя могут быть у нас может быть
02:05:56
ничья у нас может победить герой у нас
02:05:59
может победить враг В какой
02:06:01
последовательности выводить эти исходы
02:06:03
если мы первым делом будем проверять на
02:06:05
исход ничьей то у нас она никогда не
02:06:08
высветится потому что в проверке условия
02:06:10
Исхода ничьи входит проверка смерти
02:06:13
каждого из персонажей поэтому так и
02:06:15
запишем If Player Health меньше либо
02:06:19
равна
02:06:20
нулю и Enemy Health меньше либо равна
02:06:24
нулю то мы выводим conso Right L двойные
02:06:29
кавычки ничья точка А иначе то есть else
02:06:35
если давайте сейчас проверим победу
02:06:38
игрока то есть Enemy Health меньше либо
02:06:42
равна нулю мы вводим cons Right L Победа
02:06:46
игрока а иначе else If если у персонажа
02:06:52
з либо равно нулю то
02:06:54
есть меньше либо равно нулю то мы
02:06:57
выведем победа врага ко двойные кавычки
02:07:02
Победа врага И здесь Победа с большой
02:07:05
буквы и теперь давайте сдавать различные
02:07:07
значение и проверять как будет идти бой
02:07:09
например Уменьши ж у игрока и увеличим ж
02:07:14
у врага запустим нашу программу и мы
02:07:17
видим игрок 85 после удара врага врага 4
02:07:21
пос удара игрока и так далее идёт цикл и
02:07:24
в итоге у врага становится ноль и мы
02:07:28
видим победу игрока если мы поставим у
02:07:30
них одинаковое значение и проверим то и
02:07:33
у игрока ноль и у врага ноль и
02:07:35
получается ничья Давайте зададим им
02:07:37
нереально большие значения Пускай они
02:07:39
будут у нас атлантами и будут сражаться
02:07:42
вечность и поставим такое значение
02:07:45
нажмём выполниться и мы видим что они
02:07:48
дрались очень долго большое такое
02:07:49
количество итераций
02:07:51
и в итоге победил игрок то есть мы видим
02:07:54
что у нас работает цикл while до тех пор
02:07:56
пока не выполнится условие стоящее в
02:07:58
скобках то есть до тех пор пока либо у
02:08:01
игрока станет здоровье ноль либо меньше
02:08:03
нуля либо у врага здоровье ноль либо
02:08:05
меньше нуля то есть здесь должно
02:08:08
появиться false то есть в скобках
02:08:10
оператора while должно появиться false И
02:08:12
мы тогда Выходим из цикла и проверяем
02:08:14
следующие значение кто из персонажей
02:08:17
победил либо в итоге оказалась ничья и
02:08:20
оба персонажа погибли Таким образом у
02:08:22
нас получился такой простенький бой и мы
02:08:25
не особо запаривать и не высчитывали
02:08:27
пошагово А сколько ударов по нанесёт тот
02:08:30
или иной персонаж и с этим справиться
02:08:32
нам помог цикл while то есть мы
02:08:34
определили границу Когда у нас будет
02:08:36
выход из цикла и далее красивым выводом
02:08:39
вывели результат нашего боя Вот как раз
02:08:42
этот пример нам и показал что когда мы
02:08:44
не знаем чёткие границы цикла мы
02:08:46
используем цикл while А когда мы можем
02:08:49
точно посчитать количество шагов и
02:08:52
размер цикла мы используем for теперь
02:08:54
изучим Рандом он очень важен и поможет
02:08:57
нам с вами разнообразить наши программы
02:09:00
к примеру Мы хотим просто генерировать
02:09:02
Рандомные числа как вообще реализовать
02:09:04
Рандом первым делом мы с вами пишем
02:09:06
Random имя переменной Rand далее New
02:09:10
Random и круглые скобки и вот теперь в
02:09:13
нашей переменной хранится Рандом и
02:09:15
теперь чтобы сгенерировать рандомное
02:09:17
число нам понадобится целочисленная
02:09:19
переменная какая-нибудь
02:09:21
и чтобы записать рандомное значение нам
02:09:24
нужно написать Rent и вызвать в него
02:09:26
команду next и далее мы пишем диапазон
02:09:29
например от нуля до 10 и причём диапазон
02:09:33
такой что первое значение то есть
02:09:35
минимальное будет захватываться а
02:09:37
последняя то есть максимальная либо в
02:09:40
нашем случае 10 захватываться в диапазон
02:09:42
не будет то есть не будет учитываться то
02:09:44
есть у нас будут минимальные и
02:09:46
максимальные значения от нуля и до дев
02:09:49
десятка учитываться не будет и Давайте
02:09:52
теперь мы с вами создадим бесконечный
02:09:55
цикл чтобы Создать бесконечный цикл
02:09:57
нужно while в условии поставить True и
02:10:01
чтобы мы видели изменение нашего value
02:10:04
мы его вначале выведем conso Right L
02:10:07
здесь поставим value и чтобы программа у
02:10:09
нас быстро так не выполнялась чтобы Мы
02:10:11
что-то заметили мы напишем conso read
02:10:15
Key то есть мы будем нажимать одну
02:10:16
клавишу и будет происходить итерация
02:10:19
цикла выполним Ctrl F5 и
02:10:23
видим почему так происходит потому что
02:10:26
мы нашу не обновляем соответственно нам
02:10:29
нужно было UE добавить в цикл val и
02:10:31
постоянно запрашивать у неё значение
02:10:34
вырежем вставим точка запятой и теперь с
02:10:37
каждой итераций цикла будет обновляться
02:10:39
значение value Ctrl F5 мы видим 4 0
02:10:45
88 и так далее с каждой итераций цикла
02:10:48
меняется значение и каждый раз оно новое
02:10:50
дате для наглядности делаем диапазон от
02:10:53
нуля до единицы чтобы посмотреть что у
02:10:55
нас единица никогда не учитывается Ctrl
02:10:58
F5 и у нас всегда выводится ноль то есть
02:11:01
выбор в команде Rent Next не до единицы
02:11:04
А по единицу вот как-то так у нас
02:11:06
работает НМ это очень простая но нужная
02:11:09
вещь и ещё пара слов про Рандом на самом
02:11:12
деле Рандом не является истинным
02:11:14
генератором случайных чисел а содержит в
02:11:16
себе генератор псевдослучайных чисел и в
02:11:19
целом у нас может быть не переменных
02:11:22
типа ROM каждая из этих переменных м
02:11:25
будет содержать в себе некоторое
02:11:27
состояние и поэтому при вызове команды
02:11:30
Next у переменной Rand вызове это
02:11:32
состояние и по итогу нам вернётся число
02:11:35
которое будет казаться случайным после
02:11:38
чего внутреннее состояние переменной н
02:11:41
меняется таким образом что при
02:11:43
последующем вызове она возвратила такое
02:11:45
значение которое кажется случайным
02:11:51
могут с этим возникнуть к примеру прямо
02:11:53
в цикле вы сделаете Рандом запишем for
02:11:56
круглые скобки протезируют
02:12:04
+ фигурные скобки Ctrl KD чтобы
02:12:08
выровнять все отступы И теперь прямо в
02:12:10
цикле объявим новый ROM Random R равно
02:12:16
New Random круглые скобки точка запятой
02:12:19
и Давайте сразу его выводить в консоль
02:12:21
conso R L и тут же в скобках будем
02:12:23
пытаться генерировать случайное число
02:12:25
пишем Rent точка next и давайте от нуля
02:12:29
до пяти выполняем се и мы видим 1 1 1
02:12:33
запустим Ещё раз и ситуация также
02:12:36
повторяется при создании переменной типа
02:12:38
НМ в самом цикле каждую итерацию у нас
02:12:41
создаётся новое её состояние и Именно
02:12:44
поэтому каждый цикл у нас генерируются
02:12:46
те же числа исключение конечно бывает
02:12:49
что значение меняется но это очень редко
02:12:52
как же избежать эту проблему нам следует
02:12:54
просто взять и НМ вынести за цикл вы
02:12:57
спросите как я так удобно перенёс строку
02:12:59
наверх Я просто зажал Alt и нажал
02:13:02
стрелочку вверх поставив курсор на
02:13:04
строке мы можем нажать стрелочку вниз
02:13:07
вверх и легко перенесём строку и Давайте
02:13:10
теперь вынесем Random за цикл и также
02:13:12
выполним нашу программу и мы видим что
02:13:14
все наши числа разные 1 2 0 0 3 и причём
02:13:18
цикл может быть абсолютно любого размера
02:13:20
например 100 и каждый раз у нас будет
02:13:22
новое число всегда Старайтесь создавать
02:13:24
переменные типы Random где-нибудь в
02:13:27
начале программы за пределами любого
02:13:29
цикла теперь создадим игру Угадай число
02:13:32
в чём её Суть в начале через Рандом
02:13:34
генерируется случайное число К примеру
02:13:37
от нуля до 100 после чего с помощью
02:13:39
ограниченного количества попыток игрок
02:13:42
пытается угадать это число из указанного
02:13:45
диапазона Что же нам для этого
02:13:46
понадобится нам понадобится
02:13:48
целочисленная int Number то есть число
02:13:51
далее целочисленная переменная lower и
02:13:55
High то есть Нижняя граница диапазона и
02:13:58
Верхняя граница диапазона далее
02:14:00
обозначим Количество попыток
02:14:01
предоставленное игроку чтобы отгадать
02:14:04
число и это у нас будет int TR Count Ну
02:14:08
допустим будет равно пяти ещё нам
02:14:10
потребуется переменная куда пользователь
02:14:12
будет вводить свой ответ и это будет
02:14:15
User Input после этого всего нам
02:14:18
понадобится новый НМ пишем
02:14:23
ра ROM круглые скобки точка запятой
02:14:26
Теперь мы с вами будем генерировать
02:14:28
числа нашему числу мы
02:14:33
присвоить от нуля до 101 мы с вами точно
02:14:37
помним что верхний предел не учитывается
02:14:39
и поэтому здесь именно 101 теперь Нам
02:14:42
нужен нижний предел Low
02:14:47
ра и здесь мы
02:14:52
Number и как раз здесь мы видим что наше
02:14:55
число не будет учитываться то есть не
02:14:57
будет входить в нижнюю границу диапазона
02:15:00
также мы определяем его через R точ next
02:15:05
и его значения будут от Number до плю о
02:15:10
то есть мы видим сразу что наш Number не
02:15:12
будет выпадать и до Number + 10 а далее
02:15:16
будем выдавать пользователю инструкцию
02:15:19
cons круглые скобки двойные кавычки
02:15:23
здесь мы будем использовать интерполяцию
02:15:25
и пишем мы загадали число от нуля до 100
02:15:32
оно больше чем фигурные скобки lower но
02:15:37
меньше чем фигурные скобки Higher точка
02:15:42
далее укажем игроку что у него
02:15:44
Количество попыток ограничено и выведем
02:15:47
это количество console Right line также
02:15:51
Здесь нам понадобится интерполяция
02:15:53
зададим вопрос что это за число а дальше
02:15:56
напишем у вас фигурные скобки TR Count
02:16:01
попыток отгадать и теперь пользователь
02:16:03
должен угадать Мы помним что мы можем
02:16:05
переносить строки и они у нас
02:16:07
автоматически контини ется и даже
02:16:09
интерполяция поставилась автоматически
02:16:11
здесь мы можем воспользоваться и циклом
02:16:13
while и циклом for в данной ситуации мы
02:16:16
можем воспользоваться и for и while Но в
02:16:18
этот раз мы используем while чтобы чтобы
02:16:21
поработать напрямую с нашей переменной
02:16:22
TR Count далее запишем наш цикл F TR
02:16:27
Count мину мину больше ну фигурные
02:16:31
скобки и Да мы прямо в условии будем
02:16:34
отнимать От количества попыток по
02:16:36
единице после того как сравнили эту
02:16:38
переменную с нулём далее мы запишем
02:16:41
cons двойные кавычки ваш ответ двоеточие
02:16:46
пробел и тут же игрок пытается отгадать
02:16:49
Мы в наш in
02:16:53
присвоено to in 32 потому что у нас
02:16:56
переменная типа in convert to in 32
02:17:02
круглые скобки в круглых скобках запишем
02:17:05
наш ввод conso read круглые скобки и
02:17:09
далее будем делать провероч если User
02:17:12
Input равен нашему числу то есть Number
02:17:16
то мы с вами выводим сообщение cons
02:17:19
Right вы пра
02:17:21
это было число плюс Number также
02:17:25
поставим плюс двойные кавычки и закончим
02:17:28
предложение и после этого конечно же нам
02:17:30
нужен брейк Мы же угадали и нам больше
02:17:33
нет смысла крутиться в этом цикле до
02:17:35
окончания количества попыток поэтому мы
02:17:37
с вами быстро пишем Break точка запятой
02:17:40
и после чего у нас цикл завершится
02:17:42
потому что нам больше нечего угадывать А
02:17:45
если же ответ всё же не равен нашему
02:17:47
числу мы выведем сообщение cons двойные
02:17:51
кавычки неверно попробуйте ещё раз Окей
02:17:55
Давайте попробуем запустить нашу
02:17:56
программу мы загадали число от нуля до
02:17:59
100 Ого Угу сразу видим ошибку и её
02:18:02
исправим мы загадали число Ого ставим
02:18:05
оно поново выполняем мы загадали число
02:18:09
от нуля до 100 оно больше чем 90 но
02:18:12
меньше чем 101 что это за число у вас
02:18:15
пять попыток Давайте попробуем погадать
02:18:17
91 неверно Попробуйте ещ раз 94 неверно
02:18:22
ещ раз попробуем и ещё раз и ещё раз я
02:18:26
истратил все попытки и проиграл
02:18:28
согласитесь хотелось бы в конце игры
02:18:30
узнать какое же число было верным то
02:18:32
есть нам абсолютно непонятно то что Мы
02:18:34
проиграли Окей как нам выйти из ситуации
02:18:37
в этом случае в самом конце Когда наш
02:18:39
цикл заканчивается мы можем вывести
02:18:41
сообщение
02:18:43
cons двойные кавычки вы проиграли увы но
02:18:49
Повет в раз и мы с вами выведем здесь
02:18:52
наше число это было число плюс Number
02:18:58
плюс двойные кавычки точка нетрудно
02:19:01
догадаться что вот этот вывод сообщения
02:19:03
будет происходить каждый раз или же мы
02:19:05
выиграли игру или же Мы проиграли то
02:19:08
есть при каждом выходе из цикла с точки
02:19:10
Брейк или с точки окончания наших
02:19:13
попыток у нас всегда будет выводиться
02:19:16
это сообщение и в этом случае мы можем
02:19:18
сделать ещё одну проверку если
02:19:21
Количество попыток равно нулю то мы с
02:19:23
вами выводим это сообщение Но мы с вами
02:19:26
помним про декремент в постфиксной форме
02:19:29
записи и мы понимаем что в этом случае у
02:19:31
нас trice Count не будет равен нулю
02:19:33
Потому что декремент его изменит и он у
02:19:36
нас будет равен -1 поэтому мы вместо
02:19:40
оператора сравнения поставим оператор
02:19:42
меньше то есть -1 будет меньше нуля и
02:19:45
поэтому здесь будет True То есть когда у
02:19:48
нас закончились попытки и мы вышли из
02:19:50
цикла у нас выведется сообщение о
02:19:52
проигрыше А если мы выиграли мы знаем
02:19:54
наше число и консоль нам повторно его
02:19:57
выводит Давайте выполним Ctrl F5 мы
02:20:01
загадали число от нуля до 100 оно больше
02:20:04
чем де но меньше чем 18 что это за число
02:20:08
у вас пять попыток и Давайте гадать по
02:20:10
порядку 10 11 12 13 14 и мы видим
02:20:16
неверно попробуйте ещё раз вы проиграли
02:20:19
вы но повезёт в следующий раз это было
02:20:22
число 16 можем попытать удачу ещё раз
02:20:25
больше чем 85 но меньше чем 104 Давайте
02:20:29
попробуем 87 90 86 103 101 и вы видите я
02:20:36
каждый раз проигрываю это было число 95
02:20:39
то есть мы сделали с вами простенькую
02:20:40
игру которая основывается на рандоме мы
02:20:43
можем играть в неё сколько угодно раз и
02:20:45
она повторяться не должна но мы с вами
02:20:48
можем сделать диапазон значений побольше
02:20:50
И тем самым уменьшить вероятность
02:20:52
повторений Конечно есть маленькая
02:20:54
вероятность что повторение в нашей
02:20:56
программе будет но в этом случае мы
02:20:58
можем сделать диапазон значений побольше
02:21:00
И тем самым уменьшить количество
02:21:02
повторений Ещё немного попрактиковаться
02:21:22
урон наносимый первым персонажам и in
02:21:26
armor 1 броня первого
02:21:30
персонажа а также у нас будет
02:21:34
in 2 здоровье второго гладиатора
02:21:39
и dage 2 урон наносимый вторым
02:21:44
гладиатором а также у нас будет in
02:21:48
ARM 2
02:21:50
броня второго гладиатора и значение
02:21:53
каждой из этих переменных будет
02:21:55
генерироваться с помощью Random Random R
02:22:01
равно
02:22:03
Random круглые скобки точка запятой и
02:22:06
далее будем присваивать значение
02:22:08
переменным с помощью
02:22:10
Rent точка
02:22:14
Next Сначала мы им зададим различные
02:22:17
диапазоны а потом уже слаем то есть для
02:22:20
первого будет от 90 до 100
02:22:24
здоровья можем эти команды
02:22:31
раскопина зажать комбинацию клавиш Ctrl
02:22:34
Alt и в остальные места поставить курсор
02:22:38
с помощью левой кнопки мыши и нажать
02:22:41
Ctrl V и во все места ставится наше
02:22:46
значение а далее рандомно
02:22:49
раскидаем будет от 5п до
02:22:52
20 здесь от 25 до
02:22:55
[музыка]
02:22:56
65 здесь от 80 до
02:23:02
150 пусть здесь будет 20 здесь 40 и 65 и
02:23:08
100 далее Давайте выведем первоначальную
02:23:11
статистику по каждому из
02:23:13
гладиаторов пишем
02:23:17
cons Right L
02:23:21
круглые скобки двойные кавычки также
02:23:24
воспользуемся
02:23:25
интерполяции и запишем
02:23:28
Гладиатор 1
02:23:31
тире далее нам понадобятся фигурные
02:23:35
скобки и три
02:23:39
раза здесь запишем heth 1 здесь запишем
02:23:43
damage 1 и здесь запишем armor 1
02:23:52
и после этих значений подпишем
02:23:55
[музыка]
02:23:57
здоровье
02:24:00
запятая наносимый
02:24:02
[музыка]
02:24:04
урон
02:24:06
запятая и
02:24:08
броня точка далее эту строчку мы
02:24:11
копируем комбинации клавиш Ctrl D и нам
02:24:15
везде нужно поменять единичку на двоечку
02:24:18
то есть опять же зажимаем комбинацию
02:24:20
клавиш Ctrl Alt и ставим курсор левой
02:24:23
кнопкой мыши там где нам нужно заменить
02:24:26
единичку И кстати вот мы первый раз
02:24:29
поставили наш курсор в этом месте и
02:24:31
чтобы его убрать нужно также зажать Ctrl
02:24:34
Alt и кликнуть в этом месте левой
02:24:36
кнопкой
02:24:37
мыши и курсор
02:24:40
уберётся нажимаем Backspace пишем двойку
02:24:44
и у нас заменило всё на второго
02:24:47
гладиатора можем уже сейчас вывести наше
02:24:49
сообщение увидеть первоначальную
02:24:51
статистику наших
02:24:53
гладиаторов так как у нас Рандом у нас
02:24:56
каждый Запуск программы будут новые
02:24:58
значения Ctrl
02:25:00
F5 видите значения
02:25:03
меняются Ctrl F5 и снова новое значение
02:25:07
далее Давайте заставим наших гладиаторов
02:25:09
подраться мы с вами не знаем количество
02:25:12
шагов нашего цикла поэтому мы будем
02:25:15
использовать
02:25:19
к скобки фигурные
02:25:22
скобки и Мы помним из нашего примера
02:25:24
пробой что мы каждый цикл проверяли а не
02:25:27
закончилось ли здоровье у одного из
02:25:29
наших
02:25:31
персонажей поэтому здесь
02:25:33
пишем 1 больше
02:25:37
нуля
02:25:38
и
02:25:41
2 тоже больше нуля чтобы выровнять все
02:25:45
отступы можно зажать комбинацию Ctrl KD
02:25:48
и мы видим что у нас поставился
02:25:50
пробел между нум и оператором сравнения
02:25:53
далее от переменных содержащих здоровье
02:25:56
наших гладиаторов мы будем отнимать
02:25:58
рандомизированный урон их противников
02:26:01
для этого у
02:26:03
1 мы отнимем R
02:26:08
Next от нуля до dage 2 и Мы помним что
02:26:13
максимальная значени здесь не
02:26:15
учитывается поэтому добавим е
02:26:17
единичку чтобы при уро
02:26:21
Брон Мы должны разделить на 100 и
02:26:24
умножить
02:26:27
на то есть на армор нашего первого
02:26:30
гладиатора мы здесь не поставили
02:26:32
скобочку из первых лекций Мы помним что
02:26:35
вот такие вот арифметические операции с
02:26:37
переменными типа и нам вернут только
02:26:40
целые значения А дробные части отбросит
02:26:43
в этом случае нам нужно просто наши
02:26:46
сделать типом
02:26:48
[музыка]
02:26:52
и сконвертируйте
02:26:59
[музыка]
02:27:20
здесь ставим
02:27:22
единичку а далее выведем здоровье
02:27:25
гладиатора после каждого удара cons
02:27:28
Right L двойные кавычки
02:27:34
здоровье
02:27:37
Гладиаторы
02:27:40
один
02:27:42
двоеточие плюс 1
02:27:50
и для второго
02:27:52
гладиатора плюс Health 2 так и на самом
02:27:57
деле мы уже можем запуститься и мы видим
02:28:00
что наши Гладиаторы долго
02:28:03
дрались и по итогу у гладиатора 2
02:28:06
здоровье оказалось -
02:28:08
367 Ну давайте это красиво оформим и
02:28:11
выведем в консоль сообщение кто же
02:28:13
проиграл для этого мы с вами делаем
02:28:16
проверку опять же у нас будет в начале
02:28:18
проверка на ничью то есть и у первого
02:28:21
гладиатора и у второго должно быть
02:28:23
здоровье меньше либо равно нулю если 1
02:28:28
меньше либо равно нулю
02:28:30
и
02:28:33
2 меньше либо равна
02:28:37
нулю в этом случае мы пишем cons дные
02:28:42
кавычки ничья
02:28:55
погибли а иначе
02:29:00
elseif если Health
02:29:05
1 меньше либо равно
02:29:08
нулю то мы пишем что наш первый
02:29:10
Гладиатор
02:29:12
пал двойные
02:29:14
кавычки
02:29:16
Гладиатор
02:29:18
о па
02:29:21
и такая же история будет со вторым
02:29:23
гладиатором If He 2 меньше либо равно
02:29:28
нулю Гладиатор 2
02:29:31
пал и проверим нашу
02:29:36
программу и мы видим что вот они дрались
02:29:38
дрались и здоровье нашего первого
02:29:40
гладиатора стало
02:29:42
-5 15 и вывели сообщение Гладиатор
02:29:47
1л Да надо исправить
02:29:50
[музыка]
02:29:55
Гладиатор и снова выведем нашу
02:29:59
программу теперь у нас снова Гладиатор о
02:30:04
пал Давайте Может попробуем как-нибудь
02:30:06
отбалансировать
02:30:14
[музыка]
02:30:20
и от шести давайте от
02:30:25
семи также броню у него
02:30:28
увеличим например тоже будет
02:30:33
100 но
02:30:35
45 здоровье у второго гладиатора пускай
02:30:38
будет 120 у первого
02:30:42
110 но диапазон но Нижний диапазон у
02:30:45
второго будет 80 А у первого 90
02:30:50
попробуем сделаем так чтобы Они
02:30:52
подрались и мы видим Гладиатор 2
02:30:55
пал последнее значение здоровья у него
02:30:58
было -
02:31:01
7,2 ещё раз выполним Гладиатор 2 пал ещё
02:31:06
раз Гладиатор один пал более-менее
02:31:09
баланс
02:31:11
соблюдается Гладиатор два
02:31:14
пал Гладиатор о
02:31:16
пал И вот так каждый раз мы можем просто
02:31:20
запускать нашу программу и наблюдать за
02:31:22
тем как они друг друга ромсат осталось
02:31:25
добавить визуализацию и у нас с вами
02:31:27
получится полноценная
02:31:29
игра в целом мы с вами написали классные
02:31:32
гладиаторские бои и будем продолжать
02:31:35
изучение в основном мы будем
02:31:36
использовать Backspace новую строку
02:31:39
двойную кавычку и одинарную кавычку
02:31:41
теперь перейдём в Visual Studio и
02:31:43
посмотрим как этим всем
02:31:45
пользоваться Нам нужно будет составить
02:31:47
большую строку чтобы в ней был перенос и
02:31:50
она находилась в одном выводе к примеру
02:31:52
это будет несколько предложений и мы с
02:31:54
вами запишем cons
02:31:58
а wr
02:32:02
line точка запятой двойные
02:32:06
кавычки
02:32:09
Привет
02:32:13
Андрей Куда ты вчера делся
02:32:23
вопросительный знак а далее обозначим
02:32:26
Что нам отвечает Андрей я
02:32:31
убежал
02:32:33
к ро точ после чего пользователь сам
02:32:37
вводит ответ и Давайте посмотрим на
02:32:39
вывод и мы видим что всё в одной строке
02:32:42
А если бы мы с вами хотели всё сделать в
02:32:44
виде диалога Как нам сделать переносы в
02:32:46
одном
02:32:48
выводе сейчас закроем и к нам на помощь
02:32:51
приходит Перенос строки то есть Мы
02:32:54
помним что это обратно слш и буква
02:32:57
английская н обратный слеш здесь и
02:33:02
увидим что наши все строки перенеслись
02:33:04
но опять же у нас тут появились какие-то
02:33:06
левые пробелы давайте от них тоже
02:33:15
избавимся теперь у нас с вами красивый
02:33:17
диалог я убежал к и так далее а далее
02:33:20
уже будет как вы захотите или вы
02:33:23
продолжите здесь воз строки
02:33:25
самостоятельно либо создадите переменную
02:33:27
строкового типа куда пользователь
02:33:29
запишет свой ответ После чего мы его
02:33:31
выведем ещё может случиться что нам надо
02:33:34
удалить лишний символ например вот такая
02:33:37
будет проблема у нас здесь ещё
02:33:39
какой-нибудь символ слш например либо
02:33:42
квадратная скобка и нам хотелось бы из
02:33:45
этого текста убрать этот лишний символ
02:33:48
здесь к нам на помощь придёт
02:33:52
Но мы с вами помним что команда cons в
02:33:55
конце переносит строку и в этом случае
02:33:57
обратный
02:33:59
СШ просто удалит эту команду и ничего не
02:34:01
сделает и не удалит нашу квадратную
02:34:04
скобку чтобы её удалить нужно второй раз
02:34:06
поставить обратный слш и символ B Теперь
02:34:11
выполним всё и видим что у нас удалилась
02:34:13
квадратная
02:34:16
скобка А если удалим
02:34:18
[музыка]
02:34:20
то видим что ничего не происходит
02:34:23
рассмотрим ещ пару прикольных вещей по
02:34:25
работе с консолью мы можем Очистить всю
02:34:27
консоль и поставить курсор в левый
02:34:29
верхний угол с помощью команды cons C
02:34:33
Давайте её
02:34:35
попробуем
02:34:40
cons
02:34:44
C5 А у нас выводится это сообщение
02:34:48
потому что
02:34:51
F5 если мы
02:34:56
[музыка]
02:35:01
поставим то мы видим что у нас пустая
02:35:03
консоль и курсор мигает в левом верхнем
02:35:06
углу также существует команда cons Curs
02:35:11
position которая ставит курсор в любое
02:35:14
место где вы укажете приме вот у на бы
02:35:16
вывод мы потом его
02:35:19
этого Давайте поставим курсор по
02:35:22
следующим координатам
02:35:25
cons Set cursor
02:35:31
position ставим
02:35:34
курсор скобочки и мы можем увидеть
02:35:36
подсказку Что первым параметром идёт
02:35:39
Left то есть количество клеточек на
02:35:41
которые нужно сдвинуть курсор вправо и
02:35:44
второй параметр насколько Нужно опустить
02:35:47
наш курсор и поэтому мы напишем
02:35:50
например Давайте вправо на п а вниз на
02:35:55
10 выполним нашу программу и мы видим
02:35:58
что курсор у нас сдвинулся на пять
02:36:00
вправо и опустился на 10 вниз также мы
02:36:03
можем менять цвет текста в консоли
02:36:06
давайте это смещение уберём
02:36:09
вверх уберём и наш вывод покрасим и
02:36:14
важно перед тем как начинать выводить
02:36:16
текст задать ему нужный цвет поэтому
02:36:19
пишем
02:36:25
равно
02:36:26
cons точка и выбираем какой
02:36:30
захотим к примеру жёлтый выполним
02:36:33
программу и мы видим у нас и курсор
02:36:35
сместился и вывел одну строку потом он
02:36:38
переместился в начало
02:36:41
строки и вывел Последнее предложение
02:36:45
сечас мы помет самого текста консоли
02:36:50
можем поменять фон текста для этого нам
02:36:53
надо вызвать команду
02:36:57
cons равно далее пишем
02:37:03
cons тёмно-серый давайте выберем чтобы
02:37:06
хорошо был виден контраст текста и
02:37:09
фона
02:37:11
пишем Выведи на тек и видим что
02:37:16
кфн м
02:37:20
м ве фон всей консоли покрасить в один
02:37:22
цвет Для этого нам нужно вызвать команду
02:37:25
cons
02:37:33
cle То есть она сотрёт весь чёрный фон и
02:37:37
перекрасить в серый выполним нашу
02:37:39
программу и видим что весь фон закрасил
02:37:41
и наш отступ на пять впра на 10 вниз
02:37:44
тоже также у есть прикольные штуки
02:37:49
и ширина консоли то есть мы можем сами
02:37:53
задавать высоту и ширину для этого
02:37:56
сделаны команды
02:37:58
conso Window height то есть
02:38:03
высота Давайте зададим например
02:38:06
10 также есть команда conso
02:38:10
Window
02:38:12
w и Давайте её зададим чтобы у нас
02:38:18
помещался наш вывод
02:38:20
максимальный например
02:38:23
25 а пускай будет
02:38:27
35 запускаем нашу программу и мы видим
02:38:30
что наша консоль стала поменьше и также
02:38:32
сохранились наши изменения и фона и
02:38:34
Света текста и запомним главное что при
02:38:38
выполнении домашек мы можем использовать
02:38:40
только то что мы проходили также мы нашу
02:38:43
консоли мы можем подстроить только под
02:38:45
себя в контекстном меню запустим нашу
02:38:48
программу нажмём правой кнопки мыши и
02:38:52
свойства и здесь можем менять шрифт
02:38:55
расположение цвета и так далее все
02:38:58
настройки на ваш вкус но такую настройку
02:39:01
будете видеть только вы То есть если вы
02:39:03
кому-то Спросите свою программу то
02:39:05
красиво настроенной консоли пользователь
02:39:08
вашей программы не увидит чтобы был
02:39:10
красивый вывод лучше всё делать через
02:39:12
код в целом это всё по играм с консолью
02:39:15
и будем двигаться дальше создадим массив
02:39:18
синтаксис и правила написания будут
02:39:22
следующими в начале идт тип элементов
02:39:25
которые будут храниться в массиве в
02:39:27
примере у нас был засоленный огурец но в
02:39:29
CP пока такого не сделали поэтому мы
02:39:32
воспользуемся обычными числами это
02:39:34
соответственно будет ин далее идут
02:39:37
квадратные скобки После чего мы массиву
02:39:39
задаём имя давайте как и в примере у нас
02:39:41
будут
02:39:47
огурцы далее
02:39:51
далее мы
02:39:52
пишем снова пишем наш тип квадратные
02:39:56
скобки то есть квадратные скобки и
02:39:58
обозначают Что это у нас будет массив
02:40:00
всё что нам осталось сделать это задать
02:40:03
размер массива то есть обозначить Какое
02:40:06
количество банок будет стоять на полке
02:40:08
например 10 сейчас у нас Каждый элемент
02:40:12
массива будет равен Ну мы это с вами
02:40:15
только что разобрали и теперь нам надо
02:40:17
как-то с этим работать с попробуем
02:40:20
вывести всё что у нас есть в массиве на
02:40:21
данный момент или посмотреть вообще что
02:40:24
лежит в банках первый вариант как Мы это
02:40:26
можем сделать это просто взять и
02:40:29
написать conso Right
02:40:32
L и мы Обращаемся к нашей полке с
02:40:36
огурцами ставим квадратные скобки и нам
02:40:40
нужно обратиться к конкретной банке А Мы
02:40:42
помним что мы можем обращаться только по
02:40:44
номеру банки например
02:40:47
но то есть мы знаем что наш массив из
02:40:50
элементов и он уже заполнен То есть у
02:40:53
нас 10 банок и они пустые и Давайте
02:40:56
посмотрим так ли это именно в коман cons
02:41:01
мы Обращаемся к первой банке То есть она
02:41:04
под номером но и сшиваем у
02:41:09
Вт то есть че имя массива и Че ватные
02:41:13
скобки мы можем обрати к конкретному
02:41:15
элементу
02:41:16
массива нажимаем Ctrl F5 и вы видим что
02:41:20
у нас в банке ноль значит ноль огурцов
02:41:23
то есть опять же мы Обращаемся к ячейке
02:41:25
массива по её индексу в квадратных
02:41:28
скобках и соответственно мы так можем
02:41:31
перебирать Аж целый массив это очень
02:41:33
похоже на однотипные действия которые
02:41:35
повторяются вновь и вновь однозначно
02:41:37
здесь можно использовать циклы
02:41:39
соответственно количество итераций цикла
02:41:42
будет равно размеру нашего массива и как
02:41:45
раз-таки тут нам подойдёт цикл потому
02:41:48
что мы знаем сколько итераций произойдёт
02:41:50
в этом цикле и мы с вами записываем for
02:41:54
круглые скобки
02:42:01
инициализирует узнать размер массива мы
02:42:03
с вами можем либо записать 10 Но это
02:42:06
будет непонятно и как как бы как
02:42:09
магическое число Откуда мы 10 взяли А
02:42:11
если у нас массив поменяется в размере
02:42:14
для этого мы можем напрямую обратиться к
02:42:18
массиву через оператор точка узнать его
02:42:20
длину записать
02:42:25
length далее точка с запятой и каждый
02:42:28
шаг увеличиваем наш I на единичку
02:42:31
поставим фигурные скобки и для начала
02:42:34
Давайте просто узнаем размер
02:42:38
массива выведем
02:42:40
conso Right
02:42:44
L круглые скобки Cu
02:42:49
точка
02:42:52
length эту строчку закомментировать
02:43:01
для примера можем просто поменять размер
02:43:05
я поставлю П выведем И мы видим что у
02:43:08
нас длина массива 5 то есть вот этого
02:43:10
свойство выведет любое значение который
02:43:13
вы поставите в этих скобках вернём сюда
02:43:16
десяточку и какже мы можем вывести
02:43:19
Каждый элемент массива закомментировать
02:43:50
Ну ещё по-хорошему это бы всё вывести
02:43:59
cons
02:44:03
скобочки Ctrl F5 и мы видим что все наши
02:44:06
нолики вывелись все 10 значений наших
02:44:09
переменных массива Давайте снова
02:44:11
поменяем размер массива и у нас
02:44:13
выведется 5
02:44:15
Ну да всё верно А давайте всё вым
02:44:20
строку и между каждым элементом поставим
02:44:24
пробел чтобы было более приятно
02:44:27
глазу 5 и видим п нулей вернём размер к
02:44:32
десяти и снова видим 10 нулей но уже в
02:44:36
строка Через пробел мы снова можем
02:44:38
обратиться к любому элементу массива по
02:44:41
его индексу и присвоить ему сво
02:44:44
значение мы записываем
02:44:49
с например Седьмой элемент массива и с
02:44:53
помощью оператора равно присваиваем ему
02:44:56
значение Ну допустим
02:44:59
13 А давайте также возьмём cubers
02:45:03
квадратные скобки какой-нибудь третий и
02:45:05
присвоил ему значение
02:45:08
3 то есть мы с вами помним что счёт
02:45:11
начинается с нуля поэтому у нас здесь не
02:45:13
третий элемент а фактически четвёртый То
02:45:16
есть у нас то есть мы обращались так но
02:45:19
1 2 3 и это количество равно четырём
02:45:23
Точно также и семёркой увеличиваем
02:45:25
значение на единицу по сути мы всё с
02:45:28
нашими данными делаем через индексы То
02:45:30
есть cucumbers - это наша полка и на ней
02:45:33
несколько банок с огурцами конкретно 10
02:45:36
и мы их можем перебирать от нуля и до
02:45:39
девяти соответственно мы можем
02:45:41
обратиться к любой из банок и как-то её
02:45:44
изменить абстрактно положить например
02:45:46
огурцы в банку мы можем представлять Как
02:45:49
много переменных собранных в одно целое
02:45:52
у них также один тип и они кстати должны
02:45:54
быть по смыслу воедино собраны мы можем
02:45:57
Потихонечку вот так один за одним
02:45:59
заполнять массив но согласитесь Это не
02:46:02
совсем удобно и занимает очень много
02:46:04
места и у нас может быть два удобных
02:46:06
варианта для заполнения нашего массива
02:46:09
первым делом мы можем заполнить его
02:46:10
рандомными числами рандомом мы уже умеем
02:46:13
пользоваться поэтому мы пишем
02:46:15
Random R
02:46:19
равно New
02:46:21
Random круглые скобки точка
02:46:26
запятой и после чего в цикле мы каждому
02:46:30
элементу
02:46:34
массива
02:46:36
присвоили R то
02:46:41
next и можем задать любой диапазон
02:46:44
например от до 10 и у нас будет выбрано
02:46:48
число диапазона от нуля до
02:46:51
100 и Давайте выполним нашу программу и
02:46:55
видим что у нас абсолютно разные
02:46:57
значения В каждом элементе массива но
02:47:00
так как мы делали прежде обращались
02:47:02
через Каждый элемент через квадратные
02:47:04
скобки через равно и присваивали
02:47:06
значение это не всегда очень удобно и
02:47:10
тут нам на помощь приходит сокращённый
02:47:12
инициализатор
02:47:13
сокращённый инициализатор помогает нам
02:47:16
заполнить массив в момент инициализации
02:47:18
теми данными которые мы хотим при такой
02:47:21
инициализации у нас выделяется память
02:47:23
под одномерный массив его размерность
02:47:26
соответствует количеству элементов в
02:47:28
списке
02:47:29
инициализации адрес этой области
02:47:31
записывается в ссылочные а значение
02:47:35
элементов массива соответствует
02:47:37
значениям в списке инициализатор есть
02:47:39
два формата записи сокращённого
02:47:41
инициализатор когда мы хотим указать
02:47:44
размер массива и когда мы не знаем точно
02:47:47
Размер массива то есть будет следующий
02:47:50
мы ставим тип квадратные скобки имя
02:47:52
массива знак равно и в фигурных скобках
02:47:55
перечисляем всё что хотим соответственно
02:47:57
типу нашего массива но во втором случае
02:48:00
когда мы хотим указать определённый
02:48:01
размер массива мы ставим тип квадратные
02:48:05
скобки имя массива оператор равно далее
02:48:09
снова специальное слово New потом тип
02:48:12
int квадратных скобках размер а в
02:48:14
фигурных скобках сразу пишем значение
02:48:17
которое хотим но количество значений
02:48:19
будет то которое мы указали в квадратных
02:48:21
скобках то есть количество элементов
02:48:23
массива во втором случае будет равно
02:48:26
размеру этого массива который мы указали
02:48:28
в квадратных скобках далее это всё
02:48:30
посмотрим Visual Studio до этого мы
02:48:33
заполняли рандомом через
02:48:35
Цикл А теперь Рандом уберём также уберём
02:48:39
вот эти
02:48:40
комментарии и сразу посмотрим вот у нас
02:48:43
идёт тип квадратные скобки название
02:48:46
массива оператор равно и после мы
02:48:49
запишем фигурные скобки и точку с
02:48:51
запятой и здесь мы можем писать
02:48:53
абсолютно любые значения которые
02:48:56
соответствуют типу нашего массива всё Мы
02:48:58
перечисляем через запятую
02:49:02
38 1000 Можем даже записать максимальное
02:49:06
лечение для нашего Инта in Ma также
02:49:11
[музыка]
02:49:15
in и Давайте выполним нашу программу и
02:49:19
видим что все значения записались сразу
02:49:22
и рассмотрим второй случай когда мы
02:49:24
указываем точный размер массива и вот Мы
02:49:27
помним как было на слайде у нас шёл
02:49:29
снова тип потом квадратные скобки потом
02:49:32
имя массива после чего оператор равно и
02:49:35
мы записываем дальше New in квадратные
02:49:39
скобки и здесь точно пишем размер
02:49:41
массива например
02:49:43
4 далее ставим фигурные скобки и сразу
02:49:46
записываем значение элементов
02:49:49
4 1 6
02:49:53
2 опять же Мы помним если мы поставим
02:49:56
больше значений чем указано в квадратных
02:49:58
скобках он нам сразу выдаст ошибку Если
02:50:01
же меньше значений то он также выдаёт
02:50:04
ошибку не даёт выполнить нашу программу
02:50:07
Давайте теперь запустим нашу программу и
02:50:09
видим все значения которые мы отобрази в
02:50:11
фигурных
02:50:13
скобках отобрази нашей консоли То есть
02:50:17
если будет недобор элемен будет ошибка
02:50:19
Если будет перебор элементов будет
02:50:21
ошибка количество элементов должно
02:50:23
соответствовать количеству указанным в
02:50:25
квадратных скобках в принципе с
02:50:27
пассивами начинают очень легко работать
02:50:29
когда понимают как они в целом устроены
02:50:31
то есть имеют представление что это
02:50:33
набор последовательных ячеек и в каждой
02:50:36
ячейке лежит своё значение и к значению
02:50:38
каждой ячейки мы можем получить доступ
02:50:41
по её номеру массив - это очень важная
02:50:44
сущность она очень удобная Но многие
02:50:46
почему-то её недооценивают
02:50:49
далее немного попрактиковаться
02:51:19
8 и просто выведем каждое значение в
02:51:21
консоль с помощью цикла for int I =
02:51:26
0 I
02:51:28
меньше
02:51:30
array
02:51:32
L и I п+ фигурные скобки console Right L
02:51:39
и здесь будем выводить каждую ячейку
02:51:41
нашего массива
02:51:45
array квадратные скобки и I
02:51:49
Я понимаю что такой пример у нас уже был
02:51:51
но я хочу вынести это в отдельный блок
02:51:53
чтобы все задачки были в одном месте и
02:51:55
вы всегда могли обращаться к этому видео
02:51:58
так запускаем нашу программу и мы видим
02:52:00
что нам вывели значение которое мы
02:52:02
указали в нашем инициализатор следующий
02:52:04
пример будет расчёт суммы каждого
02:52:06
элемента
02:52:07
массива нам вся эта информация
02:52:10
понадобится дополнительно к этому нам
02:52:13
нужно создать ещё одну переменную мы
02:52:15
пишем in
02:52:17
и уберём
02:52:19
и каждую итерацию цикла мы будем к сам
02:52:23
добавлять значение каждой ячейки
02:52:28
aray квадратные скобки
02:52:31
I но мы видим что нам выдают ошибку мы
02:52:34
можем навести и посмотреть использование
02:52:37
локальной переменной сам котороя не
02:52:39
присвоено значени то есть программа не
02:52:41
может добавить к переменной сам значение
02:52:43
пока мы её не
02:52:49
присваиваем значение но и вс теперь у
02:52:51
нас сумма почитается 2 + 3 5 п 4 9 п п 7
02:52:56
16 и п 8 24
02:53:00
выводим и нам ничего не выводится потому
02:53:03
что мы не вывели наш
02:53:05
сам
02:53:07
запишем и
02:53:10
сам 5 и ВИМ
02:53:13
24 сумма
02:53:19
Масси к примеру У меня снова массив
02:53:25
чисел и Давайте также его самостоятельно
02:53:28
заполним 1
02:53:30
3 5
02:53:33
8
02:53:35
12 2 так чтобы расставить пробелы Мы
02:53:39
помним нажимаем Ctrl
02:53:42
KD и в конце точка запятой далее нам
02:53:45
понадобится переменная в кото пим
02:53:48
из наше массива она у нас будет также in
02:53:53
Max
02:53:55
Element снова воспользуемся циклом
02:53:59
4 круглые скобки int ра 0 I
02:54:06
[музыка]
02:54:10
меньше и I
02:54:15
ПП фигурные скобки а дальше у нас будет
02:54:19
идти проверка если у нас максимальный
02:54:23
элемент меньше значение ячейки массива
02:54:28
по данному индексу array квадратные
02:54:32
скобки
02:54:34
I то мы в Max
02:54:37
Element присвоив значение этой
02:54:39
переменной
02:54:40
array квадратные скобки
02:54:43
I а в конце нашей программы просто
02:54:46
выведем наш элемент cons Right L Max
02:54:51
Element и мы с вами снова видим ошибку
02:54:54
что у нас не проинициализирован наша
02:54:56
переменная Max Element но как же нам
02:55:00
быть каким значением Нам её
02:55:02
проинициализировать Например если мы
02:55:06
присвоив у нас в массиве будут
02:55:08
отрицательные
02:55:11
значения -2 например и вот здесь вот
02:55:14
проверка не произойдёт она пропустит
02:55:16
нашу -2 это проверка пропустит наше
02:55:19
отрицательное значение и оно будет
02:55:22
упущено из вида то есть переменная Max
02:55:24
Element не должна зависеть так Какое же
02:55:26
минимальное значение нам выбрать и Мы
02:55:29
помним что внутри нашего Инта хранится
02:55:31
минимальное значение и мы можем к нему
02:55:33
обращаться и для начала максимальному
02:55:35
элементу мы присваиваем минимальное
02:55:37
значение которое может быть у Инта и
02:55:39
после чего сравниваем его со значениями
02:55:42
из нашего массива Давайте запустим нашу
02:55:46
программу и видим что 12 Всё
02:55:50
верно Давайте здесь например поставим
02:55:53
25 снова выполним
02:55:57
25 то есть наша программа работает
02:55:59
исправно А сейчас давайте создадим
02:56:02
что-нибудь посложнее
02:56:03
представим что перед нами стоит задача
02:56:06
создать программу отвечающую За
02:56:08
регистрацию пассажиров на рейс самолёта
02:56:11
мы с вами прекрасно понимаем что самолёт
02:56:13
можно разделить на сектора там будет
02:56:15
сектор бизнес-класса будет правая часть
02:56:17
самолёта будет левая будет хвостовая
02:56:19
часть будет передняя в эконом классе но
02:56:22
формально названия у нас не будет у нас
02:56:24
будет просто порядковый номер сектора и
02:56:27
количество мест внутри этого сектора
02:56:29
поэтому мы пишем
02:56:31
int квадратные
02:56:34
скобки
02:56:37
seeds то есть места и Давайте запишем
02:56:41
свои значения например для первого
02:56:45
сектора Пускай это будет бизнес-класс
02:56:47
там будет
02:56:48
ше мест для второго сектора или передней
02:56:51
части самолёта пускай там будет 28 мест
02:56:54
для середины слева пускай будет 15 мест
02:56:57
для середины справа также 15 мест и в
02:57:00
хвостовой части пускай будет Ну я не
02:57:03
знаю к примеру 17 мест то есть такой вот
02:57:06
у нас чартерный рейс с небольшим
02:57:08
количеством мест для того чтобы
02:57:10
программа выполнялась постоянно и не
02:57:12
закрывалось после каждого нашего
02:57:14
действия воспользуемся циклом while
02:57:18
запишем
02:57:21
True фигурные
02:57:23
скобки То есть пока что мы границы цикла
02:57:26
не
02:57:27
обозначаем когда оператор в аэропорту
02:57:29
регистрирует кого-нибудь на рейс у него
02:57:32
на экране всегда отображается схема
02:57:34
самолёта и занятые и свободные места
02:57:37
внутри него у нас же красивой картинки
02:57:39
не будет Мы это сделаем Просто в виде
02:57:41
текста здесь мы используем цикл
02:57:46
for int I раве
02:57:50
Ну I
02:57:52
меньше
02:57:54
SE L то есть I меньше чем количество
02:57:58
мест I п п на самом деле Лучше бы
02:58:01
конечно было назвать наш массив не seats
02:58:03
а sectors потому что у нас перечислены
02:58:07
сектора А места - это уже значение
02:58:09
каждой переменной так и сделаем чтобы
02:58:12
быстро и удобно переименовать переменную
02:58:14
во всм вашем коде то есть во всех его
02:58:17
местах Можно либо поставить курсор рядом
02:58:20
с этой переменной либо полностью
02:58:21
выделить переменную зажать Ctrl и два
02:58:25
раза нажать на букву R
02:58:27
R и ввести значение которое мы хотим И
02:58:31
как хотели назовём
02:58:33
это и возвращаемся в наш цикл пока I
02:58:37
меньше чем количество секторов мы будем
02:58:39
выводить сообщения
02:58:42
cons войны кавычки воспользуемся
02:58:46
инци в
02:58:52
фигурные
02:58:53
скобки далее пишем
02:58:57
свободно фигурные
02:59:01
скобки квадратные скобки то есть выведем
02:59:04
наше значение то есть выведем количество
02:59:07
мест в конкретном секторе и далее
02:59:09
продолжим
02:59:12
мест выполним программу и посмотрим на
02:59:14
наш
02:59:15
вывод ви
02:59:18
происходит цикл Wi и постоянно выводится
02:59:20
новое значение Поэтому пока что наш цикл
02:59:23
вынесем за пределы
02:59:26
вайла Ctrl KD и
02:59:30
проверим получается в секторе 0 свободно
02:59:33
шесть мест в секторе 1 28 мест в секторе
02:59:36
2 и так
02:59:38
далее но смотрите Какая вещь с вашей
02:59:41
программой всегда будет работать человек
02:59:43
либо администратор и ему не будет
02:59:45
понятно что конкретно это за сектор то
02:59:48
есть мы программисты Привыкли что у нас
02:59:50
счёт всегда начинается с нуля а обычному
02:59:53
человеку непонятно Поэтому нам нужно с
02:59:56
конвертировать вот каждое значение
02:59:58
нашего сектора увеличив его на
03:00:01
единицу поэтому закрываем нашу программу
03:00:04
и к I добавляем просто плюс о Теперь
03:00:08
выведем и мы видим что теперь
03:00:10
администратор может комфортно
03:00:12
пользоваться нашей схемой Салта вем этот
03:00:14
цикл внутрь цикла
03:00:18
KD у нас всё выров давайте для тестов и
03:00:21
в целом для программы сделаем так чтобы
03:00:23
цикл обновлялся Каждый раз когда мы
03:00:25
нажимаем на клавишу и чтобы у нас не
03:00:27
было Вот такой вот непонятки То есть
03:00:29
когда постоянно выводятся вот такие
03:00:31
значения Далее для удобства тестировани
03:00:34
в целом для работы программы сделаем так
03:00:36
чтобы у нас постоянно не обновлялся наш
03:00:38
цикл while то есть итерация цикла
03:00:40
происходила по нажатию например любой
03:00:42
клавиши мы с вами помним что это
03:00:45
делается с помощью conso
03:00:49
read
03:00:51
Key он будет ожидать от нас каких-то
03:00:54
действий а также Давайте будем очищать
03:00:56
консоль
03:00:57
чтобы видеть наши изменения conso Clear
03:01:01
давайте пока закоментить
03:01:05
Ctrl KC и у меня закомментировать
03:01:18
Теперь давайте раскомментировать
03:01:36
наши места продолжим писать нашу
03:01:39
программу давайте сделаем чтобы наш
03:01:41
вывод был где-нибудь снизу А наша
03:01:43
программа администрирования будет
03:01:45
отображаться вверху нашей консоли для
03:01:48
этого
03:01:52
напишем в скобочках укажем координаты
03:01:54
Пускай по ИСУ это будет но по игре
03:01:58
Пускай это будет ну
03:02:00
18 проверим и видим что у нас вся
03:02:03
информация сместилась вниз то есть снизу
03:02:07
на экране будет отображён самолёт а
03:02:09
сверху мы уже будем оперировать с нашими
03:02:11
операциями и бронировать места после
03:02:14
такого вывода курсор будет Нади на
03:02:15
Нижних позиция
03:02:17
поэтому поэтому мы вернём его в левый
03:02:20
верхний угол чтобы начать программу с
03:02:22
самого
03:02:23
начала для этого пишем
03:02:27
conso Set cursor
03:02:30
position и сразу ставим 0 то есть слева
03:02:35
вверху далее подпишем нашу программу
03:02:39
conso Right L двойные кавычки
03:02:44
регистрация рейса
03:02:50
далее наш администратор будет выбирать
03:02:52
определённые команды и мы сразу опишем
03:02:55
их в нашем
03:02:57
свиче
03:03:01
swch круглые
03:03:03
скобки на самом деле для проверки ввода
03:03:06
нам не обязательно создавать переменную
03:03:07
мы вот сразу здесь в скобках можем взять
03:03:10
то что нам вводит пользователь и
03:03:12
сравнить с нашими вариантами ответов
03:03:14
написанными в кейсах сча сравнивать мы
03:03:17
будем
03:03:18
Поэтому нам необходимо написать команду
03:03:21
convert in
03:03:27
32 и конвертируем то что нам ведёт
03:03:30
пользователь
03:03:32
cons
03:03:35
readline после чего записываем варианты
03:03:38
которые может выбрать
03:03:41
администратор для этого пишем
03:03:44
Cas сравнивать будем с интом пишем
03:03:48
один двоеточие и
03:03:51
Break также запишем второй вариант Case
03:03:55
2
03:03:56
двоеточие
03:03:58
Break то есть мы получаем строковое
03:04:01
значение от пользователя конвертируем в
03:04:03
int и этот in сравниваем с нашими
03:04:05
вариантами ответов чтобы наш
03:04:08
администратор понимал что мы от него
03:04:09
хотим Давайте запишем два сообщение
03:04:13
cons двойные кавычки о будет
03:04:19
бронировать
03:04:21
места а вторая команда у нас будет выход
03:04:24
из программы чтобы было более читаемо мы
03:04:27
это разделим на несколько строк поэтому
03:04:30
ставим с
03:04:33
NN и здесь точно также с
03:04:37
NN чтобы было более читаемо мы поставим
03:04:40
обратно с N обрат с это перенос на новую
03:04:44
строку Мы с вами уже это знаем
03:04:48
обрат с чтобы не было лишнего пробела и
03:04:51
отступа удаляем
03:04:54
его здесь кстати тоже удаляем чтобы не
03:04:57
ставилось и далее указываем пользователю
03:05:04
cons двойные кавычки
03:05:08
введите
03:05:10
введите номер
03:05:14
команды и пользователь вводит
03:05:17
М давайте вс-таки определим границы
03:05:20
нашей программы То есть когда она будет
03:05:23
завершаться она будет завершаться когда
03:05:26
пользователь ведёт 2 И что же нам в этом
03:05:28
случае необходимо сделать нам в этом
03:05:30
случае нужно сделать в цикле while
03:05:33
условие
03:05:35
равное для этого создадим левую
03:05:37
переменную Bull is
03:05:43
Open и когда Оператор будет нажимать на
03:05:46
двойку
03:05:48
у нас переменная is Open мы переменной
03:05:52
is Open
03:05:56
присвоил скобках цикла while там где
03:05:59
проверяется какое-то условие мы запишем
03:06:01
нашу переменную is Open он опять же нам
03:06:04
подсказывает что у нас переменная не
03:06:06
проинициализирован то есть мы задаём ей
03:06:08
первоначальное
03:06:09
значение и как раз-таки это будет
03:06:12
означать что с самого нача у на
03:06:14
программа запущена
03:06:17
выполним с этого места и видим
03:06:20
регистрация рейса один забронировать
03:06:23
места два выход из программы выберите
03:06:26
номер программы кстати давайте сделаем
03:06:28
после второго варианта ещё отступ
03:06:32
обратно с N обрат
03:06:36
СШ Ctrl F5 и мы видим более приятный вид
03:06:41
в случае с ответом один У нас пока
03:06:43
ничего нет поэтому можем протестировать
03:06:45
номер два нажимаем два
03:06:48
Enter и у нас программа завершается
03:06:51
далее будем разбирать случай когда у нас
03:06:53
выбрана Первая команда то есть будет
03:06:55
происходить бронь на рейс что нам для
03:06:58
этого надо Мы у пользователя будем
03:07:00
спрашивать В каком секторе И сколько
03:07:02
мест он хохочет купить Для этого нам
03:07:04
понадобится int User
03:07:09
seor а также User
03:07:14
Place Place Давайте amount количество
03:07:20
мест после чего формально оператор
03:07:22
спрашивает у нашего клиента в каком
03:07:24
секторе он хохочет забронировать себе
03:07:26
место Так и запишем
03:07:29
cons
03:07:32
Wi военые
03:07:37
кавычки В
03:07:39
каком
03:07:43
секторе вы
03:07:45
хотите лететь
03:07:48
точка запятой и дальше мы уже ожидаем
03:07:51
ввод от нашего администратора который
03:07:54
Получил информацию от клиента в каком
03:07:56
секторе он хохочет лететь и мы в нашу
03:07:59
переменную
03:08:03
User
03:08:04
сер присваиваем значение convert
03:08:18
ВС что нам ведёт наш администратор
03:08:26
cons круглые скобки также администратор
03:08:30
должен спросить Сколько мест хотят
03:08:31
забронировать поэтому
03:08:39
ко двойные кавычки Сколько
03:08:43
мест вы
03:08:46
хотите
03:08:50
забронировать вопросительный знак пробел
03:08:54
и теперь User Place
03:09:01
amount мы
03:09:07
инициализирует точка to
03:09:11
in
03:09:12
32 круглые скобки conso readline
03:09:18
круглые скобки точка с запятой какие
03:09:21
могут здесь возникнуть сложности при
03:09:23
выборе сектора и выборе мест во-первых
03:09:26
администратор может вести количество
03:09:27
секторов больше чем у нас имеется а
03:09:30
также может вести количество секторов
03:09:32
меньше чем у нас имеется поэтому мы
03:09:34
делаем следующую проверку If количество
03:09:38
секторов
03:09:40
sectors
03:09:42
L меньше либо равно то что нам ввёл
03:09:46
администратор
03:09:51
или
03:09:53
US меньше нуля то есть отрицательного
03:09:57
количества быть не может в этом случае
03:10:00
мы пишем
03:10:01
ответ
03:10:04
cons двойные кавычки
03:10:08
такого
03:10:10
сектора не
03:10:13
существует и в этом месте
03:10:19
для этого мы пишем bre теперь Какие
03:10:22
проблемы могут быть с выбором количества
03:10:24
мест у нас может опять же быть
03:10:27
недостаточно мест в секторе и мы можем
03:10:31
указать отрицательное количество мест
03:10:33
поэтому мы делаем следующую проверку If
03:10:39
sectors квадратные скобки и в квадратных
03:10:42
скобках указываем номер того сектора
03:10:44
который выбрал наш клиент и ввёл
03:10:47
соответственно администратор
03:10:50
а User Sector После чего мы получим
03:10:55
количество мест в этом секторе и
03:10:57
сравниваем его с введённым или желаемым
03:11:00
количеством нашего клиента User Place
03:11:03
amount или ещё может возникнуть ситуация
03:11:06
если мы ввели отрицательное количество
03:11:08
мест User Place amount меньше Ну в этом
03:11:13
случае мы выводим сообщение conso rline
03:11:19
в
03:11:22
секторе фигурные скобки также используем
03:11:26
интерполяцию в секторе User
03:11:31
seor недостаточно
03:11:36
места можем также написать
03:11:40
остаток фигурные
03:11:43
скобки sectors
03:11:48
квадратные скобки
03:11:53
usor перенесём на новую строку
03:11:55
сканируем после чего также вводим Break
03:11:59
чтобы прервать наш цикл и если у нас
03:12:01
прошли все проверки и все значение
03:12:04
верное Мы у сектора который выбрал наш
03:12:07
клиент то есть
03:12:09
sectors
03:12:11
usor отнимаем количество мест которое
03:12:14
желал клиент
03:12:20
точка запятой и в целом можно сказать
03:12:22
что наша программа готова Давайте её
03:12:26
тестировать Ctrl
03:12:30
F5 Окей выбираем номер команды
03:12:34
О В каком секторе хотите лететь например
03:12:37
в мину о такого сектора не существует
03:12:41
дальше видим наша программа обновляется
03:12:44
и снова выводит нам сектора и количество
03:12:47
мест А теперь Давайте попробуем ввести
03:12:51
единицу и дальше выберем количество мест
03:12:54
снова давайте выберем команду один и
03:12:56
выберем первый сектор нажимаем
03:12:59
один и сколько хотим мест забронировать

Описание:

Научись Создавать игры с нуля с Гарантией Трудоустройства на моем авторском курсе. По ПОСЛЕДНЕЙ скидке 60% до конца МАРТА. Переходи по ссылке - https://ijunior.ru/unity-start?utm_source=youtube&utm_medium=video&utm_campaign=description&utm_content=csharpin9hours Бесплатно выложили полный курс по CSharp (Сишарп) для вас наши дорогие зрители. Мой телеграм - https://t.me/sakutin_csharp/ Моя студия Agava - https://agava.tech/ Моя книга - http://csharpbook.sakutin.ru ЯЮниор: Группа - https://vk.com/holymonkey_sandbox ЧАТ В ТЕЛЕГЕ - https://t.me/csharp_faggots_fan_club Discord - https://discord.gg/MpHGV2S Таймкоды: 00:00:00 - Предисловие от Романа Сакутина 00:02:27 - Введение в программирование 00:05:15 - Установка Visual Studio бесплатно 00:09:50 - Переменные в сишарп 00:19:40 - Как правильно именовать переменные в сишарп 00:21:00 - Арифметические операторы в сишарп 00:29:30 - Логические операторы в сишарп 00:32:30 - Конкатенация в сишарп 00:35:28 - Интерполяция в сишарп 00:40:24 - Конвертация типов в сишарп 00:44:20 - Действия с консоль на языке сишарп 00:52:23 - Инкремент и декремент в Сишарп 00:56:58 - Практическая задача "Систему урона" на сишарп 01:06:31 - Оператор If в CSharp 01:16:39 - Логическое И и ИЛИ в сишарп 01:23:55 - Условный оператор Switch в сишарп 01:31:31 - Практика условных операторов в сишарп 01:31:31 - Практика условных операторов в сишарп 01:43:10 - Циклы в сишарп - while 01:47:50 - Циклы в сишарп - for 01:55:27 - Практика циклов в сишарп 02:08:55 - Генератор случайных чисел (Random) в сишарп 02:11:30 - Создание игры "Угадай число" 02:21:05 - Создание игры "Гладиаторские бои" 02:31:05 - Хитрости работы с консолью 02:39:17 - Одномерные массивы в сишарп 02:50:52 - Практика работы с массивами в сишарп 03:17:07 - Многомерные массивы в сишарп 03:32:13 - Практика работы с многомерными массивами в сишарп 03:48:26 - Ссылочные типы в сишарп 03:56:42 - Как увеличить массив в сишарп? 04:00:35 - Создание консольные игры "Бродилка" на сишарп 04:13:32 - Строка - ЭТО МАССИВ? 04:14:20 - Цикл Foreach в сишарп 04:17:02 - Функции в сишарп 04:25:17 - Возврат значений и return в сишарп 04:27:57 - Необязательные параметры 04:32:11 - Ref и out в CSharp 04:43:55 - Перегрузка 04:48:24 - Практика "Healthbar" 04:54:14 - Роман Сакутин "Делаем Pacman в консоли на C#" 05:31:01 - Коллекция List в сишарп 05:38:04 - Queue или очередь, FIFO коллекция в сишарп 05:42:19 - Stack FILO коллекция в сишарп 05:44:55 - Dictionary или словарь в сишарп 05:52:36 - Что такое ООП? 05:53:58 - Отношения в объектно ориентированном программирование 05:56:38 - Типизация в ООП 06:01:24 - Абстракция (Полиморфизм) в сишарп 06:02:08 - Классы и объекты в сишарп 06:05:53 - Поля и модификаторы доступа в сишарп 06:12:16 - Методы в сишарп 06:18:12 - Конструкторы в сишарп 06:25:00 - Практика ООП "Программа для администратора кафе" 06:34:41 - Связь Has-a в языке сишарп 06:40:31 - Связь Is-a в языке сишарп 06:52:26 - Свойства в сишарп 07:00:21 - Это ломает вашу инкапсуляцию! 07:06:28 - Практика ООП "Бой героев" 07:17:05 - Виртуальные методы 07:22:36 - Паттерн "Цикл обновления" 07:24:49 - Интерфейсы в сишарп 07:28:04 - Абстрактные классы в сишарп 07:32:34 - Статические члены и классы 07:35:56 - Распространённые проблемы static 07:38:35 - Статичеческий конструктор в сишарп 07:41:49 - СТАТИКА ЭТО ПЛОХО 07:44:00 - Структура VS Класс 07:48:14 - Ошибка при работе со структурой 07:52:25 - Практика ООП "Симулятор компьютерного клуба" 08:27:16 - Роман Сакутин "Явное и неявное преобразование типов в C#" 08:33:20 - Upcasting и Downcasting в сишарп 08:43:41 - Преобразование объектов с помощью is и as 08:48:23 - Pattern Matching в сишарп 08:51:05 - enum - что за тип данных в сишарп? 08:56:15 - Введение в LINQ 09:03:31 - Методы расширения LINQ

Медиафайл доступен в форматах

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

question iconКак можно скачать видео "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА"?arrow icon

    Сайт http://unidownloader.ru/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений.
    Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

    Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

    UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

question iconКакой формат видео "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА" выбрать?arrow icon

    Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

question iconПочему компьютер зависает при загрузке видео "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА"?arrow icon

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

question iconКак скачать видео "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА" на телефон?arrow icon

    Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

question iconКак скачать аудиодорожку (музыку) в MP3 "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА"?arrow icon

    Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

question iconКак сохранить кадр из видео "C# 2024 С НУЛЯ ДО ПРОФИ | СЛИВ ЛУЧШЕГО КУРСА"?arrow icon

    Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

question iconКак воспроизвести и скачать потоковое видео?arrow icon

    Для этого понадобится VLC-плеер, скачать его можно бесплатно с официального сайта https://www.videolan.org/vlc/

    Как воспроизвести потоковое видео через VLC-плеер:

    • в форматах видео наведите курсор мыши на "Потоковое видео**";
    • правым кликом выберите "Копировать ссылку";
    • откройте VLC-плеер;
    • в меню выберите Медиа - Открыть URL - Сеть;
    • в поле ввода вставьте скопированную ссылку;
    • нажмите "Воспроизвести".

    Для скачивания потокового видео через VLC-плеер необходимо его конвертировать:

    • скопируйте адрес видео (URL);
    • в пункте “Медиа” проигрывателя VLC выберите “Открыть URL…” и вставьте ссылку на видео в поле ввода;
    • нажмите на стрелочку на кнопке “Воспроизвести” и в списке выберите пункт “Конвертировать”;
    • в строке “Профиль” выберите “Video - H.264 + MP3 (MP4)”;
    • нажмите кнопку “Обзор”, чтобы выбрать папку для сохранения конвертированного видео и нажмите кнопку “Начать”;
    • скорость конвертации зависит от разрешения и продолжительности видео.

    Внимание: данный способ скачивания больше не работает с большинством видеороликов с YouTube.

question iconСколько это всё стоит?arrow icon

    Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.

Следите за обновлениями в наших социальных сетях