Light-electric.com

IT Журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Код программирования c

Что нужно для программирования на C++

Люди, у которых появилось желание начать изучать программирование на C++, часто задают такие вопросы в сети:

  • Что нужно для программирования на C++
  • Какие программы нужны для программирования на C++
  • Как начать программировать на C++

Однако ответ на один из вопросов порождает еще вопросы. На этой странице я постараюсь ответить на них и рассказать подробнее.

Язык программирования C++ очень популярный и используемый. Приложения, написанные на этом языке, используют системные вызовы операционной системы напрямую без прослоек. Это, в свою очередь, экономит ресурсы вычислительной машины и влияет на быстродействие. Программы, написанные на языке C++, славятся своим быстродействием.

Что нужно для программирования на C++

Самое нужное — это желание. Не имея желания программировать, Вам придется очень сложно себя пересиливать и вскоре это надоест. Программирование — это умственный процесс, оно может утомлять, даже если у вас сильно очень «загорелось». Кстати, у многих желание пропадает после прочтения половины учебной книги по языку программирования, т.к. появляются какие-то сложные конструкции или неинтересные для вас вещи. Например, Вы хотели сразу начать писать игры и изучать для этого нужные команды(классы и функции), а вам рассказывают об умных указателях, перегрузке функций или лямбда-выражениях. Если Вас не пугает то, что Вам придется изучить множество всего, что может показаться не нужным на первый взгляд, то милости просим в ряды начинающих программистов.

Для самого процесса программирования нужен сам программист и его рабочее место(компьютер с нужным софтом). Если вы читаете это, то наверняка с компьютера, поэтому всё необходимое вы уже имеете, за исключением IDE.

IDE — интегрированная среда разработки, а если проще, то это программа в которой имеется целый набор полезных вещей: текстовый редактор для кода с подсветкой синтаксиса, компилятор (он переводит код вашей программы в машинный код, который понятен компьютеру), дебаггер и еще куча различных полезных приблуд.

Существует множество различных IDE для различных операционных систем.

IDE для Windows

Visual Studio. Самым популярным для Windows является Visual Studio (На официальном сайте Microsoft можно скачать бесплатно Visual Studio Express). В ней есть всё что нужно и даже больше, весит этот монстр несколько гигабайт, при этом тормозит на слабых компьютерах.

Dev-C++. Самым оптимальным вариантом для программирования является IDE Dev-C++, есть все что нужно для начала, весит примерно 50 мегабайт. Простой интерфейс, легко разобраться. Скачать можно здесь.

IDE для Linux

Geany. Самый оптимальный вариант — Geany. Легковесно, просто, быстро и удобно.

QtCreator. Лучшая, на мой взгляд, IDE для Linux (И не только, она кроссплатформенная). Есть всё что нужно + Qt Framework из коробки.

Как начать программировать на C++

Запастись чашкой вкусного кофе, сесть перед компьютером и запустить IDE. Однако, если Вы впервые начали, то Вам необходимо почитать как пользоваться вашей IDE, в сети множество информации на эту тему. Для начала достаточно узнать: как создать файл программы, как скомпилировать написанную программу и как запустить. Это дело 10-15 минут.

Ну и традиционно код первой программы, которую вы можете вставить в редактор, скомпилировать и запустить:

C++ с нуля

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

Первая программа на C++ — урок 1

В качестве среды разработки под Windows автор советует использовать Visual Studio 2008 (800 Мб), если у вас Windows XP, Visual Studio 2013 (6.5 Гб) для Windows 7 и выше, или Dev C++ 5 (41 Мб) для тех, у кого слишком медленный интернет для загрузки Visual Studio. Пользователям Unix-подобных систем, потребуется компилятор GCC и любой текстовый редактор, например Vim.

После того, как вы установили все необходимое, приступим к написанию первой программы.

Переменные и типы данных в C++ — урок 2

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

Конструкция ветвления в C++ — урок 3

Встречаются ситуации, когда программе нужно выбрать, какую операцию ей выполнить, в зависимости от определенного условия.

