Найти тему

Засовываем слово в прямоугольник. Практика по C sharp.

Оглавление
Практика по c sharp
Практика по c sharp

Всем Хай! В прошлой статье, где мы устроили виртуальный бой между Чуком и Геком, я сказал, что планирую сделать ещё две статьи с практикой. Боже, как я ошибался. Я думал, что смогу уместить 3 д.з. в одну статью. Но когда я сделал третье д.з, и только код там получился на пару листов, стало понятно что его разбор нужно пихать в отдельную статью. Поэтому сегодня на разборе будет две простенькие программки. Которые даже программками не назвать.

Первая программа. Выход по запросу.

Вот условие по первому д.з.

Скриншот задания
Скриншот задания

Ничего сложного. Написать цикл, который закончится, когда введём «exit».

Вот такой код у меня получился.

int age = 10;
Console.WriteLine("Для выхода введите - exit");
string stop = Console.ReadLine();
while (stop != "exit")
{
age += 10;
Console.WriteLine(age);
stop = Console.ReadLine();
}

Несколько строчек и ничего лишнего. Используем две переменные. Первая «int age» для наглядной работы цикла. И вторая «string stop» будет использоваться для остановки цикла командой «exit», которую будем вводить через консоль.

Используем цикл «while», так как нет точных ограничений для продолжения цикла. И в его условии пишем, что он будет работать, пока мы не напишем «exit».

В цикле каждый раз прибавляется число 10 после нажатия «Enter» в консоли. Также там написана переменная, куда мы, если захотим выйти, запишем нужное нам слово.

Видео работы программы.

Вторая программа. Графика в консоли.

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

Команды для консоли.

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

  • Console.SetCursorPosition(х,y) – изменение позиции курсора по иксу и игреку.
  • Console.ForegroundColor = ConsoleColor.Green – изменение цвета текста. Конкретно в этом случае в зеленый.
  • Console.BackgroundColor = ConsoleColor.Red – изменение фона у текста. В этом случае на красный.
  • Console.Clear() – очищение консоли.
  • имяЛюбойПеременной.Length – Считает количество символов в слове записанным в текстовую переменную «string». Её я буду использовать и всё походу дела объясню.

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

СпецСимволы для редактирования текста в C sharp
СпецСимволы для редактирования текста в C sharp

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

«Console.WriteLine("Денчик, ты сегодня педешь на мре?\nСегодня обещали солнце.\nКонечно да.\nКуда поедем?")»

Попробуйте сами разные символы. И смотрите что выйдет. Ну а мы вернёмся к нашему заданию.

Скриншот задания на C sharp
Скриншот задания на C sharp

Ну как вам? Вы поняли правильно. Нужно любое введённое слов заключить в прямоугольник из введённого символа. Мне сразу в голову ничего не пришло. Тогда я пошёл на улицу прогуляеться и на свежем воздухе алгоритм программы сразу пришёл мне в голову. Смотрите код ниже.

string name;
char sign;
int i = 0;
int j = 0;
Console.WriteLine("Введите имя");
name = Console.ReadLine();
Console.WriteLine("Введите символ");
sign = Convert.ToChar(Console.ReadLine());
Console.SetCursorPosition(0, 5);
while (i++ < name.Length + 4)
{
Console.Write(sign);
}
Console.SetCursorPosition(0, 6);
Console.WriteLine(sign + " " + name + " " + sign);
while (j++ < name.Length + 4)
{
Console.Write(sign);
}
Console.SetCursorPosition(0, 8);

Я решил разбить алгоритм на три части.

  1. В первой части при помощи цикла мы делаем верх прямоугольника из символа.
  2. Во второй части мы пишем слово и по краям ставим вводимый символ.
  3. И в третей части при помощи цикла мы делаем низ прямоугольник из символа .

Сразу понятно, что нам нужно две переменные. Одна строковая «string name», одна символьная «char sign». А две другие переменные числовые «i» и «j» я добавил позже, когда дошёл до цикла и понял что без них никуда.

После обозначения переменных мы делаем возможность ввода имени и символа через консоль «Console.ReadLine()».

Потом командой «Console.SetCursorPosition(0, 5)» мы ставим курсор на 5 строк ниже и запускаем цикл.

Первая часть.

Когда «name.Length» считает количество символов в слове она записывает их в числовых значениях. Но оказывается что «name.Length» при подсчёте количества символов в слове становится числовой переменной. То есть если вы напишите «Console.Write(name.Length)» то он в консоли выведет количество букв в слове, простое число. А значит, чтобы мы могли вставить логический оператор «<» нам тоже нужно число. Так я и добавил ещё две числовые переменные. Для первого и второго цикла.

То есть у нас по условию получается так. Цикл будет работать пока «i» будет меньше количества символов в водимом слове. И каждую новую итерацию прибавляется 1 к «i». Плюс, чтобы прямоугольник выглядел законченным я добавил ещё 4 символа к любому количеству букв в слове, чтобы выглядело презентабельно. Ну а в нутрии цикла, естественно, вывод символа в консоли.

Вторая часть.

Дальше с помощью уже известной нам команды я опускаю курсор на следующую строчку и просто делаю вывод в консоль слова с символами по краям.

Третья часть.

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

Дальше я ещё спускаю курсор для эстетики.

«Console.SetCursorPosition(0, 8)»

Чтобы строчка окончания работы программы не сливалась с нашим прямоугольником. И вот, в конечном итоге, что вышло.

Видео работы программы.

Ну, а на этом пока всё. Остались вопросы. Пишите в комментариях. В следующей статье разберём решение этой задачи.

Скрин д.з. по c sharp
Скрин д.з. по c sharp

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

Не забываем подписываться на канал. Мне интересно, сколько нас будет, будущих разработчиков? Всем пока!

#it #разработкаигр #программированиеснуля #программированиедляначинающих #csharp #какстатьпрограммистом