Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
Я не перестаю удивляться! У Вас, Сергей, самые лучшие уроки! Все настолько подробно, фундаментально и последовательно "разжёвано", что, мне кажется, после Ваших уроков и обезьяна будет программировать! В очередной раз огромное спасибо!
@@oleksandralekseiev8370 О, а вот с этого места поподробнее. Если есть возможность расскажи, что изучал, какие требования были и что посоветуешь для начинающего? Заранее спасибо
Какие курсы не смотрела, какие тесты не решала. Сначала стало скучно, поискала курсы на оконные приложения. Никакой пользы. Вернулась продолжаю изучение) Вы - лучший! Продолжайте в том же духе)
Всего лишь шесть строчек кода, а я так и не смог довести до ума свою программу, сделал где-то 85% правильно. Хорошо, что есть учитель, который всегда поможет.
Очень жаль, что в свое время по мере выхода не мог просматривать данный курс уроков (был полностью занят своим поступлением в ВУЗ). Уроки действительно очень понятные, очень многим данный язык похож на С++, который я относительно знаю. С динамическими структурами данных тоже знаком, поэтому для меня данные уроки понятны на 100. Почему я пишу это сейчас? А кто его знает :D Подумал, что все таки стоит отметить пользу данных роликов. Лучше уж поздно, чем никогда. Спасибо большое автору! Не останавливайся, продолжай. Мне нравится)
на этом моменте я остановился изучать c# 9 месяцев назад, но сейчас за пару дней я снова дошёл до этого момента, надеюсь я дальше это дело не заброшу...
Спасибо за объяснения! Доходчиво и ясно! Перед просмотром вот моя версия с заполнением массива случайными числами и выводом его на консоль с использованием слова in. Только вот с названиями методов я наверно погорячился. static void fill_arr(in int[]Arr,int i) { if (i
namespace СамыеПолезныеУрокиUA-cam { class СиШарпУрокиОтСергея { public void СказатьСпасибо(string словаБлагодарности) { if(string.IsNullOrEmpty(словаБлагодарности)) { Console.WriteLine("Таким здесь не место!"); Environment.Exit(0); } Console.WriteLine(словаБлагодарности); } } class МоиКомментарии { static void Main(string[] args) { СиШарпУрокиОтСергея объектКомментирования = new СиШарпУрокиОтСергея();
string мойКомментарий = "Спасибо за урок! Это лучшие уроки, из всех, что я видел! Продолжай в том же духе! =)"; объектКомментирования.СказатьСпасибо(мойКомментарий); } } }
Спасибо на урок, мой вариант, который написал до просмотра: static void ShowArray(int[] array, int i = 0) { if (i > array.Length-1) return; Console.Write(array[i] + " "); ShowArray(array, i + 1); } Вроде бы без ошибок работает
Сделал таким образом... Практически идентично :) class Program { static void PrintArr(int[] arr, int i) { if (i < arr.Length) { Console.Write("\t" + arr[i]); i++; PrintArr(arr, i); } } static void Main(string[] args) { int[] myArray = new int[5] { 1, 2, 3, 4, 5 }; PrintArr(myArray,0); } } } Правда номер индекса массива надо указывать в параметрах метода, не подумал про дефолтное значение :)
Если сделать так Console.WriteLine(a[h]); if (h < a.Length - 1) { Sum(a, h + 1 ); } вместо 4 методов вызовиться 3 и получиться быстрее. В этом случае мы сразу выходим из метода когда индекс доходит до 2, и не ждем пока случиться еще один вызов метода чтобы выйти
до просмотра: задание показалось очень легким. разве что не уверен что код супер хороший) Но рабочий) public static void PrintArray(int[] inputArray, int cycle) { Console.WriteLine(inputArray[cycle]); cycle++; if (cycle >= inputArray.GetLength(0)) { return; } PrintArray(inputArray, cycle); }
Сергей, добрый вечер! Практически полностью посмотрел ваши уроки по с++ и хотел бы выразить вам огромную благодарность за ваши труды - вы очень хорошо объясняете материал, делая акценты на всем, что нужно) Скажите пожалуйста, вы не планировали сделать отдельные теоретические уроки ( возможно с практической реализацией) сортировок, на подобии уроков про динамические структуры данных? P.S. Пишу сюда, потому что уроки по с++ вышли давно.
Как легко, а я знаете как сделал. Вы учили работать с Ref, я в методе вызывал другой метод, удалял первый элемент массива, возвращался в рекурсию и так до тех пор пока в массиве не оставалось элементов.
Сергей или кто-нибудь! Пожалуйста, подскажите как включить стрелочки в методах? Те, что появляются в по сказке, когда ставишь скобки (перегрузки). У меня они не появляются и в интернете только нашёл как отключить сами подсказки (а они-то как раз выводятся нормально, но без стрелочек). Спасибо!
Обидно замечать, что с каждым роликов все меньше и меньше просмотров и лайков, хоть все предельно понятно и это, пожалуй, лучший курс по Шарпу. Максимально понятно и приятно. Сергей, не останавливайтесь, пожалуйста, Вы нам нужны!!)))
Имеет ли место быть такая реализация решения? static void Foo(int[] array, int index = 0) { if (index < array.Length) Console.WriteLine(array[index]); else return; index++; Foo(array, index); }
Я как всегда, захожу в комменты по решению домашки и каждый раз у всех решение короче :DD вот моё) static void Recursion(ref int[] array, ref int b) { Console.WriteLine(array[b]); b++; if (b >= array.Length) { return; } else { Recursion(ref array, ref b); } } static void Main(string[] args) { int[] array = {10, 20, 30, 40, 50}; int b = 0;
У меня так по 4 строчки кода, у автора три... не догадалась))... Первый метод заполняет массив Рандомно с помощью рекурсии, второй выводит его на экран.. Рандом когда выполняется в методе через рекурсию не успевает рандомить.. вынуждена была вынести его в другой метод... static void RandomMassiv(ref int[] Array, int SIZE, Random Rand) { if (SIZE == 0) return; Array[SIZE-1] = Rand.Next(100); RandomMassiv(ref Array, SIZE-1, Rand); } static void iMassiv(ref int[] Array, int SIZE) { if (SIZE==0) return; Console.WriteLine(Array[SIZE-1]); iMassiv(ref Array, SIZE-1); }
У меня так получилось: static void WriteArray(int[] array, int index = 0) { if(index >= array.Length) { return; } Console.WriteLine(array[index]); index++; WriteArray(array, index); }
немного по-другому получилось, но суть та же : static void ShowArray (int [] Array,int index = 0) { Console.WriteLine(Array[index]); if (index == Array.Length-1) return; ShowArray(Array,++index); }
Сначала сделал так, но выводился только первый элемент массива, и каждый раз по циклу почему то данные массива и индекса удалялись static void foo (params int [] massive) { int i = 0; Console.WriteLine(massive[i]); if (i == massive.Length) return; i++; foo(); } static void Main(string[] args) { foo(1, 22, 333, 4444, 55555); }
Можно было в 2 параметра?) Блин, а я голову ломал, как создать рекурсию с одним параметром на основе предыдущих уроков)) static void ArrayPrinter(int[] array) { Console.WriteLine(array[0]);
почему если при рекурсивном вызове метода в параметре индексе указывать декремент, он не увеличивает индекс? Т.е. если вместо i+1 указать i++, i не увеличивается на 1, и в метод передается первоначальный индекс, почему?
Потому что внитри метода надо тоже передавать i. Т.е. при входе в рекурсию (когда вызывается метод внутри метода), туда надо не только массив передавать, но и сам i. static void Draw(int[] ArrayToDraw, int i = 0) { Console.WriteLine(ArrayToDraw[i]); i++; if (i == ArrayToDraw.Length) return; Draw(ArrayToDraw, i); }
У меня вот что получилось: static void PrintArray(ref int[] arr, int size) { if (size == 0) Console.WriteLine("Все"); else { Console.WriteLine(arr[arr.Length - size]); PrintArray(ref arr, --size); } }
Немного по другому сделал ^^ static void ArrayPrint(int[] anyArr, int i = 0) { Console.WriteLine($"Index {i}: " + anyArr[i]); if (i >= anyArr.Length -1) { return; } i++; ArrayPrint(anyArr , i); }
У меня пара вопросов, добрые люди, помогите разобраться! 1. Почему при рекурсивном вызове метода мы используем i+1 а не i++ ? И почему если поставить i++ будет рекурсивно выводиться первый элемент массива? 2. Почему после вывода массива консоль все равно пишет StackOverflowException? Буду невероятно рада чьему-либо ответу.
Не могу ответить почему I++ выводит 0(но вообще i++ на данный момент есть 0, и лишь в дальнейшем он станет 1, выходит так что мы вызываем метод снова с 0.) А вот ++i отлично работает. Ну к примеру у тебя int i = 0; следующая строка: Console.WriteLine(i++); Ну и 3 строка Console.WriteLine(i); В первом выводе(2 строка) мы выведем 0, а вот в 3 строке вывод будет таков: 1. Так инкремент работает, почитай про инкремент и декремент. PS: ++i по факту увеличивает число на 1, в той же строке грубо говоря
Привет, подскажите плис, после отладки в конце консоли выдает сообщение c:\users\1\source epos\ConsoleApp2\bin\Debug etcoreapp3.1\ConsoleApp2.exe(процесс 6069) завершил работу с кодом 0. Все нормально выполняется, но как убрать это? ой я оказывается открыл net.core вместо net.framework, все робит
я сложный метод нашел. прошу ввести число с консоли. перевожу в строку. перевожу в массив чаров. каждый чар опять в строку и в инт. получаю массив интов
Я для себя так решил: static void Sum(int i, int p = 0, int t = 0) { if (i != 0) { t = i % 10; p += t; i = (i - t) / 10; if (i == 0) { Console.WriteLine(p); } Sum(i, p, t); } }
@@HATAHKE762 static void SumNumber(int num, int sum = 0) { if(num == 0) { Console.WriteLine(sum); return; } sum += num % 10; num = num / 10; SumNumber(num, sum);
Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode
✅ donatepay.ru/don/SimpleCode
✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
Я не перестаю удивляться! У Вас, Сергей, самые лучшие уроки! Все настолько подробно, фундаментально и последовательно "разжёвано", что, мне кажется, после Ваших уроков и обезьяна будет программировать! В очередной раз огромное спасибо!
Это лучше, чем анонс сталкер 2
Это было в 2018.
Dojer я имел ввиду трейлер, но мы же все понимаем, что именно он и стал начальной точкой активного ожидания игры, а не официальный анонс
@@oleksandralekseiev8370 привет из 2021, скоро покажут геймплей)
@@Сырокглазированный-п4р и тебе привет с 21. Устроился на работу .NET разработчиком. Ебаште, парни, оно того стоит)
@@oleksandralekseiev8370 О, а вот с этого места поподробнее. Если есть возможность расскажи, что изучал, какие требования были и что посоветуешь для начинающего? Заранее спасибо
Как же жаль, что дальше пока нет роликов, очень понятно объясняете, прям душа радуется.
Какое же у человека терпение и энтузиазм, что половину видео в отладчике про каждый шаг отдельно рассказали объяснял. Респект и благодарность автору!
Поддерживающий комментарий для дальнейшего развития канала. Вы чрезвычайно понятно все объясняете
Ооооочень жду ваших видео! Все понято , легко запоминаемо.
👍Спасибо за видео, внимательно слежу и изучаю язык.
Благодарствую Сергею за еще один урок.
Спасибо ! Вы очень сильно подтянули уровень моих знаний.
Какие курсы не смотрела, какие тесты не решала. Сначала стало скучно, поискала курсы на оконные приложения. Никакой пользы. Вернулась продолжаю изучение) Вы - лучший! Продолжайте в том же духе)
Есть какие результаты за год?
Большое спасибо за урок! Каждый раз при просмотре домашки удивляюсь, как лаконично и просто вы объясняете весь материал!
Сергей, спасибо!!!
А я так сделал:
if (i >= Array.Length)
{
return;
}
Console.WriteLine(Array[i]);
i++;
PrintArray(Array, i);
Тоже так же сделал.
+
static void Main(string[] args)
{
int[] myArray = { 9, 21, 5, 7, 11 };
Foo(myArray);
}
static void Foo (int[] myArray, int length = 0)
{
if (length >= myArray.Length) return;
Console.WriteLine(myArray[length]);
Foo(myArray, length + 1);
}
Спасибо за урок👍
Всего лишь шесть строчек кода, а я так и не смог довести до ума свою программу, сделал где-то 85% правильно. Хорошо, что есть учитель, который всегда поможет.
Очень жаль, что в свое время по мере выхода не мог просматривать данный курс уроков (был полностью занят своим поступлением в ВУЗ). Уроки действительно очень понятные, очень многим данный язык похож на С++, который я относительно знаю. С динамическими структурами данных тоже знаком, поэтому для меня данные уроки понятны на 100. Почему я пишу это сейчас? А кто его знает :D Подумал, что все таки стоит отметить пользу данных роликов. Лучше уж поздно, чем никогда. Спасибо большое автору! Не останавливайся, продолжай. Мне нравится)
Интересно какие чувства у автора этого канала. Под каждым видео нет ни одного плохого комента, все только благодарят).
Огромное спасибо за уроки
Сделал слегка по-другому! Приятно осознавать, что чему то научился.)
на этом моменте я остановился изучать c# 9 месяцев назад, но сейчас за пару дней я снова дошёл до этого момента, надеюсь я дальше это дело не заброшу...
Топ как обычно 👍👍
Спасибо за ролики, Сергей!
Наконец спасибо;)
Благодарствую!
Заканчиваю твой плейлист по c++, потом собираюсь смотреть этот
Спасибо за объяснения! Доходчиво и ясно!
Перед просмотром вот моя версия с заполнением массива случайными числами и выводом его на консоль с использованием слова in. Только вот с названиями методов я наверно погорячился.
static void fill_arr(in int[]Arr,int i)
{
if (i
Ура!
*Спасибо*
спасибо за грамотный разбор
А сколько будет еще роликов в курсе по c#
Оу ессс!!
Наконец-то
Console.Write(«Спасибо за урок»);
namespace СамыеПолезныеУрокиUA-cam
{
class СиШарпУрокиОтСергея
{
public void СказатьСпасибо(string словаБлагодарности)
{
if(string.IsNullOrEmpty(словаБлагодарности))
{
Console.WriteLine("Таким здесь не место!");
Environment.Exit(0);
}
Console.WriteLine(словаБлагодарности);
}
}
class МоиКомментарии
{
static void Main(string[] args)
{
СиШарпУрокиОтСергея объектКомментирования = new СиШарпУрокиОтСергея();
string мойКомментарий = "Спасибо за урок! Это лучшие уроки, из всех, что я видел! Продолжай в том же духе! =)";
объектКомментирования.СказатьСпасибо(мойКомментарий);
}
}
}
Спасибо за очередной урок!
Спасибо за ещё один отличный урок)
Еее спасибо!)
Спасибо очень помог!
Это дз пошло на ура , как и следующие, но вот с суммой цифр числа - беда ( Спасибо за разбор!)
Спасибо !!!
Спасибо!
Спасибо на урок, мой вариант, который написал до просмотра:
static void ShowArray(int[] array, int i = 0)
{
if (i > array.Length-1)
return;
Console.Write(array[i] + " ");
ShowArray(array, i + 1);
}
Вроде бы без ошибок работает
Сделал таким образом... Практически идентично :)
class Program
{
static void PrintArr(int[] arr, int i)
{
if (i < arr.Length)
{
Console.Write("\t" + arr[i]);
i++;
PrintArr(arr, i);
}
}
static void Main(string[] args)
{
int[] myArray = new int[5] { 1, 2, 3, 4, 5 };
PrintArr(myArray,0);
}
}
}
Правда номер индекса массива надо указывать в параметрах метода, не подумал про дефолтное значение :)
Походу все так сделали:
if (i >= Array.Length)
{
return;
}
Console.WriteLine(Array[i]);
i++;
PrintArray(Array, i);
Спасибо за отличное решение!
Если сделать так
Console.WriteLine(a[h]);
if (h < a.Length - 1)
{
Sum(a, h + 1 );
}
вместо 4 методов вызовиться 3 и получиться быстрее. В этом случае мы сразу выходим из метода когда индекс доходит до 2, и не ждем пока случиться еще один вызов метода чтобы выйти
Спасибо)
Стоит ли читать C# для чайников Мюллера?
Во время создания метода обозначил интовую переменную index, а уже в мейне в методе вторым значением в методе поставил 0 и тож работает
до просмотра:
задание показалось очень легким. разве что не уверен что код супер хороший)
Но рабочий)
public static void PrintArray(int[] inputArray, int cycle)
{
Console.WriteLine(inputArray[cycle]);
cycle++;
if (cycle >= inputArray.GetLength(0))
{
return;
}
PrintArray(inputArray, cycle);
}
ага, забыл про индекс. получилось благодаря этому сократить остальной код)
class Program {
static void PrintMas(in T[] array, int i = 0)
{
if (i < array.Length)
{
Console.WriteLine(array[i]);
PrintMas(array, i + 1);
}
}
static void Main(String[] args)
{
int[] array = { 1, 2, 3,1,2,3,4,5,1,2,3,4};
PrintMas(array);
}
}
а что если массив был бы многомерным? как определять, закончилась ли часть массива ( [вот эта часть, а здесь понятно] )?
сделал так:
static void printarray(int [] myarray, int firstindex)
{
Console.WriteLine(myarray[firstindex]);
if (firstindex == (myarray.Length - 1))
{
return;
}
firstindex++;
printarray(myarray, firstindex);
}
static void Main(string[] args)
{
int[] myarray;
myarray = new int[5] { 1, 2, 3, 4, 5 };
printarray(myarray, 0);
}
Сергей, добрый вечер! Практически полностью посмотрел ваши уроки по с++ и хотел бы выразить вам огромную благодарность за ваши труды - вы очень хорошо объясняете материал, делая акценты на всем, что нужно) Скажите пожалуйста, вы не планировали сделать отдельные теоретические уроки ( возможно с практической реализацией) сортировок, на подобии уроков про динамические структуры данных?
P.S. Пишу сюда, потому что уроки по с++ вышли давно.
Как легко, а я знаете как сделал.
Вы учили работать с Ref, я в методе вызывал другой метод, удалял первый элемент массива, возвращался в рекурсию и так до тех пор пока в массиве не оставалось элементов.
отлично
Сергей или кто-нибудь! Пожалуйста, подскажите как включить стрелочки в методах? Те, что появляются в по сказке, когда ставишь скобки (перегрузки). У меня они не появляются и в интернете только нашёл как отключить сами подсказки (а они-то как раз выводятся нормально, но без стрелочек). Спасибо!
У меня так вышло:
internal class Program
{
static void Print(int[] array, int index = 0)
{
if (index >= array.Length) return;
Console.WriteLine(array[index]);
Print(array, index + 1);
}
static void Main(string[] args)
{
int[] array = { 3, 6, 9, 12, 15 };
Print(array);
}
}
Сделал чуть подругому!
static void foo(int[]arr, int value)
{
Console.WriteLine(arr[value]);
value++;
if (value == arr.Length)
return;
else
foo(arr,value);
}
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5 };
int value = 0;
foo(arr,value);
}
Обидно замечать, что с каждым роликов все меньше и меньше просмотров и лайков, хоть все предельно понятно и это, пожалуй, лучший курс по Шарпу. Максимально понятно и приятно. Сергей, не останавливайтесь, пожалуйста, Вы нам нужны!!)))
это нормально,было бы странно,если бы было столько чем дальше тем труднее и многие сдаются
А был ли смысл сделать функцию Foo с двумя переменными с модификатором ref?
Имеет ли место быть такая реализация решения?
static void Foo(int[] array, int index = 0)
{
if (index < array.Length)
Console.WriteLine(array[index]);
else
return;
index++;
Foo(array, index);
}
сразу 1 и 2 задание:
static void Foo(int[] array, int a, ref int summ)
{
if (a >= array.Length)
{ return; }
Console.WriteLine(array[a]);
summ += array[a];
Foo(array, a + 1, ref summ);
}
static void Main(string[] args)
{
int[] alab = { 5, 9, 2, 1, 4 };
int summa = 0;
Foo(alab,0, ref summa);
Console.WriteLine(summa);
}
18)
Я как всегда, захожу в комменты по решению домашки и каждый раз у всех решение короче :DD вот моё)
static void Recursion(ref int[] array, ref int b)
{
Console.WriteLine(array[b]);
b++;
if (b >= array.Length)
{
return;
}
else
{
Recursion(ref array, ref b);
}
}
static void Main(string[] args)
{
int[] array = {10, 20, 30, 40, 50};
int b = 0;
Recursion(ref array, ref b);
}
У меня так по 4 строчки кода, у автора три... не догадалась))... Первый метод заполняет массив Рандомно с помощью рекурсии, второй выводит его на экран.. Рандом когда выполняется в методе через рекурсию не успевает рандомить.. вынуждена была вынести его в другой метод...
static void RandomMassiv(ref int[] Array, int SIZE, Random Rand)
{
if (SIZE == 0)
return;
Array[SIZE-1] = Rand.Next(100);
RandomMassiv(ref Array, SIZE-1, Rand);
}
static void iMassiv(ref int[] Array, int SIZE)
{
if (SIZE==0)
return;
Console.WriteLine(Array[SIZE-1]);
iMassiv(ref Array, SIZE-1);
}
У меня так получилось:
static void WriteArray(int[] array, int index = 0)
{
if(index >= array.Length)
{
return;
}
Console.WriteLine(array[index]);
index++;
WriteArray(array, index);
}
Лол я также сделал)
if (i >= Array.Length)
{
return;
}
Console.WriteLine(Array[i]);
i++;
PrintArray(Array, i);
static void Cicl(int[] array, int index = 0)
{
if (index < array.Length)
{
Console.WriteLine($"Элемент под индексом {index} = {array[index]}");
index++;
Cicl(array, index);
}
}
static void Main(string[] args)
{
int[] array = { 22, 33, 53, 42, 51};
Cicl(array, 0);
}
Как вы запустили метод, когда в методе Main не было входа а был массив myArray? 1:10
Дальше в видео ведь написали вызов функции
Подскажите , почему нужно использовать Foo(ref array, i +1);??? , а не Foo(ref array, i ++);
@@kompotalive 4:21
сделал это задание по типо прошлого в уроке
немного по-другому получилось, но суть та же :
static void ShowArray (int [] Array,int index = 0)
{
Console.WriteLine(Array[index]);
if (index == Array.Length-1)
return;
ShowArray(Array,++index);
}
Не по теме, но можно ли убавить анонимный метод из события?
Сначала сделал так, но выводился только первый элемент массива, и каждый раз по циклу почему то данные массива и индекса удалялись
static void foo (params int [] massive)
{
int i = 0;
Console.WriteLine(massive[i]);
if (i == massive.Length)
return;
i++;
foo();
}
static void Main(string[] args)
{
foo(1, 22, 333, 4444, 55555);
}
Можно было в 2 параметра?) Блин, а я голову ломал, как создать рекурсию с одним параметром на основе предыдущих уроков))
static void ArrayPrinter(int[] array)
{
Console.WriteLine(array[0]);
if (array.Length != 1)
{
Array.Reverse(array);
Array.Resize(ref array,array.Length-1);
Array.Reverse(array);
ArrayPrinter(array);
}
}
static int Print (int [] Array, int i = 0)
{
if (i >= Array.Length)
{
return 0;
}
Console.WriteLine(Array[i]);
return i + Print(Array, i + 1);
}
Напишите мне сюда через год и спросите выучил ли я с#, я еще на с++ сейчас но через месяц начинаю этот курс)
Не забросил?
@@datboi5601 походу забросил
почему если при рекурсивном вызове метода в параметре индексе указывать декремент, он не увеличивает индекс? Т.е. если вместо i+1 указать i++, i не увеличивается на 1, и в метод передается первоначальный индекс, почему?
Потому что внитри метода надо тоже передавать i. Т.е. при входе в рекурсию (когда вызывается метод внутри метода), туда надо не только массив передавать, но и сам i.
static void Draw(int[] ArrayToDraw, int i = 0)
{
Console.WriteLine(ArrayToDraw[i]);
i++;
if (i == ArrayToDraw.Length)
return;
Draw(ArrayToDraw, i);
}
Используйте ++i
пока делал домашку чуть не спалил комп)
Я так понимаю, если в одном методе сразу вывел массивы и посчитал сумму, это говнокод?
а я немного другим вариантом решал:
class Program
{
static void Foo(int i, int length)
{
Console.WriteLine(i);
if(i
У меня вот что получилось:
static void PrintArray(ref int[] arr, int size)
{
if (size == 0) Console.WriteLine("Все");
else
{
Console.WriteLine(arr[arr.Length - size]);
PrintArray(ref arr, --size);
}
}
static void Print(int[] arr, int i = 0)
{
if (i >= arr.Length)
return;
Console.WriteLine(arr[i]);
i++;
Print(arr, i);
}
А я через длину масива сделал выход из рекурсии
как называется Call Stack на русском?
Вызов стека, разве нет?
Немного по другому сделал ^^
static void ArrayPrint(int[] anyArr, int i = 0)
{
Console.WriteLine($"Index {i}: " + anyArr[i]);
if (i >= anyArr.Length -1)
{
return;
}
i++;
ArrayPrint(anyArr , i);
}
У меня пара вопросов, добрые люди, помогите разобраться!
1. Почему при рекурсивном вызове метода мы используем i+1 а не i++ ? И почему если поставить i++ будет рекурсивно выводиться первый элемент массива?
2. Почему после вывода массива консоль все равно пишет StackOverflowException?
Буду невероятно рада чьему-либо ответу.
Не могу ответить почему I++ выводит 0(но вообще i++ на данный момент есть 0, и лишь в дальнейшем он станет 1, выходит так что мы вызываем метод снова с 0.) А вот ++i отлично работает. Ну к примеру у тебя int i = 0; следующая строка: Console.WriteLine(i++); Ну и 3 строка Console.WriteLine(i); В первом выводе(2 строка) мы выведем 0, а вот в 3 строке вывод будет таков: 1. Так инкремент работает, почитай про инкремент и декремент. PS: ++i по факту увеличивает число на 1, в той же строке грубо говоря
Потому, что между ++i и i++ при передаче параметра i в метод есть разница
Привет, подскажите плис, после отладки в конце консоли выдает сообщение
c:\users\1\source
epos\ConsoleApp2\bin\Debug
etcoreapp3.1\ConsoleApp2.exe(процесс 6069) завершил работу с кодом 0. Все нормально выполняется, но как убрать это?
ой я оказывается открыл net.core вместо net.framework, все робит
А зачем это убирать? Если программа завершена с кодом 0, значит всё нормально
@@t3m8ch79 ок, я просто совсем новичок, подумал что то неправльно сделал
1
Я всё сделал правильно, но у меня происходит сбой в компелировании программы, плак плак.
Я бы предложил задачу на переворот какого-то (n-го) количество элементов, без использования массива. Пример: Ввод:
n=3
12 3 4
Вывод: 4 3 12
Лол, я по своей глупости вывел 2-мерный массив
Мне больше интересно, как можно реализовать 3-е(по-моему) д\з. Где надо найти сумму цифр числа, например 512(5+1+2=8). А так, спасибо за разбор
я сложный метод нашел. прошу ввести число с консоли. перевожу в строку. перевожу в массив чаров. каждый чар опять в строку и в инт. получаю массив интов
Я для себя так решил:
static void Sum(int i, int p = 0, int t = 0)
{
if (i != 0)
{
t = i % 10;
p += t;
i = (i - t) / 10;
if (i == 0)
{ Console.WriteLine(p); }
Sum(i, p, t);
}
}
@@HATAHKE762 по царски решил)
@@dronsan-unity7302) Посмотрим, как это сделает мастер.
@@HATAHKE762
static void SumNumber(int num, int sum = 0)
{
if(num == 0)
{
Console.WriteLine(sum);
return;
}
sum += num % 10;
num = num / 10;
SumNumber(num, sum);
}
Спасибо за урок!
Спасибо!
Спасибо!!!