Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
мозговзрывающее дз, вроде бы все легко и логично, но при реализации просто голова кипит. Даже если не начну программировать, подобная разминка мозга пойдет на пользу, спасибо.
Он изначально нам показал не корретное условие задачи , на примере треуг.7 на 10 символов а он делает 5 на 5 , равносторонний . Задача не соответствует решению.
@@Nikelover.warspear программистом не стал. Стал водителем погрузчика =DDD... После того как уволили за пьянку пошёл сис админить в компанию работающию по аутсорсу. Набрался опыта. Сейчас начальник ит отдела =D. Работа наконец то радует.
я использовал дополнительную переменную для отрисовки пробелов) а оказалось всё на много проще. Спасибо тебе за крутые уроки, учу с нуля) Хочу что-то поменять в своей жизни, заняться тем к чему душа лежит
18:30 В первом цикле, который отрисовывает пустоту, длину цикла надо уменьшить на 1: 1. Уменьшив начальное значение на 1; 2. Уменьшив значение условия на 1. Если этого не делать, то отрисовывается полный невидимый треугольник и полный видимый и при их сложении получается квадрат на 1 размер больше, чем мы задали параметр. Из-за этого, на последней строке также имеется пробел - т.е. длина этой сроки явно n+1. UPD: 21:00 При установке курсора на вторую строку мы стираем значение, которое написали. Поэтому если хотите его сохранять, то во втором параметре SetCursorPosition делайте i + 2, чтобы строка сохранялась и пользователь видел, что он ввёл UPD2: 22:26 Второй цикл лучше начинать с i до height, иначе сталкиваемся с такой же проблемой размеров
Я потратил три дня думая как же это можно реализовать... даже гуглил на третий день и всё равно ничего не понял, пришлось смотреть решение ДЗ и кажется надо ещё пару раз пересмотреть чтобы до конца понять, хотя саму суть я уловил, но надо закрепить. Спасибо за ДЗ!
Спасибо за уроки Сергей, вас надо клонировать и распределить по вакансиям "учитель информатики" в ВУЗах и школах)). Грамотная и очень понятная подача материала, спасибо большое.
Сделал это домашнее задание на прошлом уроке. У меня код отличается от показанного здесь, но работает схоже. Автору спасибо большое, смотрю каждый день по 2 уроку, полёт нормальный. В качестве благодарности, я тоже поддержу в патреоне, когда стану разработчиком.
Спасибо за уроки! Хочу уточнить, что у вас в третьем треугольнике "лишний" столбец из пробелов слева. Во вложенном цикле, что рисует пробелы, нужно вычесть единицу из количества итераций: for (int j = 0; j < i-1; j++)
Сделала ДЗ полностью через "for", первые 2 треугольника нарисовала легко, над оставшимися думала долго... Пока думала, решила что хочу ввод произвольных символов=) покопавшись в описаниях типов данных нашла как сделать, хоть мы это еще не проходили. Итого спустя 6 часов выполнения все таки треугольники разных видов красуются на экране, я довольна, горжусь собой XD Спасибо Вам огромное за материал и подачу!!! Даже мне (абсолютному чайнику в программировании) все понятно. PS: успешное выполнение ДЗ-огромный стимул к дальнейшему обучению=)
был дикий напряг с последними двумя треугольниками Если первые два были сделаны за пару минут, то на последние убила около сорока минут Специально не смотрела видео, чтобы самой додуматься до решения Получилось! Теперь смотрю разбор дабы закрепить :) Спасибо!
И вот я снова тут (пришлось дропнуть изучение языка на пол года), и вот мне снова это задание взорвало мозг. Благо теперь на решение ушло не два часа, а 30 минут. Спасибо за такие шикарные задания))
Добрый день! Спасибо за интересное и доступное изложение материала. Первые два треугольника труда не составили. С третьим пришлось повозиться, а уже на его основе, 4-й дался легко. Моё решение немного отличается: static void Main(string[] args) { Console.Write("Введите высоту треугольника: "); int height = int.Parse(Console.ReadLine());
//1-й треугольник for (int i = 0; i < height; i++) { for (int j = 0; j i; j--) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(); //3-й треугольник for (int i = 0; i < height; i++) { for (int j = 0; j i && j == 0; k--) { Console.Write(" "); } Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(); //4-й треугольник for (int i = 0; i < height; i++) { for (int j = height; j > i; j--) { for (int k = 0; k < i && j == height; k++) { Console.Write(" "); } Console.Write("#"); } Console.WriteLine(); } } } }
Я сидел думал,думал, думал, Через 5 минут решил 😂😂😂😂😂 У меня в голову пришла мысль а что если в вложенном цикле for, поставить переменную i из внешнего цикла, я конечно думал не сработает, но на моё удивление, сработало, спасибо!)
Разбор ДЗ смотрю ради того, чтобы посмотреть как у вас реализовано решение. Самостоятельно удалось в течении часа решить задачку. Спасибо за интересные задания. Продолжаю изучение. Ещё не много и стану вашим постоянным спонсором, хотя и не нуждаюсь в коде из уроков. Спасибо за ваши труды.
У меня мозги разорвало от данного задания. Сразу заметил зависимость высоты и ширины в образце, но не мог придумать как это в виде кода интерпретировать. В итоге понимаю, что в теме едва ли разобрался и попадись мне такая задача на практике, я бы не нашёл её решения самостоятельно даже сейчас. Вложенные циклы это просто жесть, а не тема.
Для тех, кто не понял. Сперва нарисуйте на бумажке такой треугольник с решетками(в примере ниже будет первый треугольник) # ## Потом попробуйте нарисовать треугольник без for, а только с Console.Write и Console.WriteLine Получится что - то такое: Console.Write("#"); Console.WriteLine(); Console.Write("#"); Console.Write("#"); Console.WriteLine(); и так далее.Теперь попробуем сделать это через for: for (int i = 0; i < 1; i++) { } это обычный for, он будет повторять то, что внутри 1 раз, верно ? почему 1 раз ? Потому что на первой строке только одна решетка. пихаем туда Console.Write(#) и вне цикла переходим на новую строку for (int i = 0; i < 1; i++) { Console.Write("#"); } Console.WriteLine(); Окей, но нам-то нужно, чтобы теперь не одна решетка рисовалась, а 2..Создаем новую for снизу, и вместо 1 пишем 2. Должно получиться так: for (int i = 0; i < 1; i++) { Console.Write("#"); } Console.WriteLine(); for (int i = 0; i < 2; i++) { Console.Write("#"); } Console.WriteLine(); Теперь надеюсь вы поняли, двоечка должна увеличиваться с каждым разом? Что же делать, чтобы столько раз не повторять for... Просто взять этот for в другой for!И пусть этот другой for будет повторяться 5 раз для наглядности for (int j = 0; j < 5; j++) { for (int i = 0; i < 1; i++) { Console.Write("#"); } Console.WriteLine(); } Ну вот. Только кое-что забыли..Нужно, чтобы 1 постоянно увеличивался, с каждым повторением. А значит, нужно вместо 1 написать переменную, которую мы будем постоянно увеличивать int p = 0; for (int j = 0; j < 5; j++) { p++; for (int i = 0; i < p; i++) { Console.Write("#"); } Console.WriteLine(); } Да в принципе и все, а высота треугольника это наша пятерочка. Можем менять)
так и делал)) но всё равно голова кипела от недостатка сообразительности... я уловил логику, пока он говорил за третий и сам доделал 3ий и 4ый по сути нужен был пинок)
решил только два первых треугольника, но через цикл while. Был близок к решению через цикл for, но не догнал чтобы поменять одну переменную. Зато с помощью отладчика понял как работают вложенные циклы. Спасибо за урок.
Я быстро сделал два первых треугольника, и во вторых я понял что это по сути сначала нарисованный пробелами треугольник, но я сглупил и начал вкладывать третий цикл во второй цикл, и естественно получалось как-то хреного, хотя можно было просто сделать их равноценными и засунуть в правильной последовательности в первый цикл и тогда всё бы получилось. Спасибо большое за уроки!
Не сразу сообразил с третьим треугольником, но досмотрев видео, до Вашего совета заполнить пробелами пустое место, сразу сообразил) немного воображения не хватило видимо) Спасибо!
Ох, это было не просто. Для неподготовленного разума задание прям тяжкое) Сделал 3 треугольника через какие-то костыли, ужасно коряво. 4 костыль подломил, т.к. понял, что лучше продолжить иначе появится желание бросить. После просмотра решения прям стало печально, а потом интересно) Мотивация продолжать появилась!)
Первые два сделал почти так же, на вторые как всегда не хватило мозгов, хотя и думал сделать еще один вложенный цикл, но о выводе пробела не подумал. И еще, я думал, что все треугольники надо было вывести в одной консоли. Как бы там не было, очень интересно, спасибо автору, что так увлекает своими уроками нас всех.
Первое достаточно непростое задание , спасибо человеку который порекомендовал мысли записывать на листочке , блпгодаря этому ничего не выпола из головы и сделал это за +- пол часа , + реализовал возможность задать высоту каждого треугольника через консоль
вот мой код Console.WriteLine("высота 1 равнобедренного треугольника"); int высота1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.WriteLine(); int ширина1 = 0; for (int i = 0; i < высота1; i++) { ширина1++; for (int g = 0; g < ширина1; g++) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine(); //------------------------------------------------------------------------------------------------------------ Console.WriteLine("высота 2 равнобедренного треугольника"); int высота2 = Convert.ToInt32(Console.ReadLine()) ; Console.WriteLine(); Console.WriteLine(); for (int i = высота2; i >= 0; i--) { высота2--; for (int g = высота2; g >= 0 ; g--) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine(); //--------------------------------------------------------------------------------------------- Console.WriteLine("высота 3 равнобедренного треугольника"); int ширина3 = Convert.ToInt32(Console.ReadLine()); int пробел1 = ширина3; Console.WriteLine(); Console.WriteLine(); for (int i = 0; i < ширина3; i++) { пробел1--; for (int g = 0; g < пробел1; g++) { Console.Write(" "); } int значение1 = ширина3 - пробел1; for (int g = 0; g < значение1; g++) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine(); //--------------------------------------------------------------------------------------- Console.WriteLine("высота 4 равнобедренного треугольника"); int ширина4 = Convert.ToInt32(Console.ReadLine()); int значение2 = ширина4; Console.WriteLine(); Console.WriteLine(); for (int i = 0; i
Доброго времени суток! Огромное спасибо за уроки! Сделал немного по своему, с высотой и шириной как у квадрата, только каждую новую строку изменял ширину, что по факту и получается как в данном разборе домашнего задания, но немного менее оптимизировано и более громоздко, но тоже имеет место быть. С первыми двумя треугольниками разобрался быстро, а на вторые потратил не меньше двух часов, но в итоге добил) Для собственной наглядности в начале вместо пробелов использовал точки, насмотрелся на много забавных узоров, и это помогло понять правильно ли отрисовывает или вообще не отрисовывает. Вот мой вариант: Console.WriteLine("Введите размер стороны треугольника"); int height = int.Parse(Console.ReadLine()); int width = 1; // First triangle for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { Console.Write("#"); } Console.WriteLine(); width++; } Console.WriteLine(); // Second triangle width = height; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { Console.Write("#"); } Console.WriteLine(); width--; } Console.WriteLine(); // Third triangle width = 1; for (int i = 0; i < height; i++) { for (int k = height; k > width; k--) { Console.Write(" "); } for (int j = 0; j < width; j++) { Console.Write("#"); } Console.WriteLine(); width++; } Console.WriteLine(); // Fourth triangle width = height; for (int i = 0; i < height; i++) { for (int k = height; k > width; k--) { Console.Write(" "); } for (int j = 0; j < width; j++) { Console.Write("#"); } Console.WriteLine(); width--; } Console.ReadLine();
Спасибо за Ваш труд. Я в своем варианте решения всегда приравнивал переменную вложенного цикла к переменной внешнего, дабы указывать кол-во символов в зависимости от строки. Вот данный вариант /* using System; namespace Lesson3 {internal class Program {static void Main(string[] args) { int limit = int.Parse(Console.ReadLine()); for (int i = 1; i 0; j--) Console.Write("#"); Console.Write(" "); } Console.WriteLine(" "); for (int i = 1; i
Мой вариант больше подходит под тематику урока, в последних двух треугольниках я использую 3й цикл с новой переменной пробелов, что для обучения использования циклов даже лучше наверное) class Program { static void Main() { Console.WriteLine("Введите высоту треугольника"); int height = int.Parse(Console.ReadLine()!); Console.WriteLine(); for (int h = 0; height > h; h++) { for (int w = 0; h >= w; w++) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(" "); for (int h = height; 0 < h; h--) { for (int w = 0; h > w; w++) { Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(" "); int p; for (int h = 0 ; height > h; h++) { p = height - h; for (int w = 0; h >= w; w++) { for (; p > 1; p--) { Console.Write(" "); } Console.Write("#"); } Console.WriteLine(); } Console.WriteLine(" "); for (int h = height; 0 < h; h--) { p = height - h; for (int w = 0; h > w; w++) { for (; p > 0; p--) { Console.Write(" "); } Console.Write("#"); } Console.WriteLine(); } } }
У меня код третьего треугольника малость по другому вышел, хотя отрисовался правильно: //Третий треугольник for (int i = 9; i >= 0; i--) { for (int jt = 0; jt = i; j--) { Console.Write("#"); } Console.WriteLine(); } Д.з. делал как уважаемый автор на 22:32 минуте.... "Что то у нас да получилось....." 😀 Автору низкий поклон за работу.
сделал рисовку треугольника за минут 15 но потом думал долго как его сделать одинаковым со всех сторон,так и не получилось реализовать,еще мой треугольник сложнее так как я создал еще один вложенный цикл в котором инкрементировал 2 раза переменную которая отвечает за ширину треугольника,оказывается можно было сделать легче и была бы возможность менять высоту у меня не была она реализована,и каогда я попытался это сделать у меня крашнулся визуал студио пришлось переустанавливать,а так большое спасибо тебе за труд,я хоть в чем то благодаря тебе обгоняю своих друзей которые прошли в шк для одаренных,а я нет :( еще раз говорю большое спасибо!!!!!!!!!!!!!!!!!!!!!!
Спасибо за разбор ДЗ. Было очень полезно, все оказывается намного проще чем это написал я. :D На треугольники ушел наверное час и потом я пошел дальше и решил нарисовать пирамиды вверх и вниз, так сказать, усложнить себе задачу. А в добивку написал программу для бесконечного вывода ряда ромбиков в консоли. И да как можно прочитать в коде присутствует несколько переменных без которых можно было обойтись. Не бейте сильно. Только учусь. Разбор ДЗ от вас помог разобраться со своими ошибками. Спасибо за уроки. Код ДЗ: static void Main(string[] args) { Console.WriteLine("Перед началом разверни консоль на весь экран"); Console.WriteLine("выберите настройки (для экранов 1920х1080):"); Console.WriteLine("\t Высота = 30 ; Количество треугольников в ряд = 4"); Console.WriteLine("\t Высота = 20 ; Количество треугольников в ряд = 6"); Console.WriteLine("\t Высота = 15 ; Количество треугольников в ряд = 8"); Console.WriteLine("Если экран другого формата:"); Console.WriteLine("\t Высота = (Как захотите) от 1 до 100 ; Количество треугольников в ряд = 1"); Console.Write("Высота = "); int back = int.Parse(Console.ReadLine()); //back - количество строк Console.Write("Количество треугольников в ряд = "); int number = int.Parse(Console.ReadLine());//number - количество треугольников в ряду // 1 треугольник. for (int raws = 0, sharp = back, space = 0; raws 0; i--) { Console.Write("#"); } for (int j = 0; j < space; j++) { Console.Write(" "); } sharp--; space++; Console.WriteLine(); } // 2 треугольник. for (int raws = 0, sharp = 0, space = back; raws 0; j--) { Console.Write(" "); } sharp++; space--; Console.WriteLine(); } Console.WriteLine(); // 3 треугольник. for (int raws = 0, sharp = back, space = 0; raws 0; i--) { Console.Write(" "); } for (int j = 0; j < sharp; j++) { Console.Write("#"); } sharp--; space++; Console.WriteLine(); } Console.WriteLine(); // 4 треугольник. for (int raws = 0, sharp = 0, space = back; raws 0; j--) { Console.Write("#"); } sharp++; space--; Console.WriteLine(); } Console.WriteLine(); // Задание от себя себе ;) Пирамида for (int raws = 0, sharp = 1, space = back - 1; raws 0; j--) { Console.Write("#"); } for (int i = 0; i < space; i++) { Console.Write("*"); } sharp++; sharp++; space--; Console.WriteLine(); } Console.WriteLine(); //Обратная пирамида for (int raws = 0, sharp = back * 2 - 1, space = 0; raws 0; i--) { Console.Write("'"); } for (int j = 0; j < sharp; j++) { Console.Write("#"); } for (int i = space; i > 0; i--) { Console.Write("'"); } sharp--; sharp--; space++; Console.WriteLine(); } Console.WriteLine(); // Задание чтобы поизвращаться C: // Обожаю когда мозг кипит C:
// (int c = 0; c < 2; c++) Console.WriteLine("Хотите увидеть больше?)"); Console.WriteLine("Введите да/нет или yes/no или y/n"); string str = Console.ReadLine(); if (str == "yes"|| str == "да" || str == "y") { for (; ; ) { for (int raws = 0, sharp = 1, space = back - 1; raws 0; j--) { Console.Write("#"); } for (int i = 0; i < space; i++) { Console.Write(" "); } } sharp++; sharp++; space--; Console.WriteLine(); } for (int raws = 0, sharp = back * 2 - 1, space = 0; raws 0; i--) { Console.Write(" "); } for (int j = 0; j < sharp; j++) { Console.Write("#"); } for (int i = space; i > 0; i--) { Console.Write(" "); } } sharp--; sharp--; space++; Console.WriteLine(); } } } Console.WriteLine("Точка. Конец предложения.");
4 дня делал дз по неск часов в день . В итоге получилось все , хотя отладчиком проработал ппц сколько времени ( зато + к скилу отладчика прибавил ) . А потом Сергей такой говорит , выполняем же без if . И тут я немножко приуныл ) ну да ладно . Хотя бы так . На самом деле все намного проще можно было сделать , а я там такое навводил . Но работает ) Спасибо за уроки еще раз !
Здравствуйте. Подправил пару строк для тех у кого перфекционизм головного мозга как у меня и в 3-м, 4-м треугольниках есть отступ в один пробел от левого края: -третий треугольник, 27 строка for (int j = height - 1; j > i; j- -) (добавил '-1') -четвертый треугольник, 27 строка for (int j = 0; j < i; j++) (убрал '=') Собственно, если коротко, за счет этого цикл с пробелами пропускает первую итерацию и начинает отставать от цикла с символом и в итоге главный цикл завершится раньше чем он успеет отрисовать свою третью строку. Спасибо автору за уроки!)
Во втором треугольнике можно не менять вложенный цикл, а поменять внешний, в принципе все так же получается :) for (int i = height; i >= 1; i--) { for (int j = 1; j
Два часа думал над ДЗ, но все же додумался. Кстати тут в разборе в 3 треугольнике нужно в первом вложенном цикле поставить j>i+1 чтобы он к рамке консоли был прижат.
Да!! Ты из всех единственный, кто заметил эту фигню)) я когда решал, думал у меня что-то не так, потом глянул у него на видео в консоле тоже отступ от линии
Второй треугольник рисовал по такой логике, соответственно 3ий и 4оый с аналогичными корректировками, for (int i = sideA; i >= 0; i--) { for (int j = 0; j < i; j++) { Console.Write("#"); } Console.WriteLine(); }
Это гениально. Я сидел пол дня придумывал как все это воплотить. Но мне кажется я бы сидел еще 100++ лет чтобы понять как это делать. Не удивительно что люди гадают как построили пирамиды в Египте они просто ходят вокруг до около а на самом деле все на много проще. Не если честно здесь решает скил. Логически понять как это делать не возможно.
Спасибо, все понятно, лайк поставил, конечно же. Но волнует меня то, что я не умею пользоваться отладчиком, подскажите пожалуйста, в каком уроке было обучение в использовании отладчика, спасибо :)
Мой вариант для второго треугольника (удобен (для таких нубов как я) тем, что минимально меняются условия цикла по сравнению с первым треугольником): for (int i = 0; i < length; i++) { for (int j = i; j < length; j++) { Console.Write("*"); } Console.WriteLine(); } * переменная у меня называется length, но по сути она то же самое что height в ролике.
Прошлые ДЗ смог решить, а тут ломал голову 5 часов так и не смог решить, тут уже я уперся в возможности моей сообразительности, пришлось смотреть решение. Не хотелось сидеть неизвестное количество дней чтобы самому решить. Пойду дальше по урокам, не знаю что из этого выйдет, чувствую себя как ежик в тумане.
3 и 4 треугольники я сделал почти так же, потратил час где-то что бы понять что да как, разница у меня в том что у нашего Учителя идёт в последних двух лишний пробел, он соединяет 2 треугольника и по этому тот что идёт после пробелов начинаеться чуть-чуть позже Что бы было понятней покажу код, в нём я от указаной высоты отнимаю 1 что бы треугольник с пробелом у меня был на 1 меньше чем тот какой я отрисовую for (int i = 0; i < height; i++) { for (int k = height - 1; k > i; k--) { Console.Write(" "); } for (int j = 0; j
Вместо того чтобы использовать итератор внешнего цикла i для сравнения с итератором внутреннего цикла j в условии внутреннего цикла, я добавил ДОПОЛНИТЕЛЬНЫЙ итератор n во внешний цикл чтобы сравнивать его с итератором внутреннего цикла. А чтобы выполнить задание с "пробелами", я добавил ЕЩЁ ОДИН итератор k во внешний цикл чтобы использовать его для сравнения условий второго внутреннего цикла. Для пробелов и квадратиков я создал две отдельные переменные, к которым обращался)) На выполнение ушло 2 часа чистого времени интенсивного майндшторма с перерывами. Пока что это было самым сложным домашним заданием, но это было весело. Спасибо.
Сделал, но было очень больно. Потратил в в сумме около 3,5 часов. Самое легкие были 1й и последний. на них я потратил максимум мин по 15. А второй около мин 40 и и вот 3й все остальное время=) Но сделал. Спасибо автору !
затупил на этом дз знатно. думал надо все четыре треугольника одним кодом отрисовать. в итоге справился только с первым треугольником. надо быть внимательней и не бояться экспериментировать
Посидел, подумал (казалось бы, я и подумал =)), и принципиально, пока не выполнил дз, не смотрел данный видос с разбором. И каково же было мое счастье, что не только получилось написать код один в один, как на разборе, так еще и символ звездочки тоже использовал, как и автор))) Это просто, захотелось поделиться впечатлениями! А, если у меня получилось выполнить дз, то это означает лишь то, что преподаватель четко довел до моего сведения, что надо делать! Спасибо за уроки!!!
Я убедился в том что отладчик, это залог победы, если бы не он , я бы мучался над последними двумя еще долго. Я вкладывал цикл в цикл, но не задумывался от том что можно в одном цикле сделать два(я от том что я делал в одном цикле, только один вложенный цикл). Спасибо за ваши уроки!
Сначала подумал, что сложно, а как начал писать, то минуты за 3 написал все. + первый треугольник можно без вложенного цикла реализовать /** * rows - размерность(ввод с консоли) *symbol - символ, который отрисовывается (ввод с консоли) */ string triangleRow = ""; for(int i = 0; i < rows; i++) { triangleRow += symbol; Console.WriteLine(triangleRow); }
Хах, а я сдался на этом ДЗ и хардстаком ввел все те треугольники)) А когда увидел в ДЗ что можно было кодом в 7 строк это сделать, чуть не выпрыгнул через окно))).
Неверно ты сделал) Необходимо еще устранить в конце пробел перед первой звездочкой. решение: using System; using System.Globalization; namespace ConsoleApp2 { class Program { static void Main(string[] args) { while (true) { for (int i = 0; i < 5; i++) { Console.WriteLine(); } Console.WriteLine("Vvedi razmer: "); int h = int.Parse(Console.ReadLine()) - 1; for (int i = 0; i
Спасибо большое, задание несложное и интересное, сначала хотел усложнить себе жизнь, думал сделать чтобы треугольник сначала вверх острием был, потом разу перевернулся и это одним кодом, думал создать такое выражение для количества циклов в результате которого число сначала бы росло, потом уменьшалось, но стало лень, слишком криво получатся.
Я потратил на это задание 4 дня и около 8-12 часов. Смог я сделать только первые два, а третий и 4 не совпадали параметрами по алгоритму и получались немного неправильными, так как я делал через счетчик итераций и количество выводов звезд, однако до ума код я так и не довёл, потому что цепочка взаимосвязей и постоянное понимание того, что ты написал мне давалась слишком сложно. Честно говоря, мне очень обидно, что я не смог решить задание самостоятельно, а даже поняв объяснение, если бы я не подстроил свой алгоритм так же, как на задании, у меня нечего не вышло. Это немного грустно для меня, но спасибо большое за уроки.
Cмотрел все твои уроки в скорости х2, а когда включил обычную скорость случайно, то удивился что кто-то другой ведет урок и представляется твоим именем :D
Пока делал придумал собственную систему отступов из-за ограничений самого задания (не использовать то/другое). Спасибо за уроки Код: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lesson_22 { class Program { static void Main(string[] args) { int rows; Console.Write("Введите размер треугольников: "); rows = int.Parse(Console.ReadLine()); for (int i = 0; i = 0; i--) { Console.WriteLine(); for (int j = 0; j < i; j++) { Console.Write("#"); } } Console.WriteLine(); Console.WriteLine(); for (int i = 0; i = i; k--) { Console.Write(" "); } break; }
Console.Write("#"); } } Console.WriteLine(); Console.WriteLine(); for (int i = rows; i >= 0; i--) { Console.WriteLine(); for (int j = 0; j < i; j++) { for (; j == 0;) { for (int k = rows - 1; k >= i; k--) { Console.Write(" "); } break; } Console.Write("#"); } } Console.ReadLine(); } } }
Делал несколько часов, но всё-же получилось. Код создаёт 2 равнобедренных треугольника (1 нормальный, другой - перевёрнутый) причём если задавать чётную длину основания он сделает 2 строки в середине одинаковой высоты, а если нечётное 1 строку. char BuildingBlock = '@'; Console.WriteLine("Введите длинну основания треугольника"); int BaseLengh = int.Parse(Console.ReadLine()); for (int i1 = 1; i1 = 0; i2--) { Console.Write(BuildingBlock); } Console.WriteLine(); } for (int i1 = 1; i1 0; i2--) { if (i2 > i1) Console.Write(" "); else Console.Write(BuildingBlock); } Console.WriteLine(); } for (int i1 = 1; i1 0; i2--) { if (i2-1
Автор очень хорошо подаёт материал(особенно для новичков), но это ДЗ какое-то очень странное. Буду честен, я не справился. Но я и не представляю, где может пригодится такое использование вложенных циклов.
Надо чуть изменить код в последних двух треугольниках и с переводом курсора тоже и отнять единицу от высоты, чтобы перед последним рядом не помещать пробел, иначе треугольники отодвигаются от левого края консоли на один пробел. Третий треугольник: height-1; for (int j = height-1; j > i; j--) // вложенный цикл { Console.Write(" "); } Четвёртый треугольник: j
Мой код , с двумя переменными : using System; public class Program { public static void Main() { int height ; int width; Console.WriteLine("Enter height value"); height= int.Parse(Console.ReadLine()); Console.WriteLine("Enter width value"); width = int.Parse(Console.ReadLine());
Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode
✅ donatepay.ru/don/SimpleCode
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
Спасибо Сергей. Дай подсказку на то как сделать пирамиду из звёздочек пожалуйста!
Почти 2 часа пытался сделать дз, в итоге сделал! Спасибо бошьшое за невероятно подробные, лучшие в интернете, уроки!
эх... у меня это заняло чутка больше времени... запутался с этими звездочками было
Да понятнее некуда
ты пытался сделать 2 часа, а в итоге решил наврать в комментах))) тут либо понял и сделал, либо непонял и соответственно не смог выполнить.
я делал 1,5 недели :)
@@Cold777Flame очень глупая логика
Все становится довольно просто, когда понимаешь, что тебе нужно рисовать треугольники по очереди, а не все 4 в одном цикле)))
мозговзрывающее дз, вроде бы все легко и логично, но при реализации просто голова кипит. Даже если не начну программировать, подобная разминка мозга пойдет на пользу, спасибо.
Он изначально нам показал не корретное условие задачи , на примере треуг.7 на 10 символов а он делает 5 на 5 , равносторонний . Задача не соответствует решению.
Как успехи?
@@Nikelover.warspear программистом не стал. Стал водителем погрузчика =DDD... После того как уволили за пьянку пошёл сис админить в компанию работающию по аутсорсу. Набрался опыта. Сейчас начальник ит отдела =D. Работа наконец то радует.
я использовал дополнительную переменную для отрисовки пробелов) а оказалось всё на много проще. Спасибо тебе за крутые уроки, учу с нуля) Хочу что-то поменять в своей жизни, заняться тем к чему душа лежит
я тоже пошел через доп переменную)) код получился более громоздким)
Я тоже пошел этим путем)) Учу тоже с нуля, решил переквалифицироваться из дизайнера в программиста
@@valcom2022 как успехи?
@@Putintheleader1661 Отлично! Работаю теперь API Developer-ом!
@@valcom2022 расскажешь как ты сделал это? Просто я щя начал тоже с самого начало,
Получилось с подсказками (посмотрела, как сделать первый треугольник и что в последних нужны пробелы), и наконец-то разобралась! Спасибо!
18:30 В первом цикле, который отрисовывает пустоту, длину цикла надо уменьшить на 1:
1. Уменьшив начальное значение на 1;
2. Уменьшив значение условия на 1.
Если этого не делать, то отрисовывается полный невидимый треугольник и полный видимый и при их сложении получается квадрат на 1 размер больше, чем мы задали параметр. Из-за этого, на последней строке также имеется пробел - т.е. длина этой сроки явно n+1.
UPD:
21:00 При установке курсора на вторую строку мы стираем значение, которое написали. Поэтому если хотите его сохранять, то во втором параметре SetCursorPosition делайте i + 2, чтобы строка сохранялась и пользователь видел, что он ввёл
UPD2:
22:26 Второй цикл лучше начинать с i до height, иначе сталкиваемся с такой же проблемой размеров
тоже обратил внимание на лишние пробелы в последних двух треугольниках
Я потратил три дня думая как же это можно реализовать... даже гуглил на третий день и всё равно ничего не понял, пришлось смотреть решение ДЗ и кажется надо ещё пару раз пересмотреть чтобы до конца понять, хотя саму суть я уловил, но надо закрепить.
Спасибо за ДЗ!
@@notewgt сейчас я 3-4 дня решал другое дз на курсах )
Братан это ЖИЗА!!
odin v odin takaya je situacia segodnya rovno 3 den zakanchivaetsya :D
@@etalzone961 Ну значит ты особенный. Я так и не понял как это делать. Хотя опыт в программировании есть, а дз сложное
30 минут парни. кроме этих курсов больше ничего не смотрел
Спасибо за уроки Сергей, вас надо клонировать и распределить по вакансиям "учитель информатики" в ВУЗах и школах)). Грамотная и очень понятная подача материала, спасибо большое.
16:41 Читинг- сила)) Юрий Спасокукоцкий одобряет
читинг это сила!!!
Я так и не решил, но в ходе попыток решения понял как работают вложенные циклы. В итоге решение оказалось проще чем я думал)
Это моя первая преграда в изучении С#, пошло 2 дня что бы осознать Что Как и Почему так работает. Спасибо за видеоуроки.
как успехи?
Делал ДЗ около 6 реальных часов. Несмотря на такие показатели времени, решение самостоятельно принесло нереальный кайф)
Сделал это домашнее задание на прошлом уроке. У меня код отличается от показанного здесь, но работает схоже. Автору спасибо большое, смотрю каждый день по 2 уроку, полёт нормальный. В качестве благодарности, я тоже поддержу в патреоне, когда стану разработчиком.
хеллоу, как успехи? чего добился?
@@kolodets258 изучай уроки
#SimpleCode #урокипрограммирования
Спасибо за уроки! Хочу уточнить, что у вас в третьем треугольнике "лишний" столбец из пробелов слева. Во вложенном цикле, что рисует пробелы, нужно вычесть единицу из количества итераций: for (int j = 0; j < i-1; j++)
тоже самое и в 4 треугольнике: for (int j = 0; j
using System;
namespace FOR_FULL
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("Введите рисующий символ: ");
char yourSymbol = char.Parse(Console.ReadLine());
Console.Write("Введите размерность рисунка: ");
int size = int.Parse(Console.ReadLine());
Console.WriteLine();
for (int i = 0; i
Сделала ДЗ полностью через "for", первые 2 треугольника нарисовала легко, над оставшимися думала долго... Пока думала, решила что хочу ввод произвольных символов=) покопавшись в описаниях типов данных нашла как сделать, хоть мы это еще не проходили. Итого спустя 6 часов выполнения все таки треугольники разных видов красуются на экране, я довольна, горжусь собой XD
Спасибо Вам огромное за материал и подачу!!! Даже мне (абсолютному чайнику в программировании) все понятно.
PS: успешное выполнение ДЗ-огромный стимул к дальнейшему обучению=)
Сергей тсс, без шума, возьмите моё спасибо за ваш труд и ни слова больше
Сидишь прекрасно понимаешь весь урок и тут дз который ты в душе не знаешь как делать
вхвхв
vi zakonchli ves urok(104) == i kak rezultat?
@ я забил)
мне нравится что тут всё просто и понятным языком)
был дикий напряг с последними двумя треугольниками
Если первые два были сделаны за пару минут, то на последние убила около сорока минут
Специально не смотрела видео, чтобы самой додуматься до решения
Получилось!
Теперь смотрю разбор дабы закрепить :)
Спасибо!
Умная! Я вот ща вернусь и тоже буду думать
И вот я снова тут (пришлось дропнуть изучение языка на пол года), и вот мне снова это задание взорвало мозг. Благо теперь на решение ушло не два часа, а 30 минут. Спасибо за такие шикарные задания))
Добрый день! Спасибо за интересное и доступное изложение материала.
Первые два треугольника труда не составили. С третьим пришлось повозиться, а уже на его основе, 4-й дался легко. Моё решение немного отличается:
static void Main(string[] args)
{
Console.Write("Введите высоту треугольника: ");
int height = int.Parse(Console.ReadLine());
//1-й треугольник
for (int i = 0; i < height; i++)
{
for (int j = 0; j i; j--)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
//3-й треугольник
for (int i = 0; i < height; i++)
{
for (int j = 0; j i && j == 0; k--)
{
Console.Write(" ");
}
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
//4-й треугольник
for (int i = 0; i < height; i++)
{
for (int j = height; j > i; j--)
{
for (int k = 0; k < i && j == height; k++)
{
Console.Write(" ");
}
Console.Write("#");
}
Console.WriteLine();
}
}
}
}
чел ты гений если у тебя получилось это сделать самому
Сергей, спасибо ! Очень толковые разборы задач, как раз то, что нужно программистам для реальной работы ! Ставлю класс !
Я сидел думал,думал, думал,
Через 5 минут решил 😂😂😂😂😂
У меня в голову пришла мысль а что если в вложенном цикле for, поставить переменную i из внешнего цикла, я конечно думал не сработает, но на моё удивление, сработало, спасибо!)
топчик) ніби й легко, ніби й зрозуміло, та не виходило. Пішов на роботу і практично одразу голова найшла і скомпілювала правильний алгоритм))
Разбор ДЗ смотрю ради того, чтобы посмотреть как у вас реализовано решение. Самостоятельно удалось в течении часа решить задачку. Спасибо за интересные задания. Продолжаю изучение. Ещё не много и стану вашим постоянным спонсором, хотя и не нуждаюсь в коде из уроков. Спасибо за ваши труды.
У меня мозги разорвало от данного задания. Сразу заметил зависимость высоты и ширины в образце, но не мог придумать как это в виде кода интерпретировать. В итоге понимаю, что в теме едва ли разобрался и попадись мне такая задача на практике, я бы не нашёл её решения самостоятельно даже сейчас. Вложенные циклы это просто жесть, а не тема.
Лучшие уроки на ютубе!👍
Для тех, кто не понял.
Сперва нарисуйте на бумажке такой треугольник с решетками(в примере ниже будет первый треугольник)
#
##
Потом попробуйте нарисовать треугольник без for, а только с Console.Write и Console.WriteLine
Получится что - то такое:
Console.Write("#");
Console.WriteLine();
Console.Write("#");
Console.Write("#");
Console.WriteLine();
и так далее.Теперь попробуем сделать это через for:
for (int i = 0; i < 1; i++)
{
}
это обычный for, он будет повторять то, что внутри 1 раз, верно ?
почему 1 раз ? Потому что на первой строке только одна решетка.
пихаем туда Console.Write(#) и вне цикла переходим на новую строку
for (int i = 0; i < 1; i++)
{
Console.Write("#");
}
Console.WriteLine();
Окей, но нам-то нужно, чтобы теперь не одна решетка рисовалась, а 2..Создаем новую for снизу, и вместо 1 пишем 2.
Должно получиться так:
for (int i = 0; i < 1; i++)
{
Console.Write("#");
}
Console.WriteLine();
for (int i = 0; i < 2; i++)
{
Console.Write("#");
}
Console.WriteLine();
Теперь надеюсь вы поняли, двоечка должна увеличиваться с каждым разом?
Что же делать, чтобы столько раз не повторять for...
Просто взять этот for в другой for!И пусть этот другой for будет повторяться 5 раз для наглядности
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 1; i++)
{
Console.Write("#");
}
Console.WriteLine();
}
Ну вот. Только кое-что забыли..Нужно, чтобы 1 постоянно увеличивался, с каждым повторением.
А значит, нужно вместо 1 написать переменную, которую мы будем постоянно увеличивать
int p = 0;
for (int j = 0; j < 5; j++)
{
p++;
for (int i = 0; i < p; i++)
{
Console.Write("#");
}
Console.WriteLine();
}
Да в принципе и все, а высота треугольника это наша пятерочка. Можем менять)
так и делал))
но всё равно голова кипела от недостатка сообразительности...
я уловил логику, пока он говорил за третий и сам доделал 3ий и 4ый
по сути нужен был пинок)
Спасибо большое братан
@@Sen-nx6nnприятно видеть, что я не один смотрю эти ролики, хоть не так одиноко)
@@egorkoltsov1345 Нас тут не мало) Как успехи с курсом?
У меня дз плохо получается, а у тебя как?@@raincor1987
Как же круто когда ты что ты пишешь работает ! ! ! Сделал все треугольники, но в два раза больше кода получилось с дополнительными переменными =/
та же тема)
решил только два первых треугольника, но через цикл while. Был близок к решению через цикл for, но не догнал чтобы поменять одну переменную. Зато с помощью отладчика понял как работают вложенные циклы. Спасибо за урок.
Я быстро сделал два первых треугольника, и во вторых я понял что это по сути сначала нарисованный пробелами треугольник, но я сглупил и начал вкладывать третий цикл во второй цикл, и естественно получалось как-то хреного, хотя можно было просто сделать их равноценными и засунуть в правильной последовательности в первый цикл и тогда всё бы получилось. Спасибо большое за уроки!
Попал в ту же ловушку, а потом, пришло озарение, уже когда внутренне сдался и признал себя тупым)
Огромное спасибо за разбор дз и весь курс, с вашим оформлением треугольника я понял как дальше сделать дз самому.
Не сразу сообразил с третьим треугольником, но досмотрев видео, до Вашего совета заполнить пробелами пустое место, сразу сообразил) немного воображения не хватило видимо) Спасибо!
Как всегда, замечательное изложение.
Ох, это было не просто. Для неподготовленного разума задание прям тяжкое) Сделал 3 треугольника через какие-то костыли, ужасно коряво. 4 костыль подломил, т.к. понял, что лучше продолжить иначе появится желание бросить. После просмотра решения прям стало печально, а потом интересно) Мотивация продолжать появилась!)
если думаешь,что решил через костыли - вспомни меня,который решил эту задачу через методы))
Да, всё куда проще... Я наворотил конструкцию такую, что капец, но всё работало, правда, без ввода произвольной высоты. :))
Первые два сделал почти так же, на вторые как всегда не хватило мозгов, хотя и думал сделать еще один вложенный цикл, но о выводе пробела не подумал. И еще, я думал, что все треугольники надо было вывести в одной консоли. Как бы там не было, очень интересно, спасибо автору, что так увлекает своими уроками нас всех.
Первое достаточно непростое задание , спасибо человеку который порекомендовал мысли записывать на листочке , блпгодаря этому ничего не выпола из головы и сделал это за +- пол часа , + реализовал возможность задать высоту каждого треугольника через консоль
вот мой код
Console.WriteLine("высота 1 равнобедренного треугольника");
int высота1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine();
int ширина1 = 0;
for (int i = 0; i < высота1; i++)
{
ширина1++;
for (int g = 0; g < ширина1; g++)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
//------------------------------------------------------------------------------------------------------------
Console.WriteLine("высота 2 равнобедренного треугольника");
int высота2 = Convert.ToInt32(Console.ReadLine()) ;
Console.WriteLine();
Console.WriteLine();
for (int i = высота2; i >= 0; i--)
{
высота2--;
for (int g = высота2; g >= 0 ; g--)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
//---------------------------------------------------------------------------------------------
Console.WriteLine("высота 3 равнобедренного треугольника");
int ширина3 = Convert.ToInt32(Console.ReadLine());
int пробел1 = ширина3;
Console.WriteLine();
Console.WriteLine();
for (int i = 0; i < ширина3; i++)
{
пробел1--;
for (int g = 0; g < пробел1; g++)
{
Console.Write(" ");
}
int значение1 = ширина3 - пробел1;
for (int g = 0; g < значение1; g++)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
//---------------------------------------------------------------------------------------
Console.WriteLine("высота 4 равнобедренного треугольника");
int ширина4 = Convert.ToInt32(Console.ReadLine());
int значение2 = ширина4;
Console.WriteLine();
Console.WriteLine();
for (int i = 0; i
Автор спасибо! Крутые уроки) Пришлось покумекать как сделать равнобедренный треугольник, в итоге все оказалось проще простого!))) Ура!)
Последняя задача решается (треугольник 4) Решается совсем элементарно. Нужно просто знаки "пробел" и "*" поменять местами в циклах :)
Доброго времени суток! Огромное спасибо за уроки! Сделал немного по своему, с высотой и шириной как у квадрата, только каждую новую строку изменял ширину, что по факту и получается как в данном разборе домашнего задания, но немного менее оптимизировано и более громоздко, но тоже имеет место быть. С первыми двумя треугольниками разобрался быстро, а на вторые потратил не меньше двух часов, но в итоге добил) Для собственной наглядности в начале вместо пробелов использовал точки, насмотрелся на много забавных узоров, и это помогло понять правильно ли отрисовывает или вообще не отрисовывает.
Вот мой вариант:
Console.WriteLine("Введите размер стороны треугольника");
int height = int.Parse(Console.ReadLine());
int width = 1;
// First triangle
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
Console.Write("#");
}
Console.WriteLine();
width++;
}
Console.WriteLine();
// Second triangle
width = height;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < width; j++)
{
Console.Write("#");
}
Console.WriteLine();
width--;
}
Console.WriteLine();
// Third triangle
width = 1;
for (int i = 0; i < height; i++)
{
for (int k = height; k > width; k--)
{
Console.Write(" ");
}
for (int j = 0; j < width; j++)
{
Console.Write("#");
}
Console.WriteLine();
width++;
}
Console.WriteLine();
// Fourth triangle
width = height;
for (int i = 0; i < height; i++)
{
for (int k = height; k > width; k--)
{
Console.Write(" ");
}
for (int j = 0; j < width; j++)
{
Console.Write("#");
}
Console.WriteLine();
width--;
}
Console.ReadLine();
Спасибо за Ваш труд. Я в своем варианте решения всегда приравнивал переменную вложенного цикла к переменной внешнего, дабы указывать кол-во символов в зависимости от строки. Вот данный вариант
/*
using System;
namespace Lesson3
{internal class Program
{static void Main(string[] args)
{
int limit = int.Parse(Console.ReadLine());
for (int i = 1; i 0; j--)
Console.Write("#");
Console.Write("
");
}
Console.WriteLine("
");
for (int i = 1; i
Мой вариант больше подходит под тематику урока, в последних двух треугольниках я использую 3й цикл с новой переменной пробелов, что для обучения использования циклов даже лучше наверное)
class Program
{
static void Main()
{
Console.WriteLine("Введите высоту треугольника");
int height = int.Parse(Console.ReadLine()!); Console.WriteLine();
for (int h = 0; height > h; h++)
{
for (int w = 0; h >= w; w++)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine("
");
for (int h = height; 0 < h; h--)
{
for (int w = 0; h > w; w++)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine("
");
int p;
for (int h = 0 ; height > h; h++)
{
p = height - h;
for (int w = 0; h >= w; w++)
{
for (; p > 1; p--)
{
Console.Write(" ");
}
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine("
");
for (int h = height; 0 < h; h--)
{
p = height - h;
for (int w = 0; h > w; w++)
{
for (; p > 0; p--)
{
Console.Write(" ");
}
Console.Write("#");
}
Console.WriteLine();
}
}
}
Спасибо за ДЗ!!!
Буду лучше стараться, не вышло сделать ))
я думал надо делать for в For потом FOr и так много раз ))
У меня код третьего треугольника малость по другому вышел, хотя отрисовался правильно:
//Третий треугольник
for (int i = 9; i >= 0; i--)
{
for (int jt = 0; jt = i; j--)
{
Console.Write("#");
}
Console.WriteLine();
}
Д.з. делал как уважаемый автор на 22:32 минуте.... "Что то у нас да получилось....." 😀
Автору низкий поклон за работу.
Как всегда мое почтение !)
сделал рисовку треугольника за минут 15 но потом думал долго как его сделать одинаковым со всех сторон,так и не получилось реализовать,еще мой треугольник сложнее так как я создал еще один вложенный цикл в котором инкрементировал 2 раза переменную которая отвечает за ширину треугольника,оказывается можно было сделать легче и была бы возможность менять высоту у меня не была она реализована,и каогда я попытался это сделать у меня крашнулся визуал студио пришлось переустанавливать,а так большое спасибо тебе за труд,я хоть в чем то благодаря тебе обгоняю своих друзей которые прошли в шк для одаренных,а я нет :(
еще раз говорю большое спасибо!!!!!!!!!!!!!!!!!!!!!!
Спасибо за разбор ДЗ. Было очень полезно, все оказывается намного проще чем это написал я. :D На треугольники ушел наверное час и потом я пошел дальше и решил нарисовать пирамиды вверх и вниз, так сказать, усложнить себе задачу. А в добивку написал программу для бесконечного вывода ряда ромбиков в консоли. И да как можно прочитать в коде присутствует несколько переменных без которых можно было обойтись. Не бейте сильно. Только учусь. Разбор ДЗ от вас помог разобраться со своими ошибками. Спасибо за уроки. Код ДЗ:
static void Main(string[] args)
{
Console.WriteLine("Перед началом разверни консоль на весь экран");
Console.WriteLine("выберите настройки (для экранов 1920х1080):");
Console.WriteLine("\t Высота = 30 ; Количество треугольников в ряд = 4");
Console.WriteLine("\t Высота = 20 ; Количество треугольников в ряд = 6");
Console.WriteLine("\t Высота = 15 ; Количество треугольников в ряд = 8");
Console.WriteLine("Если экран другого формата:");
Console.WriteLine("\t Высота = (Как захотите) от 1 до 100 ; Количество треугольников в ряд = 1");
Console.Write("Высота = ");
int back = int.Parse(Console.ReadLine()); //back - количество строк
Console.Write("Количество треугольников в ряд = ");
int number = int.Parse(Console.ReadLine());//number - количество треугольников в ряду
// 1 треугольник.
for (int raws = 0, sharp = back, space = 0; raws 0; i--)
{
Console.Write("#");
}
for (int j = 0; j < space; j++)
{
Console.Write(" ");
}
sharp--;
space++;
Console.WriteLine();
}
// 2 треугольник.
for (int raws = 0, sharp = 0, space = back; raws 0; j--)
{
Console.Write(" ");
}
sharp++;
space--;
Console.WriteLine();
}
Console.WriteLine();
// 3 треугольник.
for (int raws = 0, sharp = back, space = 0; raws 0; i--)
{
Console.Write(" ");
}
for (int j = 0; j < sharp; j++)
{
Console.Write("#");
}
sharp--;
space++;
Console.WriteLine();
}
Console.WriteLine();
// 4 треугольник.
for (int raws = 0, sharp = 0, space = back; raws 0; j--)
{
Console.Write("#");
}
sharp++;
space--;
Console.WriteLine();
}
Console.WriteLine();
// Задание от себя себе ;) Пирамида
for (int raws = 0, sharp = 1, space = back - 1; raws 0; j--)
{
Console.Write("#");
}
for (int i = 0; i < space; i++)
{
Console.Write("*");
}
sharp++;
sharp++;
space--;
Console.WriteLine();
}
Console.WriteLine();
//Обратная пирамида
for (int raws = 0, sharp = back * 2 - 1, space = 0; raws 0; i--)
{
Console.Write("'");
}
for (int j = 0; j < sharp; j++)
{
Console.Write("#");
}
for (int i = space; i > 0; i--)
{
Console.Write("'");
}
sharp--;
sharp--;
space++;
Console.WriteLine();
}
Console.WriteLine();
// Задание чтобы поизвращаться C:
// Обожаю когда мозг кипит C:
// (int c = 0; c < 2; c++)
Console.WriteLine("Хотите увидеть больше?)");
Console.WriteLine("Введите да/нет или yes/no или y/n");
string str = Console.ReadLine();
if (str == "yes"|| str == "да" || str == "y")
{
for (; ; )
{
for (int raws = 0, sharp = 1, space = back - 1; raws 0; j--)
{
Console.Write("#");
}
for (int i = 0; i < space; i++)
{
Console.Write(" ");
}
}
sharp++;
sharp++;
space--;
Console.WriteLine();
}
for (int raws = 0, sharp = back * 2 - 1, space = 0; raws 0; i--)
{
Console.Write(" ");
}
for (int j = 0; j < sharp; j++)
{
Console.Write("#");
}
for (int i = space; i > 0; i--)
{
Console.Write(" ");
}
}
sharp--;
sharp--;
space++;
Console.WriteLine();
}
}
}
Console.WriteLine("Точка. Конец предложения.");
}
4 дня делал дз по неск часов в день . В итоге получилось все , хотя отладчиком проработал ппц сколько времени ( зато + к скилу отладчика прибавил ) . А потом Сергей такой говорит , выполняем же без if . И тут я немножко приуныл ) ну да ладно . Хотя бы так .
На самом деле все намного проще можно было сделать , а я там такое навводил . Но работает )
Спасибо за уроки еще раз !
Огромное спасибо!
Спасибо за урок!!!
Здравствуйте. Подправил пару строк для тех у кого перфекционизм головного мозга как у меня и в 3-м, 4-м треугольниках есть отступ в один пробел от левого края:
-третий треугольник, 27 строка
for (int j = height - 1; j > i; j- -) (добавил '-1')
-четвертый треугольник, 27 строка
for (int j = 0; j < i; j++) (убрал '=')
Собственно, если коротко, за счет этого цикл с пробелами пропускает первую итерацию и начинает отставать от цикла с символом и в итоге главный цикл завершится раньше чем он успеет отрисовать свою третью строку.
Спасибо автору за уроки!)
Во втором треугольнике можно не менять вложенный цикл, а поменять внешний, в принципе все так же получается :)
for (int i = height; i >= 1; i--)
{
for (int j = 1; j
Два часа думал над ДЗ, но все же додумался. Кстати тут в разборе в 3 треугольнике нужно в первом вложенном цикле поставить j>i+1 чтобы он к рамке консоли был прижат.
Да!! Ты из всех единственный, кто заметил эту фигню)) я когда решал, думал у меня что-то не так, потом глянул у него на видео в консоле тоже отступ от линии
Второй треугольник рисовал по такой логике, соответственно 3ий и 4оый с аналогичными корректировками,
for (int i = sideA; i >= 0; i--)
{
for (int j = 0; j < i; j++)
{
Console.Write("#");
}
Console.WriteLine();
}
Это гениально. Я сидел пол дня придумывал как все это воплотить. Но мне кажется я бы сидел еще 100++ лет чтобы понять как это делать. Не удивительно что люди гадают как построили пирамиды в Египте они просто ходят вокруг до около а на самом деле все на много проще. Не если честно здесь решает скил. Логически понять как это делать не возможно.
Сергей, спасибо!
наконец то дз!!!
Спасибо, все понятно, лайк поставил, конечно же. Но волнует меня то, что я не умею пользоваться отладчиком, подскажите пожалуйста, в каком уроке было обучение в использовании отладчика, спасибо :)
ruclips.net/video/_ZairtpcXTs/видео.html
ruclips.net/video/_ZairtpcXTs/видео.html
@@SimpleCodeIT спасибо большое, не думал, что такое скажу кому-нибудь, но спасибо, что ты есть :) 😂
спасибо за уроки.
Не понял, не понял... А ПОТОМ КАК ПОНЯЛ!!! Решение было проще чем я думал
Очень классные уроки . Жду новых выпусков. Старайся по возможности чаще выпускать видео.
учитесь по книгам, сколько вы занимаетесь?
@@dakalas2991 по каким посоветуете? лично мне книги туго идут
Мой вариант для второго треугольника (удобен (для таких нубов как я) тем, что минимально меняются условия цикла по сравнению с первым треугольником):
for (int i = 0; i < length; i++)
{
for (int j = i; j < length; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
* переменная у меня называется length, но по сути она то же самое что height в ролике.
Реально нереально как всё просто!
Прошлые ДЗ смог решить, а тут ломал голову 5 часов так и не смог решить, тут уже я уперся в возможности моей сообразительности, пришлось смотреть решение. Не хотелось сидеть неизвестное количество дней чтобы самому решить.
Пойду дальше по урокам, не знаю что из этого выйдет, чувствую себя как ежик в тумане.
Серёга, ты супер тичер, спасибо тебе большое
сделал за минут 5. Как же все-таки более менее знание другого яп помогает. Спасибо!
ЗАВИДУЮ, У МЕНЯ КУЧА ЧАСОВ
спасибо за урок
3 и 4 треугольники я сделал почти так же, потратил час где-то что бы понять что да как, разница у меня в том что у нашего Учителя идёт в последних двух лишний пробел, он соединяет 2 треугольника и по этому тот что идёт после пробелов начинаеться чуть-чуть позже
Что бы было понятней покажу код, в нём я от указаной высоты отнимаю 1 что бы треугольник с пробелом у меня был на 1 меньше чем тот какой я отрисовую
for (int i = 0; i < height; i++)
{
for (int k = height - 1; k > i; k--)
{
Console.Write(" ");
}
for (int j = 0; j
Лучший!👍
Час сидел не мог понять почему не работает так как надо, в итоге просто запускал другой проект... спасибо за уроки
Вместо того чтобы использовать итератор внешнего цикла i для сравнения с итератором внутреннего цикла j в условии внутреннего цикла, я добавил ДОПОЛНИТЕЛЬНЫЙ итератор n во внешний цикл чтобы сравнивать его с итератором внутреннего цикла. А чтобы выполнить задание с "пробелами", я добавил ЕЩЁ ОДИН итератор k во внешний цикл чтобы использовать его для сравнения условий второго внутреннего цикла.
Для пробелов и квадратиков я создал две отдельные переменные, к которым обращался))
На выполнение ушло 2 часа чистого времени интенсивного майндшторма с перерывами. Пока что это было самым сложным домашним заданием, но это было весело. Спасибо.
Поддерживающий комментарий для развития канала
Первые два треугольника на ура) а вот до отступов не додумался ( Спасибо за разбор !)
в решении перед некоторыми треугольниками были лишние пробелы) с заданием справился, без вот этих лишних пробелов
Сделал, но было очень больно. Потратил в в сумме около 3,5 часов. Самое легкие были 1й и последний. на них я потратил максимум мин по 15. А второй около мин 40 и и вот 3й все остальное время=) Но сделал. Спасибо автору !
затупил на этом дз знатно. думал надо все четыре треугольника одним кодом отрисовать. в итоге справился только с первым треугольником. надо быть внимательней и не бояться экспериментировать
Господа, прикладываю свою версию кода без необходимости ввода от пользователя значения ширины треугольников,а также все стрелочки в одном проекте:
//Первая половина стрелочки вправо:
for (int length = 1; length 0; wide2--)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine();
//Первая половина стрелочки влево:
for (int length = 1; length length; wide--)
{
Console.Write(" ");
}
for (int wide = 1; wide = 0; length2--)
{
for (int wide2 = 10; wide2 > length2; wide2--)
{
Console.Write(" ");
}
for (int wide2 = length2; wide2 > 0; wide2--)
{
Console.Write("#");
}
Console.WriteLine();
}
Console.ReadLine();
Посидел, подумал (казалось бы, я и подумал =)), и принципиально, пока не выполнил дз, не смотрел данный видос с разбором. И каково же было мое счастье, что не только получилось написать код один в один, как на разборе, так еще и символ звездочки тоже использовал, как и автор)))
Это просто, захотелось поделиться впечатлениями! А, если у меня получилось выполнить дз, то это означает лишь то, что преподаватель четко довел до моего сведения, что надо делать! Спасибо за уроки!!!
Я убедился в том что отладчик, это залог победы, если бы не он , я бы мучался над последними двумя еще долго. Я вкладывал цикл в цикл, но не задумывался от том что можно в одном цикле сделать два(я от том что я делал в одном цикле, только один вложенный цикл). Спасибо за ваши уроки!
Сначала подумал, что сложно, а как начал писать, то минуты за 3 написал все.
+ первый треугольник можно без вложенного цикла реализовать
/**
* rows - размерность(ввод с консоли)
*symbol - символ, который отрисовывается (ввод с консоли)
*/
string triangleRow = "";
for(int i = 0; i < rows; i++)
{
triangleRow += symbol;
Console.WriteLine(triangleRow);
}
У меня минут 30 ушло.
Спасибо !!!
Хах, а я сдался на этом ДЗ и хардстаком ввел все те треугольники))
А когда увидел в ДЗ что можно было кодом в 7 строк это сделать, чуть не выпрыгнул через окно))).
я вот тему про вложенные циклы 70% инфы до сих пор не понимаю
@@beforean727 Доходит не всегда быстро, согласен))).
Неверно ты сделал) Необходимо еще устранить в конце пробел перед первой звездочкой. решение: using System;
using System.Globalization;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
while (true) {
for (int i = 0; i < 5; i++)
{
Console.WriteLine();
}
Console.WriteLine("Vvedi razmer: ");
int h = int.Parse(Console.ReadLine()) - 1;
for (int i = 0; i
Спасибо большое за видео)
Это реально гениально
Спасибо большое, задание несложное и интересное, сначала хотел усложнить себе жизнь, думал сделать чтобы треугольник сначала вверх острием был, потом разу перевернулся и это одним кодом, думал создать такое выражение для количества циклов в результате которого число сначала бы росло, потом уменьшалось, но стало лень, слишком криво получатся.
Посмотрел еще пару объяснений, погуглил и сделал , причем это единственное задание, которое я пока сделал сам. До этого не мог :D
Я потратил на это задание 4 дня и около 8-12 часов. Смог я сделать только первые два, а третий и 4 не совпадали параметрами по алгоритму и получались немного неправильными, так как я делал через счетчик итераций и количество выводов звезд, однако до ума код я так и не довёл, потому что цепочка взаимосвязей и постоянное понимание того, что ты написал мне давалась слишком сложно. Честно говоря, мне очень обидно, что я не смог решить задание самостоятельно, а даже поняв объяснение, если бы я не подстроил свой алгоритм так же, как на задании, у меня нечего не вышло.
Это немного грустно для меня, но спасибо большое за уроки.
Cмотрел все твои уроки в скорости х2, а когда включил обычную скорость случайно, то удивился что кто-то другой ведет урок и представляется твоим именем :D
18:27 последняя часть треугольника отрисовывается с отступом на 1 " ". Не все так просто решается копированием, надо менять условия сравнения на
В ТОП!
Так будет только хуже. Если ты поставишь на пробелы
@@женяполяков-е2з зачем создавать новую переменную, когда можно просто написать: int j = height -1;
@@МагаАгаханов Ты прав. Я просто не продумав до конца писал.
Пока делал придумал собственную систему отступов из-за ограничений самого задания (не использовать то/другое). Спасибо за уроки
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lesson_22
{
class Program
{
static void Main(string[] args)
{
int rows;
Console.Write("Введите размер треугольников: ");
rows = int.Parse(Console.ReadLine());
for (int i = 0; i = 0; i--)
{
Console.WriteLine();
for (int j = 0; j < i; j++)
{
Console.Write("#");
}
}
Console.WriteLine();
Console.WriteLine();
for (int i = 0; i = i; k--)
{
Console.Write(" ");
}
break;
}
Console.Write("#");
}
}
Console.WriteLine();
Console.WriteLine();
for (int i = rows; i >= 0; i--)
{
Console.WriteLine();
for (int j = 0; j < i; j++)
{
for (; j == 0;)
{
for (int k = rows - 1; k >= i; k--)
{
Console.Write(" ");
}
break;
}
Console.Write("#");
}
}
Console.ReadLine();
}
}
}
Делал несколько часов, но всё-же получилось. Код создаёт 2 равнобедренных треугольника (1 нормальный, другой - перевёрнутый) причём если задавать чётную длину основания он сделает 2 строки в середине одинаковой высоты, а если нечётное 1 строку.
char BuildingBlock = '@';
Console.WriteLine("Введите длинну основания треугольника");
int BaseLengh = int.Parse(Console.ReadLine());
for (int i1 = 1; i1 = 0; i2--)
{
Console.Write(BuildingBlock);
}
Console.WriteLine();
}
for (int i1 = 1; i1 0; i2--)
{
if (i2 > i1) Console.Write(" ");
else Console.Write(BuildingBlock);
}
Console.WriteLine();
}
for (int i1 = 1; i1 0; i2--)
{
if (i2-1
Автор очень хорошо подаёт материал(особенно для новичков), но это ДЗ какое-то очень странное. Буду честен, я не справился. Но я и не представляю, где может пригодится такое использование вложенных циклов.
Надо чуть изменить код в последних двух треугольниках и с переводом курсора тоже и отнять единицу от высоты, чтобы перед последним рядом не помещать пробел, иначе треугольники отодвигаются от левого края консоли на один пробел.
Третий треугольник: height-1;
for (int j = height-1; j > i; j--) // вложенный цикл
{
Console.Write(" ");
}
Четвёртый треугольник: j
Спасибо большое
Супер
Мой код , с двумя переменными :
using System;
public class Program
{
public static void Main()
{ int height ;
int width;
Console.WriteLine("Enter height value");
height= int.Parse(Console.ReadLine());
Console.WriteLine("Enter width value");
width = int.Parse(Console.ReadLine());
for(int i = 0 ; i