К примеру, мы вводим с клавиатуры целое число. Если это число больше десяти, то программа должна выполнить одно действие, иначе — другое. Реализуем этот алгоритм на C++ с помощью конструкции ветвления.

Циклы в C++ — урок 4

Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. В этом уроке мы научимся программировать циклы на C++, после чего посчитаем сумму всех чисел от 1 до 1000.

Массивы в C++ — урок 5

Сегодня мы с поговорим о массивах. Вы уже знаете, что переменная — это ячейка в памяти компьютера, где может храниться одно единственное значение. Массив — это область памяти, где могут последовательно храниться несколько значений.

Возьмем группу студентов из десяти человек. У каждого из них есть фамилия. Создавать отдельную переменную для каждого студента — не рационально. Создадим массив, в котором будут храниться фамилии всех студентов.

Функции в C++ — урок 6

Сегодня мы поговорим о функциях в C++. Очень часто в программировании необходимо выполнять одни и те же действия. Например, мы хотим выводить пользователю сообщения об ошибке в разных местах программы, если он ввел неверное значение. без функций это выглядело бы так:

Указатели в C++ — урок 7

При выполнении любой программы, все необходимые для ее работы данные должныбыть загружены в оперативную память компьютера. Для обращения к переменным, находящимся в памяти, используются специальные адреса, которые записываются в шестнадцатеричном виде, например 0x100 или 0x200 .

Если переменных в памяти потребуется слишком большое количество, которое не сможет вместить в себя сама аппаратная часть, произойдет перегрузка системы или её зависание.

Динамические массивы в C++ — урок 8

В пятом уроке мы разобрали понятие массива. При объявлении, мы задавали массиву определенный постоянный размер.

Параметры командной строки в C++ — урок 9

При запуске программы из командной строки, ей можно передавать дополнительные параметры в текстовом виде.

Классы в C++ — урок 10

Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов.

Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета успеваемости студентов. Можно представить группу студентов, как класс языка C++. Назовем его Students .

Читать еще:  Бейсик среда программирования

Учимся правильно оформлять код на C на примере open source проектов

    Переводы, 18 февраля 2015 в 19:20

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

Если исходники большого проекта написаны в одном стиле, их гораздо легче понимать.

Научиться правильному оформлению кода можно, например:

  • из книг и журналов;
  • из руководств в сети;
  • из общения с коллегами;
  • на собственном опыте.

Другой, не менее интересный, подход — взять проверенный временем открытый проект и разобраться в том, какие решения принимали его разработчики. Хорошим примером в этом случае будет ядро Linux.

Для новичка или даже для опытного разработчика, разбор кода ядра Linux может оказаться непростой задачей. Однако наша цель не присоединиться к ним, а просто рассмотреть детали реализации.

Давайте посмотрим на пример реализации функции из исходного кода Linux:

Код выглядит чистым и понятным:

  • Он короткий, всего несколько строк.
  • Подробная сигнатура функции.
  • Код хорошо документирован.
  • Код правильно и последовательно структурирован.
  • Понятные имена переменных.

Тот же код, написанный другим разработчиком, может выглядеть так:

Стиль написания кода очень сильно влияет на его читаемость. Поэтому время, потраченное на тренировку и периодические код-ревью, всегда окупится.

Давайте теперь посмотрим на код ядра Linux с помощью CppDepend и попробуем разобраться, какими правилами руководствовались разработчики.

Модульность

Модульность — это техника дизайна приложений, которая обеспечивает повторное использование кода и облегчает его поддержку.

Для процедурного языка, такого, как C, в котором нет пространств имен, классов или компонентов, мы можем разделять модули, помещая код в отдельные файлы и директории.

Мы можем использовать два подхода:

  • Положить все исходники в одну директорию
  • Объединить файлы, относящиеся к одному модулю в одну директорию.

В случае с ядром Linux директории и поддиректории используются для обеспечения модульности кода ядра.

Инкапсуляция

Инкапсуляция — это скрытие внутренних деталей реализации. В C инкапсуляция обеспечивается за счет ключевого слова static . Функции и переменные, помеченные как статические, позволяют обращаться к ним только из того же файла.

Давайте посмотрим на статические функции с помощью следующего запроса в CQLinq:

Мы можем использовать панель Метрик (Metric view) чтобы оценить код в целом. На этой панели код представлен в виде дерева (Treemap). Древовидная структура, используемая в CppDepend показывает иерархию кода:

  • Директории в проекте.
  • Файлы в директориях.
  • Структуры, функции и переменные в файлах.

Дерево проекта позволяет наглядно представить результаты запроса CQLinq.

Видно, что множество функций — статические.

Теперь давайте найдем статические поля:

В коде ядра Linux инкапсуляция используется каждый раз, когда доступ к функции или переменной должен быть разрешен только из того же файла.

Используйте структуры для своих данных

В C функции используют переменные для работы. Переменные могут быть:

  • статическими;
  • глобальными;
  • локальными;
  • полями структур.

В каждом проекте есть модель данных, которая используется в различных модулях. Использование глобальных переменных для представления этой модели — это возможное решение, но плохое. Используйте структуры для группировки данных.

Давайте найдем все глобальные переменные с примитивным типом:


Их всего несколько, и, возможно, мы могли бы сгруппировать их в структуры, например ( elfcorehdr_addr и elfcorehdr_size ) или ( pm_freezing и pm_nosig_freezing ).

Функции должны быть краткими и понятными

Вот совет из linux coding style по поводу длины функции:

Функции должны быть короткими и понятными, делать только одну вещь. Они должны занимать один или, максимум, два экрана текста (экран по ISO/ANSI имеет размер 80×24). Функция должна делать одну вещь, и делать ее хорошо.

Максимальная длина функции обратно пропорциональна ее сложности и количеству уровней вложенности. Так, если у вас, например, простая функция с одним, но большим case-выражением, она может быть длинной.

Давайте найдем все функции, длина которых больше 30 строк:

Всего немного методов занимает больше 30 строк.

Количество параметров функции

Функции с количеством параметров большим, чем 8 (NbParameters > 8), трудно вызывать. Также, их вызов плохо сказывается на производительности. Вместо этого мы можем передавать в них структуру с необходимыми значениями.

Только два метода принимают больше, чем 8 параметров.

Количество локальных переменных

Методы, в которых используются более 8 локальных переменных (значение NbVariables) тяжело понимать и поддерживать. Методы, в которых 15 и более локальных переменных очень сложны и их следует разбивать на более мелкие (кроме тех случаев, когда код сгенерирован сторонним инструментом).

Только в пяти функциях используется более 15 локальных переменных.

Избегайте сложных функций

Существует много метрик для определения сложности функции. Количество строк кода, локальных переменных и параметров — только некоторые из них.

Есть несколько более комплексных метрик:

  • Cyclomatic complexity — популярная метрика, показывающая количество ветвлений в коде.
  • Nesting Depth — is a metric defined on methods that is relative to the maximum depth of the more nested scope in a method body.
  • Max Nested loop — максимальный уровень вложенности в методе.

Максимально допустимые значения этих метрик устанавливаются руководителем, здесь нет стандартных значений.

Давайте посмотрим на функции, которые можно упростить:

Только небольшое количество функций можно признать сложными.

Соглашения об именовании

Не существует единого стандарта именования элементов программы, поэтому каждый менеджер проекта может устанавливать свои правила, однако важно, чтобы эти правила были последовательны.

К примеру, в коде ядра Linux имена структур должны начинаться со строчной буквы. Мы можем проверить соответствие кода соглашению с помощью такого запроса:

Имена только 4 структур начинаются с «_» вместо строчной буквы.

Отступы и выравнивание

Отступы очень важны для того, чтобы код был читаем. Вот что пишут об этом на странице linux coding style:

Обоснование: Основная идея отступов состоит в том, чтобы показать где начинается и заканчивается логический блок кода. Когда вы смотрите на один и тот же код в течение 20 часов, трудно не заметить пользу отступов.

