Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =) ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode ✅ donatepay.ru/don/SimpleCode ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
Я не перестаю удивляться! У Вас, Сергей, самые лучшие уроки! Все настолько подробно, фундаментально и последовательно "разжёвано", что, мне кажется, после Ваших уроков и обезьяна будет программировать! В очередной раз огромное спасибо!
@@oleksandralekseiev8370 О, а вот с этого места поподробнее. Если есть возможность расскажи, что изучал, какие требования были и что посоветуешь для начинающего? Заранее спасибо
Какие курсы не смотрела, какие тесты не решала. Сначала стало скучно, поискала курсы на оконные приложения. Никакой пользы. Вернулась продолжаю изучение) Вы - лучший! Продолжайте в том же духе)
Очень жаль, что в свое время по мере выхода не мог просматривать данный курс уроков (был полностью занят своим поступлением в ВУЗ). Уроки действительно очень понятные, очень многим данный язык похож на С++, который я относительно знаю. С динамическими структурами данных тоже знаком, поэтому для меня данные уроки понятны на 100. Почему я пишу это сейчас? А кто его знает :D Подумал, что все таки стоит отметить пользу данных роликов. Лучше уж поздно, чем никогда. Спасибо большое автору! Не останавливайся, продолжай. Мне нравится)
Всего лишь шесть строчек кода, а я так и не смог довести до ума свою программу, сделал где-то 85% правильно. Хорошо, что есть учитель, который всегда поможет.
на этом моменте я остановился изучать 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 мойКомментарий = "Спасибо за урок! Это лучшие уроки, из всех, что я видел! Продолжай в том же духе! =)"; объектКомментирования.СказатьСпасибо(мойКомментарий); } } }
Если сделать так Console.WriteLine(a[h]); if (h < a.Length - 1) { Sum(a, h + 1 ); } вместо 4 методов вызовиться 3 и получиться быстрее. В этом случае мы сразу выходим из метода когда индекс доходит до 2, и не ждем пока случиться еще один вызов метода чтобы выйти
Сделал таким образом... Практически идентично :) 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); } } } Правда номер индекса массива надо указывать в параметрах метода, не подумал про дефолтное значение :)
Спасибо на урок, мой вариант, который написал до просмотра: static void ShowArray(int[] array, int i = 0) { if (i > array.Length-1) return; Console.Write(array[i] + " "); ShowArray(array, i + 1); } Вроде бы без ошибок работает
до просмотра: задание показалось очень легким. разве что не уверен что код супер хороший) Но рабочий) 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); }
У меня так получилось: 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); }
У меня так по 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); }
Я как всегда, захожу в комменты по решению домашки и каждый раз у всех решение короче :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;
почему если при рекурсивном вызове метода в параметре индексе указывать декремент, он не увеличивает индекс? Т.е. если вместо 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 ArrayPrint(int[] anyArr, int i = 0) { Console.WriteLine($"Index {i}: " + anyArr[i]); if (i >= anyArr.Length -1) { return; } i++; ArrayPrint(anyArr , i); }
Сначала сделал так, но выводился только первый элемент массива, и каждый раз по циклу почему то данные массива и индекса удалялись 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]);
У меня вот что получилось: static void PrintArray(ref int[] arr, int size) { if (size == 0) Console.WriteLine("Все"); else { Console.WriteLine(arr[arr.Length - size]); PrintArray(ref arr, --size); } }
Привет, подскажите плис, после отладки в конце консоли выдает сообщение c:\users\1\source epos\ConsoleApp2\bin\Debug etcoreapp3.1\ConsoleApp2.exe(процесс 6069) завершил работу с кодом 0. Все нормально выполняется, но как убрать это? ой я оказывается открыл net.core вместо net.framework, все робит
У меня пара вопросов, добрые люди, помогите разобраться! 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, в той же строке грубо говоря
я сложный метод нашел. прошу ввести число с консоли. перевожу в строку. перевожу в массив чаров. каждый чар опять в строку и в инт. получаю массив интов
Я для себя так решил: 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 О, а вот с этого места поподробнее. Если есть возможность расскажи, что изучал, какие требования были и что посоветуешь для начинающего? Заранее спасибо
Какое же у человека терпение и энтузиазм, что половину видео в отладчике про каждый шаг отдельно рассказали объяснял. Респект и благодарность автору!
Как же жаль, что дальше пока нет роликов, очень понятно объясняете, прям душа радуется.
Какие курсы не смотрела, какие тесты не решала. Сначала стало скучно, поискала курсы на оконные приложения. Никакой пользы. Вернулась продолжаю изучение) Вы - лучший! Продолжайте в том же духе)
Есть какие результаты за год?
Поддерживающий комментарий для дальнейшего развития канала. Вы чрезвычайно понятно все объясняете
Ооооочень жду ваших видео! Все понято , легко запоминаемо.
Благодарствую Сергею за еще один урок.
👍Спасибо за видео, внимательно слежу и изучаю язык.
Спасибо ! Вы очень сильно подтянули уровень моих знаний.
Большое спасибо за урок! Каждый раз при просмотре домашки удивляюсь, как лаконично и просто вы объясняете весь материал!
Очень жаль, что в свое время по мере выхода не мог просматривать данный курс уроков (был полностью занят своим поступлением в ВУЗ). Уроки действительно очень понятные, очень многим данный язык похож на С++, который я относительно знаю. С динамическими структурами данных тоже знаком, поэтому для меня данные уроки понятны на 100. Почему я пишу это сейчас? А кто его знает :D Подумал, что все таки стоит отметить пользу данных роликов. Лучше уж поздно, чем никогда. Спасибо большое автору! Не останавливайся, продолжай. Мне нравится)
Всего лишь шесть строчек кода, а я так и не смог довести до ума свою программу, сделал где-то 85% правильно. Хорошо, что есть учитель, который всегда поможет.
Интересно какие чувства у автора этого канала. Под каждым видео нет ни одного плохого комента, все только благодарят).
Сергей, спасибо!!!
А я так сделал:
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);
}
Спасибо за урок👍
Огромное спасибо за уроки
на этом моменте я остановился изучать c# 9 месяцев назад, но сейчас за пару дней я снова дошёл до этого момента, надеюсь я дальше это дело не заброшу...
Спасибо за объяснения! Доходчиво и ясно!
Перед просмотром вот моя версия с заполнением массива случайными числами и выводом его на консоль с использованием слова in. Только вот с названиями методов я наверно погорячился.
static void fill_arr(in int[]Arr,int i)
{
if (i
Сделал слегка по-другому! Приятно осознавать, что чему то научился.)
Топ как обычно 👍👍
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 мойКомментарий = "Спасибо за урок! Это лучшие уроки, из всех, что я видел! Продолжай в том же духе! =)";
объектКомментирования.СказатьСпасибо(мойКомментарий);
}
}
}
Наконец спасибо;)
Ура!
*Спасибо*
Оу ессс!!
Наконец-то
Еее спасибо!)
Заканчиваю твой плейлист по c++, потом собираюсь смотреть этот
Благодарствую!
Если сделать так
Console.WriteLine(a[h]);
if (h < a.Length - 1)
{
Sum(a, h + 1 );
}
вместо 4 методов вызовиться 3 и получиться быстрее. В этом случае мы сразу выходим из метода когда индекс доходит до 2, и не ждем пока случиться еще один вызов метода чтобы выйти
Спасибо очень помог!
спасибо за грамотный разбор
Сделал таким образом... Практически идентично :)
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);
Спасибо за ролики, Сергей!
Спасибо !!!
Спасибо за ещё один отличный урок)
Спасибо за очередной урок!
А сколько будет еще роликов в курсе по c#
Это дз пошло на ура , как и следующие, но вот с суммой цифр числа - беда ( Спасибо за разбор!)
Спасибо!
Спасибо на урок, мой вариант, который написал до просмотра:
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 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);
}
}
Спасибо)
Спасибо за отличное решение!
Стоит ли читать C# для чайников Мюллера?
Во время создания метода обозначил интовую переменную index, а уже в мейне в методе вторым значением в методе поставил 0 и тож работает
сделал так:
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);
}
до просмотра:
задание показалось очень легким. разве что не уверен что код супер хороший)
Но рабочий)
public static void PrintArray(int[] inputArray, int cycle)
{
Console.WriteLine(inputArray[cycle]);
cycle++;
if (cycle >= inputArray.GetLength(0))
{
return;
}
PrintArray(inputArray, cycle);
}
ага, забыл про индекс. получилось благодаря этому сократить остальной код)
Сергей, добрый вечер! Практически полностью посмотрел ваши уроки по с++ и хотел бы выразить вам огромную благодарность за ваши труды - вы очень хорошо объясняете материал, делая акценты на всем, что нужно) Скажите пожалуйста, вы не планировали сделать отдельные теоретические уроки ( возможно с практической реализацией) сортировок, на подобии уроков про динамические структуры данных?
P.S. Пишу сюда, потому что уроки по с++ вышли давно.
Сделал чуть подругому!
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);
}
У меня так вышло:
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);
}
}
Сергей или кто-нибудь! Пожалуйста, подскажите как включить стрелочки в методах? Те, что появляются в по сказке, когда ставишь скобки (перегрузки). У меня они не появляются и в интернете только нашёл как отключить сами подсказки (а они-то как раз выводятся нормально, но без стрелочек). Спасибо!
Как легко, а я знаете как сделал.
Вы учили работать с Ref, я в методе вызывал другой метод, удалял первый элемент массива, возвращался в рекурсию и так до тех пор пока в массиве не оставалось элементов.
сразу 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);
}
а что если массив был бы многомерным? как определять, закончилась ли часть массива ( [вот эта часть, а здесь понятно] )?
Обидно замечать, что с каждым роликов все меньше и меньше просмотров и лайков, хоть все предельно понятно и это, пожалуй, лучший курс по Шарпу. Максимально понятно и приятно. Сергей, не останавливайтесь, пожалуйста, Вы нам нужны!!)))
это нормально,было бы странно,если бы было столько чем дальше тем труднее и многие сдаются
отлично
Как вы запустили метод, когда в методе Main не было входа а был массив myArray? 1:10
Дальше в видео ведь написали вызов функции
А был ли смысл сделать функцию Foo с двумя переменными с модификатором ref?
Имеет ли место быть такая реализация решения?
static void Foo(int[] array, int index = 0)
{
if (index < array.Length)
Console.WriteLine(array[index]);
else
return;
index++;
Foo(array, index);
}
У меня так получилось:
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 ShowArray (int [] Array,int index = 0)
{
Console.WriteLine(Array[index]);
if (index == Array.Length-1)
return;
ShowArray(Array,++index);
}
У меня так по 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);
}
Подскажите , почему нужно использовать Foo(ref array, i +1);??? , а не Foo(ref array, i ++);
@@kompotalive 4:21
Не по теме, но можно ли убавить анонимный метод из события?
Я как всегда, захожу в комменты по решению домашки и каждый раз у всех решение короче :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);
}
static int Print (int [] Array, int i = 0)
{
if (i >= Array.Length)
{
return 0;
}
Console.WriteLine(Array[i]);
return i + Print(Array, i + 1);
}
почему если при рекурсивном вызове метода в параметре индексе указывать декремент, он не увеличивает индекс? Т.е. если вместо 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
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);
}
static void Print(int[] arr, int i = 0)
{
if (i >= arr.Length)
return;
Console.WriteLine(arr[i]);
i++;
Print(arr, i);
}
18)
Немного по другому сделал ^^
static void ArrayPrint(int[] anyArr, int i = 0)
{
Console.WriteLine($"Index {i}: " + anyArr[i]);
if (i >= anyArr.Length -1)
{
return;
}
i++;
ArrayPrint(anyArr , i);
}
а я немного другим вариантом решал:
class Program
{
static void Foo(int i, int length)
{
Console.WriteLine(i);
if(i
Сначала сделал так, но выводился только первый элемент массива, и каждый раз по циклу почему то данные массива и индекса удалялись
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);
}
как называется Call Stack на русском?
Вызов стека, разве нет?
Напишите мне сюда через год и спросите выучил ли я с#, я еще на с++ сейчас но через месяц начинаю этот курс)
Не забросил?
@@datboi5601 походу забросил
Можно было в 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 void PrintArray(ref int[] arr, int size)
{
if (size == 0) Console.WriteLine("Все");
else
{
Console.WriteLine(arr[arr.Length - size]);
PrintArray(ref arr, --size);
}
}
пока делал домашку чуть не спалил комп)
А я через длину масива сделал выход из рекурсии
Привет, подскажите плис, после отладки в конце консоли выдает сообщение
c:\users\1\source
epos\ConsoleApp2\bin\Debug
etcoreapp3.1\ConsoleApp2.exe(процесс 6069) завершил работу с кодом 0. Все нормально выполняется, но как убрать это?
ой я оказывается открыл net.core вместо net.framework, все робит
А зачем это убирать? Если программа завершена с кодом 0, значит всё нормально
@@t3m8ch79 ок, я просто совсем новичок, подумал что то неправльно сделал
У меня пара вопросов, добрые люди, помогите разобраться!
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 в метод есть разница
Я всё сделал правильно, но у меня происходит сбой в компелировании программы, плак плак.
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);
}
Я полугений?
class Program
{
static void PrintArray(int[] myArray, int i = 0)
{
if (myArray.Length
Спасибо за урок!
Спасибо!
Спасибо!!!