Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92

Решето Эратосфена, подключить класс к Форме и вывести в TextBox

02.02.2015, 19:06. Показов 2112. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сам класс
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
using namespace System;
public ref class Eratosphen
{
private:    
    array <int> ^array1;
    int n;
public:
    //array <int>   ^ Arr;
    //Arr = gcnew array <int>(5);
 
    Eratosphen(int nn)
    {
        array1 = gcnew array <int>(100);
        n = nn;
 
    }
 
    void func()
    {
        int j;
        for (int i = 0; i < n; i++)     
        {
            array1[i] = 1;
        }
 
        for (int i = 2; i < n; i++)
        {
            j = i + 1;
            for (j; j < n; j++)        //Если число простое - оставляем 1, //если нет - ставим 0.
            {
                if (j%i == 0)  
                    
                                            //если остаток =0 то ячейка =0
                    array1[j] = 0;
                else
                    continue;
            }
        }
    }
    
    //property int Array1
    //{
    //  int
    //}
 
    virtual String^ ToString() override
    {
        return String::Format("({0})", array1);
    }
};
Form.h
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
public ref class Form1 : public System::Windows::Forms::Form
    {
 
        Eratosphen ^D;
    public:
        Form1(void)
        {
 
            D = gcnew Eratosphen(30);
 
 
......
 
 
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
    {
        {
            
            for (int i = 0; i < 30; i++)
            {
                    this->textBox1->Text = this->textBox1->Text + Convert::ToString(D[i]);
            }
        }
    }
    };


error C3915: "Eratosphen" не имеет индексированного свойства по умолчанию (индексатора класса)



Прошу совета, спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.02.2015, 19:06
Ответы с готовыми решениями:

Вывести на экран решето Эратосфена
Здравствуйте! Очень прошу помощи! Необходимо вывести на экран решето Эратосфена. Это таблица, в которой содержатся натуральные числа от a...

Вывести на экран решето Эратосфена
Вывести на экран решето Эратосфена. Это таблица, в которой содержатся натуральные числа от 2 до a включительно, где составные числа...

Вывести простые числа используя решето Эратосфена
Напишите программу, которая выводит все простые числа в диапазоне от 2 до N ( N заранее неизвестно). Входные данные Входная строка...

8
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
02.02.2015, 20:04
Цитата Сообщение от Olya_z Посмотреть сообщение
Прошу совета, спасибо.
Вынесите класс Eratosphen в отдельный файл.
1
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
02.02.2015, 21:16  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
Вынесите класс Eratosphen в отдельный файл.
Здравствуйте,спасибо за ответ.

Класс Eratosphen в отдальном заголовочном файле.

ошибка в


C++
1
2
3
4
5
6
7
8
9
10
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
    {
        {
            
            for (int i = 0; i < 30; i++)
            {
                    this->textBox1->Text = this->textBox1->Text + Convert::ToString(D[i]);
            }
        }
    }
Ведь D объект класса Eratosphen


при
C++
1
2
3
4
5
6
7
8
9
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
    {
        {
            
            
                    this->textBox1->Text = this->textBox1->Text + Convert::ToString(D)
          
        }
    }
в TextBox выводится "(System.Int32[])"
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
02.02.2015, 21:26
Цитата Сообщение от Olya_z Посмотреть сообщение
Ведь D объект класса Eratosphen
Тогда скажите,что вы хотите вывести.
1)Почему цикл от 1 до 30?
2) Что такое D[i]?
1
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
02.02.2015, 21:54  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
Тогда скажите,что вы хотите вывести.
1)Почему цикл от 1 до 30?
2) Что такое D[i]?
1)2)Это глупая ошибка.



Я хочу вывести результат метода func() класса Eratosphen в Textbox, но, не знаю как правильно вызвать сам метод класса.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
02.02.2015, 22:07
Лучший ответ Сообщение было отмечено Olya_z как решение

Решение

Цитата Сообщение от Olya_z Посмотреть сообщение
Я хочу вывести результат метода func() класса Eratosphen в Textbox, но, не знаю как правильно вызвать сам метод класса.
Но ведь метод имеет возвращаемое значение void.
Давайте я переформулирую:
В результате вызова метода func(),производятся вычисления и результат записывается в поле класс array1.Вам нужно вывести эти значения.Тогда можно вызывать метод func() в методе ToString().
Тогда метод ToString можно записать,например,так:
C++
1
2
3
4
5
6
7
8
    func();
    String^ str="";
        for each(int i in array1)
            {
            str += i+"\t";
            }
        str+="\n";
        return str;
И в вызове(лучше перенесите вывод в обработчик нажатия кнопки)
C++
1
textBox1->Text += D->ToString();
1
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
04.02.2015, 17:57  [ТС]
Цитата Сообщение от S_el Посмотреть сообщение
)
Спасибо!

метод func() неверный, вот упрощенный и верный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void func()
    {
        for (int i = 2; i < n; i++)
 
           {
 
            for (int j = i * i; j < n; j += i)
 
                   {
 
                       array1[j - 1] = 1;
 
                   }
 
               }
 
 
    }

Осталось 2 проблемки

1) в текст бокс выводится числа до ста из-за

C++
1
2
3
4
5
6
Eratosphen(int nn)
    {
        array1 = gcnew array <int>(100);
        n = nn;
 
    }
и
C++
1
for each(int i in array1)



2) как вместо единиц и нулей вывести в текстбокс сами числа 1 2 3 5 7 11 13 19 и так далее,

в консоли это решается так

C++
1
2
3
4
5
6
7
for (int i = 1; i < n; i++)
 
    {
      if (array1[i - 1] == 0)
 
          std::cout << i << "\t";
    }
а как это в методе ToString организовать
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
04.02.2015, 18:06
Лучший ответ Сообщение было отмечено Olya_z как решение

Решение

Цитата Сообщение от Olya_z Посмотреть сообщение
метод func() неверный, вот упрощенный и верный
Можно еще упростить:
вам поле n не нужно совершенно.
Конструктор меняете на:
C++
1
2
3
4
        Eratosphen(int nn)
            {
            array1 = gcnew array <int>(nn);
            }
метод:
C++
1
2
3
4
5
6
7
8
9
10
        void func()
            {
            for (int i = 2; i < array1->Length; i++)
                {
                for (int j = i * i; j < array1->Length; j += i)
                    {
                    array1[j - 1] = 1;
                    }
                }
            }
Цитата Сообщение от Olya_z Посмотреть сообщение
как вместо единиц и нулей вывести в текстбокс сами числа 1 2 3 5 7 11 13 19 и так далее,
в консоли это решается так
В чем проблема перенести?
C++
1
2
3
4
5
6
7
8
9
10
11
        virtual String^ ToString() override
            {
            func();
            String^ str="";
            for (int i = 1; i < array1->Length; i++)
                if (array1[i - 1] == 0)
                    str+=i.ToString()+ "\t";
 
            str+="\n";
            return str;
            }
1
2 / 2 / 2
Регистрация: 01.06.2014
Сообщений: 92
04.02.2015, 19:48  [ТС]
Спасибо!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.02.2015, 19:48
Помогаю со студенческими работами здесь

Вывести все простые числа алгоритмом Решето Эратосфена
Моя задача вывести в файл все простые числа из диапазона . Для отбора простых чисел использовать алгоритм Решето Эратосфена с битовым...

Решето Эратосфена
Ребят, помогите решить задачу. В программировании профан( Задача нужна в паскале «Решето Эратосфена». Алгоритм с таким названием...

Решето Эратосфена
Определите N = 100000 и создайте массив * (N + 1). Заполните его значениями так, чтобы IsPrime == True, если i — простое число и IsPrime...

Решето Эратосфена
Определить простые числа методом просеивания с помощью &lt;&lt;решета Эратосфена&gt;&gt; с _битовой упаковкой_ данных при сохранении. #include...

Решето Эратосфена
Написал программу, которая выводит список простых чисел: primes = 2: sieve where sieve (p:xs) = p:(sieve(diff xs $ map (*p) )) ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru