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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2012, 17:40   #1
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию Одномерные массивы

В одномерном массиве, состоящем из n вещественных элементов, вычислить:
-сумму отрицательных элементов массива;
-произведение элементов массива, расположенных между максимальным и минимальным элементами.
Упорядочить элементы массива по возрастанию.

Объясните, как это делать? Или может кто знает где об этом почитать можно?
GoodNight вне форума Ответить с цитированием
Старый 02.11.2012, 17:50   #2
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

первая часть задачи:
заводишь переменную под сумму, циклом пробегаешься по массиву, и сравниваешь каждый элемент с нулем, если меньше нуля, то summ:=summ+a[i]( в пример язык Pascal, т.к. ты язык не указал)
вторая часть:
ищешь в массиве максимальный и минимальный элементы, запоминаешь их индексы за первый проход, а за второй находишь произведение элементов от минимального до максимального =)
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 02.11.2012, 17:56   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Первая задача - "обойти все элементы массива" (темы: циклы, доступ к элементу массива по индексу)
Вторая задача - "обход с аккумулятором" (объявляется переменная-аккумулятор, в которую при обходе собирается, в данном случае, сумма отрицательных членов; тема - условные операторы)
Третья задача - поиск максимального/минимального элемента (аккумулятор теперь состоит из двух переменных - значения и индекса; они содержат "кандидата" на роль максимума/минимума и меняются только при обнаружении более подходящего элемента)
Четвёртая задача - сортировка; здесь бездна алгоритмов, рекомендуется или (очень простой, но жутко неэффективный) "пузырёк", или алгоритм Шелла либо Хоара (мазохисты могут опробовать пирамидальную сортировку). Логически слабо связана с предыдущими.

Можем попробовать прямо здесь: напишите код, который бы проходил по всем элементам массива и, скажем, пока просто выводил бы их на печать. Желательно - с комментариями.
Abstraction вне форума Ответить с цитированием
Старый 02.11.2012, 17:56   #4
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от McFrey Посмотреть сообщение
первая часть задачи:
заводишь переменную под сумму, циклом пробегаешься по массиву, и сравниваешь каждый элемент с нулем, если меньше нуля, то summ:=summ+a[i]( в пример язык Pascal, т.к. ты язык не указал)
вторая часть:
ищешь в массиве максимальный и минимальный элементы, запоминаешь их индексы за первый проход, а за второй находишь произведение элементов от минимального до максимального =)
Язык C# ...
GoodNight вне форума Ответить с цитированием
Старый 02.11.2012, 18:00   #5
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Алгоритм один и тот же...
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 02.11.2012, 18:05   #6
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Первая задача - "обойти все элементы массива" (темы: циклы, доступ к элементу массива по индексу)
Вторая задача - "обход с аккумулятором" (объявляется переменная-аккумулятор, в которую при обходе собирается, в данном случае, сумма отрицательных членов; тема - условные операторы)
Третья задача - поиск максимального/минимального элемента (аккумулятор теперь состоит из двух переменных - значения и индекса; они содержат "кандидата" на роль максимума/минимума и меняются только при обнаружении более подходящего элемента)
Четвёртая задача - сортировка; здесь бездна алгоритмов, рекомендуется или (очень простой, но жутко неэффективный) "пузырёк", или алгоритм Шелла либо Хоара (мазохисты могут опробовать пирамидальную сортировку). Логически слабо связана с предыдущими.

Можем попробовать прямо здесь: напишите код, который бы проходил по всем элементам массива и, скажем, пока просто выводил бы их на печать. Желательно - с комментариями.
Спасибо. Буду читать темы, которые вы мне посоветовали и пытаться сделать.
GoodNight вне форума Ответить с цитированием
Старый 03.11.2012, 21:46   #7
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
напишите код, который бы проходил по всем элементам массива и, скажем, пока просто выводил бы их на печать.
int a;
a=Convert.ToInt32 (text.Box1.Text);

это вы имели в виду?)
GoodNight вне форума Ответить с цитированием
Старый 03.11.2012, 21:59   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Как предложение:
Код:
            int[] a = new int[] { 5, 6, 4, 2, 3,-5, 7, 8, -9, 3, 6, 5 };
            // Сортировка
            var b = a.OrderBy(Key => Key);
             foreach (int i in b) Console.Write("{0}\t", i);

            // Сумма отрицательных
            int sum = a.Sum(v => (v < 0) ? v : 0);
             Console.Write("\nСумма={0}", sum);
I'm learning to live...

Последний раз редактировалось Stilet; 03.11.2012 в 22:01.
Stilet вне форума Ответить с цитированием
Старый 03.11.2012, 22:09   #9
GoodNight
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 43
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Как предложение:
Код:
            int[] a = new int[] { 5, 6, 4, 2, 3,-5, 7, 8, -9, 3, 6, 5 };
            // Сортировка
            var b = a.OrderBy(Key => Key);
             foreach (int i in b) Console.Write("{0}\t", i);

            // Сумма отрицательных
            int sum = a.Sum(v => (v < 0) ? v : 0);
             Console.Write("\nСумма={0}", sum);
А как сделать чтобы выводилось в texBox 1,2?
GoodNight вне форума Ответить с цитированием
Старый 03.11.2012, 23:38   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вместо Console.Write пропиши добавление в свой texBox
Например: texBox.Text+=i.ToString();
И для суммы так же.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Одномерные массивы ДимончиК 01 Помощь студентам 2 06.04.2011 22:40
C++. Одномерные массивы. semak92 Помощь студентам 0 27.11.2010 12:39
одномерные массивы в С++ kseshenka Помощь студентам 4 28.10.2010 00:19
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12