Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/103: Рейтинг темы: голосов - 103, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46

Работа с массивами в Windows Forms

08.02.2017, 01:24. Показов 19200. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача следующая.
Создать приложение которое предлагает пользователю задать размер линейного массива, заполняет автоматически этот масив случайными целыми числами в диапазоне с - 50 до 70. Выводит элементы этого массива, потом по выбору пользователя определяет а)суму минимального позитивного элемента массива и его номер;
б) суму парных элементов массива в диапазоне [-20: 30];
в) найти минимальный по модулю элемент массива
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace КУРСробота_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int[] Mas;
        public Random rnd = new Random();
        private void button1_Click(object sender, EventArgs e)
        {
            if (EditX.Text.Length > 0)
            {
                Mas = new int[int.Parse(EditX.Text)];
                for (int i = 0; i < int.Parse(EditX.Text); i++)
                {
                    Mas[i] = rnd.Next(-50, 70);
                }
                string[] L = (from i in Mas select i.ToString()).ToArray();
                EditY.Text = string.Join("  ",L);
            }
            }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void button2_Click(object sender, EventArgs e)
        { 
// суму минимального позитивного элемента массива и его номер;
            if (checkBox1 != null)
            {
                int temp = 0;
                for (int i = 0; i < Mas.Length; i++)
                {
 
                    if (Mas[i] > 0)
                    { 
                        int c = Mas.Min();
                        temp = c + Mas[i];
                    }
                    
                }
                textBox3.Text = "" + temp.ToString();
            } 
// суму парных элементов массива в диапазоне [-20: 30]; 
            if (checkBox2 != null)
            {
                int sum = 0;
                for (int i = 0; i < Mas.Length; i++)
                {
                    if (Mas[i] >= -20 && Mas[i] <= 30)
                    {
                        if (Mas[i] % 2 == 0)
                        {
                            sum += Mas[i];
                        }
                    }
                }
                textBox4.Text = "" + sum.ToString(); 
//  найти минимальный по модулю элемент массива 
               if (checkBox3 != null) 
               { 
                   int min = Math.Abs(Mas[0]);
                   for (int i = 0; i < Mas.Length; i++)
                   {
                       if (Math.Abs(Mas[i]) <= Math.Abs(min))
                           min = Mas[i];
                   }
                   textBox5.Text = "" + min.ToString(); 
                }
            }
        }
    }
}
не получается реализовать вторую часть программы с 39 строки
Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2017, 01:24
Ответы с готовыми решениями:

Приложение Windows Forms работающие с массивами
Может кто-то подсказать видеоуроки по созданию клиентского приложения Windows Forms работающего с массивами объектов класса с член-данными...

Работа с windows forms or others)
Например, у меня есть консольное приложение виндовс. Как сделать из него полноценное окно, где почитать? В visual c++ можно вставить в...

Работа с Windows Forms
Здравствуйте, первый раз делаю forms приложение, и у меня возникла одна проблема. как мне сделать, чтобы при нажатии на выпадающий...

10
 Аватар для Harttman
69 / 69 / 28
Регистрация: 12.09.2013
Сообщений: 237
08.02.2017, 09:36
Со строки 42:
C#
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < Mas.Length; i++)
                {
 
                    if (Mas[i] > 0)
                    { 
                        int c = Mas.Min();
                        temp = c + Mas[i]; //Зачем?
                    }
                    
                }
То есть мы берем первое положительное значение в массиве и складываем его с минимальным значением массива, это значение помещаем в temp, затем берем второе положит. значение, складываем с минимальным и перезаписываем temp. Но зачем?

У вас temp всегда будет содержать сумму минимального значения массива и последнего положительного элемента массива.
1
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46
09.02.2017, 13:05  [ТС]
Цитата Сообщение от Harttman Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
for (int i = 0; i < Mas.Length; i++)
                {
 
                    if (Mas[i] > 0)
                    { 
                        int c = Mas.Min();
                        temp = c + Mas[i]; //Зачем?
                    }
                    
                }
