Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не могу написать программу с массивом с подпрограммой ключевым словом return

86K
18 октября 2015 года
CP_agent
6 / / 18.10.2015
Заданы три массива: х={x1,x2,х3,х4,х5}; у = {y1,y2,y3,y4,y5,y6}; z={z1,z2,z3,z4}.
Упорядочить по возрастанию три числа а, b, c, где а – минимальный элемент массива х, b - минимальный элемент массива у, с - минимальный элемент массива z.

Разработать алгоритм и программу решения задачи с использованием подпрограммы.
1) подпрограмма, которая возвращает значение (оператор return)
86K
19 октября 2015 года
CP_agent
6 / / 18.10.2015
хелп
6.9K
20 октября 2015 года
fen1xxx
63 / / 04.11.2010
На Яве не пишу. На С# я сделал так:
Код:
private void button1_Click(object sender, EventArgs e)
        {
            int[] x = new int[5];
            int[] y = new int[6];
            int[] z = new int[4];
            int[] res = new int[3];

            /* здесь заполняешь свои массивы */
            x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
            y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
            z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;

            int a = min(x);
            int b = min(y);
            int c = min(z);

            res[0] = a;
            res[1] = b;
            res[2] = c;

            res[0] = min(res);
            if (a >= c && a >= b)
                res[2] = a;
            else if (b >= c && b >= a)
                res[2] = b;
            else
                res[2] = c;

            if (res[0] != a && res[2] != a)
                res[1] = a;
            else if (res[0] != b && res[2] != b)
                res[1] = b;
            else
                res[1] = c;

            MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
    }

    public int min(int[] arr)
        {
            int res = arr[0];
            for (int i = 1; i < arr.Length; i++)
                if (arr[i] < res)
                    res = arr[i];
            return res;
        }
Надеюсь поможет. Будут вопросы - обращайся.
86K
20 октября 2015 года
CP_agent
6 / / 18.10.2015
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?
6.9K
21 октября 2015 года
fen1xxx
63 / / 04.11.2010
Цитата: CP_agent
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?

Могу. Мне никто не отвечает на мои вопросы, сначала огорчился, а потом понял, что сам другим не помогаю :) Исправляю ситуацию.

Код:
private void button1_Click(object sender, EventArgs e) // событие нажатия кнопки button1
        {
        // создаю массивы
            int[] x = new int[5];
            int[] y = new int[6];
            int[] z = new int[4];
            int[] res = new int[3];

            // заполняю массивы
            x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
            y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
            z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
       
        // получаю минимальный элемент каждого массива
            int a = min(x);
            int b = min(y);
            int c = min(z);

        // заполняю массив, в котором будут храниться результаты, минимальными значениями
            res[0] = a;
            res[1] = b;
            res[2] = c;

        // т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
            res[0] = min(res);
        // нахожу максимальный элемент и записываю его в конец res
            if (a >= c && a >= b)
                res[2] = a;
            else if (b >= c && b >= a)
                res[2] = b;
            else
                res[2] = c;

        // теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
        // и записываю в середину
            if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
                res[1] = a;
            else if (res[0] != b && res[2] != b)
                res[1] = b;
            else
                res[1] = c;

        // Вывод результата
            MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
    }

    // та "подпрограмма", о которой шла речь в задании
    public int min(int[] arr)
    {
        // записываю первый элемент массива в res
            int res = arr[0];

        // иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
            for (int i = 1; i < arr.Length; i++)
        // если нашёл элемент меньше чем res - записываю его как минимальный
        // ну а если не нашёл таких - значит первый элемент массива и есть минимальный
                if (arr[i] < res)
                    res = arr[i];
            return res;
    }
Знаю, что можно было сделать всё круче и красивее, но для того чтобы понять суть или сдать лабу вполне достаточно.
P.S. Если отвечаешь на чьё-либо сообщение, нажимай "Цитировать", тогда на почту приходит уведомление. Так бы раньше ответил:)
86K
21 октября 2015 года
CP_agent
6 / / 18.10.2015
Цитата: fen1xxx
Цитата: CP_agent
Можете оставить комментария в коде , что бы я понял конкретнее если не трудно:!:?

Могу. Мне никто не отвечает на мои вопросы, сначала огорчился, а потом понял, что сам другим не помогаю :) Исправляю ситуацию.

Код:
private void button1_Click(object sender, EventArgs e) // событие нажатия кнопки button1
        {
        // создаю массивы
            int[] x = new int[5];
            int[] y = new int[6];
            int[] z = new int[4];
            int[] res = new int[3];

            // заполняю массивы
            x[0] = 2; x[1] = 3; x[2] = 12; x[3] = 23; x[4] = 12;
            y[0] = 7; y[1] = 9; y[2] = 45; y[3] = 87; y[4] = 29; y[5] = 22;
            z[0] = 4; z[1] = 34; z[2] = 77; z[3] = 102;
       
        // получаю минимальный элемент каждого массива
            int a = min(x);
            int b = min(y);
            int c = min(z);

        // заполняю массив, в котором будут храниться результаты, минимальными значениями
            res[0] = a;
            res[1] = b;
            res[2] = c;

        // т.к. отсортировать нужно по возрастанию, первый элемент - минимальный из a, b, c
            res[0] = min(res);
        // нахожу максимальный элемент и записываю его в конец res
            if (a >= c && a >= b)
                res[2] = a;
            else if (b >= c && b >= a)
                res[2] = b;
            else
                res[2] = c;

        // теперь ищу элемент, который не является ни макс. ни мин (т.е. средний)
        // и записываю в середину
            if (res[0] != a && res[2] != a) // например, если а не равно мин. и макс. элементу
                res[1] = a;
            else if (res[0] != b && res[2] != b)
                res[1] = b;
            else
                res[1] = c;

        // Вывод результата
            MessageBox.Show(res[0].ToString() + " " + res[1].ToString() + " " + res[2].ToString());
    }

    // та "подпрограмма", о которой шла речь в задании
    public int min(int[] arr)
    {
        // записываю первый элемент массива в res
            int res = arr[0];

        // иду в цикле по каждому элементу массива, начиная со второго (т.к. первый у нас уже в res)
            for (int i = 1; i < arr.Length; i++)
        // если нашёл элемент меньше чем res - записываю его как минимальный
        // ну а если не нашёл таких - значит первый элемент массива и есть минимальный
                if (arr[i] < res)
                    res = arr[i];
            return res;
    }
Знаю, что можно было сделать всё круче и красивее, но для того чтобы понять суть или сдать лабу вполне достаточно.
P.S. Если отвечаешь на чьё-либо сообщение, нажимай "Цитировать", тогда на почту приходит уведомление. Так бы раньше ответил:)

Спасибо большое за ваш труд, очень помогли мне!
А на Java я уже перевести сам смогу!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог