Практикум по курсу "Алгоритмизация и программирование". Часть 1. Андрианова А.А - 44 стр.

UptoLike

Console.WriteLine("Введите элементы массива:");
for (int i = 0; i < n; i++)
int.TryParse(Console.ReadLine(), out a[i]);
int max = a[0];
for (int i = 1; i < n; i++)
if (a[i] > max)
max = a[i];
Console.WriteLine("max = {0}", max);
}
}
}
Задача 3. Определить количество минимальных элементов массива.
Рассмотрим два алгоритма решения этой задачи. Первый алгоритм (более
понятный) заключается в разбиении исходной задачи на две подзадачи:
нахождение минимального элемента и подсчет количества равных ему
элементов. Заметим, что при этом приходится дважды просмотреть весь
массив.
Второй алгоритм (более эффективный) решает обе подзадачи за один
просмотр массива. Так же, как в предыдущей задаче, предполагаем, что
первый элемент может являться минимальным. Соответственно, количество
минимальных элементов в начальный момент равно 1. Встретив элемент,
совпадающий с текущим минимумом, увеличиваем их количество на 1. Если
же найден элемент, меньший текущего минимума, то меняем минимум на
новый и устанавливаем количество в 1.
Блок-схемы, описывающие эти алгоритмы, представлены на Рис.4.7 и
Рис.4.8.
Код программы для задачи 3 (алгоритм 1).
using System;
namespace Examples
{
class Program1
{
static void Main(string[] args)
{
int n;
int[] a;
Console.Write("Введите количество элементов массива n:");
int.TryParse(Console.ReadLine(), out n);
if (n <= 0)
{
Console.WriteLine("Введите положительное n\n");
return;
}
a = new int[n];
if (a == null)
{
Console.WriteLine("Запрошено большое количество памяти.");
                    Console.WriteLine("Введите элементы массива:");
                    for (int i = 0; i < n; i++)
                        int.TryParse(Console.ReadLine(), out a[i]);
                    int max = a[0];
                    for (int i = 1; i < n; i++)
                        if (a[i] > max)
                            max = a[i];
                    Console.WriteLine("max = {0}", max);

             }
         }
     }

    Задача 3. Определить количество минимальных элементов массива.
    Рассмотрим два алгоритма решения этой задачи. Первый алгоритм (более
понятный) заключается в разбиении исходной задачи на две подзадачи:
нахождение минимального элемента и подсчет количества равных ему
элементов. Заметим, что при этом приходится дважды просмотреть весь
массив.
    Второй алгоритм (более эффективный) решает обе подзадачи за один
просмотр массива. Так же, как в предыдущей задаче, предполагаем, что
первый элемент может являться минимальным. Соответственно, количество
минимальных элементов в начальный момент равно 1. Встретив элемент,
совпадающий с текущим минимумом, увеличиваем их количество на 1. Если
же найден элемент, меньший текущего минимума, то меняем минимум на
новый и устанавливаем количество в 1.
    Блок-схемы, описывающие эти алгоритмы, представлены на Рис.4.7 и
Рис.4.8.

    Код программы для задачи 3 (алгоритм 1).
    using System;

    namespace Examples
    {
        class Program1
        {
            static void Main(string[] args)
            {
                int n;
                int[] a;
                Console.Write("Введите количество элементов массива n:");
                int.TryParse(Console.ReadLine(), out n);
                if (n <= 0)
                {
                    Console.WriteLine("Введите положительное n\n");
                    return;
                }
                a = new int[n];
                if (a == null)
                {
                    Console.WriteLine("Запрошено большое количество памяти.");