тоесть мне нужно сделать следующие :
C#
1
2
3
4
5
6
7
 for (int i = 0; i < Mas.Length; i++)
 {
if (Mas[i] > 0)
 { 
 int c = Mas.Min()+Mas.Min();
 
 }
И почему у меня оно щитает даже если снят флажок?

Добавлено через 15 минут
Даже в таком случае выдает число с минусом
0
 Аватар для Harttman
69 / 69 / 28
Регистрация: 12.09.2013
Сообщений: 237
09.02.2017, 14:08
Потому что код срабатывает при условии, что
C#
1
CheckBox1 != null;
Тоесть, вы проверяете существует ли CheckBox1 или нет.
У чекбокса есть свойство Checked, которое возвращает true или false, в зависимости от того, поставили галку или нет. Используй это свойство.

А чтобы найти минимальное положительное значение в массиве, нужно организовать цикл так:
Если элемент отрицательный, переходим к следующему элементу
C#
1
if (mas [i]>0)
Нужно до цикла объявить временную переменную и присвоить ей значение максимального элемента массива. Проверить, не является ли максимальный элемент отрицательным (В таком случае в массиве нет положительных чисел)А в цикле сравнивать ее с каждым положительным элементом. Если элемент меньше, перезаписать значение временной переменной.

Добавлено через 22 минуты
В итоге должно получится так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 if (checkBox1.Checked)
            {
                int temp = Mas.Max();
                if(temp < 0)
                {
                 textBox3.Text = "В массиве нет положительных чисел";
                }
                else if (temp == 0)
                {
                 textBox3.Text = "Минимальное положительное число в массиве: 0";
                }
                else
                {
                        for (int i = 0; i < Mas.Length; i++)
                         {
                            if (Mas[i] > 0)
                                  { 
                                        if (Mas[i] < temp) temp = Mas[i]
                                  }
                  }
                textBox3.Text = temp.ToString();
            }
Добавлено через 18 минут
Вот рабочий вариант:

Кликните здесь для просмотра всего текста
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
if (checkBox1.Checked)
            {
                int temp = Mas.Max();
                if (temp < 0)
                {
                    textBox1.Text = "В массиве нет положительных чисел";
                }
                else if (temp == 0)
                {
                    textBox1.Text = "Минимальное положительное число в массиве: 0";
                }
                else
                {
                    for (int i = 0; i < Mas.Length; i++)
                    {
                        if (Mas[i] > 0 && Mas[i] < temp)
                        {
                           temp = Mas[i];
                        }
                    }
                 textBox1.Text = temp.ToString();
                }
                
            }
1
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46
09.02.2017, 14:35  [ТС]
В вашем случае будет выводить только минимальное значение а мне надо суму минимальных
0
 Аватар для Harttman
69 / 69 / 28
Регистрация: 12.09.2013
Сообщений: 237
09.02.2017, 15:01
Судя по всему я так и не понял, что требуется.
Цитата Сообщение от Fedi@ Посмотреть сообщение
а)суму минимального позитивного элемента массива и его номер;
Нужна сумма минимального и его номера в массиве или сумма двух минимальных значений в массиве?
0
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46
09.02.2017, 15:07  [ТС]
Цитата Сообщение от Harttman Посмотреть сообщение
Нужна сумма минимального и его номера в массиве или сумма двух минимальных значений в массиве?
Сума минимального позитивного элемента и его номера
0
 Аватар для Harttman
69 / 69 / 28
Регистрация: 12.09.2013
Сообщений: 237
09.02.2017, 15:13
Fedi@, а что если минимальное число 1, но оно сгенерировалось несколько раз?
1
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46
09.02.2017, 15:26  [ТС]
Цитата Сообщение от Harttman Посмотреть сообщение
Fedi@, а что если минимальное число 1, но оно сгенерировалось несколько раз?
Теперь дошло, если минимальное число повторяєтся то програма его сумирует

Добавлено через 1 минуту
Если можете помогите пожалуйста с пунктом б) суму парных элементов массива в диапазоне [-20: 30];
0
 Аватар для Harttman
69 / 69 / 28
Регистрация: 12.09.2013
Сообщений: 237
09.02.2017, 15:32
Цитата Сообщение от Fedi@ Посмотреть сообщение
Теперь дошло, если минимальное число повторяєтся то програма его сумирует
Суммирует с чем? Друг с другом? Или каждое повторяющиеся с его номером? Все так же не понятно
0
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 46
09.02.2017, 16:06  [ТС]
По ходу неа? Извини конечно..... но я не профи я только учусь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2017, 16:06
Помогаю со студенческими работами здесь

Работа с формами в C# Windows Forms
Привет всем. У меня есть программа, которая выполняет определенные действия пошавого. То есть окна открываются по очереди, как при...

работа с dataGridView в windows forms
здравствуйте! подскажите пожалуйста ,как сделать так, чтобы при изменении значения в ячейке датагрид изменения вносились и в массив...

Работа с текстом С++ Windows Forms
Известны данные о количесве осадков,выпавших за каждый день марта.Верно ли,что осадков не было 10 дней в месяц? private: System::Void...

Работа с таблицами в windows forms
Как запретить изменение ширины первого столбца (на скрине отмечено) и сделать ее фиксированной. И как изменить маркер данного столбца а...

Работа с web Windows Forms
Как отправить что нибудь на какой нибудь сайт?Например сообщение исп средства Windows forms


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru