Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372

Определить класс с методом, который копирует целые элементы из вещественного массива в другой массив

12.01.2010, 13:43. Показов 1846. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите с задачей:
Определить класс с методом, который производит выборку из вещественного массива тех элементов, которые имеют целое значение ( их дробная часть равна нулю) и пересылает эти элементы в одномерный массив. Используя этод метод сформировать из исходной матрицы А(NxN) выходной массив таких чисел. Размер исходной матрицы задать с клавиатуры. Заполнить её случайными числами из диапазона -200...300. Сформированный массив вывести на экран.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2010, 13:43
Ответы с готовыми решениями:

Сформировать другой массив, в который нечетные элементы из первого массива переписать без изменений
Уже всю голову пробил, в чем ошибка? По сути программа должна выводить 2 массива - начальный и переработанный. на деле выходит, что получаю...

Линейный массив содержит целые числа: определить диапазон, в котором находятся элементы массива
линейный массив содержит целые числа. определить диапазон, в котором находятся элементы массива.

Линейный массив содержит целые числа. Определить диапазон, в котором находятся элементы массива
Линейный массив содержит целые числа. Определить диапазон, в котором находятся элементы массива.

7
15 / 15 / 2
Регистрация: 12.01.2010
Сообщений: 51
12.01.2010, 16:20
Вот класс:
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
62
63
64
65
66
67
68
69
70
class Matr
        {
            double[,] matr;
            
            public Matr()
            {
                Console.Write("Введите размернось матрицы N: ");
                int N = Convert.ToInt32(Console.ReadLine());
                matr = new double[N, N];
                
                for (int i = 0; i < N; i++)
                    for (int j = 0; j < N; j++)
                    {
                        Console.Write("Введите элемент матрицы [{0},{1}]: ", i, j);
                        matr[i,j] = Convert.ToDouble(Console.ReadLine());
                    }
            }
 
            // Вывод матрицы вещественных чисел на консоль
            public void PrintMatr()
            {
                Console.WriteLine("Введенная матрица: ");
                for (int i = 0; i < matr.GetLength(0); i++)
                {
                    for (int j = 0; j < matr.GetLength(1); j++)
                    {
                        Console.Write("{0} ", matr[i, j]);
                    }
                    Console.WriteLine();
                }
            }
 
            // Вывод массива целых чисел на консоль
            public void PrintMass(int[] mass)
            {
                Console.WriteLine("Полученный массив целых чисел: ");
                
                for(int i=0 ; i<mass.GetLength(0); i++)
                    Console.Write("{0}  ", mass[i]);
            }
 
            // Формирование массива целых чисел из матрицы matr
            public int[] CellMass()
            {
                int k = 0;                  // Счетчик числа целых чисел в вещественной матрице matr
                int[] mass = new int[k];    // Массив для хранения целых чисел
 
                for (int i = 0; i < matr.GetLength(0); i++)
                    for (int j = 0; j < matr.GetLength(1); j++)
                        if (Math.Abs(matr[i, j] - (int)matr[i, j]) == 0)
                        {
                            k++;
                            mass = (int[]) IncreaseArray(mass, k);  // увеличиваем размер массива целых чисел
                            mass[k-1] = (int) matr[i,j];            // записываем новый элемент в массив 
                        }
                                        
                return mass;
            }
 
            // Увеличение размера массива array до длины new_length
            Array IncreaseArray(Array array, int new_length)
            {
                Array new_array = Array.CreateInstance(array.GetType().GetElementType(), new_length);
               
                array.CopyTo(new_array, 0);
 
                return new_array;
            }
 
        }
А здесь код главной функции:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
        {
            Matr matr = new Matr();
            
            matr.PrintMatr();
 
            matr.PrintMass(matr.CellMass());
 
            Console.WriteLine();
            Console.Write("Нажмите любую клавишу для завершения работы программы");
            Console.ReadKey();
        }
Добавлено через 16 минут
В том варианте числа пользователь вбивает сам)

А здесь машина генерирует их (Правда вероятность того что она с генерирует хоть одно с нулевой дробной частью очень низка)

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
62
63
64
65
66
67
68
69
70
71
class Matr
        {
            double[,] matr;
 
            public Matr(int left_randombound, int right_randombound)
            {
                Random gen = new Random((int)DateTime.Now.Ticks);
 
                Console.Write("Введите размернось матрицы N: ");
                int N = Convert.ToInt32(Console.ReadLine());
                matr = new double[N, N];
                
                for (int i = 0; i < N; i++)
                    for (int j = 0; j < N; j++)
                    {
                        matr[i, j] = gen.Next(left_randombound,right_randombound) + gen.NextDouble();
                    }
            }
 
            // Вывод матрицы вещественных чисел на консоль
            public void PrintMatr()
            {
                Console.WriteLine("Введенная матрица: ");
                for (int i = 0; i < matr.GetLength(0); i++)
                {
                    for (int j = 0; j < matr.GetLength(1); j++)
                    {
                        Console.Write("{0} ", matr[i, j]);
                    }
                    Console.WriteLine();
                }
            }
 
            // Вывод массива целых чисел на консоль
            public void PrintMass(int[] mass)
            {
                Console.WriteLine("Полученный массив целых чисел: ");
                
                for(int i=0 ; i<mass.GetLength(0); i++)
                    Console.Write("{0}  ", mass[i]);
            }
 
            // Формирование массива целых чисел из матрицы matr
            public int[] CellMass()
            {
                int k = 0;                  // Счетчик числа целых чисел в вещественной матрице matr
                int[] mass = new int[k];    // Массив для хранения целых чисел
 
                for (int i = 0; i < matr.GetLength(0); i++)
                    for (int j = 0; j < matr.GetLength(1); j++)
                        if (Math.Abs(matr[i, j] - (int)matr[i, j]) == 0)
                        {
                            k++;
                            mass = (int[]) IncreaseArray(mass, k);  // увеличиваем размер массива целых чисел
                            mass[k-1] = (int) matr[i,j];            // записываем новый элемент в массив 
                        }
                                        
                return mass;
            }
 
            // Увеличение размера массива array до длины new_length
            Array IncreaseArray(Array array, int new_length)
            {
                Array new_array = Array.CreateInstance(array.GetType().GetElementType(), new_length);
               
                array.CopyTo(new_array, 0);
 
                return new_array;
            }
 
        }
Код главной функции:

C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
        {
            Matr matr = new Matr(-200, 300);
            
            matr.PrintMatr();
 
            matr.PrintMass(matr.CellMass());
 
            Console.WriteLine();
            Console.Write("Нажмите любую клавишу для завершения работы программы");
            Console.ReadKey();
        }
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
12.01.2010, 17:05  [ТС]
hardworker, что-то у вас слишком сложно(
можете тогда написать только метод копирования целых чисел из вещественного массива в одномерный массив
0
15 / 15 / 2
Регистрация: 12.01.2010
Сообщений: 51
12.01.2010, 17:18
Цитата Сообщение от Helios1.618 Посмотреть сообщение
hardworker, что-то у вас слишком сложно(
можете тогда написать только метод копирования целых чисел из вещественного массива в одномерный массив
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
// Формирование массива целых чисел из матрицы matr
            public int[] CellMass()
            {
                int k = 0;                  // Счетчик числа целых чисел в вещественной матрице matr
                int[] mass = new int[k];    // Массив для хранения целых чисел
 
                for (int i = 0; i < matr.GetLength(0); i++)
                    for (int j = 0; j < matr.GetLength(1); j++)
                        if (Math.Abs(matr[i, j] - (int)matr[i, j]) == 0)
                        {
                            k++;
                            mass = (int[]) IncreaseArray(mass, k);  // увеличиваем размер массива целых чисел
                            mass[k-1] = (int) matr[i,j];            // записываем новый элемент в массив 
                        }
                                        
                return mass;
            }
            // Увеличение размера массива array до длины new_length
            Array IncreaseArray(Array array, int new_length)
            {
                Array new_array = Array.CreateInstance(array.GetType().GetElementType(), new_length);
               
                array.CopyTo(new_array, 0);
 
                return new_array;
            }
1
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
12.01.2010, 18:10  [ТС]
Цитата Сообщение от hardworker Посмотреть сообщение
// Увеличение размера массива array до длины new_length
Array IncreaseArray(Array array, int new_length)
{
Array new_array = Array.CreateInstance(array.GetType().Get ElementType(), new_length);
array.CopyTo(new_array, 0);
return new_array;
}
а для чего это ?
0
15 / 15 / 2
Регистрация: 12.01.2010
Сообщений: 51
12.01.2010, 18:24
Цитата Сообщение от Helios1.618 Посмотреть сообщение
а для чего это ?
Пользователь изначально не знает сколько целых чисел будет в массиве, поэтому мы должны динамически изменять длину целочисленного массива в процессе его создания, за это и отвечает этот код.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
13.01.2010, 00:15
Цитата Сообщение от hardworker Посмотреть сообщение
Пользователь изначально не знает сколько целых чисел будет в массиве, поэтому мы должны динамически изменять длину целочисленного массива в процессе его создания, за это и отвечает этот код.
Array.Resize(...) не пробовали?
0
15 / 15 / 2
Регистрация: 12.01.2010
Сообщений: 51
13.01.2010, 00:38
Век живи - век учись, спасибо отыскал эту функцию в msdn, и вправду изобрели велосипед =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2010, 00:38
Помогаю со студенческими работами здесь

Заменить все элементы вещественного массива на целые числа, полученные при удалении десятичной точки
Вот программа! {---------- Двумерные массивы ---------------} program primer1; uses crt; type stroka=array of real; ...

Заменить все элементы вещественного массива на целые числа, полученные при удалении десятичной точки
Помогите составить процедуру, которая заменяет все элементы вещественного массива на целые числа, полученные при удалении десятичной точки...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива.
Разработать класс &quot;Массив больших чисел&quot;, который состоит из объектов класса &quot;Большие целые числа&quot;. Найти сумму элементов...

Определить элемент массива (значение и индекс), который наиболее удалён от заданного вещественного числа S.
Дан массив вещественных чисел. Определить элемент массива (значение и индекс), который наиболее удалён от заданного вещественного числа S.

Размер (в байтах) класса, содержащий другой класс, который содержит другой, который
Доброго времени суток. Необходимо узнать размер класса (он находится в QSharedPointer), который содержит QMap&lt;int, ClassB&gt; и пару...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru