Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2016, 17:27   #1
Helgha
Новичок
Джуниор
 
Регистрация: 15.03.2016
Сообщений: 1
По умолчанию Разобрать построчно готовый код программы С#

class massif
{
static void Main()
{
int n;
int count;
int[] arr = new int[100];

Dictionary<int, int> rez = new Dictionary<int, int>();

Random rnd = new Random();
Console.WriteLine("Введите количество чисел:");
n = Convert.ToInt32(Console.ReadLine()) ;
Console.WriteLine("исходный массив:");
for (int i = 0; i < n; i++)
{
arr[i] = rnd.Next(-10, 100);
Console.Write(arr[i] + " ");
}

for (int i = 0; i < n; i++)
{
if (!rez.ContainsKey(arr[i]))
{
rez.Add(arr[i], 1);
}
else
{
count = rez[arr[i]];
count++;
rez[arr[i]] = count;
}
}

Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("элементы массива, которые встречаются в нем более одного раза:");


for (int i = 0; i < n; i++)
{
if (rez[arr[i]] != 1)
Console.Write(arr[i] + " ");
}

Console.WriteLine("");
Console.WriteLine("");

foreach (KeyValuePair<int, int> t in rez)
{
if (t.Value > 1)
{
Console.Write("число " + t.Key + " встречается ");
Console.WriteLine(t.Value + " раз(а)");
}
};
Console.ReadLine();
}
}
Helgha вне форума Ответить с цитированием
Старый 15.03.2016, 23:16   #2
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию

Код:
class massif //создаем класс
{
    static void Main() //создаем статический метод Main (подозреваю вход в программу)
    {
        int n; //создаем переменную n типа int
        int count; //создаем переменную count типа int
        int[] arr = new int[100]; //создаем массив arr из ста элементов типа int

        Dictionary<int, int> rez = new Dictionary<int, int>(); //создаем экземпляр класса Dictionary, имеющий и ключ и значение типа int

        Random rnd = new Random(); //создаем экземпляр класса Random
        Console.WriteLine("Введите количество чисел:"); //выводим строку на экран консоли
        n = Convert.ToInt32(Console.ReadLine()); //считываем значение введенное с клавиатуры и конвертируем его в переменную типа int
        Console.WriteLine("исходный массив:"); //выводим строку
        for (int i = 0; i < n; i++) //начинаем цикл от 0 до числа n-1
        {
            arr[i] = rnd.Next(-10, 100); //в цикле заполняем элементы массива arr от нулевого до n-ого случайным числом от -10 до 100
            Console.Write(arr[i] + " "); //и тут же выводим их на экран через пробел
        }

        for (int i = 0; i < n; i++) //создаем новый цикл от 0 до n-1
        {
            if (!rez.ContainsKey(arr[i])) //проверяем, есть ли в нашем словаре ключ со значением, равным элементу массива arr
            {
                rez.Add(arr[i], 1); //если нет, то добавляем его туда, и присваиваем его значению 1
            }
            else //а если такой ключ имеется в словаре
            {
                count = rez[arr[i]]; //то записываем в count значение, соответствующее ключу, равного элементу массива arr
                count++; //добавляем единичку
                rez[arr[i]] = count; //и записываем полученный результат обратно в словарь в значение ключа, равного элементу массива arr
            }
        } //заканчиваем цикл

        Console.WriteLine(""); //выводим на экран пустую строку
        Console.WriteLine(""); //выводим на экран пустую строку
        Console.WriteLine("элементы массива, которые встречаются в нем более одного раза:"); //выводим на экран строку


        for (int i = 0; i < n; i++) //делаем цикл от 0 до n-1
        {
            if (rez[arr[i]] != 1) //если в словаре значение, соответствующее ключу, равного элементу массива arr[i], не равен 1
                Console.Write(arr[i] + " "); //то выводим значение этого элемента массива
        } //заканчиваем цикл

        Console.WriteLine(""); //выводим на экран пустую строку
        Console.WriteLine(""); //выводим на экран пустую строку

        foreach (KeyValuePair<int, int> t in rez) //проходим по всем элементам словаря
        {
            if (t.Value > 1) //если значение элемента словаря больше одного
            {
                Console.Write("число " + t.Key + " встречается "); //то выводим на экран ключ этого элемента
                Console.WriteLine(t.Value + " раз(а)"); //и его значение
            }
        }; //конец прохода по всем элементам словаря
                Console.ReadLine(); //считываем строку с консоли
    }
}
Если необходимо вкратце рассказать, что происходит, то происходит следующее:
1) создаете массив целочисленных переменных (не более 100 элементов в массиве - точное количество пользователь вводит в ручную с клавиатуры)
2) создаете словарь
3) в словаре создаете ключ, равный неповторяющимся элементам массива (ну это и так понятно) и каждому ключу приписывается значение, в которое записывается какое количество раз это число встречается в массиве.
4) затем через пробел выводится массив значений первоначального массива, которые встречаются неоднократно
5) ну и собственно выводится какое число из второго массива какое количество раз встречается в первом массиве
Все!
Ах, да! Чуть не забыл. 6) В последней строчке консоль ждет, чтобы пользователь сообщил ей что-нибудь, но лишь только для того, чтобы консоль не закрылась сразу после исполнения п.5.

Теперь точно все. Если что-то неправильно народ подправит.

P.S. Читайте правила форума, в которых написано, что код программы надо выделять в теги CODE.
max_prorok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести построчно информацию из блокнота в Memo поле Делфи 7 (есть код программы) программирование Помощь студентам 3 05.12.2013 23:06
Нужно разобрать готовый алгоритм решения задачи в среде Паскаль TaylorGang Помощь студентам 0 14.11.2011 22:17
Как на си разобрать код программы на строки.... evgpol Помощь студентам 3 20.05.2011 23:32
как зашифровать код готовый программы? quarty Общие вопросы Delphi 5 04.02.2011 20:45