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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 18:07   #1
Aleksa91
Пользователь
 
Регистрация: 20.10.2011
Сообщений: 21
По умолчанию Одномерный массив.

Помогите пожалуйста написать программу в консольном режиме.
В одномерном массиве, состоящем из N(10) вещественных элементов, вычислить:
1)Сумму элементов массива, расположенных после первого положительного элемента.
2)Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a, b], а потом – все остальные.
Aleksa91 вне форума Ответить с цитированием
Старый 20.10.2011, 20:03   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Aleksa91

В одномерном массиве, состоящем из N(10) вещественных элементов, вычислить:
1)Сумму элементов массива, расположенных после первого положительного элемента.
2)Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a, b], а потом – все остальные.


Код:
public static class PartitionExt
	{
		public static Tuple<IEnumerable<T>, IEnumerable<T>> Partition<T>(this IEnumerable<T> sequence, Func<T, bool> predicate)
		{
			return new Tuple<IEnumerable<T>, IEnumerable<T>>(sequence.Where(predicate), sequence.Where(e => !predicate(e)));
		}	
	}

    class Program
    {
        static void Main()
        {
		var r = new Random();

		const int Min = -3;
		const int Max = 3;

		var arr = new double[10];
		for (var i = 0; i < arr.Length; i++ )
			arr[i] = r.NextDouble() * (Max - Min + 1) + Min;

		foreach (var i in arr)
			Console.Write("{0:F} ", i);
		Console.WriteLine();

		var sum = arr.SkipWhile(p => p <= 0).Sum();
		Console.WriteLine("Sum: {0:F}", sum);

		const int A = -1;
		const int B = 1;
		var range = arr.Partition(p => p >= A && p <= B);
		foreach (var i in range.Item1)
			Console.Write("{0:F} ", i);

		foreach (var i in range.Item2)
			Console.Write("{0:F} ", i);
        }
    }
пример работы программы:

2,01 -1,84 -2,12 1,35 -1,26 2,95 -0,80 3,21 1,84 0,16
Sum: 5,51
-0,80 0,16 2,01 -1,84 -2,12 1,35 -1,26 2,95 3,21 1,84
Rififi вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив poffik Общие вопросы C/C++ 4 19.12.2010 11:31
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40