Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 24.06.2014
Сообщений: 90
1

Класс "Автомобиль" и ошибка выхода за пределы массива

24.06.2014, 16:49. Показов 825. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Список_авто
{
    class Program
    {
        static void Main(string[] args)
        {
            Random sp1 = new Random();    //задание новой переменной с типом Random
            Random sp2 = new Random();
            Random sp3 = new Random();
 
            int speed1 = sp1.Next(90, 260);  //присвоение скоростям рандома от 90 до 260
            int speed2 = sp2.Next(90, 260);
            int speed3 = sp3.Next(90, 260);
 
            Random ye1 = new Random();
            Random ye2 = new Random();
            Random ye3 = new Random();
 
            int year1 = ye1.Next(1980, 2014);
            int year2 = ye2.Next(1980, 2014);
            int year3 = ye3.Next(1980, 2014);
 
            string [] marka = {"BMW", "Opel", "Dodge"};
           // marka = string new{"1, "3", "4"};
 
            string marka1 = marka[1];
            string marka2 = marka[2];
            string marka3 = marka[3];
 
            Console.WriteLine(marka1+  "  Год выпуска-  " + year1 + "  Максимальная скорость-  " + speed1);
            Console.WriteLine(marka2 + "  Год выпуска-  " + year2 + "  Максимальная скорость-  " + speed2);
            Console.WriteLine(marka3 + "  Год выпуска-  " + year3 + "  Максимальная скорость-  " + speed3);
 
            Console.ReadKey();
 
 
        }
    }
}
Выдаёт: Убедитесь, что индекс находится вне границ массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2014, 16:49
Ответы с готовыми решениями:

Ошибка выхода за пределы массива
namespace ConsoleApp1 { class Program { static void Main(string args) ...

Ошибка из-за выхода за пределы массива
Здравствуйте! Я делаю приложение в Android Studio и столкнулся с проблемой. Я создал listView и...

Удаление компонента программно. Ошибка выхода за пределы массива
procedure clearImageBox ; var i:integer; begin for i:=0 to...

Длинная арифметика (сумма) и ошибка выхода массива за пределы
Всем доброго времени суток, ребят, пишу программу по базовым операциям на длинную арифметику, начал...

7
-1 / 3 / 1
Регистрация: 20.04.2011
Сообщений: 412
24.06.2014, 17:05 2
hsMapk, вы не указали размерность массива.
C#
1
2
3
4
5
6
string[] marka = new string[3]{ "BMW", "Opel", "Dodge" };
            // marka = string new{"1, "3", "4"};
 
            string marka1 = marka[0];
            string marka2 = marka[1];
            string marka3 = marka[2];
В массиве идет отсчет с 0.
1
9 / 9 / 0
Регистрация: 27.01.2013
Сообщений: 248
24.06.2014, 17:07 3
Индекс массивов идет с 0 а не 1
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Список_авто
{
    class Program
    {
        static void Main(string[] args)
        {
            Random sp1 = new Random();    //задание новой переменной с типом Random
            Random sp2 = new Random();
            Random sp3 = new Random();
 
            int speed1 = sp1.Next(90, 260);  //присвоение скоростям рандома от 90 до 260
            int speed2 = sp2.Next(90, 260);
            int speed3 = sp3.Next(90, 260);
 
            Random ye1 = new Random();
            Random ye2 = new Random();
            Random ye3 = new Random();
 
            int year1 = ye1.Next(1980, 2014);
            int year2 = ye2.Next(1980, 2014);
            int year3 = ye3.Next(1980, 2014);
 
            string[] marka = { "BMW", "Opel", "Dodge" };
            // marka = string new{"1, "3", "4"};
 
            string marka1 = marka[0];  //массивы индексируются с 0
            string marka2 = marka[1];
            string marka3 = marka[2];
 
            Console.WriteLine(marka1 + "  Год выпуска-  " + year1 + "  Максимальная скорость-  " + speed1);
            Console.WriteLine(marka2 + "  Год выпуска-  " + year2 + "  Максимальная скорость-  " + speed2);
            Console.WriteLine(marka3 + "  Год выпуска-  " + year3 + "  Максимальная скорость-  " + speed3);
 
            Console.ReadKey();
 
 
        }
    }
}
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
24.06.2014, 17:11 4
Ух, сколько рандомов!
И все — близнецы-братья.
1
25 / 25 / 8
Регистрация: 30.04.2013
Сообщений: 79
24.06.2014, 17:20 5
Подправил, объяснил, дополнил

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
static void Main(string[] args)
        {
            Random sp1 = new Random();    //задание новой переменной с типом Random
            Random sp2 = new Random(); // Так ипользовать рандом не практично
            Random sp3 = new Random(); // Т.к. он выдаст очень близки значения при одном диапазоне или вообще          одинаковые
 
            int speed1 = sp1.Next(90, 260);  //присвоение скоростям рандома от 90 до 260
            int speed2 = sp2.Next(90, 260);
            int speed3 = sp3.Next(90, 260);
 
            Random ye1 = new Random();
            Random ye2 = new Random();
            Random ye3 = new Random();
 
            int year1 = ye1.Next(1980, 2014);
            int year2 = ye2.Next(1980, 2014);
            int year3 = ye3.Next(1980, 2014);
 
            string[] marka = { "BMW", "Opel", "Dodge" };
            // marka = string new{"1, "3", "4"};
 
            /*
            string marka1 = marka[0]; Ошибка начинается тут 
            string marka2 = marka[1]; массив объявлен с 3 значениями
            string marka3 = marka[2]; БМВ, ОПЕЛ и Додж
            */
            string marka1 = marka[0]; // но массив
            string marka2 = marka[1]; // начинается не с 1
            string marka3 = marka[2]; // он начинается с нуля
 
            Console.WriteLine(marka1 + "  Год выпуска-  " + year1 + "  Максимальная скорость-  " + speed1);
            Console.WriteLine(marka2 + "  Год выпуска-  " + year2 + "  Максимальная скорость-  " + speed2);
            Console.WriteLine(marka3 + "  Год выпуска-  " + year3 + "  Максимальная скорость-  " + speed3);
 
            Console.ReadKey();
 
 
            // мои ваириант того же решения
 
            Random rnd = new Random();
            int[] speed = new int[3];
            int[] year = new int[3];
            string[] AutoMarka = { "BMW", "Opel", "Dodge" };
            for (int i = 0; i < 3; i++)
            {
                speed[i] = rnd.Next(90, 260);
                year[i] = rnd.Next(1980, 2014);
            }
 
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine("{0} год выпуска- {1} максимальная скорость - {2}", AutoMarka[i], year[i], speed[i]);
            }
            Console.ReadKey();
0
1 / 1 / 2
Регистрация: 24.06.2014
Сообщений: 90
24.06.2014, 20:17  [ТС] 6
вот именно! все рандомы выдают одно и тоже, не смотря на new/. Как это исправить. Просто в Делфи достаточно было Randomize прописать. а тут?
0
1150 / 742 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
24.06.2014, 20:26 7
C#
1
2
3
4
5
6
7
8
9
            Random rnd = new Random(); 
            
            int speed1 = rnd.Next(90, 260);
            int speed2 = rnd.Next(90, 260);
            int speed3 = rnd.Next(90, 260);
 
            int year1 = rnd.Next(1980, 2014);
            int year2 = rnd.Next(1980, 2014);
            int year3 = rnd.Next(1980, 2014);
1
2151 / 1288 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
24.06.2014, 20:58 8
Цитата Сообщение от correcеt Посмотреть сообщение
вы не указали размерность массива.
не нужно.
0
24.06.2014, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2014, 20:58
Помогаю со студенческими работами здесь

Ошибка выхода за пределы массива при обращении к нескольким Panel
Здравствуйте. Есть 10 элементов Panel, нужно их выводить в рандомном порядке при нажатии на кнопку...

Создать абстрактный класс Автомобиль и производные классы Легковой автомобиль,Грузовой автомобиль, Тягач
1) Создать класс Автомобиль, в котором есть закрытые поля Название, Скорость, конструктор с двумя...

Проверка выхода за пределы массива
как сделать проверку на выход за пределы массива?

Ошибка выхода за пределы границ вектора
как исправить ошибку?

Вложенная коллекция - ошибка выхода за ее пределы
public class Test { private List&lt;List&lt;T&gt;&gt; doubleList; // вложенный список ...

Проблема выхода за пределы двумерного массива
Имеется следующий код: public void newArr(int arr) { int tempArray = new int; ...

Ошибка выхода за пределы памяти в дебаге, в релизе ОК
Пишу код, &quot;для себя&quot;, так скажем. пытаюсь практиковаться. Балуюсь, другими словами. В релизе то,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru