Тёмный
No video :(

Масиви за 15 минути C# 

C# in 15 minutes
Подписаться 3,3 тыс.
Просмотров 14 тыс.
50% 1

Линк къ for цикъл - • For и foreach цикъл за...
линк към while цикъл - • While цикъл за 15 мину...
Да си представим, че гледаме влак, който пренасся въглища. Той има един или повече вагони. Да се концентрираме върху вагоните. Може да имаме 2, може да 10, а може и да са 20.
Ако искаме да видим какво държи конкретен вагон - в случая бройката въглища, трябва да сме наясно с номерацията му (индексацията му). Тоест винаги първия вагон започва с номер 0, втория е с номер 1, третия с номер 2.
Ако имаме 20 вагона до колко ще стигне номерацията на 20-тия. n-1, където n е бройката на вагоните. И сега ако исаме да кажем бройката на елементите в във влак с 4 вагона с въглища в третия вагон (от ляво на дясно) в C# ще го изразим така:
int[] carriages = { 5, 7, 98, 803 };
Console.WriteLine(carriages[2]);
Защо казваме carriages[2]? Защото искаме 3-тия вагон от ляво надясно и неговата номерация е 2, защото номерациите на вагоните започва от 0.
Ако искаме първоначално вагоните да са празни и ние да сипваме въглища как би станало това?
int[] carriages = new int[4];
В примера заделяме масив с размер 4 елемента от тип int. Това означава, че в динамичната памет се заделя участък от 4 последователни цели числа, които се инициализират със стойност 0
Как можем да ги напълним. Ами един по един, както бихме го направили и в живота. Започваме от първия, който е с номерация 0 (индекс), втория и т.н:
int[] carriages = new int[4];
carriages[0] = 10;
carriages[1] = 5;
carriages[2] = 506;
carriages[3] = 123;
Ако искаме да видим какво има в целия масив - нека пробваме да го изпечатаме на конзолата
int[] carriages = new int[4];
carriages[0] = 10;
carriages[1] = 5;
carriages[2] = 506;
carriages[3] = 123;
Console.WriteLine(carriages);
Отговорът на конзолата е:
System.Int32[]
Press any key to continue . . .
в първия момент не сме на ясно, но ако прочетем по внимателно виждаме, че ни връща типа на променливата - инт 32 и то масив (масива се обозначава с [] скоби)
Можем да изпечатаме елементите на масива по няколко начина:
1. с обхождане на елементите с цикъл
for (int i = 0; i &lt carriages.Length; i++)
{
Console.Write($"{carriages[i]} ");
}
Тук завъртаме от 0 (стартиращия индекс на вагоните) и завършваме до дължината на вагоните -1 т.е. 4-1=3 (минус едно е, защото само когато е по малко стига до цифрата -1)
2. втория начин да ги изпечатаме е по-кратък:
Console.WriteLine(string.Join(", ", carriages));
тук викаме метода join на стринга и му подаваме два аргумента - първия е по какво да раздели елементите, а втория е елементите на коя колекция, т.е. самата колекция (carriages).
Първия начин има още една уловка:
for (int i = 0; i &lt = carriages.Length; i++)
{
Console.Write($"{carriages[i]} ");
}
Изписано по този начин ще изпечата следното на конолата:
10 5 506 123
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Program.Main(String[] args) in \demo_version_2\demo_version_2\Program.cs:line 17
Започва цикъла и минава през 0,1,2 и 3 индекс и печата бройката вътре, но тъйкато сме казали до дължината на масива (4) включително (заради равното) то се опитва да намери вагон с номерация 4 но не може тъй като те са само до 3 и гърми с System.IndexOutOfRangeException: Index was outside the bounds of the array. което ще рече - извън границите на масива си.
Можем ли да обходим вече напълнени вагони и да добавим или махнем от тях бройка въглища?
int[] carriages = { 10, 8, 15, 6};
for (int i = 0; i &lt carriages.Length; i++)
{
carriages[i] += 10;
}
Console.WriteLine(string.Join(" ", carriages));
Има и друг начин за обхождане на масив:
int[] carriages = { 10, 8, 15, 6};
foreach (int item in carriages)
{
Console.WriteLine(item);
}
Проблема тук, обаче е ако искаме да добавяме:
int[] carriages = { 10, 8, 15, 6};
foreach (int item in carriages)
{
item += 2;
}
Този пример е невалиден, тъй като във foreach не можем да променяме елементите, можем само да ги четем.
Ако искаме да четем от конзола елементи на масива например разделени със разстояние ще кажем така
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int[] carriages = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
Console.WriteLine(string.Join(" ", carriages));
}
}
задължително трябва да импортнем using System.Linq; защото методите .ToArray() и Select() ще ни се подчертават от конзолата.

Опубликовано:

 

23 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 18   
@lonely513
@lonely513 2 года назад
За 1 вечер разбрах всичко, което в училище се опитват да ми обяснят за 2 години вече. Продължавай със страхотните видеа!
@martinstamenkov6897
@martinstamenkov6897 5 лет назад
Супер полезно за един бърз преговор или за запознаване с материала преди лекция. Продължавайте в същия дух!!! Поздрави :)
@deeznu9942
@deeznu9942 Год назад
omg буквално си life saver, мерси много за тези клипчетааааа
@FfloOow
@FfloOow 4 года назад
Изненадан съм колко разбираемо е. Супер!
@galinkrasimirov
@galinkrasimirov 3 года назад
Много благодаря, на лекцията нищо не разбрах , но сега от теб ми се поизясниха нещата . Хиляди благодарности.!
@danailfilev4398
@danailfilev4398 4 года назад
Супер, браво. Предстои ми fundamentals в СофтУни и вече знам масивите, благодаря!
@ivailogenev7651
@ivailogenev7651 2 года назад
Инес, за 15 минути разбирам това, което в университета за 3 часа ми обясняват, няма я тази тромавост в обясненията, видеята ти са страхотни :) !
@PaulinaGugova
@PaulinaGugova 15 дней назад
Поздравления за инициативата...! Само един теоретично/понятиен въпрос: Можем ли да кажем, вместо “дефолтна“ - първоначална или стойност по подразбиране...или нещо такова?
@YOSICH
@YOSICH 4 года назад
Супер си! продължавай все напред
@user-hr5wg1dw8l
@user-hr5wg1dw8l 2 года назад
супер!
@IvanIvanov-fh5ec
@IvanIvanov-fh5ec 5 лет назад
Браво!
@vkisyov
@vkisyov 4 года назад
Добри примери :) GG!
@shenayeskiali1969
@shenayeskiali1969 4 года назад
Полезно много но например ако искаме да изведем отрицателе елемен от масива?
@codewithfinesse1599
@codewithfinesse1599 4 года назад
Отново трябва да извикаме индекса, под които стои числото (няма значение дали е положително или отрицателно или нула. Ако масива е от стрингове или от обекти също. Извикването по индекс ще даде елемента, стига да имаме такъв индекс
@user-ng2to9wk1o
@user-ng2to9wk1o 2 года назад
За да изведем отрицателния елемент, обхождайки масива, вътре в него ще направим проверка за елемент по-малък от нула.
@user-iy1ql7pv4t
@user-iy1ql7pv4t 3 года назад
Здрасти опитвам се да намеря работа че моята заради прекалено много работа вече не мога да я върша както трябва защото колегите ми ги мързеше много и се изморявам прекалено натоварване и много крадци на алкохол имаше, по добре да работя нещо с компютри! Имам CV и мога да направя мотивационно писмо ако се изисква! Освен това заради извънредното положение работата в екип ми е малко далечна, не искам да работя с повече от двама колеги!
@petargeorgiev4370
@petargeorgiev4370 3 года назад
Далеч сме от мисълта, че обучението може да бъде 15 минути. Едва ли някой може да научи нещо за 15 минс. Тъжно и жалко, че има такива видеа.
@aneliyadrazheva1181
@aneliyadrazheva1181 5 лет назад
Има някакъв проблем с клипчето, забива ми точно на рисунката с вагоните.
Далее
Листове за 15 минути C#
14:29
Просмотров 4,4 тыс.
Методи за 15 минути C#
15:11
Просмотров 9 тыс.
Х.евая доставка 😂
00:23
Просмотров 299 тыс.
Never Troll Shelly🫡 | Brawl Stars
00:10
Просмотров 1,6 млн
While цикъл за 15 минути C#
12:51
Просмотров 4,2 тыс.
Класове и обекти за 15 минути
14:51
Оператори за 15 минути C#
17:00
Просмотров 4,6 тыс.
Ивайло Кенов за 15 минути
12:51
Просмотров 12 тыс.
Променливи за 15 минути C#
8:35
Просмотров 9 тыс.
Виктор Даков за 15 минути
13:48
Просмотров 4,1 тыс.
Масиви в C++
2:26:24
Просмотров 16 тыс.
Х.евая доставка 😂
00:23
Просмотров 299 тыс.