Некоторые могут возразить, что отступ в 8 пробелов делает код слишком широким, особенно на 80-знаковой строке терминала. Ответ: Если вам понадобилось более трех уровней отступа, вы что-то делаете неправильно и вам следует переписать этот участок.

Заключение

Чтение кода open-source проектов всегда идет на пользу вашему опыту. При этом нет необходимости скачивать и собирать проект, достаточно просто просматривать код, например, на GitHub.

Для чего нужен язык C#

Вы навер­ня­ка слы­ша­ли о язы­ках про­грам­ми­ро­ва­ния, кото­рые начи­на­ют­ся на «Си»: про­сто «Си», «Си плюс плюс» и «Си шарп». Сей­час хоро­шее вре­мя, что­бы разо­брать­ся, что к чему.

Читать еще:  Программирование vb net

Главное

  • C# — язык про­грам­ми­ро­ва­ния, кото­рый ком­па­ния Мик­ро­софт изна­чаль­но дела­ла для сво­их про­ек­тов.
  • Назва­ние чита­ет­ся как «си-шарп».
  • Мно­гие дума­ют, что это отдель­ная вер­сия язы­ка С, но на самом деле нет. В C# дей­стви­тель­но есть мно­го кон­струк­ций, похо­жих на С и С++, но точ­но так же в нём мож­но най­ти эле­мен­ты Пас­ка­ля и Java. Это не раз­ви­тие линей­ки С, а новый язык, создан­ный с нуля.
  • C# — объектно-ориентированный язык, а зна­чит, вся тео­рия про клас­сы, объ­ек­ты и насле­до­ва­ния рабо­та­ет и в нём, но с неко­то­ры­ми ого­вор­ка­ми.
  • Спрос на про­грам­ми­стов C# не шкваль­ный, этот язык слож­но назвать мод­ным в 2020 году. Но на нём мож­но делать всё, что нуж­но в 2020-м: от игр и при­ло­же­ний до веб-сервисов.
  • Осо­бен­но хоро­шо он соче­та­ет­ся с эко­си­сте­мой Microsoft.

Игры на DirectX

DirectX — набор ком­по­нен­тов, кото­рые исполь­зу­ют­ся для про­грам­ми­ро­ва­ния трёх­мер­ной гра­фи­ки и рабо­ты со зву­ком и видео. С помо­щью C# мож­но лег­ко под­клю­чить­ся к DirectX и напи­сать свой трёх­мер­ный шутер или любую дру­гую игру. Тех­ни­че­ски это выгля­дит так: C# отве­ча­ет за логи­ку и пове­де­ние игры, а DirectX — за гра­фи­ку и зву­ко­вое сопро­вож­де­ние.

Игры на Unity

Unity — это дви­жок для созда­ния дву­мер­ных и трёх­мер­ных игр. Он берёт на себя физи­ку, гра­фи­ку и мно­гие слу­жеб­ные шту­ки, что­бы вы мог­ли сосре­до­то­чить­ся на кон­тен­те и сце­на­рии игры. Всё бы хоро­шо, но без про­грам­ми­ро­ва­ния в Unity всё рав­но не полу­чит­ся, и быва­лые раз­ра­бот­чи­ки реко­мен­ду­ют для Unity выби­рать имен­но C#. Есть и дру­гие вари­ан­ты, напри­мер, соб­ствен­ный язык UnityScript или JavaScript.

Машинное обучение

Так как C# — это про­ект Мик­ро­соф­та, то у него всё в поряд­ке с под­держ­кой и с биб­лио­те­ка­ми. В мире C# биб­лио­те­ки есть прак­ти­че­ски для все­го, в том чис­ле и для рабо­ты с ней­ро­се­тя­ми и машин­ным обу­че­ни­ем — ML.NET.

Это зна­чит, что вы може­те исполь­зо­вать все воз­мож­но­сти ней­ро­нок в при­ло­же­ни­ях и объ­еди­нять их с помо­щью одно­го и того же язы­ка про­грам­ми­ро­ва­ния. А так как C# — муль­ти­плат­фор­мен­ный язык, то машин­ное обу­че­ние мож­но встро­ить прак­ти­че­ски во что угод­но, от мобиль­ных при­ло­же­ний до носи­мой элек­тро­ни­ки.

Игры и программы для разных мобильных платформ

Что­бы один и тот же C#-код рабо­тал на раз­ных плат­фор­мах, исполь­зу­ют Mono и Xamarin — про­дук­ты для кросс-платформенной раз­ра­бот­ки под раз­ные опе­ра­ци­он­ные плат­фор­мы.

  1. Вы пише­те про­грам­му для одной плат­фор­мы, напри­мер Windows.
  2. Берё­те Mono, загру­жа­е­те туда свой код и выби­ра­е­те новую плат­фор­му — напри­мер iOS.
  3. Mono смот­рит и гово­рит — вот тут нуж­но под­клю­чить дру­гую биб­лио­те­ку, вот здесь немно­го пере­пи­сать код, а это место вооб­ще мож­но уда­лить и напи­сать зано­во, что­бы всё рабо­та­ло.
  4. В ито­ге про­грам­мист не пишет софт с нуля для каж­дой опе­ра­ци­он­ной систе­мы, а пра­вит его так, что­бы он соот­вет­ство­вал её тре­бо­ва­ни­ям.
  5. Это сокра­ща­ет вре­мя раз­ра­бот­ки в несколь­ко раз, пото­му что осно­ва кода одна и та же, а раз­ни­ца толь­ко в дета­лях.

Программы и сервисы для веба

C# мож­но исполь­зо­вать для созда­ния веб-приложений. Рабо­та­ет так:

  1. У вас есть компьютер-сервер, на кото­ром рабо­та­ет сер­вер­ный софт Microsoft.
  2. Сер­вер­ный софт уме­ет испол­нять код на несколь­ких язы­ках, сре­ди них — C#.
  3. Где-то из интер­не­та в этот сер­вер при­ле­та­ет запрос, напри­мер «выдай мне глав­ную стра­ни­цу».
  4. Сер­вер­ный софт ком­по­ну­ет веб-страницу и пуля­ет обрат­но поль­зо­ва­те­лю. Как и из чего ком­по­ну­ет­ся эта стра­ни­ца — это и есть то, что нуж­но раз­ра­бо­тать в веб-приложении.

Тео­ре­ти­че­ски вы може­те напи­сать при­ло­же­ние для п. 2 на любом язы­ке, кото­рый под­дер­жи­ва­ет сер­вер­ные реше­ния Microsoft, в неко­то­рых слу­ча­ях это может быть и PHP. Но экс­пер­ты гово­рят, что для соф­та Microsoft есть смысл писать на их язы­ке C#.

Сра­зу ска­жем: в боль­шин­стве быто­вых и люби­тель­ских про­ек­тов вам будет доста­точ­но даже не при­ло­же­ния на C# (или Python, Ruby или PHP), а уже гото­во­го реше­ния. Напри­мер, если нужен блог, луч­ше запу­стить его на хостин­ге WordPress и про­сто начать им поль­зо­вать­ся. Это не самый быст­рый софт и не самый гиб­кий, но его запуск зай­мёт у вас 15 минут, а не 15 недель.

А вот на слож­ных высо­ко­на­гру­жен­ных сай­тах WordPress уже не потя­нет — нуж­ны дру­гие тех­но­ло­гии. И тут уже тре­бу­ют­ся глу­бо­кие зна­ния: на одном желе­зе и с одним сте­ком тех­но­ло­гий луч­ше все­го будет рабо­тать C#, на дру­гом — PHP, на тре­тьем — Ruby и т. д.

С# для новичков: развеиваем мифы и пишем простого чат-бота

Рассказываем о С#, даём полезные советы и делаем первые шаги в программировании.

Что такое С#

С# (произносится «си шарп») — это современный язык программирования, созданный компанией Microsoft. На нём можно писать программы любой сложности для любых платформ и операционных систем.

C# устроен так, чтобы программист мог писать меньше кода. Для этого в языке много «магических конструкций» и «синтаксического сахара» — способов выразить идею лаконично.

