На этом занятии мы познакомимся с такой синтаксической конструкцией как цикл в языке программирования C#. Она позволяет повторять одинаковые действия множество раз. Изучим различные циклы for, foreach, while, узнаем когда их нужно применять и чем они отличаются. А также операторы управления циклом break и continue. 2:30 Начало. Циклы - что это такое 6:20 Цикл for 26:30 Цикл while 36:45 Цикл do...while 40:15 Цикл foreach 51:00 Команда break 52:10 Команда continue 54:50 Вложенные циклы 57:40 Домашнее задание
Некоторые будут писать - что чтоб выполнить дз нужно знать темы которые мы не учили ко-коко.Но я считаю что что это плюс , если ты хороший программист то ты должен не только уметь писать код и пользоваться отладкой,но и уметь искать инфу .Так что это огромный плюс.И еще спасибо вам огромное Вадим!!! , за то что тратите свое время на образование других людей.
В 2020 решил начать учить C# первым языком и крайне рад, что наткнулся благодаря Хауди Хо именно на твой курс. Все объяснения очень понятны, уроки усваиваются легко. Правда с ДЗ приходится возиться, некоторые моменты непонятны и поздно уже задавать вопросы, но гугл помогает, пусть и очень сложно там пока ориентироваться (много сложной информации дает). Спасибо за проделанную работу!
Тоже начал изучать программирование и первым языком выбрал C#. Мне кажется, что сейчас у этого языка очень универсальное применение, а с выходом .net 5.0 еще больше расширится. Вообще планирую освоить Unity
Чёткая последовательность. Вообще не мог в других учебниках разобраться ,че они там за массивы в цикле наполняют. Сдесь же, все стало понятно. Спасибо огромное!!! Это лучший русскоязычный канал по шарпу!+ бесплатный.!!!Поверьте я их немало перелопатил.
Вадим, спасибо Вам огромное за эти уроки!!! Все понятно и интересно объясняете. Но выполняя это ДЗ, столкнулся с проблемой которую сам решить не могу, гугл не помогает. Суть проблемы: Если я наполняю список ListNamber через консоль таким образом: List ListNamber = new List();// Создаем новый список. int vr; // Переменная для передачи значений в список // Блок записи чисел в список. for (var i = 0; i < 15; i++) { Console.WriteLine("Введите целое число. Нажмите Enter: "); while (!int.TryParse(Console.ReadLine(), out vr)) { Console.WriteLine("Ошибка ввода! Введите целое число."); }
ListNamber.Add(vr); } То вывод из списка организованный через foreach : foreach (var i in ListNamber) { Console.WriteLine($"Число {i} в списке:{ ListNamber[i]}"); } выдает ошибку: "System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции." При этом в консоли я вижу вывод всех значений списка, кроме самого первого с индексом 0, всего 14 строк. Причем если сделать проверку: Console.WriteLine($"Число 0 в списке:{ ListNamber[0]}"); то число с индексом 0 выводится. Как я понял, получается что foreach получает из списка верное количество элементов, но вывод начинает не с 0 индекса, а с 1. И последней строкой пытается вывести число с индексом которого нет. ( последний 14, а он пытается вывести 15) Если организовать вывод списка через for, то проблем нет, выводится весь список, завершается без ошибок. Но если я заполняю список данными не из консоли, а например, попробовал в список добавлять итератор цикла: for (var i = 0; i < 15; i++) { ListNamber.Add(i); } То вывод из списка организованный через foreach работает нормально, без ошибок. Помогите понять, в чем может быть причина - глючит VS (у меня 2019 community) или есть какая-то тонкость, которой я не знаю?
Времени прошло конечно не мало, но вдруг кто тоже с этим столкнулся... Нужно более внимательно слушать, что там говорилось о цикле foreach, этот цикл берёт значение из коллекции, а не индекс элемента в коллекции. Например если у элемента с индексом 0 в коллекции будет значение 100, то и в вашей переменной цикла будет значение 100, для получения индекса следует использовать метод у коллекции indexOf(ваша переменная цикла), который и вернёт индекс элемента в коллекции.
Гайс если вы будете там говорить мы это еще не понимаем или еще что-то, то поймите вы будущий программист который будет сталкиваться с проблемами и задачами в коде, поэтому не расслабляемся и просто ищем инфу в интернете, на stack overflow или в документации, или же на крайняк в комментах решения но вы должны понять как это сделалось и как это работает чтобы пойти дальше и учить другое! Удачи тебе будущий программист) Еще вам может помочь это: += составное сложение: a += 10 равносильно a = a + 10 -= составное вычитание: a -= 10 равносильно a = a - 10 *= составное умножение: a *= 10 равносильно a = a * 10 /= составное деление: a /= 10 равносильно a = a / 10 %= прибавить остаток от деления: a %= 10 равносильно a = a + a % 10 &= составное битовое И: a &= b равносильно a = a & b ^= составное исключающее ИЛИ: a ^= b равносильно a = a ^ b |= составное ИЛИ: a |= b равносильно a = a | b ДЗ: List number_list = new List(); Console.WriteLine("Введите 15 целих чисел :"); for (int i = 0; i < 15;) // 1 { string number = Console.ReadLine(); if (int.TryParse(number, out int result)) // 2 { number_list.Add(result); i++; } else { Console.WriteLine("Введите целое число :"); } } int int_sum = 0; for (int i = 0; i < 15; i++) { int_sum += number_list[i]; } Console.WriteLine($"Сумма всех елементов : {int_sum}"); // 3 int number_difference = 0; // 4 int k = 0; while (k < 5) { number_difference -= number_list[k]; k++; } Console.WriteLine($"Разность всех елементов : {number_difference}"); ///// Произведение всех элементов // 5 int c = 0; int composition = 1; do { composition *= number_list[c]; c++; } while (c < 15); Console.WriteLine($"Произведение всех элементов в коллекции: {composition}"); Console.WriteLine("Введённые числа : "); // 6 foreach( int number in number_list) { Console.WriteLine(number); } Console.ReadLine();
Чуток поздновато, но вот моё решение дз, это было приятно пошевелить мозгами static void HomeWorkSeven() { var list = new List(); Console.Write("Введите кол-во желаемых элементов списка - "); int x = int.Parse(Console.ReadLine()); for (int i = 0; i < x; i++) { Console.Write($"Число под номером {i + 1}# - "); bool result = int.TryParse(Console.ReadLine(), out int number); if (result) { list.Add(number); } else { Console.WriteLine("Вы ошиблись"); i--; } } int sum = 0; for (int i = 0; i < list.Count; i++) { sum += list[i]; } Console.WriteLine($" Сумма всех чисел списка = {sum}"); int resum = 0; int j = 0; while (j < list.Count) { resum -= list[j]; j++; } Console.WriteLine($" Разность всех чисел списка = {resum}"); int p = 0; int mulltiplay = 1; do { mulltiplay *= list[p]; p++; } while(p < list.Count); Console.WriteLine($" Произведение всех числе списка = {mulltiplay}"); Console.WriteLine(" "); int l = 0; foreach (int i in list) { Console.WriteLine($"Число под номером {l + 1}# - {i}"); l++; } }
Есть вопрос. А можно ли при использовании foreach каким-либо образом обращаться или менять те элементы списка, которым сейчас равен item? Ведь item присваивает только значение. Но изменить или узнать номер элемента мы не можем, правильно? Особенно, если несколько элементов в списке - одинаковые. То есть всё-таки будет необходимо использовать итератор для этого или есть какие-то методы, позволяющие узнать, который элемент массива сейчас используется и поменять его?
Там,где разность надо такой кусок кода int minus = 0; int j = 1; while (j < array.Length) { minus -= array[j]; j++; } Console.WriteLine("Рiзниця введених вами чисел: " + array[0] + minus); Многие люди переменную j именуют как "0"... і первая итерация получается (minus)0 - array[1] , когда разница должна начинатся с отнятия от первого числа второго...P.S.Если что єто не я такой умній,только учусь...я тоже написал свой код как и другие люди в этом чате,но меня исправил терминатор(ChatGPT) и объяснил почему.
Вот 2 моих варианта с немного разными решениями. Я иначе инициализировал переменные для умножения в первом и втором варианте. Но считает правильно и там и там. Варинат №1: static void Main(string[] args) { List Dates = new List(); Console.WriteLine("Введите 15 целых чисeл"); int DatesContent = 0; for (var i = 0; i < 15; i++) { while (!int.TryParse(Console.ReadLine(), out DatesContent)) { Console.WriteLine("Введи целое число"); } Dates.Add(DatesContent); } int SummResult = 0; for (int i = 0; i < Dates.Count; i++) { SummResult += Dates[i]; } Console.WriteLine("Сумма всех числе:" + SummResult); int SubtResult = Dates[0]; int s = 1; while (s < Dates.Count) { SubtResult -= Dates[s]; s++; } Console.WriteLine("Разность всех числе:" + SubtResult); int m = 1; long MultResult = Dates [0]; do { MultResult *= Dates[m]; m++; } while (m < Dates.Count); Console.WriteLine("Произведение всех числе:" + MultResult); Console.WriteLine("Введенные числа:"); foreach (var All in Dates) { Console.WriteLine(All); } } Вариант №2: static void Main(string[] args) { var list_dz = new List(); int a; Console.WriteLine("Введите 15 целых чисел"); for (var i = 0; i < 15; i++) { while (!int.TryParse(Console.ReadLine(), out a)) { Console.WriteLine("Это не целое число, введите целое число"); } list_dz.Add(a); } Console.Clear(); int addition = 0; for (int i = 0; i < list_dz.Count; i++) { int item = list_dz[i]; addition += item; // увеличивающаяся по ходу выполнения цикла позция в листе } int g = 1; int subtraction = list_dz[0]; while (g < list_dz.Count) { subtraction -= list_dz[g]; // от нулевой позиции листа отнимаем первую и так далее по выполнения цикла g++; } int j = 0; long multiplication = 1; // переменная олжна быть инициирована как 1 do { multiplication *= list_dz[j]; j++; } while (j < list_dz.Count); Console.WriteLine("Сумма всех чисел массива:" + addition); Console.WriteLine("Разность всех элементов массива:" + subtraction); Console.WriteLine("Произведение всех элементов массива:" + multiplication); Console.WriteLine("Введенные числа:"); foreach (int dz_res in list_dz) { Console.WriteLine(dz_res); } Console.ReadLine(); }
Вот моё ДЗ. Долго думал по поводу разности. В итоге создал переменную = 0 + первый айтем умножить на 2. Потом в первой же итерации от этого числа отнимается первый айтем, и тогда второй айтем будет отниматься от первого, а не от 0 или 1, как в других примерах. Для произведения использовал тип переменной long, так как произведение из 15 чисел будет очень большим. Если не запускается, возможно нужно дописать public перед class Program. Код: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Class { class Program { static void Main(string[] args) { // Создаём список int a; var list = new List(); for(var i = 0; i < 15; i++) { while (!int.TryParse(Console.ReadLine(), out a)) // Проверяем, что ввели именно целое число { Console.WriteLine("Это не целое число. Попробуй ещё!"); } list.Add(a); } // Находим сумму чисел int sum = 0; for(var i = 0; i < list.Count; i++) { sum += list[i]; } // Находим разность int dif = 0 + list[0] * 2; int j = 0; while(j < list.Count) { dif -= list[j]; j++; } // Находим произведение long mult = 1; int u = 0; do { mult *= list[u]; u++; } while (u < list.Count); Console.WriteLine("-------------------------"); Console.WriteLine("Сумма чисел: " + sum); Console.WriteLine("-------------------------"); Console.WriteLine("Разность (вычитание): " + dif); Console.WriteLine("-------------------------"); Console.WriteLine("Произведение: " + mult); Console.WriteLine("-------------------------"); // Выводим коллекцию Console.WriteLine("А вот и сами числа: "); foreach (int item in list) { Console.WriteLine(item); } Console.ReadKey(); } } }
Спасибо большое за проделываемый труд! Возник вопрос при реализации произведения: А как можно проверить не привысило-ли вычисляемое значение диапазон int, long или иной другой и пошло по второму-третьему кругу? calc = 1; i = 0; do { calc *= input[i]; i++; } while (i < input.Count); Console.WriteLine(new String('-', 15)); if (calc > int.MaxValue || calc < int.MinValue) //
Вадим здравствуйте , огромное спасибо за канал и за уроки по си шарп. На объяснении циклов начал немного не понимать) // Начну с начала) цикл for : 10 строчка кода - Создаете список . Тут все понятно.11 строчка кода - выполняются условия кода в скобках. т.е создаются переменные 0 2 4 6 8 . 13 строчка кода вот эти пять переменных из строчки 11) 0 2 4 6 8 "отправляются" в список. Если до этого момента не правильно понимаю что произошло в коде поправьте пожалуйста. Вот дальше я точно не понимаю. И так) строчка 16 объявляется новая переменная var или int , которая равна 0 . (тут ясно) list.Count в котором 5 элементов ( за счет строчке 11? те 0 2 4 6 8 ) > 0 и соответственно оставшееся в скобках i++ вообще не понятно что означает 0+1? . Почему тогда при компилировании мы получаем ту же строчку 13? Еще раз огромное спасибо за видео. Надеюсь медленными шагами дойду до последнего )
Давненько хотел изучить c# но забросил и спустя несколько лет решил попробовать снова)) Курс актуален на 2022 год)) мой вариант ДЗ using System; using System.Collections.Generic; namespace Lesson7 { class Program { static void Main(string[] args) { var list = new List(); int Numbering = 1; int Summa = 0; int Difference = 0; int D = 0; int Multiply = 1; int M = 0; Console.WriteLine("Введите 5 целых чисел"); for (int i = 0; i < 5;) { Console.Write(Numbering + "е число: "); string Enter = Console.ReadLine(); Console.Clear(); if (int.TryParse(Enter, out int Number)) { list.Add(Number); Numbering++; i++; } else { Console.WriteLine("Вы ввели не целое число, попробуйте еще раз."); } } Console.WriteLine("Вы ввели следующие числа: "); foreach (var item in list) { Console.Write(item + " "); } Console.WriteLine(); for (int i = 0; i < list.Count; i++) { Summa += list[i]; } Console.WriteLine("Сумма всех чисел: " + Summa); Difference += list[0]; while (D < list.Count) { Difference -= list[D]; D++; } Console.WriteLine("Разность всех чисел:" + (Difference + list[0])); do { Multiply *= list[M]; M++; } while (M < list.Count); Console.WriteLine("Умножение всех чисел:" + Multiply); Console.ReadKey(); } } }
Хоть уже и неактуально, но вот мое ДЗ. Было сложно, но у меня получилось, хоть и подсматривая в комментарии разность и произведение пришлось полностью самой делать, так как у 90% считает неправильно. List ListInt = new List(); Console.WriteLine("Введите количество цифр в коллекции:"); string CountList = Console.ReadLine(); Console.WriteLine($" Введите {CountList} целых чисел, только целых"); for (var i = 0; i < int.Parse(CountList);) { var number = Console.ReadLine(); if (int.TryParse(number, out int num)) { ListInt.Add(num); i++; } else { Console.WriteLine("Введи целое и не строку"); } } Console.WriteLine(" Ваш список:"); foreach (int num1 in ListInt) { Console.WriteLine(num1); }
var sum = 0; for (int i = 0; i < int.Parse(CountList); i++) //сумма чисел в массиве { sum = sum + ListInt[i]; } Console.WriteLine($" Сумма всех чисел в списке: {sum}"); var m = 1; var razn = ListInt[0]; while (m < ListInt.Count) //разность чисел в массиве { razn = razn - ListInt[m]; m++; } Console.WriteLine($" Разность всех чисел в списке: {razn}"); var d = 0; var multiply = 1; do //Произведение чисел в массиве { multiply = multiply * ListInt[d]; d++; } while (d < ListInt.Count); Console.WriteLine($" Произведение всех чисел в списке: {multiply}"); Console.ReadLine();
Здравствуйте, спасибо за урок, у меня проблема с List, а точнее подключением библиотек. Может я что то неправильно делаю, подскажите пожалуйста, извините если тупой вопрос😥
Вадим, я не понял, как можно посчитать сумму членов списка (произведение, разность и соответственно). Еще не понятно, как произвести проверку без try-catch
есть несколько способов это сделать, но если видео посвящено циклу, то например можно использовать любой из операторов для подсчета суммы. // объявляем список var list = new List() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // объявляем переменную куда будет собираться результат var result = 0; // перебираем циклом все элементы коллекции for(int i = 0; i < list.Count; i++) { // объявляем переменную, в которую будет перемещен один элемент из коллекции (перебираются поочереди) var item = list[i]; // добавляем в переменную с результатом текущее значение result += item; } // после этого в переменной result у нас находится сумма всех элементов списка
есть операция сумма (выполнить последовательное сложение всех элементов), а есть операция разность (выполнить последовательное вычитание всех элементов). это не совсем отрицательное значение суммы. например 1 + 2 + 3 + 4 = 10, а 1 - 2 - 3 - 4 = -8
Большое спасибо за урок! Здесь над дз пришлось посидеть чуть больше, чем в прошлых уроках, но, кажется, все верно) На всякий случай скидываю свой способ: static void Main(string[] args) { Console.WriteLine("Введите 15 целых числе, только целых"); var list = new List(); //создаем список int i; for (i = 0; i < 15;) { Console.WriteLine("Введите число"); var result = Console.ReadLine(); if (int.TryParse(result, out int item)) { list.Add(item); i++; } else { Console.WriteLine("Введите целое число"); } } var q = 0; int summa = 0; for (int j = 0; j < list.Count; j++)
{ summa += list[q];
} var d = 0; var raznost = 0; while(d < list.Count) { raznost -= list[d]; d++; } var t = 0; var proizv = list[0]; do { proizv *= list[t]; t++; } while (t < list.Count); foreach (var item in list) //после того, как мы наполнили список 10 случайными числами, создаем переменную item, кладем туда первый элемент, далее выводим на консоль и переходим к следующему элементу коллекции { Console.WriteLine(item); } Console.WriteLine($"Сумма чисел равна {summa}"); Console.WriteLine($"Разность чисел равна {raznost}"); Console.WriteLine($"Произведение чисел равно {proizv}"); Console.ReadLine(); }
Не работает по крайней мере у меня разность и произведение. В разности я так понимаю это число1-число2-.....число15 = результат. А у тебя получается уже первое число с минусом а в моем примере оно положительное. А в произведении я заменил var proizv = list[0] на var proizv = 1. Числа для примера брал первое 10 и остальные 14 оставшихся 1
Как конструкцию с проверкой и присвоением значения элементу списка уместить в условие while?Возможно ли это? int item; var list = new List(); for(var i = 0;i < 15; i++) { Console.WriteLine($"Enter the {i + 1} element of list:"); while(!int.TryParse(Console.ReadLine(),out item)) { Console.WriteLine("Error!Enter the integer"); } list.Add(item); }
Вполне возможно я отдельно их не рассматривал. Это просто более безопасные варианты преобразования переменных, надо будет их рассмотреть отдельно. спасибо
using System; using System.Collections.Generic; namespace ConsoleApp1 { class Program { private static object list; static void Main(string[] args) { var list = new List(); // создаём список int i; for (i = 0; i < 15;) // создаём цикл, который работает пока в списке не будет 15 ед. данных { Console.WriteLine("Введите число"); var result = Console.ReadLine(); if (int.TryParse(result, out int item)) // парсим значение из консоли и преобразуем его в инт { list.Add(item); // если успешно преобразовали то заносим значение из result в список i++; } else { Console.WriteLine("Введите целое число"); // выводим на экран если введены не верные данные } } int j = 0; int summa = 0; while (list.Count > j) { summa += list[j]; j++; } var t = 0; var raznost = 0; do { raznost -= list[t]; t++; } while (t < list.Count); int k; var umnozhit = list[0]; for (k = 1; k < list.Count; k++) umnozhit *= list[k]; Console.WriteLine("Все введенные числа"); foreach (int chisla in list) { Console.WriteLine(chisla); } Console.WriteLine($"Сумма всех чисел {summa}"); Console.WriteLine($"Разность всех чисел {raznost}"); Console.WriteLine($"Произведение всех элементов {umnozhit}"); Console.ReadLine(); } } }
Это нормально, что смотря все уроки, я не могу сделать дз сам? Я вообще не понимаю что делать, а когда смотрю подсказку, сразу соображаю, но всё равно сам сделать не могу.
Как то так(перед сном над кодом особо не парился) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HomeWork7 { class Program { static void Main(string[] args) { int vr, sum = 0, res = 0, mult = 1, i; int[] arr = new int[15]; for (i = 0; i < arr.Length; i++) { if (int.TryParse(Console.ReadLine(), out vr)) { arr[i] = vr; } else { Console.WriteLine("Введено неверное число!"); i--; } } for (i = 0; i < arr.Length; i++) { sum += arr[i]; } i = 0; while (i < arr.Length) { res -= arr[i]; i++; } i = 0; do { mult = mult * arr[i]; i++; } while (i < arr.Length); Console.WriteLine($"Сумма всех элементов массива - {sum}"); Console.WriteLine($"Разность всех элементов массива - {res}"); Console.WriteLine($"Произведение всех элементов массива - {mult}"); foreach (int a in arr) { Console.WriteLine(a); } Console.ReadKey(); } } }
Если оператор break в С# будет располагаться внутри вложенного цикла, и в процессе работы программа дойдёт до выполнения этого оператора, то закончит выполнение ТОЛЬКО вложенный цикл, где находился break, или его "выкинет" из всех "родительских" циклов?
Спасибо за урок. Потратил много времени на решение заданий, понимаю, что нужно сделать, но как дать указание компу пока очень тяжело))) Вот мое решение : using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Учеба { class Program { static void Main(string[] args) { List LimL = new List(); var PerL = 15; for (int i = 1; i
умножение не должно работать в таком случае. Объявлена переменная var Dod = 0; и дальше в цикле Dod *= LimL[ttN]; Получается что 0 умножается на первое введенное число в лист
Решил усложнить себе жизнь и добавил в код деление. Так же до сих пор не понимаю смысл while и do-while, когда есть for и foreach. Ну и во избежание "магического числа" в коде, загнал количество элементов коллекции в константу. Как-то так: class Program { static void Main(string[] args) { var list = new List(); int elementOfList; const int COLLECTION_CAPACITY = 3; Console.WriteLine($"Input {COLLECTION_CAPACITY} elements: "); for (var i = 0; i < COLLECTION_CAPACITY; i++) { while (!int.TryParse(Console.ReadLine(), out elementOfList)) { Console.WriteLine("You should input an integer value!"); } list.Add(elementOfList); } //summ int sum = 0; for (int i = 0; i < list.Count; i++) { sum += list[i]; } //subtraction int subtraction = list[0] * 2; for (int i = 0; i < list.Count; i++) { subtraction -= list[i]; } //multiply int mult = 1; for (int i = 0; i < list.Count; i++) { mult *= list[i]; } //division var div = Math.Pow(list[0], 2); for (var i = 0; i < list.Count; i++) { div /= list[i]; } Console.WriteLine(); foreach (var item in list) { Console.Write(item + " "); } Console.WriteLine(" "); Console.WriteLine($"Summ is: {sum}"); Console.WriteLine($"Subtraction is: {subtraction}"); Console.WriteLine($"Mult is: {mult}"); Console.WriteLine($"Div is: {Math.Round(div, 2)}"); Console.ReadKey(); } }
подскажи как сделать проверку введенных данных от пользователя,не могу понять,нашел через цикл do while но для нее требуется создать переменную и в итоге все данные идут в нее а не в коллекцию
var list = new List(); while(list.Count < 15) { var userInput = Console.ReadLine(); if(int.TryParse(userInput, out int number)) { list.Add(int.Parse(userInput)); } else { Console.WriteLine("Please enter only a number"); } } вроде как работает
@@sergeyanisov319 var list = new List(15); for (int i = 0; i < 15; i++) { int a; do{ Console.WriteLine("введите целое число"); } while (!int.TryParse(Console.ReadLine(), out a)); { list.Add(a); } }
Кстати, на удивление для меня это оказалось достаточно частым вопросом. ну один из примеров реализации может быть такой: var inputs = new List(); const int inputCount = 10; for(int i = 1; i
@@CODEBLOG Перепробовал всё коды, разница получается отнимается от 0, а не от первого числа всё остальные. Не могу никак понять. Уже 5й день пытаюсь перелопатить всё. Может подскажите что-то. Не могу никак на 8й урок перейти пока не успокоюсь
Я знаю что такое сумма всех элементов, но что такое разность всех элементов? В моем понимании разность может быть между двумя числами, но не между 15-ю.
Разность подсмотрел в комментариях) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.WriteLine("Введите 15 целых числе, только целых"); int a; var integer = new List(); for(var i = 0; i < 15 ; i++ ) { if(!int.TryParse(Console.ReadLine(),out a)) { Console.WriteLine("Введи целое и не строку"); } else { integer.Add(a); } } Console.Clear(); for(var i = 0 ; i < integer.Count; i++ ) { int sum = integer.ToArray().Sum(); Console.WriteLine("Сумма: " + sum); break; } int d = 0; int dif = 0; dif += integer[0]; while (d < integer.Count) { dif -= integer[d]; d++; } Console.WriteLine("Разность: " + (dif + integer[0])); var g = 0; int mult = 1; do { mult *= integer[g]; g++; } while (g < integer.Count); Console.WriteLine("Произведение: " + mult); Console.WriteLine("Числа которые вводили: "); foreach(var iteam in integer) { Console.WriteLine(iteam); } Console.ReadLine(); } } }
У многих разность выдаёт просто противоположное по модулю число, поэтому смотрите, как необходимо её оформить: var list = new List(); for (int i = 0; i < 5;) { string numbers = Console.ReadLine(); if (int.TryParse(numbers, out int result)) { list.Add(result); i++; } else { Console.WriteLine("Необходим ввод данных типа int"); } } // Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Список чисел:"); foreach (var item in list) { Console.WriteLine(item); } Console.ResetColor(); // Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Сумма чисел списка: "); for (int i = 0; i < 1; i++) { Console.WriteLine(list.Sum()); } Console.ResetColor(); // Console.ForegroundColor = ConsoleColor.Cyan; var index = 0; var element = 0; element += list[0]; while (index < list.Count) { element -= list[index]; index++; } Console.WriteLine("Разность чисел списка:"); Console.WriteLine(element + list[0]); Console.ResetColor(); // Console.ForegroundColor = ConsoleColor.Yellow; int another_index = 0; int another_element = 1; do { another_element *= list[another_index]; another_index++; } while (another_index < list.Count); Console.WriteLine("Произведение чисел списка:"); Console.WriteLine(another_element); Console.ReadLine(); Console.ResetColor(); //
да, убить 4 часа на это, что-что там себе в голове сложное надумывать, пытаться сделать, как хотел изначально, потом удалить всё и делать, лишь бы работало. Ну потом будет легче))) Спасибо за Вашу работу, нравится очень:) static void Main(string[] args) { first: string[] argss = new string[0]; List strList = new List(); Console.WriteLine("Enter the integer number: "); int i = 0; int s; while (i < 15) { while (!Int32.TryParse(Console.ReadLine(), out s)) { Console.WriteLine("Error, incorrect number was entered, try again: ");
} strList.Add(s.ToString()); i++; }
int sum = get_sum(strList); Console.Write("The sum of all elements = "); Console.WriteLine(sum); int dif = get_dif(strList); Console.Write("The difference of all elements = "); Console.WriteLine(dif); int mul = Get_mul(strList); Console.WriteLine("The multiplication of all elements = "); Console.WriteLine(mul); foreach (var item in strList) { Console.Write(item); Console.WriteLine(" "); } Console.WriteLine("Press ESC to exit or anything else to start program again"); if (!Console.ReadKey().Key.Equals(ConsoleKey.Escape)) { Console.WriteLine(""); goto first; } } static int get_sum(List strList) { int i; int a; int sum = 0; for (i = 0; i < strList.Count; i++) { Int32.TryParse(strList[i], out a); sum += a; } return sum; } static int get_dif(List strList) { int i; int a; int dif = Int32.Parse(strList[0]); for (i = 1; i < strList.Count; i++) { Int32.TryParse(strList[i], out a); dif -= a; } return dif; } static int Get_mul(List strList) { int i = 0; int a; int mul = 1; do { Int32.TryParse(strList[i], out a); mul *= a; i++; } while (i < strList.Count); return mul; } } }
все используются в зависимости от ситуации, но лично мне чаще всего приходилось использовать foreach и for. while - чуть реже, do ... while очень редко
@@CODEBLOG я уже сделала (вроде вчера-позавчера) эту дз, с 15-ю числами от пользователя ) Просто в начале мне показаломь, что Ваш код только первое значение берет от пользователя, а дальше путем ++ добавляет единицу Хотя, может, я не так поняла и там у Вас все значения от пользователя берутся, и так (с i++) просто пишется цикл, который должен означать, что мы берём ровно одно значение от пользователя, крутим цикл, потом берём ещё одно, и так далее
Смотрю через два года после выпуска всех уроков Есть один вопрос Действительно ли эти все уроки помогут в карьере .Net разработчика И есть ли тут люди, которым действительно помогли данные видео?
var list = new List(); int sum = 0, sub = 0, mult = 0, i = 0, n = 0;
Console.WriteLine("Введи 15 целых чисел"); while (list.Count < 15) { string input = Console.ReadLine(); if (int.TryParse(input, out int value)) { list.Add(value); } else { Console.WriteLine("Введите число!"); } } for(var s = 0; s < list.Count; s++) { sum += list[s]; } while (i < list.Count) { sub -= list[i]; } do { mult *= list[n]; n++; } while (mult < list.Count);
Console.WriteLine("Сумма всех чисел " + sum); Console.WriteLine("Разность всех чисел" + sub); Console.WriteLine("Умножение всех чисел" + mult); Console.ReadLine(); foreach (var item in list) { Console.WriteLine(item); } У меня почему то , не отображается на концоле суммаБ вычитание и умножение. В чем проблема?
У тебя проблемы начинаются с этого места: while (i < list.Count) { sub -= list[i]; } Ты забыл указать счётчик (i++) while (i < list.Count) { sub -= list[i]; i++; } Сейчас твой цикл вычитает из переменной sub, которая проинициализирован нулём, первый элемент из списка, затем идёт на проверку условия, а котором переменная (i) никак не изменилась, снова делает вычитание и так до бесконечности
Вторая ошибка кроется в умножении. do { mult *= list[n]; n++; } while (mult < list.Count); Первым делом нужно mult проинициализировать единицей, как и говорил Вадим. а потом: Неправильно указал проверку условия. Нужно же n (счётчик) сверять с list.Count уот так: do { mult *= list[n]; n++; } while (n < list.Count); А то получается что если к примеру указать числа 4,5,... то при выполнении сначала mult станет = 4, потом на следующей итерации 4*5=20, и на этапе проверки условия (20
var list = new List(); while (list.Count < 15) { list.Add(int.Parse(Console.ReadLine())); Console.Clear(); } var summ = 0; for (var i = 0; i < 15; i++) { summ += list[i]; } Console.WriteLine("Сумма всех элементов листа: " + summ); var difference = 0; var b = 0; while (b < list.Count) { difference -= list[b]; b++; } Console.WriteLine("Разность элементов листа: " + difference);
foreach(var item in list) { Console.Write(item + ", "); }
если код делает то, что Вы хотите - значит, работает правильно. Но если хотите сократить, на пример, ненужные штуки (проверки, на пример), которые замедляют процесс или отжирают память, то можно посмотреть варианты домашки под этими видосами или погуглить свой конкретный вопрос, я Так делаю ) Удачи
Долго искал причину неправильной работы цикла do while.У меня индекс выходил за границу list.Потом исправил,получается нельзя один счетчик использовать для цикла while и do while,только если после while не обнулить его? using System; using System.Collections.Generic; namespace CodeBlogHomeWorkCycles { class Program { static void Main(string[] args) { int item; int SubtractionCounter = 0,MultiplyCounter = 0; int addition = 0,subtraction = 0; long multiply = 1; var list = new List(); for(var i = 0;i < 15; i++) { Console.WriteLine($"Enter the {i + 1} element of list:"); while(!int.TryParse(Console.ReadLine(),out item)) { Console.WriteLine("Error!Enter the integer"); } list.Add(item); } for(var AdditionCounter = 0;AdditionCounter < list.Count; AdditionCounter++) { addition += list[AdditionCounter]; } while(SubtractionCounter < list.Count) { subtraction -= list[SubtractionCounter]; SubtractionCounter++; } do { multiply *= list[MultiplyCounter]; MultiplyCounter++; } while (MultiplyCounter < list.Count); Console.WriteLine(" List elements:"); foreach(var i in list) { Console.Write(i + " "); } Console.WriteLine($" Sum is {addition} Sub is {subtraction} Mul is {multiply}"); } } }
Здравствуйте, так правильно? Console.WriteLine("Введите 15 чисел: "); var arrow = new List(); var i = 0; int LimNumber; string num; var sum = 0; while (i < 15) { num = Console.ReadLine(); i++; bool result = int.TryParse(num, out LimNumber); if (result == true) { arrow.Add(Convert.ToInt32(num)); } else { Console.WriteLine("Введен неверный параметр"); break; } } for (i = 0; i < arrow.Count; i++) { sum += arrow[i]; } Console.WriteLine("Сумма чисел " + sum); int diff = 1; i = 0; while (i < arrow.Count) { diff -= arrow[i]; i++; } Console.WriteLine("Разность чисел " + diff); int Pro = 1; i = 0; do { Pro *= arrow[i]; i++; } while (i < arrow.Count); Console.WriteLine("Произведение чисел " + Pro); int[] All = { sum, diff, Pro }; foreach (var Lesson in All) { Console.WriteLine(Lesson); } Console.ReadLine(); }
Не раскрыт вопрос ПОЧЕМУ НЕЛЬЗЯ ИЗМЕНИТЬ элемент коллекции при обходе в цикле foreach. Почему нельзя? Например задача - для каждого элемента коллекции нужно первую букву сделать заглавной или как-то по другому обработать и сохранить результат этой обработки в том же элементе коллекции. Понятно что в данном случае тип данных в коллекции и тип данных полученных после обработки - одинаковый.
Решение с проверками: List list = new List(); while (list.Count < 15) { Console.Write($"Введите {list.Count + 1} положительное целое число: "); if (long.TryParse(Console.ReadLine(), out long result)) { if (result < 0) { Console.WriteLine("Вы ввели отрицательное целое"); } else { list.Add(result); Console.WriteLine(); } } else { Console.WriteLine("Данные некорректны, попробуйте снова "); } } try { Console.WriteLine($"Сумма всех элементов коллекции = {checked(list.Aggregate((x, y) => x + y))}"); } catch (OverflowException e) { Console.WriteLine($"Сумма всех элементов коллекции выходит за пределы максимального значения: +{long.MaxValue}"); } try { Console.WriteLine($"Разность всех элементов коллекции = {checked(list.Aggregate((x, y) => x - y))}"); } catch (OverflowException e) { Console.WriteLine($"Разность всех элементов коллекции меньше минимально допустимого значения: {long.MinValue}"); } try { Console.WriteLine($"Произведение всех элементов коллекции = {checked(list.Aggregate((x, y) => x * y))}"); } catch (OverflowException e) { Console.WriteLine($"Произведение всех элементов коллекции выходит за пределы возможных значений от {long.MinValue} до +{long.MaxValue}"); } Console.WriteLine("Исходная коллекция: "); list.ForEach(f => { Console.WriteLine(f); }); Console.ReadKey();
Я пошел несколько по другому пути, ибо конструкций других учеников пока не понимаю. Кстати, привет из 2023) using System; using System.Collections.Generic; namespace CsharpCourse { internal class Program { public static void Main(string[] args) { Console.WriteLine ("первое"); int x = Convert.ToInt32(Console.ReadLine()); Console.WriteLine ("второе"); int y = Convert.ToInt32(Console.ReadLine()); Console.WriteLine ("третье"); int z = Convert.ToInt32(Console.ReadLine()); Console.WriteLine ("четвертое"); int h = Convert.ToInt32(Console.ReadLine()); Console.WriteLine ("пятое"); int p = Convert.ToInt32(Console.ReadLine());
var numbers = new List(); numbers.Add(x); numbers.Add(y); numbers.Add(z); numbers.Add(h);
numbers.Add(p);
int sum = 0; int raznica = 0; int proizvedenie = 1; for(int i = 0; i < numbers.Count; i++) { sum += numbers[i]; } Console.WriteLine($"Сумма чисел равна {sum}");
int k = 0; while(k < 5) { raznica -= numbers[k]; k++; } Console.WriteLine($"разница чисел равна {raznica}"); int prod = 1; foreach (int value in numbers) { prod *= value; } Console.WriteLine($"произведение чисел равно {prod}");
class Program { static void Main() { int substraction = 0; int b = 0; int c = 0; int sum = 0; int multiplication = 1; var list = new List(5); Console.WriteLine("write 5 numbers "); for (int i = 0; i < 5; i++) { list.Add(Convert.ToInt16(Console.ReadLine())); } for (int i = 0; i < list.Count; i++) { sum = sum + list[i];
домашка проверьте пожалуйста ) Что правильно, что неправильно? using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography.X509Certificates; namespace sosukiiHOMEWORKforCodeBlog_for__foreach__while_ { class Program { static void Main(string[] args) { List oppai = new List(); int result; for (int i = 0; i
using LanguageExt.TypeClasses; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lessen7 { class Program {
static void Main(string[] args) { var list = new List(); int sum = 0; for (var i = 0; i < 15;) { string a = Console.ReadLine(); if (int.TryParse(a, out int c)) { list.Add(c); Console.WriteLine("вы ввели:" + c); i++; } else { Console.WriteLine("введите числовое значение"); }
} for (var i = 0; i < list.Count;) { Console.WriteLine(list[i]); sum += list[i]; i++; Console.WriteLine("сумма элементов:" + sum); } var y = 0; int dif = 0; do { dif -= list[y]; y++; Console.WriteLine("разность элементов:" + dif); } while (y < list.Count); var mult = 1; foreach (var i in list) mult *= i; { Console.WriteLine("произведение элементов:" + mult); } Console.ReadLine(); }
вот дз using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; using System.Collections; using System.Globalization; using System.Security.Policy; using System.Security.Cryptography; namespace dziyroki { class Program { static void Main() { var list = new List(); int sum = 0; int raznost = 0; string str; int j; int prozvod = 1; for (int i = 0; i < 5; i++) { go: Console.WriteLine("введите целое число: "); str = Console.ReadLine(); if (int.TryParse(str, out j)) { Console.WriteLine("вы ввели верное число! "); list.Add(j); } else { Console.WriteLine("неверный ввод"); goto go; } } Console.WriteLine("сумма всех элементов: "); for (int i = 0; i < 5; i++) { sum += list[i]; } raznost = list[1]; Console.WriteLine(sum); Console.WriteLine("разность всех элементов "); int p = 0; while (p < list.Count) { raznost -= list[p]; p++; } Console.WriteLine(raznost); Console.WriteLine("произведение всех чисед:"); int o = 0; do { prozvod *= list[o]; o++; } while (o < list.Count); Console.WriteLine(prozvod); Console.WriteLine("сама коллекция "); foreach (int item in list) { Console.WriteLine(item); } } } }
Толи я дурак толи лыжи не едут. Все задания выполнил кроме одного - это проверка данных от пользователя. Использовал цикл while вложенный в if else, и результат булевой операции в условии while напрочь отказывается воспринимать, подчеркивает красным, а ИДЕшка предлагает создать новый класс, но в этом я пока не разбираюсь. Что не так, никак не пойму...
Ну в таких случаях нужно как минимум скидывать код :) var input = ""; while(true) { input = Console.ReadLine(); if(input == "Команда которая тебе нужна") // если команд много используй switch { // делаешь то, что тебе нужно. break; } else { Console.WriteLine("введена неправильная команда"); } }
@@CODEBLOG благодарю, замечание совершенно в точку:) я примерно к такому же решению и пришел, примерно через час, вот что комментарий житворящий делает)) моё почтение за обратную оперативную связь 👍
static int i, n; static int sum, diff, product = 1; static void Main(string[] args) { var list = new List(); Console.WriteLine("Fill the list with 15 integer numbers: "); while (list.Count < 15) { var temp = Console.ReadLine(); if(int.TryParse(temp, out int item)) list.Add(item); else Console.WriteLine("it's not integer number"); } for (int k = 0; k < list.Count; k++) sum += list[k]; while (i < list.Count) { diff -= list[i]; i++; } do { product *= list[n]; n++; } while (n < list.Count); Console.WriteLine("Sum of all elements: " + sum); Console.WriteLine("Difference of all elements: " + diff); Console.WriteLine("Product of all elements: " + product); foreach (var num in list) { Console.WriteLine(num); } }
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp3 { class Program {
static void Main(string[] args) { var list = new List(); int sum = 0; int fresh = 1; int i = 0; int dif = 0; int c = 0; for (i = 0; i < 3; i++) { try { list.Add(int.Parse(Console.ReadLine())); } catch (Exception) { Console.WriteLine("Введите целое число"); } } for (i = 0; i < list.Count; i++) { sum += list[i]; } Console.WriteLine("Сумма чисел коллекции равна" + " " + sum); int b = 1; dif = list.First(); while (b < list.Count) { dif -= list[b]; b++; } Console.WriteLine("Разница чисел коллекции равно" + " " + dif); do { fresh = fresh * list[c]; c++; } while (c < list.Count); Console.WriteLine("Произведение чисел коллекции равно" + " " + fresh); foreach (var item in list) { Console.WriteLine(item); }
Домашнее задание: // Объявляем список numbers List numbers = new List(); // Заполняем числами список Console.WriteLine("Введите 5 целых чисел"); for (int i = 0; i < 5;) { string num = Console.ReadLine(); // Читаем строку с числами if (int.TryParse(num, out int result)) // Если удается парсить строку в целое число { numbers.Add(result); // то добавляем это число в список i++; } else { Console.WriteLine("Введите целое число"); } } // Вывод списка Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Ваш список из 5 целых чисел:"); foreach (int i in numbers) { Console.WriteLine(i); } Console.ResetColor(); // Сумма всех элементов коллекции int numbers_sum = 0; for (int i = 0; i < 5; i++) { numbers_sum += numbers[i]; } Console.WriteLine($"Сумма элементов в коллекции: {numbers_sum}"); // Разность всех элементов int dif = 0; int k = 0; while (k < 5) { dif -= numbers[k]; k++; } Console.WriteLine($"Разность элементов в коллекции: {dif}"); // Произведение всех элементов int c = 0; int composition = 1; do { composition *= numbers[c]; c++; } while (c < 5); Console.WriteLine($"Произведение всех элементов в коллекции: {composition}"); Console.ReadLine();
@@haskell276 Если ты действительно пытаешься сделать это месяц, то у меня для тебя плохие новости. если проблема с проверкой на число то держи решение, int[] list = new int[15]; for(var i = 0; i
Привет из 2021 Моё видение дз такое: static void Main(string[] args) { var digits = new List(); for(var i = 0; i < 15; i++) { if((int.TryParse(Console.ReadLine(), out int value) && value % 1 == 0)) { digits.Add(value); } else { Console.WriteLine("Попробуйте ввести заново"); continue; } } int sum = digits[0]; for(var i = 1; i < digits.Count; i++) { sum += digits[i]; } Console.WriteLine($"Сумма всех элементов равна: {sum}"); int digitsDifference = digits[0]; int difCount = 1; while(difCount < digits.Count) { digitsDifference -= digits[difCount]; difCount++; } Console.WriteLine($"Разность всех элементов равна: {digitsDifference}"); long digitsComposition = digits[0]; int compCount = 1; do { digitsComposition *= digits[compCount]; compCount++; } while (compCount < digits.Count); Console.WriteLine($"Произведение всех элементов равно: {digitsComposition}"); Console.WriteLine(); foreach(int digit in digits) { Console.Write(digit + " "); } }
ГДЗ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace ConsoleApp4 { class Program { static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Введите 5 случайних целых чисел"); int Min = 0; int Plus = 0; List Num = new List(); for (int i = 0; i < 5 ; i++) { string Enter = ( Console.ReadLine()); if (int.TryParse(Enter, out int result)) { Num.Add(result);
Ловите мой говнокод - главное своими руками и мозгами и то что работает) using System; using System.Collections.Generic; namespace Dron.HelloWorld { internal class Program { static void Main(string[] args) { Console.WriteLine("Добро пожаловать! Введи пожалуйста 15 числел!"); int sum = 0; int minus = 0; int times = 1; List list = new List(); for (int i = 0; i
На этом занятии мы познакомимся с такой синтаксической конструкцией как цикл в языке программирования C#. Она позволяет повторять одинаковые действия множество раз. Изучим различные циклы for, foreach, while, узнаем когда их нужно применять и чем они отличаются. А также операторы управления циклом break и continue.
2:30 Начало. Циклы - что это такое
6:20 Цикл for
26:30 Цикл while
36:45 Цикл do...while
40:15 Цикл foreach
51:00 Команда break
52:10 Команда continue
54:50 Вложенные циклы
57:40 Домашнее задание
Некоторые будут писать - что чтоб выполнить дз нужно знать темы которые мы не учили ко-коко.Но я считаю что что это плюс , если ты хороший программист то ты должен не только уметь писать код и пользоваться отладкой,но и уметь искать инфу .Так что это огромный плюс.И еще спасибо вам огромное Вадим!!! , за то что тратите свое время на образование других людей.
так-то да, но он еще это слишком сложным языком говорит. Я никак не пойму для чего парс нужен хоть и искала инфу, а тут все пишут парс
В 2020 решил начать учить C# первым языком и крайне рад, что наткнулся благодаря Хауди Хо именно на твой курс. Все объяснения очень понятны, уроки усваиваются легко. Правда с ДЗ приходится возиться, некоторые моменты непонятны и поздно уже задавать вопросы, но гугл помогает, пусть и очень сложно там пока ориентироваться (много сложной информации дает).
Спасибо за проделанную работу!
Тоже начал изучать программирование и первым языком выбрал C#. Мне кажется, что сейчас у этого языка очень универсальное применение, а с выходом .net 5.0 еще больше расширится. Вообще планирую освоить Unity
Как успехи
@@Xr0sS999 как успехи
@@rustem7756 Нууу... Было неплохо, но ушел в Product Management, однако изучения C# было явным плюсом)
Жара. Очень здорово что на курсе уделяешь время не только коду, но и тому как лучше делать для других людей.
Чёткая последовательность. Вообще не мог в других учебниках разобраться ,че они там за массивы в цикле наполняют. Сдесь же, все стало понятно. Спасибо огромное!!! Это лучший русскоязычный канал по шарпу!+ бесплатный.!!!Поверьте я их немало перелопатил.
До этого урока все было максимально ясно и понятно, а теперь у меня появились затупы :)
Пересматриваю видео уже 3й раз)
А в чем именно проблема? что не понятно?
@@CODEBLOG очень все запутанно(для меня) , сразу все не понять
Привет из 2021, твои видео до сих пор актуальные, спасибо ща такой подробный курс, ты крутой)
я из 22 года)
лучше курса ещё не нашёл
Жаль, что поздно начал смотреть, и приходится смотреть только записи)
ну сейчас идет цикл CLR via C#, тоже прямые эфиры )
@@CODEBLOG а я и на них опоздал, смотрю вечерами на пролет.
@@eugenekrutoy1475 Тоже самое 😉✌️
Жиза…
Ахах,опоздали они...за себя промолчу)))
Поставил себе цель на карантине научиться делать проги на C#. Посмотрел урок Хауди Хо как выучить C# и вот я тут. Спасибо большое за уроки, Вадим.
Хорошая цель! Успехов в изучении
и как успехи?
Как успехи
Вадим, спасибо Вам огромное за эти уроки!!! Все понятно и интересно объясняете.
Но выполняя это ДЗ, столкнулся с проблемой которую сам решить не могу, гугл не помогает.
Суть проблемы:
Если я наполняю список ListNamber через консоль таким образом:
List ListNamber = new List();// Создаем новый список.
int vr; // Переменная для передачи значений в список
// Блок записи чисел в список.
for (var i = 0; i < 15; i++)
{
Console.WriteLine("Введите целое число. Нажмите Enter: ");
while (!int.TryParse(Console.ReadLine(), out vr))
{
Console.WriteLine("Ошибка ввода! Введите целое число.");
}
ListNamber.Add(vr);
}
То вывод из списка организованный через foreach :
foreach (var i in ListNamber)
{
Console.WriteLine($"Число {i} в списке:{ ListNamber[i]}");
}
выдает ошибку: "System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции."
При этом в консоли я вижу вывод всех значений списка, кроме самого первого с индексом 0, всего 14 строк.
Причем если сделать проверку:
Console.WriteLine($"Число 0 в списке:{ ListNamber[0]}");
то число с индексом 0 выводится.
Как я понял, получается что foreach получает из списка верное количество элементов, но вывод начинает не с 0 индекса, а с 1.
И последней строкой пытается вывести число с индексом которого нет. ( последний 14, а он пытается вывести 15)
Если организовать вывод списка через for, то проблем нет, выводится весь список, завершается без ошибок.
Но если я заполняю список данными не из консоли, а например, попробовал в список добавлять итератор цикла:
for (var i = 0; i < 15; i++)
{
ListNamber.Add(i);
}
То вывод из списка организованный через foreach работает нормально, без ошибок.
Помогите понять, в чем может быть причина - глючит VS (у меня 2019 community) или есть какая-то тонкость, которой я не знаю?
Времени прошло конечно не мало, но вдруг кто тоже с этим столкнулся...
Нужно более внимательно слушать, что там говорилось о цикле foreach, этот цикл берёт значение из коллекции, а не индекс элемента в коллекции.
Например если у элемента с индексом 0 в коллекции будет значение 100, то и в вашей переменной цикла будет значение 100, для получения индекса следует использовать метод у коллекции indexOf(ваша переменная цикла), который и вернёт индекс элемента в коллекции.
Гайс если вы будете там говорить мы это еще не понимаем или еще что-то, то поймите вы будущий программист который будет сталкиваться с проблемами и задачами в коде, поэтому не расслабляемся и просто ищем инфу в интернете, на stack overflow или в документации, или же на крайняк в комментах решения но вы должны понять как это сделалось и как это работает чтобы пойти дальше и учить другое! Удачи тебе будущий программист)
Еще вам может помочь это:
+= составное сложение: a += 10 равносильно a = a + 10
-= составное вычитание: a -= 10 равносильно a = a - 10
*= составное умножение: a *= 10 равносильно a = a * 10
/= составное деление: a /= 10 равносильно a = a / 10
%= прибавить остаток от деления: a %= 10 равносильно a = a + a % 10
&= составное битовое И: a &= b равносильно a = a & b
^= составное исключающее ИЛИ: a ^= b равносильно a = a ^ b
|= составное ИЛИ: a |= b равносильно a = a | b
ДЗ:
List number_list = new List();
Console.WriteLine("Введите 15 целих чисел :");
for (int i = 0; i < 15;) // 1
{
string number = Console.ReadLine();
if (int.TryParse(number, out int result)) // 2
{
number_list.Add(result);
i++;
}
else
{
Console.WriteLine("Введите целое число :");
}
}
int int_sum = 0;
for (int i = 0; i < 15; i++)
{
int_sum += number_list[i];
}
Console.WriteLine($"Сумма всех елементов : {int_sum}"); // 3
int number_difference = 0; // 4
int k = 0;
while (k < 5)
{
number_difference -= number_list[k];
k++;
}
Console.WriteLine($"Разность всех елементов : {number_difference}");
///// Произведение всех элементов // 5
int c = 0;
int composition = 1;
do
{
composition *= number_list[c];
c++;
}
while (c < 15);
Console.WriteLine($"Произведение всех элементов в коллекции: {composition}");
Console.WriteLine("Введённые числа : "); // 6
foreach( int number in number_list)
{
Console.WriteLine(number);
}
Console.ReadLine();
Спасибо за курс , пока все понимаю)
Спасибо вам огромное за ваши замечательные уроки, спасибо.
Как раз пытался сегодня вспомнить слово Энтропия. Спс.
Соответственно,все прекрасно.спасибо.
Очень хорошо объясняешь
Только начал смотреть Ваш курс) Жалко , что только сейчас. Спасибо, Вадим!
Рад, что присоединился ) успехов в изучении )
Здравствуйте, как успехи?
Нелли Чебан хахахахах, как бы не было смешно. Я перешёл на питон)))))
Чуток поздновато, но вот моё решение дз, это было приятно пошевелить мозгами
static void HomeWorkSeven()
{
var list = new List();
Console.Write("Введите кол-во желаемых элементов списка - ");
int x = int.Parse(Console.ReadLine());
for (int i = 0; i < x; i++)
{
Console.Write($"Число под номером {i + 1}# - ");
bool result = int.TryParse(Console.ReadLine(), out int number);
if (result)
{
list.Add(number);
}
else
{
Console.WriteLine("Вы ошиблись");
i--;
}
}
int sum = 0;
for (int i = 0; i < list.Count; i++)
{
sum += list[i];
}
Console.WriteLine($"
Сумма всех чисел списка = {sum}");
int resum = 0;
int j = 0;
while (j < list.Count)
{
resum -= list[j];
j++;
}
Console.WriteLine($"
Разность всех чисел списка = {resum}");
int p = 0;
int mulltiplay = 1;
do
{
mulltiplay *= list[p];
p++;
}
while(p < list.Count);
Console.WriteLine($"
Произведение всех числе списка = {mulltiplay}");
Console.WriteLine("
");
int l = 0;
foreach (int i in list)
{
Console.WriteLine($"Число под номером {l + 1}# - {i}");
l++;
}
}
Большое спасибо за материал!
Спасибо большое за вашу работу, очень полезный материал
Всегда пожалуйста! Рад помочь )
Так вроде бы правильно подсчитывает разницу:
int d = 0;
int difference = 0;
difference += list[0];
while(d < list.Count)
{
difference -= list[d];
d++;
}
Console.WriteLine("Difference: " + (difference + list[0]));
Есть вопрос. А можно ли при использовании foreach каким-либо образом обращаться или менять те элементы списка, которым сейчас равен item? Ведь item присваивает только значение. Но изменить или узнать номер элемента мы не можем, правильно? Особенно, если несколько элементов в списке - одинаковые. То есть всё-таки будет необходимо использовать итератор для этого или есть какие-то методы, позволяющие узнать, который элемент массива сейчас используется и поменять его?
домашка на 57:37 ~ !
отличные ролики, лайк
Там,где разность надо такой кусок кода
int minus = 0;
int j = 1;
while (j < array.Length)
{
minus -= array[j];
j++;
}
Console.WriteLine("Рiзниця введених вами чисел: " + array[0] + minus);
Многие люди переменную j именуют как "0"... і первая итерация получается (minus)0 - array[1] , когда разница должна начинатся с отнятия от первого числа второго...P.S.Если что єто не я такой умній,только учусь...я тоже написал свой код как и другие люди в этом чате,но меня исправил терминатор(ChatGPT) и объяснил почему.
Вот 2 моих варианта с немного разными решениями.
Я иначе инициализировал переменные для умножения в первом и втором варианте. Но считает правильно и там и там.
Варинат №1:
static void Main(string[] args)
{
List Dates = new List();
Console.WriteLine("Введите 15 целых чисeл");
int DatesContent = 0;
for (var i = 0; i < 15; i++)
{
while (!int.TryParse(Console.ReadLine(), out DatesContent))
{
Console.WriteLine("Введи целое число");
}
Dates.Add(DatesContent);
}
int SummResult = 0;
for (int i = 0; i < Dates.Count; i++)
{
SummResult += Dates[i];
}
Console.WriteLine("Сумма всех числе:" + SummResult);
int SubtResult = Dates[0];
int s = 1;
while (s < Dates.Count)
{
SubtResult -= Dates[s];
s++;
}
Console.WriteLine("Разность всех числе:" + SubtResult);
int m = 1;
long MultResult = Dates [0];
do
{
MultResult *= Dates[m];
m++;
}
while (m < Dates.Count);
Console.WriteLine("Произведение всех числе:" + MultResult);
Console.WriteLine("Введенные числа:");
foreach (var All in Dates)
{
Console.WriteLine(All);
}
}
Вариант №2:
static void Main(string[] args)
{
var list_dz = new List();
int a;
Console.WriteLine("Введите 15 целых чисел");
for (var i = 0; i < 15; i++)
{
while (!int.TryParse(Console.ReadLine(), out a))
{
Console.WriteLine("Это не целое число, введите целое число");
}
list_dz.Add(a);
}
Console.Clear();
int addition = 0;
for (int i = 0; i < list_dz.Count; i++)
{
int item = list_dz[i];
addition += item; // увеличивающаяся по ходу выполнения цикла позция в листе
}
int g = 1;
int subtraction = list_dz[0];
while (g < list_dz.Count)
{
subtraction -= list_dz[g]; // от нулевой позиции листа отнимаем первую и так далее по выполнения цикла
g++;
}
int j = 0;
long multiplication = 1; // переменная олжна быть инициирована как 1
do
{
multiplication *= list_dz[j];
j++;
}
while (j < list_dz.Count);
Console.WriteLine("Сумма всех чисел массива:" + addition);
Console.WriteLine("Разность всех элементов массива:" + subtraction);
Console.WriteLine("Произведение всех элементов массива:" + multiplication);
Console.WriteLine("Введенные числа:");
foreach (int dz_res in list_dz)
{
Console.WriteLine(dz_res);
}
Console.ReadLine();
}
Вот моё ДЗ. Долго думал по поводу разности. В итоге создал переменную = 0 + первый айтем умножить на 2. Потом в первой же итерации от этого числа отнимается первый айтем, и тогда второй айтем будет отниматься от первого, а не от 0 или 1, как в других примерах.
Для произведения использовал тип переменной long, так как произведение из 15 чисел будет очень большим.
Если не запускается, возможно нужно дописать public перед class Program. Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Class
{
class Program
{
static void Main(string[] args)
{
// Создаём список
int a;
var list = new List();
for(var i = 0; i < 15; i++)
{
while (!int.TryParse(Console.ReadLine(), out a)) // Проверяем, что ввели именно целое число
{
Console.WriteLine("Это не целое число. Попробуй ещё!");
}
list.Add(a);
}
// Находим сумму чисел
int sum = 0;
for(var i = 0; i < list.Count; i++)
{
sum += list[i];
}
// Находим разность
int dif = 0 + list[0] * 2;
int j = 0;
while(j < list.Count)
{
dif -= list[j];
j++;
}
// Находим произведение
long mult = 1;
int u = 0;
do
{
mult *= list[u];
u++;
} while (u < list.Count);
Console.WriteLine("-------------------------");
Console.WriteLine("Сумма чисел: " + sum);
Console.WriteLine("-------------------------");
Console.WriteLine("Разность (вычитание): " + dif);
Console.WriteLine("-------------------------");
Console.WriteLine("Произведение: " + mult);
Console.WriteLine("-------------------------");
// Выводим коллекцию
Console.WriteLine("А вот и сами числа: ");
foreach (int item in list)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
}
возможно в части умножения стоит умножать не на 2 а на 1 ?
и тогда получается если задать все единицы то результат -14
или я чего-то не понимаю? -_-
Продолжай , надеюсь ты дойдешь дальше основ.
надюсь, я тоже
Спасибо, хороший урок. Только я не понял что такое c#
спасибо за видео!
Добрый день, такой вопрос можно ли перевести всплывающие подсказки на русский, а то с английским некоторые трудности?
Спасибо большое за проделываемый труд! Возник вопрос при реализации произведения:
А как можно проверить не привысило-ли вычисляемое значение диапазон int, long или иной другой и пошло по второму-третьему кругу?
calc = 1;
i = 0;
do
{
calc *= input[i];
i++;
}
while (i < input.Count);
Console.WriteLine(new String('-', 15));
if (calc > int.MaxValue || calc < int.MinValue)
//
Вадим здравствуйте , огромное спасибо за канал и за уроки по си шарп. На объяснении циклов начал немного не понимать) // Начну с начала) цикл for : 10 строчка кода - Создаете список . Тут все понятно.11 строчка кода - выполняются условия кода в скобках. т.е создаются переменные 0 2 4 6 8 . 13 строчка кода вот эти пять переменных из строчки 11) 0 2 4 6 8 "отправляются" в список. Если до этого момента не правильно понимаю что произошло в коде поправьте пожалуйста. Вот дальше я точно не понимаю. И так) строчка 16 объявляется новая переменная var или int , которая равна 0 . (тут ясно) list.Count в котором 5 элементов ( за счет строчке 11? те 0 2 4 6 8 ) > 0 и соответственно оставшееся в скобках i++ вообще не понятно что означает 0+1? . Почему тогда при компилировании мы получаем ту же строчку 13? Еще раз огромное спасибо за видео. Надеюсь медленными шагами дойду до последнего )
Спасибо!
Всегда пожалуйста )
спасибо
Давненько хотел изучить c# но забросил и спустя несколько лет решил попробовать снова)) Курс актуален на 2022 год)) мой вариант ДЗ
using System;
using System.Collections.Generic;
namespace Lesson7
{
class Program
{
static void Main(string[] args)
{
var list = new List();
int Numbering = 1;
int Summa = 0;
int Difference = 0;
int D = 0;
int Multiply = 1;
int M = 0;
Console.WriteLine("Введите 5 целых чисел");
for (int i = 0; i < 5;)
{
Console.Write(Numbering + "е число: ");
string Enter = Console.ReadLine();
Console.Clear();
if (int.TryParse(Enter, out int Number))
{
list.Add(Number);
Numbering++;
i++;
}
else
{
Console.WriteLine("Вы ввели не целое число, попробуйте еще раз.");
}
}
Console.WriteLine("Вы ввели следующие числа: ");
foreach (var item in list)
{
Console.Write(item + " ");
}
Console.WriteLine();
for (int i = 0; i < list.Count; i++)
{
Summa += list[i];
}
Console.WriteLine("Сумма всех чисел: " + Summa);
Difference += list[0];
while (D < list.Count)
{
Difference -= list[D];
D++;
}
Console.WriteLine("Разность всех чисел:" + (Difference + list[0]));
do
{
Multiply *= list[M];
M++;
}
while (M < list.Count);
Console.WriteLine("Умножение всех чисел:" + Multiply);
Console.ReadKey();
}
}
}
Хоть уже и неактуально, но вот мое ДЗ. Было сложно, но у меня получилось, хоть и подсматривая в комментарии разность и произведение пришлось полностью самой делать, так как у 90% считает неправильно.
List ListInt = new List();
Console.WriteLine("Введите количество цифр в коллекции:");
string CountList = Console.ReadLine();
Console.WriteLine($"
Введите {CountList} целых чисел, только целых");
for (var i = 0; i < int.Parse(CountList);)
{
var number = Console.ReadLine();
if (int.TryParse(number, out int num))
{
ListInt.Add(num);
i++;
}
else
{
Console.WriteLine("Введи целое и не строку");
}
}
Console.WriteLine("
Ваш список:");
foreach (int num1 in ListInt)
{
Console.WriteLine(num1);
}
var sum = 0;
for (int i = 0; i < int.Parse(CountList); i++) //сумма чисел в массиве
{
sum = sum + ListInt[i];
}
Console.WriteLine($"
Сумма всех чисел в списке:
{sum}");
var m = 1;
var razn = ListInt[0];
while (m < ListInt.Count) //разность чисел в массиве
{
razn = razn - ListInt[m];
m++;
}
Console.WriteLine($"
Разность всех чисел в списке:
{razn}");
var d = 0;
var multiply = 1;
do //Произведение чисел в массиве
{
multiply = multiply * ListInt[d];
d++;
}
while (d < ListInt.Count);
Console.WriteLine($"
Произведение всех чисел в списке:
{multiply}");
Console.ReadLine();
Здравствуйте, спасибо за урок, у меня проблема с List, а точнее подключением библиотек. Может я что то неправильно делаю, подскажите пожалуйста, извините если тупой вопрос😥
Вадим, я не понял, как можно посчитать сумму членов списка (произведение, разность и соответственно). Еще не понятно, как произвести проверку без try-catch
есть несколько способов это сделать, но если видео посвящено циклу, то например можно использовать любой из операторов для подсчета суммы.
// объявляем список
var list = new List() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// объявляем переменную куда будет собираться результат
var result = 0;
// перебираем циклом все элементы коллекции
for(int i = 0; i < list.Count; i++)
{
// объявляем переменную, в которую будет перемещен один элемент из коллекции (перебираются поочереди)
var item = list[i];
// добавляем в переменную с результатом текущее значение
result += item;
}
// после этого в переменной result у нас находится сумма всех элементов списка
Спасибо за понятный и развернутый ответ)
@@CODEBLOG можно же сразу написать result += list[i];
Здравствуйте, буду очень благодарен, если поясните понятие "разность всех элементов". Правильно ли я понял, что это отрицательное значение суммы?
Привет. к сожалению уже давно записывал видео и без контекста сложно вспомнить, можешь тайм код скинуть или по подробнее написать про что я говорил?
@@CODEBLOG дз, нужно расписать разность всех элементов
есть операция сумма (выполнить последовательное сложение всех элементов), а есть операция разность (выполнить последовательное вычитание всех элементов). это не совсем отрицательное значение суммы. например 1 + 2 + 3 + 4 = 10, а 1 - 2 - 3 - 4 = -8
Большое спасибо за урок! Здесь над дз пришлось посидеть чуть больше, чем в прошлых уроках, но, кажется, все верно) На всякий случай скидываю свой способ:
static void Main(string[] args)
{
Console.WriteLine("Введите 15 целых числе, только целых");
var list = new List(); //создаем список
int i;
for (i = 0; i < 15;)
{
Console.WriteLine("Введите число");
var result = Console.ReadLine();
if (int.TryParse(result, out int item))
{
list.Add(item);
i++;
}
else
{
Console.WriteLine("Введите целое число");
}
}
var q = 0;
int summa = 0;
for (int j = 0; j < list.Count; j++)
{
summa += list[q];
}
var d = 0;
var raznost = 0;
while(d < list.Count)
{
raznost -= list[d];
d++;
}
var t = 0;
var proizv = list[0];
do
{
proizv *= list[t];
t++;
}
while (t < list.Count);
foreach (var item in list) //после того, как мы наполнили список 10 случайными числами, создаем переменную item, кладем туда первый элемент, далее выводим на консоль и переходим к следующему элементу коллекции
{
Console.WriteLine(item);
}
Console.WriteLine($"Сумма чисел равна {summa}");
Console.WriteLine($"Разность чисел равна {raznost}");
Console.WriteLine($"Произведение чисел равно {proizv}");
Console.ReadLine();
}
Не работает по крайней мере у меня разность и произведение. В разности я так понимаю это число1-число2-.....число15 = результат. А у тебя получается уже первое число с минусом а в моем примере оно положительное.
А в произведении я заменил var proizv = list[0] на var proizv = 1.
Числа для примера брал первое 10 и остальные 14 оставшихся 1
👎 хи-хи ха-ха
@@БогданЦиганок-з9щ НЕРФ МАЙНЕР
Как конструкцию с проверкой и присвоением значения элементу списка уместить в условие while?Возможно ли это?
int item;
var list = new List();
for(var i = 0;i < 15; i++)
{
Console.WriteLine($"Enter the {i + 1} element of list:");
while(!int.TryParse(Console.ReadLine(),out item))
{
Console.WriteLine("Error!Enter the integer");
}
list.Add(item);
}
В каком уроке мы прошли вот эти условия if(int.TryParse(p,out int item)), вроде все уроки посмотрел но не смог вспомнить
Вполне возможно я отдельно их не рассматривал. Это просто более безопасные варианты преобразования переменных, надо будет их рассмотреть отдельно. спасибо
@@CODEBLOG Спасибо за ответ:)
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
private static object list;
static void Main(string[] args)
{
var list = new List(); // создаём список
int i;
for (i = 0; i < 15;) // создаём цикл, который работает пока в списке не будет 15 ед. данных
{
Console.WriteLine("Введите число");
var result = Console.ReadLine();
if (int.TryParse(result, out int item)) // парсим значение из консоли и преобразуем его в инт
{
list.Add(item); // если успешно преобразовали то заносим значение из result в список
i++;
}
else
{
Console.WriteLine("Введите целое число"); // выводим на экран если введены не верные данные
}
}
int j = 0;
int summa = 0;
while (list.Count > j)
{
summa += list[j];
j++;
}
var t = 0;
var raznost = 0;
do
{
raznost -= list[t];
t++;
}
while (t < list.Count);
int k;
var umnozhit = list[0];
for (k = 1; k < list.Count; k++)
umnozhit *= list[k];
Console.WriteLine("Все введенные числа");
foreach (int chisla in list)
{
Console.WriteLine(chisla);
}
Console.WriteLine($"Сумма всех чисел {summa}");
Console.WriteLine($"Разность всех чисел {raznost}");
Console.WriteLine($"Произведение всех элементов {umnozhit}");
Console.ReadLine();
}
}
}
Неплохо )
У вас тоже не рабочий код. Введите числа 7 8 9 7 8 9 7 8 9 7 8 9 7 8 9 и перепроверьте на калькуляторе.
А где можно посмотреть с вами фильмы????
Это нормально, что смотря все уроки, я не могу сделать дз сам? Я вообще не понимаю что делать, а когда смотрю подсказку, сразу соображаю, но всё равно сам сделать не могу.
Как то так(перед сном над кодом особо не парился)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HomeWork7
{
class Program
{
static void Main(string[] args)
{
int vr, sum = 0, res = 0, mult = 1, i;
int[] arr = new int[15];
for (i = 0; i < arr.Length; i++)
{
if (int.TryParse(Console.ReadLine(), out vr))
{
arr[i] = vr;
}
else
{
Console.WriteLine("Введено неверное число!");
i--;
}
}
for (i = 0; i < arr.Length; i++)
{
sum += arr[i];
}
i = 0;
while (i < arr.Length)
{
res -= arr[i];
i++;
}
i = 0;
do
{
mult = mult * arr[i];
i++;
} while (i < arr.Length);
Console.WriteLine($"Сумма всех элементов массива - {sum}");
Console.WriteLine($"Разность всех элементов массива - {res}");
Console.WriteLine($"Произведение всех элементов массива - {mult}");
foreach (int a in arr)
{
Console.WriteLine(a);
}
Console.ReadKey();
}
}
}
Ты тоже смотришь на скорости х2?
Нет
х1.5
Уже есть 2к подписчиков.
Да, и это круто )
@@CODEBLOG Уже 25к xD
@@АлексейКарасев-п2ж уже 50к
Если оператор break в С# будет располагаться внутри вложенного цикла, и в процессе работы программа дойдёт до выполнения этого оператора, то закончит выполнение ТОЛЬКО вложенный цикл, где находился break, или его "выкинет" из всех "родительских" циклов?
Только из вложенного выкинет
Главное правило var: Компилятор не тупой!
Спасибо за урок. Потратил много времени на решение заданий, понимаю, что нужно сделать, но как дать указание компу пока очень тяжело))) Вот мое решение :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Учеба
{
class Program
{
static void Main(string[] args)
{
List LimL = new List();
var PerL = 15;
for (int i = 1; i
умножение не должно работать в таком случае. Объявлена переменная var Dod = 0; и дальше в цикле Dod *= LimL[ttN]; Получается что 0 умножается на первое введенное число в лист
@@АндрейЛогвин-г3ю спасибо большое за исправление ошибки)
Решил усложнить себе жизнь и добавил в код деление.
Так же до сих пор не понимаю смысл while и do-while, когда есть for и foreach.
Ну и во избежание "магического числа" в коде, загнал количество элементов коллекции в константу. Как-то так:
class Program
{
static void Main(string[] args)
{
var list = new List();
int elementOfList;
const int COLLECTION_CAPACITY = 3;
Console.WriteLine($"Input {COLLECTION_CAPACITY} elements: ");
for (var i = 0; i < COLLECTION_CAPACITY; i++)
{
while (!int.TryParse(Console.ReadLine(), out elementOfList))
{
Console.WriteLine("You should input an integer value!");
}
list.Add(elementOfList);
}
//summ
int sum = 0;
for (int i = 0; i < list.Count; i++)
{
sum += list[i];
}
//subtraction
int subtraction = list[0] * 2;
for (int i = 0; i < list.Count; i++)
{
subtraction -= list[i];
}
//multiply
int mult = 1;
for (int i = 0; i < list.Count; i++)
{
mult *= list[i];
}
//division
var div = Math.Pow(list[0], 2);
for (var i = 0; i < list.Count; i++)
{
div /= list[i];
}
Console.WriteLine();
foreach (var item in list)
{
Console.Write(item + " ");
}
Console.WriteLine("
");
Console.WriteLine($"Summ is: {sum}");
Console.WriteLine($"Subtraction is: {subtraction}");
Console.WriteLine($"Mult is: {mult}");
Console.WriteLine($"Div is: {Math.Round(div, 2)}");
Console.ReadKey();
}
}
подскажи как сделать проверку введенных данных от пользователя,не могу понять,нашел через цикл do while но для нее требуется создать переменную и в итоге все данные идут в нее а не в коллекцию
тоже не могу реализовать проверку ввода числа "15" допустим, а не какой либо белиберды типа "l5"
var list = new List();
while(list.Count < 15)
{
var userInput = Console.ReadLine();
if(int.TryParse(userInput, out int number))
{
list.Add(int.Parse(userInput));
}
else
{
Console.WriteLine("Please enter only a number");
}
}
вроде как работает
@@sergeyanisov319 var list = new List(15);
for (int i = 0; i < 15; i++)
{
int a;
do{
Console.WriteLine("введите целое число");
}
while (!int.TryParse(Console.ReadLine(), out a));
{
list.Add(a);
}
}
Кстати, на удивление для меня это оказалось достаточно частым вопросом. ну один из примеров реализации может быть такой:
var inputs = new List();
const int inputCount = 10;
for(int i = 1; i
Посмотри, я добавил пример реализации
А где чувак, что тайминги в комментариях оставляет? ДРУГ МЫ БЕЗ ТЕБЯ НИКАК!
тайминги стоят на прикрепленном комментарии
@@falseduck1748 уже заметил)
@@user-xg6wp6zm4n ок
Like
Спасибо )
Как мне кажется у всех ошибка при подсчёте разности все отнимают от 0 последующие элементы, а надо от 1 элемента последующие .
var inputs = new List();
const int inputCount = 5;
var summ = 0;
var Proizv = 1;
var Raznost = 1;
for (int i = 1; i
Ну над именованием переменных точно следует поработать ) транслитерация русских слов считается плохим тоном, но в целом вроде бы должно работать )
Ого.
@@CODEBLOG Перепробовал всё коды, разница получается отнимается от 0, а не от первого числа всё остальные. Не могу никак понять. Уже 5й день пытаюсь перелопатить всё. Может подскажите что-то. Не могу никак на 8й урок перейти пока не успокоюсь
почему var Raznost = 1; а не var Raznost = 0;
Я знаю что такое сумма всех элементов, но что такое разность всех элементов? В моем понимании разность может быть между двумя числами, но не между 15-ю.
Разность подсмотрел в комментариях)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите 15 целых числе, только целых");
int a;
var integer = new List();
for(var i = 0; i < 15 ; i++ )
{
if(!int.TryParse(Console.ReadLine(),out a))
{
Console.WriteLine("Введи целое и не строку");
}
else
{
integer.Add(a);
}
}
Console.Clear();
for(var i = 0 ; i < integer.Count; i++ )
{
int sum = integer.ToArray().Sum();
Console.WriteLine("Сумма: " + sum);
break;
}
int d = 0;
int dif = 0;
dif += integer[0];
while (d < integer.Count)
{
dif -= integer[d];
d++;
}
Console.WriteLine("Разность: " + (dif + integer[0]));
var g = 0;
int mult = 1;
do
{
mult *= integer[g];
g++;
}
while (g < integer.Count);
Console.WriteLine("Произведение: " + mult);
Console.WriteLine("Числа которые вводили: ");
foreach(var iteam in integer)
{
Console.WriteLine(iteam);
}
Console.ReadLine();
}
}
}
У меня разность тоже мозг вынесла
У многих разность выдаёт просто противоположное по модулю число, поэтому смотрите, как необходимо её оформить:
var list = new List();
for (int i = 0; i < 5;)
{
string numbers = Console.ReadLine();
if (int.TryParse(numbers, out int result))
{
list.Add(result);
i++;
}
else
{
Console.WriteLine("Необходим ввод данных типа int");
}
}
//
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Список чисел:");
foreach (var item in list)
{
Console.WriteLine(item);
}
Console.ResetColor();
//
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Сумма чисел списка: ");
for (int i = 0; i < 1; i++)
{
Console.WriteLine(list.Sum());
}
Console.ResetColor();
//
Console.ForegroundColor = ConsoleColor.Cyan;
var index = 0;
var element = 0;
element += list[0];
while (index < list.Count)
{
element -= list[index];
index++;
}
Console.WriteLine("Разность чисел списка:");
Console.WriteLine(element + list[0]);
Console.ResetColor();
//
Console.ForegroundColor = ConsoleColor.Yellow;
int another_index = 0;
int another_element = 1;
do
{
another_element *= list[another_index];
another_index++;
}
while (another_index < list.Count);
Console.WriteLine("Произведение чисел списка:");
Console.WriteLine(another_element);
Console.ReadLine();
Console.ResetColor();
//
А как вы пошагово решение смотрите? Объясните, пожалуйста
да, убить 4 часа на это, что-что там себе в голове сложное надумывать, пытаться сделать, как хотел изначально, потом удалить всё и делать, лишь бы работало. Ну потом будет легче)))
Спасибо за Вашу работу, нравится очень:)
static void Main(string[] args)
{
first:
string[] argss = new string[0];
List strList = new List();
Console.WriteLine("Enter the integer number: ");
int i = 0;
int s;
while (i < 15)
{
while (!Int32.TryParse(Console.ReadLine(), out s))
{
Console.WriteLine("Error, incorrect number was entered, try again: ");
}
strList.Add(s.ToString());
i++;
}
int sum = get_sum(strList);
Console.Write("The sum of all elements = ");
Console.WriteLine(sum);
int dif = get_dif(strList);
Console.Write("The difference of all elements = ");
Console.WriteLine(dif);
int mul = Get_mul(strList);
Console.WriteLine("The multiplication of all elements = ");
Console.WriteLine(mul);
foreach (var item in strList)
{
Console.Write(item);
Console.WriteLine(" ");
}
Console.WriteLine("Press ESC to exit or anything else to start program again");
if (!Console.ReadKey().Key.Equals(ConsoleKey.Escape)) {
Console.WriteLine("");
goto first;
}
}
static int get_sum(List strList)
{
int i;
int a;
int sum = 0;
for (i = 0; i < strList.Count; i++)
{
Int32.TryParse(strList[i], out a);
sum += a;
}
return sum;
}
static int get_dif(List strList)
{
int i;
int a;
int dif = Int32.Parse(strList[0]);
for (i = 1; i < strList.Count; i++)
{
Int32.TryParse(strList[i], out a);
dif -= a;
}
return dif;
}
static int Get_mul(List strList)
{
int i = 0;
int a;
int mul = 1;
do
{
Int32.TryParse(strList[i], out a);
mul *= a;
i++;
}
while (i < strList.Count);
return mul;
}
}
}
Который из циклов используется чаще всего?
все используются в зависимости от ситуации, но лично мне чаще всего приходилось использовать foreach и for. while - чуть реже, do ... while очень редко
в дз нужно 15 чисел от пользователя или 1 число от пользователя с дальнейшим i++ ?)
зависит от твоего видения :)
@@CODEBLOG я уже сделала (вроде вчера-позавчера) эту дз, с 15-ю числами от пользователя )
Просто в начале мне показаломь, что Ваш код только первое значение берет от пользователя, а дальше путем ++ добавляет единицу
Хотя, может, я не так поняла и там у Вас все значения от пользователя берутся, и так (с i++) просто пишется цикл, который должен означать, что мы берём ровно одно значение от пользователя, крутим цикл, потом берём ещё одно, и так далее
Смотрю через два года после выпуска всех уроков
Есть один вопрос
Действительно ли эти все уроки помогут в карьере .Net разработчика
И есть ли тут люди, которым действительно помогли данные видео?
Ну это базовые знания, они в любом случае будут полезны, но один просмотр плэйлиста тебя на работу не устроит.
var list = new List();
int sum = 0, sub = 0, mult = 0, i = 0, n = 0;
Console.WriteLine("Введи 15 целых чисел");
while (list.Count < 15)
{
string input = Console.ReadLine();
if (int.TryParse(input, out int value))
{
list.Add(value);
}
else
{
Console.WriteLine("Введите число!");
}
}
for(var s = 0; s < list.Count; s++)
{
sum += list[s];
}
while (i < list.Count)
{
sub -= list[i];
}
do
{
mult *= list[n];
n++;
} while (mult < list.Count);
Console.WriteLine("Сумма всех чисел " + sum);
Console.WriteLine("Разность всех чисел" + sub);
Console.WriteLine("Умножение всех чисел" + mult);
Console.ReadLine();
foreach (var item in list)
{
Console.WriteLine(item);
}
У меня почему то , не отображается на концоле суммаБ вычитание и умножение. В чем проблема?
с умножением как минимум косяк. нужно инициализировать начальное значение 1, а не 0, иначе всегда будет 0 )
У тебя проблемы начинаются с этого места:
while (i < list.Count)
{
sub -= list[i];
}
Ты забыл указать счётчик (i++)
while (i < list.Count)
{
sub -= list[i];
i++;
}
Сейчас твой цикл вычитает из переменной sub, которая проинициализирован нулём, первый элемент из списка, затем идёт на проверку условия, а котором переменная (i) никак не изменилась, снова делает вычитание и так до бесконечности
Вторая ошибка кроется в умножении.
do
{
mult *= list[n];
n++;
} while (mult < list.Count);
Первым делом нужно mult проинициализировать единицей, как и говорил Вадим. а потом:
Неправильно указал проверку условия. Нужно же n (счётчик) сверять с list.Count
уот так:
do
{
mult *= list[n];
n++;
} while (n < list.Count);
А то получается что если к примеру указать числа 4,5,... то при выполнении сначала mult станет = 4, потом на следующей итерации 4*5=20, и на этапе проверки условия (20
Ну и наконец Console.ReadLine(); нужно перенести ниже, за цикл foreach, иначе не увидишь результат выполнения цикла
var list = new List();
while (list.Count < 15)
{
list.Add(int.Parse(Console.ReadLine()));
Console.Clear();
}
var summ = 0;
for (var i = 0; i < 15; i++)
{
summ += list[i];
}
Console.WriteLine("Сумма всех элементов листа: " + summ);
var difference = 0;
var b = 0;
while (b < list.Count)
{
difference -= list[b];
b++;
}
Console.WriteLine("Разность элементов листа: " + difference);
foreach(var item in list)
{
Console.Write(item + ", ");
}
Где я могу свериться правильно ли я выполнил домашнее задание?
если код делает то, что Вы хотите - значит, работает правильно. Но если хотите сократить, на пример, ненужные штуки (проверки, на пример), которые замедляют процесс или отжирают память, то можно посмотреть варианты домашки под этими видосами или погуглить свой конкретный вопрос, я Так делаю )
Удачи
Долго искал причину неправильной работы цикла do while.У меня индекс выходил за границу list.Потом исправил,получается нельзя один счетчик использовать для цикла while и do while,только если после while не обнулить его?
using System;
using System.Collections.Generic;
namespace CodeBlogHomeWorkCycles
{
class Program
{
static void Main(string[] args)
{
int item;
int SubtractionCounter = 0,MultiplyCounter = 0;
int addition = 0,subtraction = 0;
long multiply = 1;
var list = new List();
for(var i = 0;i < 15; i++)
{
Console.WriteLine($"Enter the {i + 1} element of list:");
while(!int.TryParse(Console.ReadLine(),out item))
{
Console.WriteLine("Error!Enter the integer");
}
list.Add(item);
}
for(var AdditionCounter = 0;AdditionCounter < list.Count; AdditionCounter++)
{
addition += list[AdditionCounter];
}
while(SubtractionCounter < list.Count)
{
subtraction -= list[SubtractionCounter];
SubtractionCounter++;
}
do
{
multiply *= list[MultiplyCounter];
MultiplyCounter++;
} while (MultiplyCounter < list.Count);
Console.WriteLine("
List elements:");
foreach(var i in list)
{
Console.Write(i + " ");
}
Console.WriteLine($"
Sum is {addition}
Sub is {subtraction}
Mul is {multiply}");
}
}
}
Здравствуйте, так правильно?
Console.WriteLine("Введите 15 чисел: ");
var arrow = new List();
var i = 0; int LimNumber; string num; var sum = 0;
while (i < 15)
{
num = Console.ReadLine();
i++;
bool result = int.TryParse(num, out LimNumber);
if (result == true)
{
arrow.Add(Convert.ToInt32(num));
}
else
{
Console.WriteLine("Введен неверный параметр");
break;
}
}
for (i = 0; i < arrow.Count; i++)
{
sum += arrow[i];
}
Console.WriteLine("Сумма чисел " + sum);
int diff = 1;
i = 0;
while (i < arrow.Count)
{
diff -= arrow[i];
i++;
}
Console.WriteLine("Разность чисел " + diff);
int Pro = 1;
i = 0;
do
{
Pro *= arrow[i];
i++;
}
while (i < arrow.Count);
Console.WriteLine("Произведение чисел " + Pro);
int[] All = { sum, diff, Pro };
foreach (var Lesson in All)
{
Console.WriteLine(Lesson);
}
Console.ReadLine();
}
Да, неплохой вариант решения )
Вадим, можете посоветовать сайт, где можно бесплатно посмотреть сериал ''Кремниевая Долина'' на английском?
я думаю, что гугл может подсказать в этом вопросе намного лучше меня )
Не раскрыт вопрос ПОЧЕМУ НЕЛЬЗЯ ИЗМЕНИТЬ элемент коллекции при обходе в цикле foreach. Почему нельзя? Например задача - для каждого элемента коллекции нужно первую букву сделать заглавной или как-то по другому обработать и сохранить результат этой обработки в том же элементе коллекции. Понятно что в данном случае тип данных в коллекции и тип данных полученных после обработки - одинаковый.
Считайте, что на время выполнения цикла коллекция блокируется для изменений. Используйте копию.
Так, я чёт туплю. Зачем на 32:43
[i]?
Во втором цикле while
Чтобы было условие выхода из цикла. если не будет условия выхода, то цикл будет бесконечным
Режим Александра Невского on.😁🤣😂
Решение с проверками:
List list = new List();
while (list.Count < 15)
{
Console.Write($"Введите {list.Count + 1} положительное целое число: ");
if (long.TryParse(Console.ReadLine(), out long result))
{
if (result < 0)
{
Console.WriteLine("Вы ввели отрицательное целое");
}
else
{
list.Add(result);
Console.WriteLine();
}
}
else
{
Console.WriteLine("Данные некорректны, попробуйте снова
");
}
}
try
{
Console.WriteLine($"Сумма всех элементов коллекции = {checked(list.Aggregate((x, y) => x + y))}");
}
catch (OverflowException e)
{
Console.WriteLine($"Сумма всех элементов коллекции выходит за пределы максимального значения: +{long.MaxValue}");
}
try
{
Console.WriteLine($"Разность всех элементов коллекции = {checked(list.Aggregate((x, y) => x - y))}");
}
catch (OverflowException e)
{
Console.WriteLine($"Разность всех элементов коллекции меньше минимально допустимого значения: {long.MinValue}");
}
try
{
Console.WriteLine($"Произведение всех элементов коллекции = {checked(list.Aggregate((x, y) => x * y))}");
}
catch (OverflowException e)
{
Console.WriteLine($"Произведение всех элементов коллекции выходит за пределы возможных значений от {long.MinValue} до +{long.MaxValue}");
}
Console.WriteLine("Исходная коллекция:
");
list.ForEach(f => {
Console.WriteLine(f);
});
Console.ReadKey();
Час мудрил, не получалась проверка.
Я пошел несколько по другому пути, ибо конструкций других учеников пока не понимаю. Кстати, привет из 2023)
using System;
using System.Collections.Generic;
namespace CsharpCourse
{
internal class Program
{
public static void Main(string[] args)
{
Console.WriteLine ("первое");
int x = Convert.ToInt32(Console.ReadLine());
Console.WriteLine ("второе");
int y = Convert.ToInt32(Console.ReadLine());
Console.WriteLine ("третье");
int z = Convert.ToInt32(Console.ReadLine());
Console.WriteLine ("четвертое");
int h = Convert.ToInt32(Console.ReadLine());
Console.WriteLine ("пятое");
int p = Convert.ToInt32(Console.ReadLine());
var numbers = new List();
numbers.Add(x);
numbers.Add(y);
numbers.Add(z);
numbers.Add(h);
numbers.Add(p);
int sum = 0;
int raznica = 0;
int proizvedenie = 1;
for(int i = 0; i < numbers.Count; i++)
{
sum += numbers[i];
}
Console.WriteLine($"Сумма чисел равна {sum}");
int k = 0;
while(k < 5)
{
raznica -= numbers[k];
k++;
}
Console.WriteLine($"разница чисел равна {raznica}");
int prod = 1;
foreach (int value in numbers)
{
prod *= value;
}
Console.WriteLine($"произведение чисел равно {prod}");
}
}
}
class Program
{
static void Main()
{
int substraction = 0;
int b = 0;
int c = 0;
int sum = 0;
int multiplication = 1;
var list = new List(5);
Console.WriteLine("write 5 numbers ");
for (int i = 0; i < 5; i++)
{
list.Add(Convert.ToInt16(Console.ReadLine()));
}
for (int i = 0; i < list.Count; i++)
{
sum = sum + list[i];
}
while (b
домашка
проверьте пожалуйста ) Что правильно, что неправильно?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
namespace sosukiiHOMEWORKforCodeBlog_for__foreach__while_
{
class Program
{
static void Main(string[] args)
{
List oppai = new List();
int result;
for (int i = 0; i
using LanguageExt.TypeClasses;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lessen7
{
class Program
{
static void Main(string[] args)
{
var list = new List();
int sum = 0;
for (var i = 0; i < 15;)
{
string a = Console.ReadLine();
if (int.TryParse(a, out int c))
{
list.Add(c);
Console.WriteLine("вы ввели:" + c);
i++;
}
else
{
Console.WriteLine("введите числовое значение");
}
}
for (var i = 0; i < list.Count;)
{
Console.WriteLine(list[i]);
sum += list[i];
i++;
Console.WriteLine("сумма элементов:" + sum);
}
var y = 0;
int dif = 0;
do
{
dif -= list[y];
y++;
Console.WriteLine("разность элементов:" + dif);
}
while (y < list.Count);
var mult = 1;
foreach (var i in list) mult *= i;
{
Console.WriteLine("произведение элементов:" + mult);
}
Console.ReadLine();
}
}
}
вот дз
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Collections;
using System.Globalization;
using System.Security.Policy;
using System.Security.Cryptography;
namespace dziyroki
{
class Program
{
static void Main()
{
var list = new List();
int sum = 0;
int raznost = 0;
string str;
int j;
int prozvod = 1;
for (int i = 0; i < 5; i++)
{
go:
Console.WriteLine("введите целое число: ");
str = Console.ReadLine();
if (int.TryParse(str, out j))
{
Console.WriteLine("вы ввели верное число!
");
list.Add(j);
}
else
{
Console.WriteLine("неверный ввод");
goto go;
}
}
Console.WriteLine("сумма всех элементов:
");
for (int i = 0; i < 5; i++)
{
sum += list[i];
}
raznost = list[1];
Console.WriteLine(sum);
Console.WriteLine("разность всех элементов
");
int p = 0;
while (p < list.Count)
{
raznost -= list[p];
p++;
}
Console.WriteLine(raznost);
Console.WriteLine("произведение всех чисед:");
int o = 0;
do
{
prozvod *= list[o];
o++;
}
while (o < list.Count);
Console.WriteLine(prozvod);
Console.WriteLine("сама коллекция ");
foreach (int item in list)
{
Console.WriteLine(item);
}
}
}
}
Толи я дурак толи лыжи не едут. Все задания выполнил кроме одного - это проверка данных от пользователя. Использовал цикл while вложенный в if else, и результат булевой операции в условии while напрочь отказывается воспринимать, подчеркивает красным, а ИДЕшка предлагает создать новый класс, но в этом я пока не разбираюсь. Что не так, никак не пойму...
Ну в таких случаях нужно как минимум скидывать код :)
var input = "";
while(true)
{
input = Console.ReadLine();
if(input == "Команда которая тебе нужна") // если команд много используй switch
{
// делаешь то, что тебе нужно.
break;
}
else
{
Console.WriteLine("введена неправильная команда");
}
}
@@CODEBLOG благодарю, замечание совершенно в точку:) я примерно к такому же решению и пришел, примерно через час, вот что комментарий житворящий делает)) моё почтение за обратную оперативную связь 👍
static int i, n;
static int sum, diff, product = 1;
static void Main(string[] args)
{
var list = new List();
Console.WriteLine("Fill the list with 15 integer numbers: ");
while (list.Count < 15)
{
var temp = Console.ReadLine();
if(int.TryParse(temp, out int item))
list.Add(item);
else
Console.WriteLine("it's not integer number");
}
for (int k = 0; k < list.Count; k++)
sum += list[k];
while (i < list.Count)
{
diff -= list[i];
i++;
}
do
{
product *= list[n];
n++;
} while (n < list.Count);
Console.WriteLine("Sum of all elements: " + sum);
Console.WriteLine("Difference of all elements: " + diff);
Console.WriteLine("Product of all elements: " + product);
foreach (var num in list)
{
Console.WriteLine(num);
}
}
Попробовал сделать всё с вашими указаниями (сумму через for, разность через while и т.д.)
можно было бы добавить еще чтобы пользователь сам вводил нужное число элементов в коллекции ) а так в целом похоже на правду )
но разница чисел выйдет неправильной,оно от 0 будет отнимать все значения,а должно от первого введённого числа отнимать все остальные.
@@ExzemTV Нет, должно от нуля отнимать, также как и с суммой
@@takashiaoki3111 Разностью чисел называется результат вычитания одного числа из другого.
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
var list = new List();
int sum = 0;
int fresh = 1;
int i = 0;
int dif = 0;
int c = 0;
for (i = 0; i < 3; i++)
{
try
{
list.Add(int.Parse(Console.ReadLine()));
}
catch (Exception)
{
Console.WriteLine("Введите целое число");
}
}
for (i = 0; i < list.Count; i++)
{
sum += list[i];
}
Console.WriteLine("Сумма чисел коллекции равна" + " " + sum);
int b = 1;
dif = list.First();
while (b < list.Count)
{
dif -= list[b];
b++;
}
Console.WriteLine("Разница чисел коллекции равно" + " " + dif);
do
{
fresh = fresh * list[c];
c++;
} while (c < list.Count);
Console.WriteLine("Произведение чисел коллекции равно" + " " + fresh);
foreach (var item in list)
{
Console.WriteLine(item);
}
var list = new List();
while (list.Count < 5)
{
Console.Write("Введите целое число: ");
if (int.TryParse(Console.ReadLine(), out int result))
{
list.Add(result);
Console.Clear();
continue;
}
else
{
Console.Clear();
Console.WriteLine("Введите целое число!!!");
}
}
foreach (var item in list)
{
Console.Write(item + " ");
}
Console.WriteLine();
int sum = 0;
int pos = 0;
for (pos = 0; pos < list.Count; pos ++)
{
sum += list[pos];
}
Console.WriteLine("Сумма всех чисел: " + sum);
int diff = 0;
int pos2 = 0;
while (pos2 < list.Count)
{
diff -= list[pos2];
pos2++;
}
Console.WriteLine("Разница всех чисел: " + diff);
int mul = 1;
foreach (var item in list)
{
mul *= item;
}
Console.WriteLine("Произведение всех чисел: " + mul);
Console.ReadKey();
Домашнее задание:
// Объявляем список numbers
List numbers = new List();
// Заполняем числами список
Console.WriteLine("Введите 5 целых чисел");
for (int i = 0; i < 5;)
{
string num = Console.ReadLine(); // Читаем строку с числами
if (int.TryParse(num, out int result)) // Если удается парсить строку в целое число
{
numbers.Add(result); // то добавляем это число в список
i++;
}
else
{
Console.WriteLine("Введите целое число");
}
}
// Вывод списка
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Ваш список из 5 целых чисел:");
foreach (int i in numbers)
{
Console.WriteLine(i);
}
Console.ResetColor();
// Сумма всех элементов коллекции
int numbers_sum = 0;
for (int i = 0; i < 5; i++)
{
numbers_sum += numbers[i];
}
Console.WriteLine($"Сумма элементов в коллекции: {numbers_sum}");
// Разность всех элементов
int dif = 0;
int k = 0;
while (k < 5)
{
dif -= numbers[k];
k++;
}
Console.WriteLine($"Разность элементов в коллекции: {dif}");
// Произведение всех элементов
int c = 0;
int composition = 1;
do
{
composition *= numbers[c];
c++;
}
while (c < 5);
Console.WriteLine($"Произведение всех элементов в коллекции: {composition}");
Console.ReadLine();
одно э м хватило на 1 минуту 53 секунды
Вот интересно. В каких жизненных случаях мне может пригодиться сложение, вычитание и произведение всех значений в коллекции? :D
На самом деле достаточно часто, особенно, если добавить еще какие-то условия выборки ) ну и это же обучающее видео, поэтому задачки простые
@@CODEBLOG я понимаю) но задачек хочется каких-то более практичных, приближённых к реальности)
Да ну какого хрена, почему я нихера не понимаю почти, как я блин выучу этот язык
Не спеши, с практикой все придет. начни с простых примеров и в пошаговом режиме следи за тем, как меняется состояние программы
foreach это тот же самый for в пайтоне
кто из 2022?
пиздец извините я ничего не понимаю вообще как это задание то делать помогите пожалуйста че за дичь все нормально ыбло щас вообще не понимаю о чем реч
3 часа ночи я залился колой пытаюсь одновременно выучить реферат ебаный вспомнить массивы и понять что происходит че я вообще делаю
я тут вообще не в тему но мне не по кайфу реально щас заплачу вообще хз уже месяц это задание пытаюсь решить
@@haskell276 Если ты действительно пытаешься сделать это месяц, то у меня для тебя плохие новости. если проблема с проверкой на число то держи решение,
int[] list = new int[15];
for(var i = 0; i
В комментариях есть варианты решения, посмотри по примеру сделай.
@@OnikMod у меня так что я смотрю и не понимаю,что делают.Хотя все предыдущие темы понял
Слишком сложным языком пишется домашка. Вы более простым объясняете, а домашка сложным. И я не могу понять что именно требуется
исп. цикла for для нубасов, я правильно понимаю
Почему Макс Епифанов бесит меня от стрима к стриму все больше и больше?
Привет из 2021
Моё видение дз такое:
static void Main(string[] args)
{
var digits = new List();
for(var i = 0; i < 15; i++)
{
if((int.TryParse(Console.ReadLine(), out int value) && value % 1 == 0))
{
digits.Add(value);
}
else
{
Console.WriteLine("Попробуйте ввести заново");
continue;
}
}
int sum = digits[0];
for(var i = 1; i < digits.Count; i++)
{
sum += digits[i];
}
Console.WriteLine($"Сумма всех элементов равна: {sum}");
int digitsDifference = digits[0];
int difCount = 1;
while(difCount < digits.Count)
{
digitsDifference -= digits[difCount];
difCount++;
}
Console.WriteLine($"Разность всех элементов равна: {digitsDifference}");
long digitsComposition = digits[0];
int compCount = 1;
do
{
digitsComposition *= digits[compCount];
compCount++;
} while (compCount < digits.Count);
Console.WriteLine($"Произведение всех элементов равно: {digitsComposition}");
Console.WriteLine();
foreach(int digit in digits)
{
Console.Write(digit + " ");
}
}
ГДЗ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Введите 5 случайних целых чисел");
int Min = 0;
int Plus = 0;
List Num = new List();
for (int i = 0; i < 5 ; i++)
{
string Enter = ( Console.ReadLine());
if (int.TryParse(Enter, out int result))
{
Num.Add(result);
}
else
{
Console.WriteLine("Введите целое число");
i--;
}
}
for (int i = 0; i
Ловите мой говнокод - главное своими руками и мозгами и то что работает)
using System;
using System.Collections.Generic;
namespace Dron.HelloWorld
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Добро пожаловать! Введи пожалуйста 15 числел!");
int sum = 0;
int minus = 0;
int times = 1;
List list = new List();
for (int i = 0; i
спасибо