Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/121: Рейтинг темы: голосов - 121, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 19.12.2009
Сообщений: 27

Создать массив для 500 чисел типа double и заполнить его значениями

19.12.2009, 16:16. Показов 24488. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста!
Задание:
Создать массив для 500 чисел типа double и заполнить его значениями с 1.5 и шагом 2.5!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2009, 16:16
Ответы с готовыми решениями:

Обьявить массив целых чисел и заполнить его случайными значениями
Обьявить массив целых чисел и заполнить его случайными значениями. Следует иметь ввиду следующее: 1) 0 считается положительным...

Нужно создать массив типа double и заполнить его псевдослучайными числами
Задание. С клавиатуры вводится число n - количество элементов массива. Нужно создать массив типа double и заполнить его псевдослучайными...

Объявить массив целых чисел и заполнить его случайными значениями
Размерность массива 200,Диапозон значение -50-50 Объявить массив целых чисел и заполнить его случайными значениями.Размер массива и...

28
Заблокирован
28.12.2009, 21:30
Студворк — интернет-сервис помощи студентам
Mikant. Я проверил на время выполнения три цикла "foreach", "for" и "while" и ни какой существенной разницы не обнаружил. Можешь сам убедится в этом.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
private void button5_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Stopwatch st = System.Diagnostics.Stopwatch.StartNew();
 
            double[] d = new double[500];
            double incr = 1.5;
            int i = 0;
            string str = "";
            foreach (double d2 in d)
            {
 
                d[i] = incr;
                incr += 2.5;
                str += d[i] + " -> ";
                ++i;
 
            }
            this.Text = st.Elapsed.ToString(); 
 
        }
 
        private void button6_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Stopwatch st = System.Diagnostics.Stopwatch.StartNew();
 
            double[] d = new double[500];
            double incr = 1.5;
          
            string str = "";
            for (int i = 0;i< d.Length; ++i)
            {
 
                d[i] = incr;
                incr += 2.5;
                str += d[i] + " -> ";
             
 
            }
            this.Text = st.Elapsed.ToString(); 
        }
 
        private void button7_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Stopwatch st = System.Diagnostics.Stopwatch.StartNew();
 
            double[] d = new double[500];
            double incr = 1.5;
             int i = 0;
            string str = "";
            while (i < d.Length)
            {
 
                d[i] = incr;
                incr += 2.5;
                str += d[i] + " -> ";
                 ++i;
 
            }
            this.Text = st.Elapsed.ToString(); 
 
        }
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.12.2009, 22:05
тестер из Вас не выйдет...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
 
namespace ForVsForEach {
    class Program {
 
        private const int ArrayLength = 5000;
 
        private static void Main(string[] args) {
            CheckIT();
            CheckIT();
            CheckIT();
            CheckIT();
            CheckIT();
            Console.ReadKey();
        }
 
        private static void CheckIT() {
            
            double[] arr1 = new double[ArrayLength];
            double[] arr2 = new double[ArrayLength];
 
            Stopwatch sw = new Stopwatch();
 
            //проверка foreach
            sw.Start();
            double incr2 = 1.5d;
            int cnt = 0;
            foreach (double dbuf in arr2) {
                arr2[cnt] = incr2;
                incr2 += 2.5d;
                ++cnt;
            }
            sw.Stop();
            long elapsed2 = sw.ElapsedTicks;
            sw.Reset();
            /////////////
 
            //проверка for
            sw.Start();
            double incr1 = 1.5d;
            for (int i = 0; i < ArrayLength; i++) {
                arr1[i] = incr1;
                incr1 += 2.5d;
            }
            sw.Stop();
            long elapsed1 = sw.ElapsedTicks;
            sw.Reset();
            /////////////
 
            Console.WriteLine("foreach в {0} раз тормознутей for", (double)elapsed2 / elapsed1);
        }
    }
}
думаю ясно, в чем же кардинальное отличие этого от Вашего?

ЗЫ. от смены блоков тестов местами результат не меняется
0
Заблокирован
28.12.2009, 22:36
в консоли да, но только не в форме

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
private void button5_Click(object sender, EventArgs e)
        {
            
 
            double[] d = new double[500];
            double incr = 1.5;
            int i = 0;
            string str = "";
            ////////////////////////////////////////////////////////////////////
            System.Diagnostics.Stopwatch st1 = System.Diagnostics.Stopwatch.StartNew();
            foreach (double d2 in d)
            {
 
                d[i] = incr;
                incr += 2.5;
                str += d[i] + " -> ";
                ++i;
 
            }
 
            double _foreach = st1.Elapsed.Ticks;
            ///////////////////////////////////////////////////////////////////////////////////////
            System.Diagnostics.Stopwatch st2 = System.Diagnostics.Stopwatch.StartNew();
 
            for (int i2 = 0; i2 < d.Length; ++i2)
            {
 
                d[i2] = incr;
                incr += 2.5;
                str += d[i2] + " -> ";
 
 
            }
            double _for = st2.Elapsed.Ticks;
            ///////////////////////////////////////////////////////////////////////
           double amount = _foreach / _for;
 
 
       this.Text = "(foreach) в  " + amount.ToString()+ "  более продвинутый цикл, чем (for)";
 
        }
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.12.2009, 22:45
эх. сравните время в консоли и в форме на одном и том же тесте... я ж написал, что не выйдет тестер... Вы что, простите, измеряете?
0
Заблокирован
28.12.2009, 23:27
Согласен <for> быстрее (в конкретном примере), но разница столь незначительна, что я думаю на это и не стоит обращать внимание
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.12.2009, 23:46
"в данном примере" for быстрее в среднем в 1.75 раза, чем foreach. кстати, сравни результаты без изменения строковой переменной: она отжирает в 1000 раз большее время >^_^<
0
Заблокирован
29.12.2009, 00:00
без изменения строковой переменной // str += d[i2] + " -> ";
больше, чем в 2,1 раза из 20 попыток не было, а в среднем примерно 1,8
Но в любом случае я с тобой уже согласился.
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
29.12.2009, 00:03
холивар , мля ))
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
29.12.2009, 00:31
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Diagnostics;
using System.Linq;
class Test
{    
    static void Main()
    {
        int size = 100000;
        int it = 10000;
        Random rnd = new Random(DateTime.Now.Millisecond);
        double[] msv = (new double[size]).Select(n => rnd.NextDouble()).ToArray();        
        
        Stopwatch sw = Stopwatch.StartNew();
        for (int i = 0; i < it; i++)
        {
            double sum = 0;
            for (int j = 0; j < msv.Length; j++)
            {
                sum += msv[j];
            }            
        }
        sw.Stop();
        Console.WriteLine("For loop: {0}", sw.ElapsedMilliseconds);
 
        sw = Stopwatch.StartNew();
        for (int i = 0; i < it; i++)
        {
            double sum = 0;
            foreach (double d in msv)
            {
                sum += d;
            }            
        }
        sw.Stop();
        Console.WriteLine("Foreach loop: {0}", sw.ElapsedMilliseconds);
    }
}
разница неощутима, в твоем примере, Mikant, я тоже ниразу не видел большой разницы: 0.9-1.1

Добавлено через 4 минуты
Другой дело, что его для массивов не рационально использовать, все равно, что делать цикл из goto
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.12.2009, 00:31

Заполнить массив double случайными значениями
Кто может-пожалуйста помогите, вот код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

объявить массив целых чисел и заполнить его случайными значениями.Размерность массива 200, диапазон значений 0-100
объявить массив целых чисел и заполнить его случайными значениями.Размерность массива 200, диапазон значений 0-100

Создать прямоугольный массив целых чисел и заполнить его случайными числами
Создать прямоугольный массив целых чисел и заполнить его случайными числами от 1 до 60. Определить сумму элементов массива, которые...

Функция для обмена значениями содержимого двух переменных типа double
Разработайте и реализуйте консольное приложение, которое содержит функцию для обмена значениями содержимого двух переменных типа double.

Создать структуру включающую в себя константу типа double, закрытое поле типа double
Помогите пожалуйста с заданием, создать структуру включающую в себя константу типа double, закрытое поле типа double, которому при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru