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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 19:16   #1
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
Вопрос одномерный массив. Сортировка массивов.

Добрый вечер. Прошу вашей помощи с заданием.
Заранее благодарен, нужно помочь доделать.
Задание :
В одномерном массиве,состоящем из n вещественных элементов вычислить:
1. Произведение положительных элементов массива;
2.Сумму элементов массива, расположенных до минимального элемента.
Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах. (n вводится с клавиатуры)

1 и 2 задание сделал, не как не могу разобраться с 3 помогите пожалуйста.
Главное чтобы это все было в одном коде как одна программа как массив с генерировало так тот же и отсортировало
вот мой код для 1 и 2 задания
Код:
static void Main(string[] args)
        {
            Double[] aMassiv;
            Console.WriteLine("Введите количество элементов n=");
            int n = Convert.ToInt32(Console.ReadLine());
            aMassiv = new Double[n];
            Random rnd = new Random();
            
            for (int i = 0; i < aMassiv.Length; i++)
                aMassiv[i] = ((rnd.Next(100)>50)?-1:1)*rnd.NextDouble()*100;
 
            Double p1 = 1;//1
            foreach (Double i in aMassiv)
                if (i > 0) p1 *= i;
            
            Console.WriteLine("Произведение положительных элементов массива = " + p1);
 
            Double min = aMassiv.Min(); //находим мин элемент
            Double p2 = 0;//2
            foreach (Double i in aMassiv)
 
                if (i != min) p2 += i;
                else break;
            Console.WriteLine("Сумма элементов массива, расположенных до минимального элемента = " + p2);
            foreach (var i in aMassiv)
            {
                Console.Write(string.Format("{0:f3}\t\t", i )); 
            }
 
            Console.ReadKey();
        }
Главное чтобы это все было в одном коде как одна программа как массив с генерировало так тот же и отсортировало


Мои мысли по созданию сортировки.
Допустим у нас массив:
Цитата:
|-6|0|10|1|5|-3|2|15|-7|
|↑|↓| ↑ |↓|↑|↓|↑|↓|↑|
1)-6 10 5 2 -7 - четные элементы сделать

2)0 1 -3 15 - нечетные элементы сделать

3) где четные элементы отсортировать по возрастанию т.е. -7 -6 2 5 10
4) где нечетные элементы отсортировать по возрастанию т.е. -3 0 1 15
5)записать это все в табличку и отсортировать это все по возрастанию т.е.
| -7 | -3 | -6 | 0 | 2 | 1 | 5 | 15 | 10 | ну и последний шаг методом Sort все отсортировать по возрастанию.

ВОт такие у меня мысли , только как из алгоритма сделать код не знаю.
ПОмогите пожалуйста записать это все в коде

Последний раз редактировалось PROkaZZZniK; 11.12.2011 в 19:18.
PROkaZZZniK вне форума Ответить с цитированием
Старый 11.12.2011, 19:39   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

У вас все задания одинаковой сложности, если вы смогли сделать первые, сможете и это. Если у вас возникают конкретные вопросы вы можете их задать здесь.

5)записать это все в табличку и отсортировать это все по возрастанию т.е.

в какую табличку?)

В конечном итоге у вас получается то же самое если бы вы использовали array.Sotr () сразу. Если не выводить промежуточные этапы на экран в этих действиях нет смысла.


ты автокадом умеешь пользоваться?)

Последний раз редактировалось rUs_LAN; 11.12.2011 в 20:19.
rUs_LAN вне форума Ответить с цитированием
Старый 11.12.2011, 21:13   #3
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
int tmp = (n % 2 == 0)? n/2:n/2 + 1;

            double[] bMassiv = new double[tmp];
            double[] cMassiv = new double[n/2];

            for (int i = 0; i < n; i++)
            {
                if (i % 2 == 0)
                    bMassiv[i / 2] = aMassiv[i];
                else
                    cMassiv[i / 2] = aMassiv[i];
            }
            Array.Sort(bMassiv);
            Array.Sort(cMassiv);
            for (int i = 0; i < tmp; i++)
            {
                if (i < tmp - 1)
                    Console.Write(string.Format("{0:f3}\t\t{1:f3}\t\t", bMassiv[i], cMassiv[i]));
                else
                    Console.Write(string.Format("{0:f3}", bMassiv[i]));
            }
rUs_LAN вне форума Ответить с цитированием
Старый 11.12.2011, 21:39   #4
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
ты автокадом умеешь пользоваться?)
нет)))))) объяснишь как?
PROkaZZZniK вне форума Ответить с цитированием
Старый 11.12.2011, 21:39   #5
PROkaZZZniK
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 121
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
Код:
int tmp = (n % 2 == 0)? n/2:n/2 + 1;

            double[] bMassiv = new double[tmp];
            double[] cMassiv = new double[n/2];

            for (int i = 0; i < n; i++)
            {
                if (i % 2 == 0)
                    bMassiv[i / 2] = aMassiv[i];
                else
                    cMassiv[i / 2] = aMassiv[i];
            }
            Array.Sort(bMassiv);
            Array.Sort(cMassiv);
            for (int i = 0; i < tmp; i++)
            {
                if (i < tmp - 1)
                    Console.Write(string.Format("{0:f3}\t\t{1:f3}\t\t", bMassiv[i], cMassiv[i]));
                else
                    Console.Write(string.Format("{0:f3}", bMassiv[i]));
            }
спасибо))))
PROkaZZZniK вне форума Ответить с цитированием
Старый 11.12.2011, 21:42   #6
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

я дописал уже твою программу....
мне просто надо найти человека который в автокад разбирается:​​)
rUs_LAN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Сортировка (C++) cudalover Помощь студентам 10 08.11.2012 19:28
Обработка массивов. Одномерный массив. Spyke Паскаль, Turbo Pascal, PascalABC.NET 2 14.04.2011 20:29
одномерный массив сортировка Шелла Zhuk. Паскаль, Turbo Pascal, PascalABC.NET 0 01.12.2010 23:00
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
одномерный массив, элементы которого собраны в возрастающем порядке из двух начальных массивов Scudetto Общие вопросы C/C++ 7 21.10.2007 20:46