Z3. Определение максимального и минимального значений во время ввода данных

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи. Пример решения.
Решены задачи 3,7-9. Не решены: 1,2,4-6,10-34.

Задачи

Z3.1. Даны натуральное число n и вещественные числа x1, x2, …, xn. Найти:
а) максимальное из вещественных чисел;
б) минимальное из вещественных чисел;
в) максимальное и минимальное из вещественных чисел.
Примечание. В задаче (в) использовать только один оператор цикла.

Z3.2. Даны натуральное число n и целые числа a1, a2, …, an. Найти:
а) номер максимального из чисел ai . Если чисел с максимальным значением несколько, то должен быть найден номер последнего из них;
б) номер минимального из чисел ai . Если чисел с минимальным значением несколько, то должен быть найден номер первого из них.

Z3.3. Даны натуральное число n и целые числа a1, a2, …, an. Найти номер максимального и номер минимального из чисел ai . Если чисел с максимальным или с минимальным значением несколько, то должны быть найдены номера последних из них.

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

Z3.5. Известны расстояния от Москвы до нескольких городов. Найти расстояние от Москвы до самого удаленного от нее города из представленных в списке городов.

Z3.6. Известны максимальные скорости каждой из 20 марок легковых автомобилей. Определить, какую максимальную скорость имеет самый быстрый автомобиль.

Z3.7. Даны площади нескольких кругов. Найти радиус самого маленького из них.

Z3.8. Даны площади нескольких квадратов. Найти длину диагонали самого большого из них.

Z3.9. Известны данные о количестве людей, живущих в квартире № 1, в квартире № 2 и т. д. В какой квартире больше всего жильцов? Если таких квартир несколько, то должна быть найдена квартира с максимальным номером.

Z3.10. Известны результаты каждого из участников Кубка мира по лыжным гонкам (время, затраченное на прохождение дистанции гонки). Спортсмены стартовали по одному. Результаты даны в том порядке, в каком спортсмены стартовали. Определить, каким по порядку стартовал лыжник, показавший лучший результат? Если таких спортсменов несколько, то должен быть найден первый из них.

Z3.11. Известно количество очков, набранных футбольными командами в чемпионате РПЛ. Какая команда (определить ее номер) набрала наименьшее количество очков? Если таких команд несколько, то должна быть найдена первая из них.

Z3.12. Известны данные о количестве осадков, выпавших за каждый день месяца. Какого числа выпало самое большое количество осадков? Если таких дней несколько, то должна быть найдена дата последнего из них.

Z3.13. В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставили
несколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают и с наиболее низкими оценками. Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.

Z3.14. Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого?

Z3.15. Известно число учеников в каждом из 20 классов школы. На сколько численность самого большого (по числу учеников) класса превышает численность самого маленького класса?

Z3.16. Даны n пар чисел: a1,b1 , a2,b2 , …, an,bn . Определить:
а) максимальную сумму значений чисел в паре;
б) минимальное произведение значений чисел в паре.

Z3.17. Даны n пар положительных чисел: a1,b1 , a2,b2 , …, an,bn . Определить:
а) в какой паре среднее арифметическое значений чисел является максимальным. Если пар с максимальным значением среднего арифметического несколько, найти номер последней из них;
б) в какой паре среднее геометрическое значений чисел является минимальным. Если пар с минимальным значением среднего геометрического несколько, найти номер первой из них.

Z3.18. Известны данные о массе (в кг) и объеме (в см3) 30-ти тел, изготовленных из различных материалов. Определить максимальную плотность материала.

Z3.19. Известны данные о численности населения (в миллионах жителей) и площади (в тысячах квадратных километров) 28-ми государств. Определить минимальную плотность населения в отдельном государстве.

Z3.20. Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время, затраченное каждым из них (в часах). Определить порядковый номер автомобиля, имевшего максимальную из средних скоростей движения на участках.

Z3.21. В результате измерений получены напряжения (в вольтах) на зажимах каждого из 20-ти различных электрических сопротивлений, не соединенных друг с другом. Характеристика (в омах) каждого сопротивления известна. Определить порядковый номер сопротивления, по которому проходит минимальный ток.

Z3.22. Дана последовательность целых чисел a1, a2 , …, an ., где n >= 3. Найти:
а) два максимальных элемента последовательности;
б) два минимальных элемента последовательности.
В обеих задачах два цикла ввода данных не использовать.

Z3.23. Даны целые числа a1, a2 , …, an . Определить:
а) сколько раз среди них встречается максимальное;
б) сколько раз среди них встречается минимальное.
В обеих задачах два цикла ввода данных не использовать.

Z3.24. Известны данные о количестве людей, живущих в квартире № 1, в квартире № 2 и т. д. В каком числе квартир проживает больше всего жильцов? Два цикла ввода данных не использовать.

Z3.25. Известны данные о температуре воздуха в течение месяца. Определить, сколько раз дней за месяц была самая низкая температура. Два цикла ввода данных не использовать.

Z3.26. В последовательности чисел максимальный элемент равен 8 и таких элементов четыре. В конец последовательности дописали число А. Сколько максимальных элементов стало в новой последовательности при A=0 ? При A=8 ?

Z3.27. Даны натуральное число n и последовательность целых чисел a1, a2 , …, an .
Рассмотреть отрезки этой последовательности (подпоследовательности идущих подряд чисел), состоящие из четных чисел. Получить наибольшую из длин рассматриваемых отрезков.

Z3.28. Дана последовательность из m единиц и нулей. Рассмотреть отрезки этой последовательности (подпоследовательности идущих подряд чисел), состоящие из одних нулей. Получить наименьшую из длин рассматриваемых отрезков.

Z3.29. У прилавка в магазине выстроилась очередь из n покупателей. Время обслуживания продавцом i-го покупателя равно ti ( i = 1, 2, …, n). Пусть даны натуральное n и действительные t1, …, tn. Получить c1, c2, …, cn, где ci — время пребывания i-го покупателя в очереди ( i = 1, 2, …, n). Указать номер покупателя, для обслуживания которого продавцу потребовалось самое малое время.

Z3.30. Дана последовательность целых чисел x1, x2, …, xn, где n >= 3. Найти:
а) максимальную сумму двух соседних чисел;
б) минимальную сумму двух соседних чисел;
в) порядковые номера двух соседних чисел, сумма которых максимальна. Если таких пар чисел несколько, то найти номера чисел первой такой пары;
г) порядковые номера двух соседних чисел, сумма которых минимальна. Если таких пар чисел несколько, то найти номера чисел последней из них.

Z3.31. Известна сумма очков, набранных каждой из 20 команд-участниц чемпионата по футболу. Определить сумму очков, набранных командами, занявшими в чемпионате три первых места.

Z3.32. Даны натуральные числа n, a1, a2, …, an (n >= 4). Числа a1, a2, …, an — это измеренные в сотых долях секунды результаты n спортсменов в беге на 100 м. Составить команду из четырех лучших бегунов для участия в эстафете 4 x 100 м, т. е. указать одну из четверок натуральных чисел i, j, k, m, для которой 1 <= i < j < k < m <=n и сумма ai, aj, ak, am имеет наименьшее значение.

Z3.33. Даны 20 пар однозначных чисел. Первое число каждой пары означает количество мячей, забитых футбольной командой в игре, второе — количество пропущенных мячей в этой же игре.
а) Для каждой проведенной игры напечатать словесный результат: «выигрыш», «ничья» или «проигрыш».
б) Определить количество выигрышей данной команды.
в) Определить количество выигрышей и количество проигрышей данной команды.
г) Определить количество выигрышей, количество ничьих и количество проигрышей данной команды.
д) Определить, в скольких играх разность забитых и пропущенных мячей была большей или равной трем.
е) Определить общее число очков, набранных командой (за выигрыш дается 3 очка, за ничью — 1, за проигрыш — 0).

Z3.34. Решить задачу Z3.33. для случая, когда вместо 20 пар однозначных чисел заданы 20 однозначных или двузначных чисел, запись которых образована цифрами, соответствующими количеству забитых и пропущенных мячей в одной игре. Например, 32 — три забитых, 2 пропущенных; 22 — 2 забитых, 2 пропущенных; 0 — 0 забитых, 0 пропущенных.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
15 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Z3. Определение максимального и минимального значений во время ввода данныхЧасть 1.

using System;
//Z3. Определение максимального и минимального значений во время ввода данных
namespace Z3
{
    class Program
    {
        static int Input(string Name, int Min = int.MinValue, int Max = int.MaxValue)
        {
            Console.WriteLine($"Введите {Name}:");
            int Num;
            while (!(int.TryParse(Console.ReadLine(), out Num) && Num >= Min && Num <= Max)) Console.WriteLine($"Введено неверное значение. Введите {Name}:");
            return Num;
        }
        static void Main()
        {
            Random RZ3 = new Random();
            //Z3.1
            Console.WriteLine("Z3.1. Даны натуральное число n и вещественные числа x1, x2, …, xn. Найти:\nа) максимальное из вещественных чисел;\nб) минимальное из вещественных чисел;\nв) максимальное и минимальное из вещественных чисел.\nПримечание.В задаче(в) использовать только один оператор цикла. ");
            int N1 = Input("число N");
            int N1max = int.MinValue;
            int N1min = int.MaxValue;
            for (int a=0; a<N1; a++)
            {
                int n1temp = RZ3.Next(0,1000);
                if (n1temp > N1max) N1max = n1temp;
                if (n1temp < N1min) N1min = n1temp;
                Console.Write(n1temp + " ");
            }
            Console.WriteLine($"\nМаксимальное число {N1max}\nМинимальное число {N1min}");
            Console.ReadKey();
            Console.Clear();
            //Z3.2
            Console.WriteLine("Z3.2. Даны натуральное число n и целые числа a1, a2, …, an. Найти:\nа) номер максимального из чисел ai.Если чисел с максимальным значением несколько, то должен быть найден номер последнего из них;\nб) номер минимального из чисел ai.Если чисел с минимальным значением несколько, то должен быть найден номер первого из них.");
            int N2 = Input("число N");
            int N2maxCount = 0;
            int N2max = int.MinValue;
            int N2minCount = 0;
            int N2min = int.MaxValue;
            for (int a = 1; a <= N2; a++)
            {
                int n2temp = RZ3.Next(-100, 100);
                if (n2temp >= N2max) { N2max = n2temp; N2maxCount = a; }
                if (n2temp < N2min) { N2min = n2temp; N2minCount = a; }
                Console.Write(n2temp + " ");
            }
            Console.WriteLine($"\nМаксимальное значение {N2maxCount}\nМинимальное значение {N2minCount}");
            Console.ReadKey();
            Console.Clear();
            //Z3.3
            Console.WriteLine("Z3.3. Даны натуральное число n и целые числа a1, a2, …, an. Найти номер максимального и номер минимального из чисел ai . Если чисел с максимальным или с минимальным значением несколько, то должны быть найдены номера последних из них.");
            int N3 = Input("число N");
            int N3minCount = 0;
            int N3min = int.MaxValue;
            int N3maxCount = 0;
            int N3max = int.MinValue;
            for (int a = 1; a <= N3; a++)
            {
                int n3temp = RZ3.Next(-100, 100);
                if (n3temp >= N3max) { N3max = n3temp; N3maxCount = a; }
                if (n3temp <= N3min) { N3min = n3temp; N3minCount = a; }
                Console.Write(n3temp + " ");
            }
            Console.WriteLine($"\nМинимальное значение {N3minCount}\nМаксимальное значение {N3maxCount}");
            Console.ReadKey();
            Console.Clear();
            //Z3.4
            Console.WriteLine("Z3.4. В компьютер по очереди поступают результаты спортсменов-участников соревнований по лыжным гонкам, уже пришедших к финишу (время, затраченное на прохождение дистанции гонки). Выводить на экран лучший результат после ввода результата очередного спортсмена.");
            int N4 = Input("количество участников гонки");
            int N4best = int.MaxValue;
            for (int a = 0; a < N4; a++)
            {
                int n4temp = RZ3.Next(20, 180);
                if (N4best > n4temp) N4best = n4temp;
                Console.WriteLine($"Новый участник: {n4temp}\tЛучшее время: {N4best}");
            }
            Console.ReadKey();
            Console.Clear();
            //Z3.5
            Console.WriteLine("Z3.5. Известны расстояния от Москвы до нескольких городов. Найти расстояние от Москвы до самого удаленного от нее города из представленных в списке городов.");
            int N5 = Input("количество городов в списке");
            int N5max = 0;
            for (int a = 0; a < N5; a++)
            {
                int n5temp = RZ3.Next(1, 10000);
                if (n5temp > N5max) N5max = n5temp;
                Console.Write(n5temp + " ");
            }
            Console.WriteLine("\n" + N5max);
            Console.ReadKey();
            Console.Clear();
            //Z3.6
            Console.WriteLine("Z3.6. Известны максимальные скорости каждой из 20 марок легковых автомобилей. Определить, какую максимальную скорость имеет самый быстрый автомобиль.");
            int N6max = 0;
            for (int a=0; a<20; a++)
            {
                int n6temp = RZ3.Next(150, 350);
                if (n6temp > N6max) N6max = n6temp;
                Console.Write(n6temp + " ");
            }
            Console.WriteLine("\n" + N6max);
            Console.ReadKey();
            Console.Clear();
            //Z3.7
            Console.WriteLine("Z3.7. Даны площади нескольких кругов. Найти радиус самого маленького из них.");
            int N7 = Input("количество кругов");
            int N7min = int.MaxValue;
            for (int a = 0; a < N7; a++)
            {
                int n7temp = RZ3.Next(15,250);
                if (n7temp < N7min) N7min = n7temp;
                Console.Write(n7temp + " ");
            }
            Console.WriteLine("\n" + Math.Sqrt((N7min/Math.PI)));
            Console.ReadKey();
            Console.Clear();
            //Z3.8
            Console.WriteLine("Z3.8. Даны площади нескольких квадратов. Найти длину диагонали самого большого из них.");
            int N8 = Input("количество квадратов");
            int N8max = 0;
            for (int a = 0; a < N8; a++)
            {
                int temp = RZ3.Next(1,1000);
                if (temp > N8max) N8max = temp;
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n"+Math.Sqrt(2*N8max));
            Console.ReadKey();
            Console.Clear();
            //Z3.9
            Console.WriteLine("Z3.9. Известны данные о количестве людей, живущих в квартире № 1, в квартире № 2 и т. д. В какой квартире больше всего жильцов? Если таких квартир несколько, то должна быть найдена квартира с максимальным номером.");
            int N9 = Input("количество квартир");
            int N9maxCount = 0;
            int N9max = 0;
            for (int a = 1; a <= N9; a++)
            {
                int temp = RZ3.Next(1,10);
                if (temp>=N9max) { N9max = temp; N9maxCount = a; }
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + N9maxCount);
            Console.ReadKey();
            Console.Clear();
            //Z3.10
            Console.WriteLine("Z3.10. Известны результаты каждого из участников Кубка мира по лыжным гонкам (время, затраченное на прохождение дистанции гонки). Спортсмены стартовали по одному. Результаты даны в том порядке, в каком спортсмены стартовали. Определить, каким по порядку стартовал лыжник, показавший лучший результат? Если таких спортсменов несколько, то должен быть найден первый из них.");
            int N10 = Input("количество участников");
            int N10firstPlace=0;
            int N10first = int.MaxValue;
            for (int a = 1; a <= N10; a++)
            {
                int temp = RZ3.Next(100, 150);
                if (temp < N10first) { N10first = temp; N10firstPlace = a; }
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + N10firstPlace);
            Console.ReadKey();
            Console.Clear();
            //Z3.11
            Console.WriteLine("Z3.11. Известно количество очков, набранных футбольными командами в чемпионате РПЛ. Какая команда (определить ее номер) набрала наименьшее количество очков? Если таких команд несколько, то должна быть найдена первая из них.");
            int N11 = Input("количество команд");
            int N11minPlace = 0;
            int N11min = int.MaxValue;
            for (int a = 1; a <= N11; a++)
            {
                int temp = RZ3.Next(0,101);
                if (temp < N11min) { N11min = temp; N11minPlace = a; }
                Console.Write(temp+" ");
            }
            Console.WriteLine("\n" + N11minPlace);
            Console.ReadKey();
            Console.Clear();
            //Z3.12
            Console.WriteLine("Z3.12. Известны данные о количестве осадков, выпавших за каждый день месяца. Какого числа выпало самое большое количество осадков? Если таких дней несколько, то должна быть найдена дата последнего из них.");
            int N12=0;
            int N12max = int.MinValue;
            for (int a = 1; a < 32; a++)
            {
                int temp = RZ3.Next(0, 11);
                if (temp >= N12max) { N12max = temp; N12 = a; }
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + N12);
            Console.ReadKey();
            Console.Clear();
            //Z3.13
            Console.WriteLine("Z3.13. В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого спортсмена независимо оценивается несколькими судьями, затем из всей совокупности оценок удаляются наиболее высокая и наиболее низкая, а для оставшихся оценок вычисляется среднее арифметическое, которое и идет в зачет спортсмену. Если наиболее высокую оценку выставили\nнесколько судей, то из совокупности оценок удаляется только одна такая оценка; аналогично поступают и с наиболее низкими оценками.Составить программу для расчета оценки, которая пойдет в зачет этому спортсмену.");
            int N13 = Input("количество судей",3);
            int N13max = int.MinValue;
            int N13min = int.MaxValue;
            int N13sum=0;
            for (int a=0; a<N13; a++)
            {
                int temp = RZ3.Next(5, 11);
                if (temp > N13max) N13max = temp;
                if (temp < N13min) N13min = temp;
                N13sum += temp;
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + (N13sum-N13max-N13min)/(double)(N13-2));
            Console.ReadKey();
            Console.Clear();
            //Z3.14
            Console.WriteLine("Z3.14. Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого?");
            int N14 = Input("количество человек",2);
            int N14max = int.MinValue;
            int N14min = int.MaxValue;
            for (int a = 0; a < N14; a++)
            {
                int temp = RZ3.Next(150,220);
                if (temp > N14max) N14max = temp;
                if (temp < N14min) N14min = temp;
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + (N14max-N14min));
            Console.ReadKey();
            Console.Clear();
            //Z3.15
            Console.WriteLine("Z3.15. Известно число учеников в каждом из 20 классов школы. На сколько численность самого большого (по числу учеников) класса превышает численность самого маленького класса?");
            int N15max = int.MinValue;
            int N15min = int.MaxValue;
            for (int a = 0; a < 20; a++)
            {
                int temp = RZ3.Next(5,30);
                if (temp > N15max) N15max = temp;
                if (temp < N15min) N15min = temp;
                Console.Write(temp + " ");
            }
            Console.WriteLine("\n" + (N15max-N15min));
            Console.ReadKey();
            Console.Clear();
            //Z3.16
            Console.WriteLine("Z3.16. Даны n пар чисел: a1,b1 , a2,b2 , …, an,bn . Определить:\nа) максимальную сумму значений чисел в паре;\nб) минимальное произведение значений чисел в паре.");
            int N16 = Input("Количество пар");
            int N16maxSum = int.MinValue;
            int N16minProd = int.MaxValue;
            for (int c = 0; c < N16; c++)
            {
                int a = RZ3.Next(1, 21);
                int b = RZ3.Next(1, 21);
                if ((a + b) > N16maxSum) N16maxSum = (a + b);
                if ((a * b) < N16minProd) N16minProd = (a * b);
                Console.Write($"{a}:{b} ");
            }
            Console.WriteLine($"\nа) максимальную сумму значений чисел в паре {N16maxSum}\nб) минимальное произведение значений чисел в паре {N16minProd}");
            Console.ReadKey();
            Console.Clear();
            //Z3.17
            Console.WriteLine("Z3.17. Даны n пар положительных чисел: a1,b1 , a2,b2 , …, an,bn . Определить: \nа) в какой паре среднее арифметическое значений чисел является максимальным.Если пар с максимальным значением среднего арифметического несколько, найти номер последней из них;\nб) в какой паре среднее геометрическое значений чисел является минимальным.Если пар с минимальным значением среднего геометрического несколько, найти номер первой из них.");
            int N17 = Input("количество пар");
            double N17maxSum = double.MinValue;
            double N17minProd = double.MaxValue;
            int N17maxPlace = 0;
            int N17minPlace = 0;
            for (int c = 1; c <= N17; c++)
            {
                int a = RZ3.Next(1, 21);
                int b = RZ3.Next(1, 21);
                if (((a + b) / (double)2) >= N17maxSum) { N17maxSum = (a + b) / (double)2 ; N17maxPlace = c; }
                if (Math.Sqrt(a * b) < N17minProd) { N17minProd = Math.Sqrt(a * b); N17minPlace = c; }
                Console.Write($"{a}:{b} ");
            }
            Console.WriteLine($"\nа) в {N17maxPlace} паре среднее арифметическое значений чисел является максимальным\nб) в {N17minPlace} паре среднее геометрическое значений чисел является минимальным");
            Console.ReadKey();
            Console.Clear();
            //Z3.18
            Console.WriteLine("Z3.18. Известны данные о массе (в кг) и объеме (в см3) 30-ти тел, изготовленных из различных материалов. Определить максимальную плотность материала.");
            double N18max = 0;
            for (int a = 0; a < 30; a++)
            {
                int mass = RZ3.Next(1, 100);
                int volume = RZ3.Next(1, 100);
                if (mass / (double)volume > N18max) N18max = mass / (double)volume;
                Console.Write($"{mass}:{volume}, ");
            }
            Console.WriteLine("\n"+N18max);
            Console.ReadKey();
            Console.Clear();
            //Z3.19
            Console.WriteLine("Z3.19. Известны данные о численности населения (в миллионах жителей) и площади (в тысячах квадратных километров) 28-ми государств. Определить минимальную плотность населения в отдельном государстве.");
            double N19min = double.MaxValue;
            for (int a = 0; a < 28; a++)
            {
                double people = RZ3.NextDouble()*(100-10) + 10;
                double area = RZ3.NextDouble()*(100-10) + 10;
                if (people / area < N19min) N19min = people / area;
                Console.Write($"{people:f2}:{area:f2}\t");
            }
            Console.WriteLine($"\n{N19min:f2}");
            Console.ReadKey();
            Console.Clear();
            //Z3.20
            Console.WriteLine("Z3.20. Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время, затраченное каждым из них (в часах). Определить порядковый номер автомобиля, имевшего максимальную из средних скоростей движения на участках.");
            int N20maxPlace = 0;
            double N20maxSpeed = 0;
            for (int a = 1; a <= 25; a++)
            {
                double distance = RZ3.NextDouble() * (100-10) + 10;
                double time = RZ3.NextDouble() * (2-0.5) + 0.5;
                if (N20maxSpeed < distance / time) { N20maxSpeed = distance / time; N20maxPlace = a; }
                Console.Write($"{distance:f2}:{time:f2}\t");
            }
            Console.WriteLine("\n" + N20maxPlace);
            Console.ReadKey();
            Console.Clear();

Z3. Определение максимального и минимального значений во время ввода данныхЧасть 2.

            //Z3.21
            Console.WriteLine("Z3.21. В результате измерений получены напряжения (в вольтах) на зажимах каждого из 20-ти различных электрических сопротивлений, не соединенных друг с другом. Характеристика (в омах) каждого сопротивления известна. Определить порядковый номер сопротивления, по которому проходит минимальный ток.");
            int N21minIPlace = 0;
            double N21minI = int.MaxValue;
            for (int a = 1; a <= 20; a++)
            {
                double currentR = RZ3.Next(1, 10);
                double currentU = RZ3.Next(1, 380);
                double currentI = currentU / currentR;
                if (currentI < N21minI) { N21minI = currentI; N21minIPlace = a; }
                Console.WriteLine($"{a}\t{currentU}:{currentR}={currentI:f2}");
            }
            Console.WriteLine("\n" + N21minIPlace);
            Console.ReadKey();
            Console.Clear();
            //Z3.22
            Console.WriteLine("Z3.22. Дана последовательность целых чисел a1, a2 , …, an ., где n >= 3. Найти: \nа) два максимальных элемента последовательности;\nб) два минимальных элемента последовательности.\nВ обеих задачах два цикла ввода данных не использовать.");
            int N22 = Input("число n",3);
            int N22min1 = int.MaxValue;
            int N22min2 = int.MaxValue;
            int N22max1 = int.MinValue;
            int N22max2 = int.MinValue;
            for (int a = 0; a < N22; a++)
            {
                int currentNum = RZ3.Next(1, 1000);
                if (currentNum > N22max1) { N22max2 = N22max1; N22max1 = currentNum; }
                if (currentNum > N22max2 && currentNum < N22max1) N22max2 = currentNum;
                if (currentNum < N22min1) { N22min2 = N22min1; N22min1 = currentNum; }
                if (currentNum < N22min2 && currentNum > N22min1) N22min2 = currentNum;
                Console.Write(currentNum + " ");
            }
            Console.WriteLine($"\nМинимальные значения {N22min1} и {N22min2} \nМаксимальные значения {N22max1} и {N22max2}");
            Console.ReadKey();
            Console.Clear();
            //Z3.23
            Console.WriteLine("Z3.23. Даны целые числа a1, a2 , …, an . Определить:\nа) сколько раз среди них встречается максимальное;\nб) сколько раз среди них встречается минимальное.\nВ обеих задачах два цикла ввода данных не использовать.");
            int N23 = Input("число N",1);
            int N23min = int.MaxValue;
            int N23max = int.MinValue;
            int N23minCount = 0;
            int N23maxCount = 0;
            for (int a = 0; a<N23; a++)
            {
                int currentNum = RZ3.Next(0, 10);
                if (currentNum>N23max) { N23max = currentNum; N23maxCount = 0; }
                if (currentNum == N23max) N23maxCount++;
                if (currentNum<N23min) { N23min = currentNum; N23minCount = 0; }
                if (currentNum == N23min) N23minCount++;
                Console.Write(currentNum + " ");
            }
            Console.WriteLine($"\nМаксимальное значение встречается {N23maxCount} раз\nМинимальное значение встречается {N23minCount} раз");
            Console.ReadKey();
            Console.Clear();
            //Z3.24
            Console.WriteLine("Z3.24. Известны данные о количестве людей, живущих в квартире № 1, в квартире № 2 и т. д. В каком числе квартир проживает больше всего жильцов? Два цикла ввода данных не использовать.");
            int N24 = Input("количество квартир",1);
            int N24max = 0;
            int N24maxCount = 0;
            for (int a=0; a < N24; a++)
            {
                int currentFlat = RZ3.Next(1,8);
                if (currentFlat > N24max) { N24max = currentFlat; N24maxCount = 0; }
                if (currentFlat == N24max) N24maxCount++;
                Console.Write(currentFlat + " ");
            }
            Console.WriteLine("\n" + N24maxCount);
            Console.ReadKey();
            Console.Clear();
            //Z3.25
            Console.WriteLine("Z3.25. Известны данные о температуре воздуха в течение месяца. Определить, сколько раз дней за месяц была самая низкая температура. Два цикла ввода данных не использовать. ");
            int N25minTemp = int.MaxValue;
            int N25minTempCount = 0;
            for (int a = 1; a<=31; a++)
            {
                int currentTemp = RZ3.Next(10,23);
                if (currentTemp < N25minTemp)
                    { N25minTemp = currentTemp; N25minTempCount = 0; }
                if (currentTemp == N25minTemp)
                    N25minTempCount++;
                Console.Write(currentTemp + " ");
            }
            Console.WriteLine("\n" + N25minTempCount);
            Console.ReadKey();
            Console.Clear();
            //Z3.26
            Console.WriteLine("Z3.26. В последовательности чисел максимальный элемент равен 8 и таких элементов четыре. В конец последовательности дописали число А. Сколько максимальных элементов стало в новой последовательности при A=0 ? При A=8 ?");
            int N26length = Input("количество элементов последовательности", 4);
            int N26count8 = 0;
            int N26A = Input("число A, от 0 до 8",0,8);
            while (N26count8 < 4)
            {
                for (int a = 1; a <= N26length; a++)
                {
                    int currentNum = 8;
                    if (N26count8 == 4)
                        while (currentNum == 8)
                            currentNum = RZ3.Next(0, 9);
                    if (N26count8 < 4) currentNum = RZ3.Next(0, 9);
                    if (currentNum == 8) N26count8++;
                    Console.Write(currentNum + " ");
                }
            }
            Console.Write(N26A);
            if (N26A == 8) N26count8++;
            Console.WriteLine("\n" + N26count8);
            Console.ReadKey();
            Console.Clear();
            //Z3.27
            Console.WriteLine("Z3.27. Даны натуральное число n и последовательность целых чисел a1, a2 , …, an .\nРассмотреть отрезки этой последовательности(подпоследовательности идущих подряд чисел), состоящие из четных чисел.Получить наибольшую из длин рассматриваемых отрезков.");
            int N27 = Input("количество элементов последовательности");
            int N27maxLength = 0;
            for (int oldNum=0, a=1; a<=N27; a++)
            {
                int currentNum = RZ3.Next(0, 20);
                int length = Math.Abs(currentNum - oldNum);
                if (length % 2 == 0 && a > 1)
                    if (length > N27maxLength) N27maxLength = length;
                oldNum = currentNum;
                Console.Write(currentNum + " ");
            }
            Console.WriteLine("\n" + N27maxLength);
            Console.ReadKey();
            Console.Clear();
            //Z3.28
            Console.WriteLine("Z3.28. Дана последовательность из m единиц и нулей. Рассмотреть отрезки этой последовательности (подпоследовательности идущих подряд чисел), состоящие из одних нулей. Получить наименьшую из длин рассматриваемых отрезков.");
            int N28 = Input("длину последовательности");
            int N28minLength = int.MaxValue;
            int N28maxLength = int.MinValue;
            int N28currentLength = 1;
            int N28oldNum = 1;
            int N28currentNum;
            for (int a = 1; a <= N28; a++)
            {
                N28currentNum = RZ3.Next(0, 2);
                if (N28currentNum == 0 && N28oldNum == 0) N28currentLength++;
                if ((N28oldNum == 0 && N28currentNum == 1) || (N28oldNum == 0 && a ==N28))
                {
                    if (N28currentLength < N28minLength) N28minLength = N28currentLength;
                    if (N28currentLength > N28maxLength) N28maxLength = N28currentLength;
                    N28currentLength = 1;
                }
                N28oldNum = N28currentNum;
                Console.Write(N28currentNum + " ");
            }
            Console.WriteLine($"\nМинимальная длина последовательности {N28minLength} \nМаксимальная длина последовательности { N28maxLength}");
            Console.ReadKey();
            Console.Clear();
            //Z3.29
            Console.WriteLine("Z3.29. У прилавка в магазине выстроилась очередь из n покупателей. Время обслуживания продавцом i-го покупателя равно ti ( i = 1, 2, …, n). Пусть даны натуральное n и действительные t1, …, tn. Получить c1, c2, …, cn, где ci — время пребывания i-го покупателя в очереди ( i = 1, 2, …, n). Указать номер покупателя, для обслуживания которого продавцу потребовалось самое малое время.");
            int N29customers = Input("оличество покупателей", 1);
            int N29workTime = 0;
            int N29waitTime = 0;
            int N29minWorkTime = int.MaxValue;
            int N29minWorkCustomer=0;
            for (int a = 1; a <= N29customers; a++)
            {
                N29workTime = RZ3.Next(10, 120);
                if (N29workTime < N29minWorkTime) { N29minWorkTime = N29workTime; N29minWorkCustomer = a; }
                Console.WriteLine($"Покупатель {a} время ожидания в очереди {N29waitTime}, время обслуживания с продавцом {N29workTime}");
                N29waitTime += N29workTime;
            }
            Console.WriteLine(N29minWorkCustomer + " покупатель был обслужан быстрее вссех");
            Console.ReadKey();
            Console.Clear();
            //Z3.30
            Console.WriteLine("Z3.30. Дана последовательность целых чисел x1, x2, …, xn, где n >= 3. Найти:\nа) максимальную сумму двух соседних чисел;\nб) минимальную сумму двух соседних чисел;\nв) порядковые номера двух соседних чисел, сумма которых максимальна.Если таких пар чисел несколько, то найти номера чисел первой такой пары;\nг) порядковые номера двух соседних чисел, сумма которых минимальна.Если таких пар чисел несколько, то найти номера чисел последней из них.");
            int N30amount = Input("количество членов последовательности",3);
            int N30oldNumber=0;
            int N30currentNumber=0;
            int N30maxSum = int.MinValue;
            int N30maxSumNum = 0;
            int N30minSum = int.MaxValue;
            int N30minSumNum = 0;
            for (int a = 1; a <= N30amount; a++)
            {
                N30currentNumber = RZ3.Next(1, 100);
                if (a > 1 && N30currentNumber + N30oldNumber > N30maxSum)  
                    { N30maxSum = N30currentNumber + N30oldNumber; N30maxSumNum = a;}
                if (a > 1 && N30currentNumber + N30oldNumber <= N30minSum)
                    { N30minSum = N30currentNumber + N30oldNumber; N30minSumNum = a; }
                N30oldNumber = N30currentNumber;
                Console.Write(N30currentNumber + " ");
            }
            Console.WriteLine($"\nа) максимальную сумму двух соседних чисел {N30maxSum};\nб) минимальную сумму двух соседних чисел {N30minSum};\nв) порядковые номера двух соседних чисел, сумма которых максимальна {N30maxSumNum-1} {N30maxSumNum};\nг) порядковые номера двух соседних чисел, сумма которых минимальна {N30minSumNum-1} {N30minSumNum}");
            Console.ReadKey();
            Console.Clear();
            //Z3.31
            Console.WriteLine("Z3.31. Известна сумма очков, набранных каждой из 20 команд-участниц чемпионата по футболу. Определить сумму очков, набранных командами, занявшими в чемпионате три первых места.");
            int N31currentTeam = 0;
            int N31place1 = 0;
            int N31place2 = 0;
            int N31place3 = 0;
            for (int a = 1; a <= 20; a++)
            {
                N31currentTeam = RZ3.Next(20, 101);
                if (N31currentTeam >= N31place1)
                {
                    N31place3 = N31place2;
                    N31place2 = N31place1;
                    N31place1 = N31currentTeam;
                }
                else if (N31currentTeam>= N31place2)
                {
                    N31place3 = N31place2;
                    N31place2 = N31currentTeam;
                }
                else if(N31currentTeam>=N31place3)
                {
                    N31place3 = N31currentTeam;
                }
                Console.Write(N31currentTeam + " ");
            }
            Console.WriteLine($"\n1-е место {N31place1}\n2-е место {N31place2}\n3-е место {N31place3}");
            Console.ReadKey();
            Console.Clear();
            //Z3.32
            Console.WriteLine("Z3.32. Даны натуральные числа n, a1, a2, …, an (n >= 4). Числа a1, a2, …, an — это измеренные в сотых долях секунды результаты n спортсменов в беге на 100 м. Составить команду из четырех лучших бегунов для участия в эстафете 4 x 100 м, т. е. указать одну из четверок натуральных чисел i, j, k, m, для которой 1 <= i < j < k < m <=n и сумма ai, aj, ak, am имеет наименьшее значение.");
            int N32runners = Input("количество бегунов",4);
            double N32currentTime=int.MaxValue;
            int[] N32topPlace = new int [4];
            double[] N32topPlaceTime = new double[4];
            Array.Fill(N32topPlaceTime, int.MaxValue);
            for (int a = 1; a <= N32runners; a++)
            {
                N32currentTime = Math.Round(RZ3.NextDouble() * (11 - 8) + 8,2);
                for (int b = N32topPlaceTime.Length-1; b>=0; b--)
                {
                    if (N32currentTime<=N32topPlaceTime[b])
                    {
                        if (b < N32topPlaceTime.Length-1)
                        {
                            N32topPlaceTime[b + 1] = N32topPlaceTime[b];
                            N32topPlace[b + 1] = N32topPlace[b];
                        }
                        N32topPlaceTime [b] = N32currentTime;
                        N32topPlace[b] = a;
                    }
                }
                Console.Write(N32currentTime + " ");
            }
            Console.Write("\nСамые быстрые бегуны под номерами: ");
            foreach (int c in N32topPlace) Console.Write(c + " ");
            Console.ReadKey();
            Console.Clear();
            //Z3.33, Z3.34
            Console.WriteLine("Z3.33. Даны 20 пар однозначных чисел. Первое число каждой пары означает количество мячей, забитых футбольной командой в игре, второе — количество пропущенных мячей в этой же игре.\nа) Для каждой проведенной игры напечатать словесный результат: «выигрыш», «ничья» или «проигрыш».\nб) Определить количество выигрышей данной команды.\nв) Определить количество выигрышей и количество проигрышей данной команды.\nг) Определить количество выигрышей, количество ничьих и количество проигрышей данной команды.\nд) Определить, в скольких играх разность забитых и пропущенных мячей была большей или равной трем.\nе) Определить общее число очков, набранных командой(за выигрыш дается 3 очка, за ничью — 1, за проигрыш — 0).");
            //Console.WriteLine("Z3.34.Решить задачу Z3.33.для случая, когда вместо 20 пар однозначных чисел заданы 20 однозначных или двузначных чисел, запись которых образована цифрами, соответствующими количеству забитых и пропущенных мячей в одной игре.Например, 32 — три забитых, 2 пропущенных; 22 — 2 забитых, 2 пропущенных; 0 — 0 забитых, 0 пропущенных.);
            //int N34score = 0;
            int N33scored = 0;
            int N33missed = 0;
            string S33result = "";
            int N33win = 0;
            int N33lose = 0;
            int N33draw = 0;
            int N33more3count = 0;
            int N33finalScores = 0;
            for (int a = 1; a <= 20 ; a++)
            {
                //N34score = RZ3.Next(0, 100);
                //N33scored = N34score / 10;
                //N33missed = N34score % 10;
                N33scored = RZ3.Next(0, 10);
                N33missed = RZ3.Next(0, 10);
                if (N33scored>N33missed)
                {
                    N33win++;
                    N33finalScores += 3;
                    S33result = "выйгрыш";
                }
                if(N33scored==N33missed)
                {
                    N33draw++;
                    N33finalScores += 1;
                    S33result = "ничья";
                }
                if(N33scored<N33missed)
                {
                    N33lose++;
                    S33result = "проигрыш";
                }
                if (Math.Abs(N33missed - N33scored) >= 3) N33more3count++;
                Console.WriteLine($"Игра {a}; счет {N33scored}:{N33missed}; результат {S33result}") ;
            }
            Console.WriteLine($"\nб) Определить количество выигрышей данной команды. {N33win}\nв) Определить количество проигрышей данной команды. {N33lose}\nг) Определить количество ничьих данной команды. {N33draw}\nд) Определить, в скольких играх разность забитых и пропущенных мячей была большей или равной трем. {N33more3count}\nе) Определить общее число очков, набранных командой(за выигрыш дается 3 очка, за ничью — 1, за проигрыш — 0) {N33finalScores}");
            Console.ReadKey();
            Console.Clear();
        }
    }
}

Z3.33

int[] history = {1,2,1,1,2,0,3,5,4,2,4,4,1,2,4,4,5,1,5,3,3,3,0,0,0,1,3,2,2,2,2,2,3,4,1,2,2,1,2,1}; // история матчей
            int goal=0, aut =1, wins = 0, lose = 0, draw = 0, peransD = 0, ansD=0, score = 0;
            int i =1;
            while ( i < history.Length) // a)
            {
                if (history[goal]>history[aut])
                {
                    System.Console.WriteLine("Победа!");
                    wins++; // подсчет количества побед
                    score += 3;
                    peransD=history[goal]-history[aut];
                    if (peransD>=3)
                    {ansD++;}


                }
                else if (history[goal]==history[aut])
                {
                    System.Console.WriteLine("Ничья");
                    draw++;
                    score += 1;
                }
                else{
                    System.Console.WriteLine("Поражение");
                    lose++;
                    peransD=history[aut]-history[goal];
                    if (peransD>=3)
                    {ansD++;}
                }
                i+=2;
                goal+=2;
                aut+=2;
            }
            System.Console.WriteLine("Количество побед: " + wins); // Б) Определить количество выигрышей данной команды
            System.Console.WriteLine("Количество побед: {0}. Количество поражений: {1}", wins, lose);// в) Определить количество выигрышей и количество проигрышей данной команды.
            System.Console.WriteLine("\nКоличество побед: {0}. \nКоличество поражений: {1}. \nКоличество ничьих: {2}", wins, lose, draw); // г
            System.Console.WriteLine("Кол-во игр где разница голов и пропусков больше или равна 3: " + ansD); // Д
            System.Console.WriteLine("Команда набрала {0} очков", score);

Олег, решение верное.
Но я бы поработал над читаемостью кода:

  • организовал бы ввод ввиде двумерного массива
  • назвал бы переменные не сокращая и более понятно
  • убрал бы лишнее (например у вас аж 3 переменных цикла (i, goal, auth), а хватит одной)
  • цикл может быть просто ‘for’ — так короче
  • используйте автоформатирование кода в Visual Studio
Важно: Вы можете поддержать проект и автора.

Z3.34.

int n = 4;
int q = 0;
int e = 0;
int r = 0;
int l = 0;
for (int i = 1; i <= n; i++)
{
  Console.Write($»Enter x{i}:»);
  int x = Convert.ToInt32(Console.ReadLine());
  int b = x % 10;
  int a = x / 10;
  if (a — b >= 3)
    l++;
  if (a > b)
  {
    Console.WriteLine(«выигрыш»);
    q++;
  }
  else if (a == b)
  {
    Console.WriteLine(«ничья»);
    e++;
  }
  else
  {
    Console.WriteLine(«проигрыш»);
    r++;
  }
}
Console.WriteLine($»проигрыш {r}»);
Console.WriteLine($»ничья {e}»);
Console.WriteLine($»выигрыш {q}»);
Console.WriteLine($»разность забитых и пропущенных мячей 3- {l}раз»);
q = 3;
e = 1;
r = 0;
Console.WriteLine($» общее число очков- {q+e+r}»);

Z3.33.

int n = 4;
int q = 0;
int e = 0;
int r = 0;
int l = 0;
for (int i = 1; i <= n; i++)
{
  Console.Write($»Enter a{i}:»);
  int a = Convert.ToInt32(Console.ReadLine());
  Console.Write($»Enter b{i}:»);
  int b = Convert.ToInt32(Console.ReadLine());
  if (a — b >= 3)
    l++;
  if (a > b)
  {
    Console.WriteLine(«выигрыш»);
    q++;
  }
  else if (a == b)
  {
    Console.WriteLine(«ничья»);
    e++;
  }
  else
  {
    Console.WriteLine(«проигрыш»);
    r++;
  }
}
Console.WriteLine($»проигрыш {r}»);
Console.WriteLine($»ничья {e}»);
Console.WriteLine($»выигрыш {q}»);
Console.WriteLine($»разность забитых и пропущенных мячей 3- {l}раз»);
q = 3;
e = 1;
r = 0;
Console.WriteLine($» общее число очков- {q+e+r}»);

Z3.16. Даны n пар чисел: a1,b1 , a2,b2 , …, an,bn . Определить:
а) максимальную сумму значений чисел в паре;
б) минимальное произведение значений чисел в паре.

Console.WriteLine(«Enter n:»);
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($»Enter a1:»);
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($»Enter b1:»);
int b = Convert.ToInt32(Console.ReadLine());
int sum = a + b;
int mult = a * b;
int max = sum;
int min = mult;
for (int i = 2; i <= n; i++)
{
  Console.WriteLine($»Enter a{i}:»);
   a = Convert.ToInt32(Console.ReadLine());
  Console.WriteLine($»Enter b{i}:»);
   b = Convert.ToInt32(Console.ReadLine());
  sum = a + b;
  mult = a * b;
  if (sum > max)
    max = sum;
  if (mult < min)
    min = mult;
}
Console.WriteLine($»summa max = {max}»);
Console.WriteLine($»multiplication min = {min}»);

Последний раз редактировалось 2 месяцев назад Евгений ем

Z3.1. Даны натуральное число n и вещественные числа x1, x2, …, xn. Найти:
а) максимальное из вещественных чисел;
б) минимальное из вещественных чисел;
в) максимальное и минимальное из вещественных чисел.
Примечание. В задаче (в) использовать только один оператор цикла.

Console.WriteLine(«Enter n:»);
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($»Enter x:»);
double x = Convert.ToDouble(Console.ReadLine());
double max = x;
double min = x;
for (int i = 1; i < n; i++)
{
  Console.WriteLine($»Enter x:»);
  x = Convert.ToDouble(Console.ReadLine());
  if (x > max)
    max = x;
  if (x < min)
    min = x;
}
Console.WriteLine($»max = {max}»);
Console.WriteLine($»min = {min}»);

#3.1 a)
Console.WriteLine(«Enter n:»);
int n = Convert.ToInt32(Console.ReadLine());
double max = 0;
for (int i = 1; i <=n; i++)
{
  Console.WriteLine($»Enter x:»);
  double x = Convert.ToDouble(Console.ReadLine());
  if (x > max)
    max = x;
}
Console.WriteLine($»max = {max}»);

Последний раз редактировалось 2 месяцев назад Евгений ем

Z3.6. Известны максимальные скорости каждой из 20 марок легковых автомобилей. Определить, какую максимальную скорость имеет самый быстрый автомобиль.

Z3.12. Известны данные о количестве осадков, выпавших за каждый день месяца. Какого числа выпало самое большое количество осадков? Если таких дней несколько, то должна быть найдена дата последнего из них.

 static void Main(string[] args)
        {
            Random rand = new Random();
            int[] arr = new int[30];
            int max = -1;
            int number=0;
            for(int i=0; i<arr.Length; i++)
            {
                arr[i] = rand.Next(0, 20);
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine();
            for(int i=0; i=max)
                {
                    max = arr[i];
                    number = i + 1;
                }
            }
            Console.WriteLine($"max precistation-{max} at the day-{number}");
        }

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

Важно: Вы можете поддержать проект и автора.
Важно: Вы можете поддержать проект и автора.
15
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x