Это кроссплатформенный язык, то есть ваша программа будет работать не только в той операционной системе, в которой она написана, но и в других.

Мария Грегуш

В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.

Мифы о работе в С#

C# может казаться страшным и сложным, но на самом деле его совсем не стоит бояться. Давайте посмотрим на главные мифы о нём.

  1. Чтобы стать C#-разработчиком, надо учиться долгие годы. Это очень популярный миф, но на самом деле достаточно нескольких месяцев, и вы уже можете работать junior-разработчиком .
  2. Чтобы быть C#-разработчиком, надо разбираться в высшей математике. Это стереотип не только о конкретном языке, но и о программировании в целом. В реальности программисты 99% времени не используют математику — за исключением некоторых областей, прямо с ней связанных. Если вы делаете веб-сайты, создаете мобильные приложения, видеоигры — математика вам не понадобится.
  3. C# — это что-то сверхсложное. Как мы уже сказали, этот язык создавался так, чтобы в нём было удобно работать. Поэтому любой хорошо написанный код читается и понимается так же легко, как текст на английском языке.

Стартовая позиция в программировании. Специалист, который имеет небольшой опыт работы с каким-то языком и выполняет простую работу с перспективой роста.

Почему же стоит учить C#

  • Этот язык популярен и быстро развивается.
  • Разработчики C# востребованы.
  • С ним удобно работать, легко читать код.
  • C# и связанные с ним технологии можно освоить за несколько месяцев.

Что разрабатывают на С#

  • Десктопные приложения.
  • Серверные приложения и веб-сайты.
  • Мобильные приложения.
  • Консольные приложения и утилиты.
  • Универсальные приложения для десктопов, планшетов, смартфонов.
Читать еще:  Net сетевое программирование для профессионалов pdf

Этот язык создавался специально для разработки под Windows, так что с программами под эту операционную систему у вас не будет проблем. Это касается и Windows Phone, для которого C# — основной язык разработки. Но это не значит, что вы можете писать только для Windows, — C# замечательно работает и с другими операционными системами.

Как эффективнее работать с C#

Для эффективной работы полезно знать о дополнительных инструментах. Вот некоторые из них:

  1. WPF(Windows Presentation Foundation) поможет легко и быстро создать интерфейс для любых экранов, уменьшает количество кода, отображающего интерфейс.
  2. Xamarin — фреймворк для разработки кроссплатформенных приложений для Windows Phone, Android и iOS. То есть вы напишете один код, и он сразу будет работать на всех основных платформах.
  3. ASP.NET помогает просто и быстро связать серверный код с клиентским в серверных приложениях и веб-разработке.
  4. Entity Framework — один из лучших фреймворков для работы с базами данных. Позволяет работать с данными как с объектами.
  5. LINQ(Language Integrated Query) — мини-язык запросов, встроенный в C# и позволяющий легко выбирать, фильтровать, сортировать и группировать любые данные из любых источников: баз данных, массивов, структур, файлов и так далее.
  6. Visual Studio — среда разработки, созданная специально для языка C#.

Писать код в среде разработки удобно. У неё много плюсов, например:

  • подскажет, если в коде есть ошибка;
  • имеет встроенную справку на случай, если вы что-то забыли;
  • генерирует часть кода за вас (дополнит названия функций, шаблонные структуры).

Пишем чат-бота

Теперь пора перейти к практике. Сегодня мы будем работать в онлайн-среде ideone. Серьезные программы в онлайн-средах не пишутся, но для обучения и практики это самое то!

Итак, откроем сайт ideone. Слева будет окошко для кода. Возможно, что по умолчанию там будет выбран другой язык — тогда просто нажмите на его название и выберите C#.

Самые первые слова любого программиста — «Привет, мир!» (Hello, World!), поэтому и мы начнём с них. Хотя не совсем: мы позволили себе заменить «мир» на «Скиллбокс» 😉 Чтобы отобразить наше сообщение, используем команду Console.WriteLine (). Свой текст напишем в скобках и не забудем поставить кавычки. Вот так:

Чтобы запустить свой код и протестировать, работает ли он, нажмём зелёную кнопку RUN в углу.

Чтобы общаться с нашим будущим чат-ботом, нам надо научить его читать — то есть сделать так, чтобы мы могли задавать информацию, с которой он будет работать. Для этого мы используем команду Console.ReadLine (). Она прочитает текст, который написал пользователь.

Давайте уже напишем начало: пусть чат-бот здоровается, а потом читает наше сообщение:

Прочитать-то он прочитает, но память у бота короткая — надо, чтобы он это сообщение запомнил. Для этого сохраним его в переменную — назовём её, например, text. Вместо Console.ReadLine () напишем вот так:

Пусть бот уточняет, что именно мы ему сказали, — вдруг мы забудем. Сделаем мы это той же командой Console.WriteLine (), только в этот раз мы не знаем заранее, что надо будет написать, поэтому используем переменную. Чтобы вставить переменную в текст, обозначим её фигурными скобками, а перед кавычками напишем знак доллара, вот так:

Важно!
Не забывайте ставить точку с запятой в конце каждой строчки!

Чтобы задать свой input, запустите программу, а потом нажмите кнопку edit слева вверху над кодом.

Снизу откроется окошко с надписью input над ним. То, что вы там напишете, программа использует при следующем запуске.

Сейчас наш чат-бот умеет здороваться и может повторить, что мы ему написали. Давайте научим его реагировать на то, что мы пишем. Для этого нам понадобится конструкция if — она проверяет, соблюдено ли условие, и решает, что делать дальше. На новой строке напишем if и в круглых скобках напишем условие. Пусть в ответ на «Привет» бот отвечает «Здарова!». Мы можем написать вот так:

У нашего решения есть несколько проблем. Первая: если мы напишем весь свой текст маленькими или большими буквами, программа его не опознает. Что с этим делать? Добавим команду ToLower (), которая заменит все буквы на маленькие, и текст, с которым мы сравниваем сообщение пользователя, тоже перепишем маленькими буквами, вот так:

А что, если мы напишем «Привет, как дела?»? Наш бот никак не отреагирует. Чтобы это исправить, используем функцию Contains (), которая проверит, есть ли нужная строка в нашем вводе.

Можем разнообразить словарный запас нашего бота, добавив ещё условий:

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

Важно!
Если бы вы писали более сложного «настоящего» бота или другую программу, вы бы не копировали один и тот же код много раз, а использовали файл, базу данных или что-то другое. Когда одна и та же часть повторяется много раз, код неудобно читать и тяжело исправлять.

А что, если мы хотим получать не только такие ответы, но и меняющуюся информацию? Например, нам интересно, какой сегодня день. Если бы мы написали сегодняшнюю дату в такую же конструкцию, как выше, то или нам пришлось бы переписывать код каждый день, или наша программа сразу бы устарела. Нам поможет функция DateTime. Спросим у неё, какая сейчас (Now) дата, переведём это в строку нужного формата (ToString («dd.MM.yyyy»)) и всё это сохраним в переменную date. Вот так это выглядит:

И напоследок ещё одна важная тема.

Конструкция if часто идет в паре с else. Else описывает, что сделать в том случае, если условие из if не выполнится.

Используется else после if — но мы уже не пишем условие, а только действие в фигурных скобках. Вот пример этой конструкции:

Теперь, если мы напишем сообщение боту без слова «привет», он обидится и будет ругаться.

Для первого раза всё! Это были основы основ C#. Вы уже знаете, как отобразить текст (и не только), работать с информацией от пользователя, искать в тексте фразы, и попробовали работать с конструкцией if-else, которая очень важна. Из этих «кирпичиков» можно смело начинать строить!

Если же вас интересует более глубокое погружение в C# и вы хотите научиться работать с этим языком уверенно и профессионально, можно записаться на наш курс «Профессия C#-разработчик».

Курс

Профессия С#-разработчик

130 часов — и вы научитесь писать программы на языке, созданном Microsoft. Вы создадите 5 проектов для портфолио, даже если до этого никогда не программировали. После обучения — гарантированное трудоустройство.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×