ИЗМЕНИТЬ РАЗМЕР МАССИВА | увеличить массив C# | уменьшить массив | СИ ШАРП ДОМАШНИЕ ЗАДАНИЯ # 12

Sdílet
Vložit
  • čas přidán 11. 09. 2024
  • В этом уроке мы узнаем как работает метод Resize класса Array, а так же напишем собственную его реализацию. В ходе урока мы выясним как написать метод для изменения размера любого массива (увеличения, уменьшения). При выполнении домашнего задания мы повторим темы массивов, циклов и методов, а так же рассмотрим пример применения ключевого слова ref в языке программирования C#.
    ➡️ Мой курс C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ на Udemy
    👉 www.udemy.com/...
    ✅ИСХОДНЫЙ КОД УРОКА bit.ly/3029jWQ
    ✅Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
    ✅Доступ к исходному коду и спонсорство / simplecode
    ✅ donatepay.ru/d...
    ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4
    ✅ Telegram канал t.me/SergeySim...
    Уроки по программированию
    ✅Наша группа ВК smplcode
    ✅Подписывайтесь на канал / @simplecodeit
    #сишарп #simplecode #урокипрограммирования

Komentáře • 170

  • @SimpleCodeIT
    @SimpleCodeIT  Před 4 lety +12

    Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
    ✅Доступ к исходному коду и спонсорство www.patreon.com/SimpleCode
    ✅ donatepay.ru/don/SimpleCode
    ✅BTC кошелек: 12oYfJnvt76wjJbpvfhM41m6KPz6uz4LD4

  • @sleepybro_yt
    @sleepybro_yt Před 3 lety +31

    "потому что мы пытаемся впихнуть невпихуемое" :D

  • @viktorviktor9509
    @viktorviktor9509 Před 4 lety +38

    Круто когда материал по интересующей теме можно найти именно на твоем канале. Спасибо!

  • @firemanhood1526
    @firemanhood1526 Před 3 lety +105

    Спасибо за уроки! Жаль что эти нюансы в начале видео вы не описываете в описании к ДЗ, хочется сделать самому, но не до конца понятно, что именно имел ввиду автор.

    • @alexmam2886
      @alexmam2886 Před 3 lety +14

      Согласен, было не понятно, что делать со значениями в исходном массиве - удалять или сохранять.

    • @user-xt8gt7ev5p
      @user-xt8gt7ev5p Před 3 lety +21

      Я сначала удалял значения, но когда услышал в начале видео как надо, все переделал, нпотом продолжил просмотр

    • @bbnowhat
      @bbnowhat Před 3 lety +11

      @@user-xt8gt7ev5p также посмотрел начало и понял как именно надо было, а то изначально я указывал параметр сколько нужно добавить элементов

    • @maxkun8446
      @maxkun8446 Před 2 lety

      я даже код написал но он не подходит
      {
      internal class Program
      {
      static void Main(string[] args)
      {
      int IndexDel = 0;
      string Info;
      int[] myArray;
      Console.WriteLine("Wratin pls Count for myArray: ");
      int Count = int.Parse(Console.ReadLine());
      myArray = new int[Count];
      Console.WriteLine("Info");
      Info = Console.ReadLine();
      Console.WriteLine("IndexDeF");
      IndexDel = int.Parse(Console.ReadLine());
      switch (Info)
      {
      case "Add":
      ForAddInArray(ref IndexDel, ref myArray);
      break;
      case "Deletel":
      ForDeletelInArray(ref IndexDel, ref myArray);
      break;
      }
      for (int i = 0; i < myArray.Length; i++)
      {
      Console.Write(myArray[i] + "\t");
      }
      }
      static void ForAddInArray(ref int Add, ref int[] arr)
      {
      arr = new int[arr.Length + Add];
      for (int i = 0; i < arr.Length; i++)
      {
      arr[i] = int.Parse(Console.ReadLine());
      }
      }
      static void ForDeletelInArray(ref int Del, ref int[] arr)
      {
      if (arr.Length - Del

    • @TaxirTaxir
      @TaxirTaxir Před rokem

      Наверное в этом и кайф, пытаться сделать "невозможное"

  • @emsigaming8947
    @emsigaming8947 Před 4 lety +43

    Обожаю твои видеоуроки по c#
    Уже два дня подряд взахлёб поглощаю твой божественный, царский контент.
    Огромное тебе спасибо за твои видеоролики!!!!!

  • @user-lx5vv3uu8u
    @user-lx5vv3uu8u Před 4 lety +30

    Привет, Сергей! Бесконечная тебе благодарность за твои труды!

  • @user-iv4eo7do9s
    @user-iv4eo7do9s Před 3 lety +5

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

  • @mannas273
    @mannas273 Před 4 lety +18

    сейчас учу С++. кайфую. я тащусь от уроков. сейчас на 48 уроке. раньше учил яву под депрессией, ничего не понимал, но тут нашел это чудо.

    • @vip51000
      @vip51000 Před 3 lety +1

      Я от джавы тащусь

    • @mannas273
      @mannas273 Před 3 lety

      @@vip51000 добью с++ потом перейду вспоминать джаву.

    • @bombilovka16gd17
      @bombilovka16gd17 Před rokem

      @@mannas273 , ну как, вспомнил?)))

    • @mannas273
      @mannas273 Před rokem

      @@bombilovka16gd17 нет

    • @dimonfunny7434
      @dimonfunny7434 Před 8 měsíci

      @@mannas273 как успехи у тебя сейчас,остался в програмировании,либо перешёл на что-то другое ?

  • @geraltt1455
    @geraltt1455 Před 4 lety +14

    Супер. В каждом уроке что- то интересное

  • @silent_woolf.
    @silent_woolf. Před 2 lety +6

    Как же приятно, что домашние задания получаются. Сидишь, перепроверяешь себя, радуешься :)

    • @ptichkasinichkamia
      @ptichkasinichkamia Před rokem +1

      Как успехи за 3 месяца?

    • @silent_woolf.
      @silent_woolf. Před rokem +1

      @@ptichkasinichkamia к сожалению, у меня обучение программированию отошло на второй план на данный момент. Но весь базовый курс, который дан на данном канале, успешно освоен. Также были частично освоены другие технологии, с помощью которых реализовывал некоторые проекты для себя. Ничего серьёзного не делал, ибо не было нужды/цели, но в очень многих областях знаний покопался. Разве только в геймдев не залезал, хотя интерес есть. От себя скажу, что считаю канал Сергея - это лучшее, что может попасться начинающему программисту, просто чтобы получить хороший (позитивный) пинок. Очень жаль, что курс по C# в итоге так и не закончен :(

    • @ptichkasinichkamia
      @ptichkasinichkamia Před rokem +2

      @@silent_woolf. А я как раз для геймдева и учу) Да, согласен, жаль что курс не закончен. Что можете посоветовать после прохождения данного курса?

    • @silent_woolf.
      @silent_woolf. Před rokem +5

      ​@@ptichkasinichkamia программист чаще всего - это самообучающаяся единица, которая выгрызает информацию из всех щелей, откуда может :)))) Так что после освоения синтаксиса и базиса языка, (что и даёт данный курс) самое лучшее - это начать делать что-либо, а в процессе уже гуглить то, что интересует. :) Вот например из самого простого: я писал ребёнку программу для повторения изученных английских. Интерфейс на WinForms, по своей сути программа изначально банальна донельзя - даётся слово на одном языке, а он должен ввести на другом и наоборот. Можно сделать всё крайне примитивно - рандомное слово из массива и его ответная пара (red - красный, например). Дальше будет, возможно, дикий треш для знающих людей, но Я ХУДОЖНИК - Я ТАК ВИЖУ, поэтому делал так, как придумал и как смог. Рефакторить можно и нужно, но это уже "другая история". Короче, в результате неких размышлений, под возможные будущие доработки и масштабирования (да-да, я люблю мыслить глобально) был выделен аж целый класс WORD всего с двумя полями - СЛОВО и ПЕРЕВОД. Сделал подпрограмму "добавитель слов в словарь", в которой реализовал счётчик слов, убрал некоторые "косяки" интерфейса, добавил возможность изменять/удалять слова, сохранять/загружать словарь, возможность добавлять слова без использования мыши и переключения языка (он переключается автоматически на тот, который должен быть в данном поле - либо русский, либо английский), вход в редактор словаря по паролю (не, ну ребёнок же хитрый, он там подсмотреть сможет иначе :D). В основной же программе банальные счётчики правильных/неправильных ответов, несколько режимов (простой слово-ответ, опрос на N слов без повторов), шанс "выпадения" слов (те, которые хуже отвечает, попадаются в итоге чаще), глобальную статистику, озвучку слова голосом и т.п. и т.д. Я всё это к чему? Каждая из этих вещей требовала некоторых размышлений, изысканий и т.п. Вот так из простой маленькой программки я почерпнул гору опыта. :) В геймдеве всё точно также - осваиваешь, например, базово Unity (если знаешь английский, это вообще шик! Могу порекомендовать пару каналов), а потом ставишь себе цель - запилить какую-то игрушку, пусть даже маленькую, бестолковенькую, но СВОЮ. А дальше уже фантазия не даст спокойно сидеть на попе ровно)))))

    • @sheonaner
      @sheonaner Před rokem

      @@silent_woolf. Спасибо огромное за совет (кстати, можете пожалуйста порекомендовать эти пару каналов?)

  • @sat1ratv353
    @sat1ratv353 Před rokem +5

    Я пошел еще дальше и сделал рандомную генерацию как самого массива, так и его длины. А в методе у меня впринципе тоже самое:
    static void Resize( ref int [] YArray, int F )
    {
    int[] Mass = new int[F];
    for (int i = 0; i < YArray.Length && i

    • @user-jm9jq7yj4k
      @user-jm9jq7yj4k Před 9 dny

      Я вот так сделал
      static void GetArray() //Метод, отвечающий а заполнение массива
      {
      Random random = new Random();
      int[] myArray = new int[11];
      for (int i = 0; i < myArray?.Length; i++)
      {
      myArray[i] = random.Next(0, 10);
      }
      Resize(ref myArray, 6, false);
      }
      static void Main(string[] args)
      {
      GetArray();
      }
      static void Resize(ref int[] source, int resize, bool absolute)
      {
      int currentSize = source.Length;
      int newSize = absolute ? currentSize + resize : resize;
      if (newSize < 0)
      throw new Exception("size of array is less 0");
      int[] dest = new int[newSize];
      int copySize = newSize > currentSize ? currentSize : newSize;
      Array.Copy(source, dest, copySize);
      source = dest;
      }

    • @sat1ratv353
      @sat1ratv353 Před 9 dny +1

      @@user-jm9jq7yj4k настоящий абсолют)

  • @FloatingGames
    @FloatingGames Před 4 lety +16

    Спасибо за урок, слежу за каждым видео, также как и мой друг, изучаем c#, у тебя очень хорошая подача, не видел у других на Ютубе, перешёл к тебе по рекламе блогера (давно) желаю успехов, жду новые уроки

  • @AlexV-zg6co
    @AlexV-zg6co Před 4 lety +3

    Очень круто рассказываешь нюансы синтаксиса! «почему именно буква Т» прекрасно отложилось в памяти

  • @Ivan-Shyriaiev
    @Ivan-Shyriaiev Před 4 lety +16

    Спасибо за урок

  • @juststart796
    @juststart796 Před 4 lety +12

    Спасибо, как всегда все круто, жду следующих уроков !

  • @alinanur5628
    @alinanur5628 Před 3 lety +4

    Безумно интересно смотреть ваши уроки и делать дз)
    Спасибо огромное за ваш труд!!!

  • @chronicum2341
    @chronicum2341 Před 4 lety +2

    Я в программировании - null, но посмотрел все уроки с#, которые вышли и уже начал писать простецкие коды, более того нашел сайт с заданиями и стал выполнять для закрепления. Очень четко и понятно объясняешь. Почти всё с первого раза понимаю! Ты крут!!! Очень крут! Спасибо!

  • @wizardxdeveloper
    @wizardxdeveloper Před 2 lety +2

    За generic огромный лайк! А то видел иногда такие функции, пытался разобраться - непонятно было. А тут такое понятное объяснение! Вообще уроки очень хорошие! Хотелось бы, чтобы вы продолжали!

  • @k1ntoho
    @k1ntoho Před 4 lety +7

    Спасибо, классный урок.

  • @simonsays5614
    @simonsays5614 Před 4 lety +2

    А я то думаю чего я после того как увеличил массив он стал весь заполнен нулями)) А оказывается как все хитро придумано. Благодарю за разъяснение, очень познавательно.

  • @name5915
    @name5915 Před 9 měsíci

    Ещё раз спасибо за подобный курс!)
    До решения в видео я не догадался, хотя 2ю и 3ю часть только так и надо решать. Поэтому решил так, буду рад обратной связи:
    static void Mass(ref uint Ml) //в методе меняется длина рандомного одномерного массива
    {
    Random random = new Random();
    int[] mass = new int[Ml];
    for (int i = 0; i < mass.Length; i++)
    {
    mass[i] = random.Next();
    Console.Write(mass[i] + "\t"); //на печать массив и длину (ниже) выводил для себя/удобства
    }
    Console.WriteLine("
    " + mass.Length);
    Console.ReadLine();
    }
    Console.WriteLine("Сколько будет элементов в массиве: "); //задаётся новая длина для массива
    uint Ma = uint.Parse(Console.ReadLine());
    Mass(ref Ma);

  • @user-vz7gh9uz9j
    @user-vz7gh9uz9j Před rokem +1

    Супер! Особенно фишка с дженерик

  • @seraphiiim7
    @seraphiiim7 Před 2 lety +1

    До просмотра так сделал:
    static void Resize(ref int[] arr, int count)
    {
    int[] newArr = new int[count];
    if (arr.Length < count)
    {
    for (int i = 0; i < arr.Length; i++)
    {
    newArr[i] = arr[i];
    }
    }
    if (arr.Length > count)
    {
    for (int i = 0; i < count; i++)
    {
    newArr[i] = arr[i];
    }
    }
    arr = newArr;
    }
    static void Main(string[] args)
    {
    int[] myArray = {1, 4, 6};
    Resize(ref myArray, 10);
    }

  • @user-kv5yh3vn2k
    @user-kv5yh3vn2k Před 2 lety

    Как же приятно когда сделал ДЗ именно так, поняв тему.

  • @dimsmoke682
    @dimsmoke682 Před 11 měsíci +1

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

  • @ohshie
    @ohshie Před rokem +1

    Урок пока не смотрел.
    принимаем пользовательский массив и число на которое хотим изменить
    далее если оно больше 0 (то есть увеличиваем массив) предлагаем пользователю либо самому заполнить либо забить новые значения рандомом. Если меньше т опросто уменьшаем.
    static void ArraySizeChange(ref int[] userArray, int amount)
    {
    Random random = new Random();
    int[] newArray = new int[userArray.Length + amount];
    if (amount >= 0)
    {
    for (int i = 0; i < userArray.Length; i++)
    {
    newArray[i] = userArray[i];
    }
    Console.WriteLine("
    Fill it with random numbers?");
    string choice = Console.ReadLine();
    if (choice == "yes")
    {
    for (int i = userArray.Length; i < newArray.Length; i++)
    {
    newArray[i] = random.Next(100);
    }
    }
    else
    {
    for (int i = userArray.Length; i < newArray.Length; i++)
    {
    Console.WriteLine("Enter value for index " + i);
    newArray[i] = int.Parse(Console.ReadLine());
    }
    }
    }
    else
    {
    for (int i = 0; i < newArray.Length; i++)
    {
    newArray[i] = userArray[i];
    }
    }
    userArray = newArray;
    }

    • @ohshie
      @ohshie Před rokem +1

      после просмотра:
      задумался над тем, что получется что мой метод делает больше 1 явного действия, что как говорил Сергей не хорошо. Видимо придется перепесать)

  • @matem101
    @matem101 Před 3 lety +4

    Спасибо огромное!

  • @user-io9iq2di4w
    @user-io9iq2di4w Před rokem +4

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

    • @user-jk2rp7nt9k
      @user-jk2rp7nt9k Před měsícem

      Привет, ещё кодишь? Или забросил?

    • @user-io9iq2di4w
      @user-io9iq2di4w Před měsícem

      @@user-jk2rp7nt9k Привет, все ещё прогаю

    • @user-io9iq2di4w
      @user-io9iq2di4w Před měsícem

      @@user-jk2rp7nt9kПривет, все ещё прогаю

  • @user-zh8gn8iw1c
    @user-zh8gn8iw1c Před 3 lety +3

    17:06 - Я хочу, чтобы на месте null выводилась не пустота, а надпись "пусто", поэтому мне нужно использовать оператор объединения с null. Только как мне это сделать, если вместо типов данных используются "джинерики"?

  • @mikkimorfin5406
    @mikkimorfin5406 Před 2 lety +1

    Спасибо тема нужная и важная,успехов Вам,и за помощь благодарен

  • @user-np1fq9ux9z
    @user-np1fq9ux9z Před 2 měsíci

    Решил так, сначала подумал, что не надо сохранять значения в старом массиве, а в видео их сохранили...переделал под сохранение вот, что вышло:
    namespace ConsoleApp33
    {
    internal class Program
    { static void CicleB(ref int b, ref string str)
    { while (b < 0)
    {
    Console.WriteLine("Массив не может быть с отрицательным числом");
    StringReturn(ref str);
    Parse(ref str, ref b);
    }

    while (b == default)
    {
    Console.WriteLine("Кажется, вы ввели не число");
    StringReturn(ref str);
    Parse(ref str, ref b);
    }
    }
    static void Parse(ref string str, ref int b)
    {
    if (str == String.Empty)
    {
    Console.WriteLine("Вы ничего не ввели");
    }
    else
    {
    int.TryParse(str, out b);
    }

    }
    static void StringReturn(ref string str)
    {
    Console.WriteLine("Введите сколько элементов массива вы хотите сделать");
    str = Console.ReadLine();
    }
    static void arraynew(ref int[] array, ref int b)
    {
    int[] NewArray = new int[b];
    for (int i = 0; i < array.Length; i++)
    {
    NewArray[i] = array[i];
    }
    array = NewArray;
    }
    static void Main(string[] args)
    {
    int[] array = { 1, 2, 3, 4, 5 };
    int b = 0;
    string str = "default";
    StringReturn(ref str);
    Parse(ref str, ref b);
    CicleB(ref b, ref str);
    arraynew(ref array, ref b);
    for (int i = 0;i < array.Length;i++)
    {
    Console.WriteLine(array[i]);
    }
    }
    }
    }

  • @user-fy3ob1cl1r
    @user-fy3ob1cl1r Před 2 lety +2

    Добрый день. Сделал все тоже самое только через иф=( забыл про логический элемент. На написание программы ушло мин 10-15. Это первый язык программирования. Спасибо за уроки!

  • @ip3779
    @ip3779 Před 2 lety +1

    Спасибо за урок!!! Где то я потерял нить повествования и перестал поинмать что происходит =(. Придется вернуться на несколько уроков назад

  • @artlinestudio6735
    @artlinestudio6735 Před 2 lety +1

    Хороший урок! Спасибо Сергей!

  • @Usmonjk
    @Usmonjk Před 4 lety +2

    Пртвет Сергей! Спосибо за уроки! Можно узнать когда выйдет следущий?

  • @amay345
    @amay345 Před 3 lety +1

    После ваших подробных уроков дз вообще без проблем выполняю хотелось бы так же по окнам уроки тоже с домашками

  • @cyberpunk1672
    @cyberpunk1672 Před 2 lety +1

    Это ДЗ я смог сделать только через статический метод Resize) Но как он работает додуматься не смог. Спасибо за урок!

  • @3x__
    @3x__ Před 4 lety +2

    Спасибо за урок!

  • @geshoi
    @geshoi Před 2 lety

    Мне аж стало жалко "сборщика мусора", теперь буду стараться не писать лишнего кода =). И еще мне понравилась фраза "впихнуть невпихуемое".

  • @Barin.a
    @Barin.a Před 2 lety +1

    Все понятно и очень круто жалко не всегда сам додумать могу, а так все очень четко!

  • @mannas273
    @mannas273 Před 4 lety +4

    если не понимаете уроков , елси проблемы в восприятии уроков. проверьте себя на депрессию ребята. это реально проблема.

    • @user-ut4uk9mm8c
      @user-ut4uk9mm8c Před 4 lety +1

      тогда + 1 проблема - как избавится от депрессии
      static condition DepressionRemover(person, target)
      {
      person = me;
      depression = null;
      }

  • @ifelru
    @ifelru Před 3 lety +1

    Спасибо за отличное решение!

  • @sonesoul5668
    @sonesoul5668 Před rokem

    так то можно было захардкодить условие в цикле (i < array.Length-1) но все равно видео полезное, ты отлично объясняешь!

  • @System-Chaos
    @System-Chaos Před 4 měsíci

    Сначала не понял как делать, потом все же пересилил себя и решил самому сделать все, было куча ошибок но в итоге я сделал без подсказок, но все же у меня не много иначе, массив заполняется рандомными значениями и рандомным размером, далее надо выбрать увеличить или уменьшить и после выбрать число на сколько, и далее если массив увеличивается новые значения заполняются случайными числами.
    static void Resize(ref int[] array, int newSize) // изменение массива
    {
    int[] NewArray = new int[array.Length + newSize];
    for (int i = 0; i < NewArray.Length; i++) // присваиваем значения из старого массива в новый
    {
    if (i < array.Length)
    {
    NewArray[i] = array[i];
    }
    else
    {
    NewArray[i] = random.Next(1, 10);
    }
    }
    array = NewArray;// присваиваем новый массив старому
    }

  • @_chill_relax_calm4647
    @_chill_relax_calm4647 Před 3 lety

    Поддерживающий комментарий для дальнейшего развития канала

  • @I-PixALbI4-I
    @I-PixALbI4-I Před 4 lety +7

    В принципе ДЗ лёгкое, я смог его даже в уме представить и видео показало что я не ошибался.
    Спасибо за видео-уроки с ДЗ!

  • @default777
    @default777 Před rokem

    Спасибо за уроки! лучший! )

  • @СергейПетров-б1ф

    Супер!

  • @KlevaGameS
    @KlevaGameS Před 11 měsíci

    Благодарю за урок.

  • @Woodyman87
    @Woodyman87 Před 3 lety

    12:46 "Впихнуть невпихуемое" )) надо запомнить

  • @user-wy7sy7rx1d
    @user-wy7sy7rx1d Před 2 lety

    Шикарно объяснено! Спасибо

  • @ninjadiestanding5082
    @ninjadiestanding5082 Před 3 lety +2

    Большое спасибо за ДЗ!

  • @deniskholodar4406
    @deniskholodar4406 Před 2 lety

    Наверное судьба есть благодаря этому каналу и стану программистом сколько раз бросал

  • @ruslanh8106
    @ruslanh8106 Před 2 lety +1

    Ооо, за джинерики огромное спасибо

  • @abdusamadjuraev2615
    @abdusamadjuraev2615 Před 4 lety +3

    круто!

  • @DmitriyShvachka
    @DmitriyShvachka Před rokem

    Я бы в метод добавил еще проверку, если вдруг кто-то решит ресайзить, например, массив из 2х элементов в массив из двух элементов:
    if (array.Length == NewSize)
    return;

  • @elfinroom1178
    @elfinroom1178 Před 3 lety +1

    лайк и благодарность автору

  • @megazeph9887
    @megazeph9887 Před rokem

    Долго думал, но вот, что получилось
    static void Resize(ref int[] arr, int resizemulti)
    {
    int[] Array = new int [resizemulti];
    if (Array.Length >= arr.Length)
    {
    for (int i = 0; i < arr.Length; i++)
    {
    Array[i] = arr[i];
    }
    }
    else
    {
    for (int i = 0; i < Array.Length; i++)
    {
    Array[i] = arr[i];
    }
    }
    arr = Array;


    }
    int[] myArray = { 2, 5, 8};
    int Value = 6; --- изменяет размер цикла.

  • @artefakt4349
    @artefakt4349 Před 3 lety +1

    Благодарю!
    Да, да, да! ведь говорилось ранее, что если значение для элемента массива не указано, оно по дефолту заполняется 0 (для инта). А я в нулевые элементы еще раз записал нули... мда.

    • @darth_korsar
      @darth_korsar Před 3 lety

      А я сделал запрос - сколько добавить и допилил туда еще ввод элементов в цикле.

  • @ObloxaTV
    @ObloxaTV Před 5 měsíci

    как всегда хорошо

  • @leskhanmuratuly5374
    @leskhanmuratuly5374 Před 3 lety +1

    Спасибо большое))

  • @antonsimkin
    @antonsimkin Před 3 lety +1

    А почему в c# нет методов для добавления или удаления элемента из массива?

  • @DARKNETOFFICIAL
    @DARKNETOFFICIAL Před 3 lety +1

    Я так сделал:
    static void Resize(ref int[] myArray)
    {
    Console.WriteLine("Изменение кол-во элементов массива");
    Console.WriteLine();
    Console.WriteLine("Введите новое кол-во элементов: ");
    int opperation = int.Parse(Console.ReadLine());
    myArray = new int[opperation];
    }
    static void Main(string[] args)
    {
    int[] myArray = new int[10];
    Resize(ref myArray);
    Console.WriteLine("Количество элементов в массиве: " + myArray.Length);
    }

    • @user-nh1lp8xt4j
      @user-nh1lp8xt4j Před 3 lety +1

      А я так )))
      static void Resize(ref int[] arr)
      {
      int a;
      int[] b = new int[arr.Length];
      for (int i = 0; i < b.Length; i++)
      {
      b[i] = arr[i];
      }
      Console.WriteLine("Сколько элементов вы хотите в массиве?");
      while (true)
      {
      try
      {
      a = int.Parse(Console.ReadLine());
      }
      catch (Exception)
      {
      Console.WriteLine("Не корректный ввод.");
      continue;
      }
      if (a > 0 && a < 101)
      {
      arr = new int[a];
      if (arr.Length > b.Length)
      {
      for (int i = 0; i < b.Length; i++)
      {
      arr[i] = b[i];
      }
      }
      if (arr.Length < b.Length)
      {
      for (int i = 0; i < arr.Length; i++)
      {
      arr[i] = b[i];
      }
      }
      break;
      }
      else
      {
      Console.WriteLine("Не корректный ввод. Введите целое число от 1 до 100");
      }
      }
      }

  • @user-zq5hl8hv8g
    @user-zq5hl8hv8g Před 3 lety +1

    Благодарю

  • @user-kk6ob5ud3n
    @user-kk6ob5ud3n Před 3 lety +1

    Спасибо!!

  • @MihailSofianou
    @MihailSofianou Před 4 lety +1

    Спасибо тебе большое бро

  • @mediafile9995
    @mediafile9995 Před 3 lety +1

    А я создал промежуточный массив для хранения данных из старого массива, потом в старой ссылке на массив заменил на новый массив с заданным размером. И все данные из промежуточного массива перевёл в заданный массив... Как-то так: Промежуточный массив = старый массив. Старый массив = новый размер. Цикл

    • @user-nh1lp8xt4j
      @user-nh1lp8xt4j Před 3 lety

      @Easy Fate Я вот так сделал)))
      static void Resize(ref int[] arr)
      {
      int a;
      int[] b = new int[arr.Length];
      for (int i = 0; i < b.Length; i++)
      {
      b[i] = arr[i];
      }
      Console.WriteLine("Сколько элементов вы хотите в массиве?");
      while (true)
      {
      try
      {
      a = int.Parse(Console.ReadLine());
      }
      catch (Exception)
      {
      Console.WriteLine("Не корректный ввод.");
      continue;
      }
      if (a > 0 && a < 101)
      {
      arr = new int[a];
      if (arr.Length > b.Length)
      {
      for (int i = 0; i < b.Length; i++)
      {
      arr[i] = b[i];
      }
      }
      if (arr.Length < b.Length)
      {
      for (int i = 0; i < arr.Length; i++)
      {
      arr[i] = b[i];
      }
      }
      break;
      }
      else
      {
      Console.WriteLine("Не корректный ввод. Введите целое число от 1 до 100");
      }
      }
      }

  • @KonsulX_Official
    @KonsulX_Official Před 9 měsíci

    Я короче не понял походу дз, сделал так. Ну изменяет же количество элементов))
    internal class Program
    {

    static void Resaize(ref int[] a)
    {
    int elements = int.Parse(Console.ReadLine());
    a = new int[elements];
    }
    static void Main(string[] args)
    {
    int[] b = {354, 53, 675 };
    Resaize(ref b);
    Console.WriteLine("Количество элементов массива " + b.Length);
    }
    }

  • @user-nh1lp8xt4j
    @user-nh1lp8xt4j Před 3 lety

    Я по другому написал с одним входящим параметром - самим массивом. А при выполнении метода программа спрашивает сколько должно быть элементов)) Но он работает корректно. Тут в методе 4 строчки кода а у меня 22 ))

  • @oljaolsa7261
    @oljaolsa7261 Před 4 lety

    привет а уроки по джаве планируются?)

  • @albertumanets3983
    @albertumanets3983 Před 4 lety +1

    Сергей, добрый день! Я Ваш удаленный ученик. Посмотрел видео, где Вы рассказали про то, как писали первую программу. После этого, у меня созрела идея какое именно нужно написать приложение мне. И уже в процесс создания осваивать материал. В связи с этим у меня вопрос. Приложения для мобильного устройства. Это будет маленький справочник с поисковиком по очень узкой тематике. Графики минимум, в основном таблицы и календарь с привязками к датам и напоминалками. Не буду углубляться. Какой язык для этого более подходит. Буду очень благодарен если вы ответите. Это не означает, что C# я заброшу, он мне очень нравится. При этом я понимаю, что на C# я для компа, смогу реализовать это приложение, написать алгоритм и т.д., но вот для мобильных устройств не знаю какой язык использовать.

    • @SimpleCodeIT
      @SimpleCodeIT  Před 4 lety +4

      Судя по всему приложение довольно простое и одним из критериев является желание изучать C#. В таком случае я бы посмотрел в сторону Xamarin, он позволяет разрабатывать кросплатформенные приложения на C#.

  • @user-mc7kc2bd8b
    @user-mc7kc2bd8b Před 3 lety

    Спасибо!

  • @steshapokosova1775
    @steshapokosova1775 Před 3 lety

    У меня также, только в добавок я заполнила все нули рандомными значениями =)
    static void Resize(ref int[] iMassiv, int SIZE, Random Rand)
    {
    int[] Array = new int[SIZE];
    for (int i = 0; i < Array.Length && i < iMassiv.Length; i++)
    {
    Array[i] = iMassiv[i];
    }
    for (int i = iMassiv.Length; i

  • @ЯрославГоловко-ф6и

    спасибо

  • @Kuchizu
    @Kuchizu Před 2 lety

    12:46 Впихнуть невпихуемое как смысл жизни

  • @dekakrin776
    @dekakrin776 Před 4 měsíci

    11:04
    Не понимаю, зачем внутри метода Resize создавать цикл for. Почему нельзя просто сделать так?
    namespace HomeWork
    {
    internal class Program
    {
    static void Resize(ref int[] array, int newSize)
    {
    array = new int[newSize];
    }
    static void Main(string[] args)
    {
    int[] myArray = { 1, 4, 6 };
    Array.Resize(ref myArray, 10);
    }
    }
    }

  • @maxkun8446
    @maxkun8446 Před 2 lety +2

    мда как обычно я не понял что нужно сделать и написал совсем другой код под совсем другую задачу
    {
    internal class Program
    {
    static void Main(string[] args)
    {
    int IndexDel = 0;
    string Info;
    int[] myArray;
    Console.WriteLine("Wratin pls Count for myArray: ");
    int Count = int.Parse(Console.ReadLine());
    myArray = new int[Count];
    Console.WriteLine("Info");
    Info = Console.ReadLine();
    Console.WriteLine("IndexDeF");
    IndexDel = int.Parse(Console.ReadLine());
    switch (Info)
    {
    case "Add":
    ForAddInArray(ref IndexDel, ref myArray);
    break;
    case "Deletel":
    ForDeletelInArray(ref IndexDel, ref myArray);
    break;
    }
    for (int i = 0; i < myArray.Length; i++)
    {
    Console.Write(myArray[i] + "\t");
    }
    }
    static void ForAddInArray(ref int Add, ref int[] arr)
    {
    arr = new int[arr.Length + Add];
    for (int i = 0; i < arr.Length; i++)
    {
    arr[i] = int.Parse(Console.ReadLine());
    }
    }
    static void ForDeletelInArray(ref int Del, ref int[] arr)
    {
    if (arr.Length - Del

    • @maxkun8446
      @maxkun8446 Před 2 lety

      я хз кому это будет интересно

  • @wurlak_mmr9813
    @wurlak_mmr9813 Před rokem

    Вот мой пример решения задания, где так же можно увеличить, либо уменьшить количество элементов массива, на определенное значение с сохранением числовой последовательности
    static void Resize(ref int[] array, int increaseArray, int downArray)
    {
    int[] newAray = new int[(array.Length + increaseArray) - downArray];
    for (int i = 0; i < array.Length; i++)
    {
    for (int j = i; j < newAray.Length; j++)
    {
    newAray[j] = j + 1;
    }
    }
    array = newAray;
    }
    static void Main(string[] args)
    {
    int[] myArray = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    Resize(ref myArray, 10, 0);
    for (int i = 0; i < myArray.Length; i++)
    {
    Console.Write(myArray[i] + " ");
    }

    Console.ReadKey();
    }

  • @edzhadan9852
    @edzhadan9852 Před 4 lety +1

    👍👍👍

  • @user-qu5ch6rl4f
    @user-qu5ch6rl4f Před 8 měsíci

    static void Resize(ref int[] arr, uint size)
    {
    if ((arr??=new int[size]).Length==size) return; //обработка null или одинаковый размер
    int[] newArr = new int[size]; //новый массив нужного размера
    for(int i=0;i

  • @JetRiderCBR
    @JetRiderCBR Před 3 lety

    thanks, cool !!!

  • @unchpokable
    @unchpokable Před 4 lety +2

    Ещё не посмотрел видос, но хочу предположить, что решение будет примерно таким:
    public static void Resize (ref T[] OldArr, int NewCap)
    {
    T[] Temp = new T[NewCap];
    for (int i = 0; i < Temp.Length; i++)
    {
    try
    {
    Temp[i] = OldArr[i];
    }
    catch
    {
    Temp[i] = default(T);
    }
    }
    OldArr = Temp;
    }
    З.Ы Делал для любого типа данных

    • @Tragraph
      @Tragraph Před 4 lety +1

      ну и зачем тут try catch?

    • @user-yg1vq9tl7e
      @user-yg1vq9tl7e Před 4 lety +1

      А почему и нет?) Просто здесь применяется дефолтное значение для обобщений, но в уроках этот момент ещё не объяснялся. Немного другая реализация и чуть больше кода, а по факту всё верно.

    • @Tragraph
      @Tragraph Před 4 lety +3

      Алексей Мощенко потому что это очень накладная операция в виде вброса исключения и его отлавливание, намного дешевле использовать if

  • @sheonaner
    @sheonaner Před rokem +2

    Впихнуть невпихуемое)

  • @user-db9jc2yb7c
    @user-db9jc2yb7c Před 4 lety +1

    Ура

  • @frjade6769
    @frjade6769 Před 3 lety

    а по динамическим массивам будет видео? Очень интересуют методы с внесением и удалением данных List.

    • @MapoxeO
      @MapoxeO Před 3 lety

      в C# в safe-коде нельзя устроить динамические массивы, так как в safe-коде нет указателей. Они есть в unsafe-коде, который позваляет работать с указателями и прочими гадостями. В LIst, наверное, есть методы с лишним выделением памяти под массив, чтобы не пересоздавать по многу раз массивы в памяти, либо же методы основаны на unsafe-коде.

  • @user-qv9ng5yw4u
    @user-qv9ng5yw4u Před 2 lety

    я сделал по другому использовав сам метод Array.Resize и оператор switch для прибавления или уменьшения количества элементов, правда я не понял как заполнить новые элементы массива не меняя старые

  • @default777
    @default777 Před rokem

    все 3 задания в одном
    static void Resize(ref int[] arr, int JelaemoeKolichestvo, int min, int max)
    {
    int[] gav = new int[JelaemoeKolichestvo];
    Array.Copy(arr, gav, Math.Min(arr.Length, JelaemoeKolichestvo));
    arr = gav;
    Random random = new Random();
    for (int i = 0; i < arr.Length; i++)
    arr[i] = random.Next(min, max);
    }
    static void AddElementToStart(ref int[] arr, int element)
    {
    int[] newArr = new int[arr.Length + 1];
    newArr[0] = element;
    Array.Copy(arr, 0, newArr, 1, arr.Length);
    arr = newArr;
    }
    static void AddElementToEnd(ref int[] arr, int element)
    {
    int[] newArr = new int[arr.Length + 1];
    Array.Copy(arr, newArr, arr.Length);
    newArr[arr.Length] = element;
    arr = newArr;
    }
    static void AddElementAtIndex(ref int[] arr, int element, int index)
    {
    int[] newArr = new int[arr.Length + 1];
    Array.Copy(arr, 0, newArr, 0, index);
    newArr[index] = element;
    Array.Copy(arr, index, newArr, index + 1, arr.Length - index);
    arr = newArr;
    }
    static void Main(string[] args)
    {
    Random rnd = new Random();
    int[] myArray = new int[rnd.Next(50, 100)];
    for (int i = 0; i < myArray.Length; i++)
    myArray[i] = rnd.Next(100, 500);
    Console.WriteLine($"Сейчас в массиве {myArray.Length} элементов:
    {string.Join(" ", myArray)}");
    Console.Write("Введите желаемое кол-во элементов: ");
    int a = int.Parse(Console.ReadLine());
    Console.WriteLine("Минимальное значение каждого элемента? ");
    int min = int.Parse(Console.ReadLine());
    Console.WriteLine("Максимальное значение каждого элемента? ");
    int max = int.Parse(Console.ReadLine());
    Resize(ref myArray, a, min, max);
    Console.WriteLine($"Ваш новый массив на {a} элементов:
    {string.Join(" ", myArray)}");
    Console.Write("Введите элемент для добавления в начало массива: ");
    int startElement = int.Parse(Console.ReadLine());
    AddElementToStart(ref myArray, startElement);
    Console.WriteLine($"Массив после добавления элемента в начало:
    {string.Join(" ", myArray)}");
    Console.Write("Введите элемент для добавления в конец массива: ");
    int endElement = int.Parse(Console.ReadLine());
    AddElementToEnd(ref myArray, endElement);
    Console.WriteLine($"Массив после добавления элемента в конец:
    {string.Join(" ", myArray)}");
    Console.Write("Введите элемент для добавления: ");
    int element = int.Parse(Console.ReadLine());
    Console.Write("Введите индекс для добавления элемента: ");
    int index = int.Parse(Console.ReadLine());
    AddElementAtIndex(ref myArray, element, index);
    Console.WriteLine($"Массив после добавления элемента по индексу:
    {string.Join(" ", myArray)}");
    Console.ReadLine();
    }

  • @bl_bl_e
    @bl_bl_e Před 4 lety

    незнаю,в тему ли я, но на просторах рунета нет нормальных уроков по опенгл.Можно ли ето исправить плиз ^_^

  • @user-od8mn6ns2z
    @user-od8mn6ns2z Před 2 lety

    Сделал дз правильно (работает правильно ). Но написал его , как обычно , в 2 раза больше чем у вас ....... АААААА
    static void Resize( ref int[] array, int size)
    {
    int[] newArray = new int[array.Length];
    for (int i = 0; i < newArray.Length; i++)
    newArray[i] = array[i];

    array = new int[size];
    for (int i = 0; i < newArray.Length && i

  • @_MrMaser_
    @_MrMaser_ Před 4 lety

    добрый день Сергей! у меня есть один вопрос,есть ли на языке с# такой код который изменяет конкретный элемент массива, при этом только тот элемент который вы исправили,а другие элементы которые остались на месте то есть неизменым, есть ли такой код на языке с#!?

  • @nata4518
    @nata4518 Před rokem

    А как в новом массиве проименовать элементы???

  • @beshenyy_sobaken
    @beshenyy_sobaken Před rokem

    У меня так вышло :)
    internal class Program
    {
    static void Main(string[] args)
    {
    int[] myArray = { 3, 8, 1, 7 };
    Resize(ref myArray, 10);
    for (int i = 0; i < myArray.Length; i++)
    {
    Console.Write(myArray[i] + " | ");
    }
    Console.WriteLine();
    }
    static void Resize(ref int[] array, int value)
    {
    int[] tempArray = new int[value];
    for (int i = 0; i < array.Length; i++)
    {
    if (i >= tempArray.Length)
    {
    break;
    }
    tempArray[i] = array[i];
    }
    array = tempArray;
    }
    }

    • @beshenyy_sobaken
      @beshenyy_sobaken Před rokem

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

  • @fillion6288
    @fillion6288 Před 2 lety

    Я узнал, что могу писать название методов и переменных русскими буквами. Как это возможно?

  • @1ofsb
    @1ofsb Před 3 lety

    Сделал 2 метода, которые просто увеличивают массив либо же уменьшают без переноса значений

  • @gigex159
    @gigex159 Před 3 lety

    а почему все так сложно в видео? разве нельзя было сделать вот так?
    using System;
    using System.Linq;
    namespace crossplatforn
    {
    class Program
    {
    static void grus(ref int[] gif)
    {
    Array.Resize(ref gif, int.Parse(Console.ReadLine()));
    }
    static void Main(string[] args)
    {
    Console.Write("Please enter number of massive elements: ");
    int[] bio = { 2, 3, 5 };
    grus(ref bio);
    for (int i = 0; i < bio.Length; i++)
    {
    Console.WriteLine($"massive:{i} " + bio[i]);
    }
    }
    }
    }

    • @gigex159
      @gigex159 Před 2 lety

      @@kompotalive логично ))

  • @islambekbillionaire5360

    Спасибо за урок ! Можете сказать ,почему когда я это хочу запустить на консоле оно пишет System.Toint32[]?

    • @nikitasysoev1744
      @nikitasysoev1744 Před 3 lety

      Скорее всего вы не зациклили вывод массива.
      for (int i = 0; i < myArr.Length; i++)
      {
      Console.WriteLine(" " + myArr[i]);
      }

  • @pavel6341
    @pavel6341 Před 3 lety +1

    Хмм интересно лайки 620, а просмотров 6к++. Вот халявщики лайки зажали :=)

  • @user-oj3kn4lv8t
    @user-oj3kn4lv8t Před 3 lety +1

    Впихнул невпихуемое

  • @lloydlion8959
    @lloydlion8959 Před 4 lety

    Ссылка на ссылку... Теперь я видел всё

  • @user-li5ls7gu5z
    @user-li5ls7gu5z Před 4 lety +2

    Это 12-е дз