0 / 0 / 0
Регистрация: 20.03.2015
Сообщений: 1

Некорректное преобразование типов в лабораторной работе

20.03.2015, 16:50. Показов 740. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Нужна помощь знающих!
Имеется лабораторная работа в Visual Studio 2013 с применением Windows Forms на C++
Есть проблема с преобразованием типов.
Собственно, проблемная часть кода.
C++
1
Convert::IntTo32
Данное преобразование некорректно работает тут. Он не может вытащить нормально число из String и Char (пробовал и то и то, в коде метод через char). Вместо нормального числа он вытаскивает его KeyCode (как-то так). Что-то вроде кода нажатой клавиши, а не числа, которому этот код принадлежит.
Нужна помощь с преобразованием, а не с самой программой, с этим я справлюсь.

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
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    {
        int n = Massiv1->TextLength;//Massiv1 - это TextBox, в него можно вводить только цифры, знак запятой и минус
        int *massiv = new int [n];
        int _i = 0;
        int _n = 0;
        
        for (int i = 0; i < (n-1); i++)
        {
            if (Massiv1->Text[i] > 0)
            {
                Char^ chr = gcnew Char(Massiv1->Text[i]);//мне кажется, тут проблема
                int n = (-10) * Convert::ToInt32(chr);
            }
            else
            {
                Char^ chr = gcnew Char(Massiv1->Text[i]);//и тут
                int n = (10) * Convert::ToInt32(chr);
            }
            
            for (int k = (i+1); k < (n-1); k++)
                {
                    if (Massiv1->Text[k] != ',')
                    {
                        Char^ chr = gcnew Char(Massiv1->Text[k]);
                        n += Convert::ToInt32(chr);
                    }
                    else
                    {
                        i = k;
                        break;
                    }
                }
            
            massiv[_i] = n;
            _i++;
            _n++;
        }
        
        n = _n;
        
        for (int i = 0; i < n; i++)
        {
            MessageBox::Show(" " + massiv[i], "massiv " + i);//собственно, MessageBox выдает обработанный массив, но в нем ничего кроме key кода нет. А мне нужно настоящее значение
        }
 
        int min, imin;
        imin = -1;
        
        for (int i = 0; i < n; i++)
            if (massiv[i]>0)
            {
                min = massiv[i];
                imin = i;
                break;
            }
        
        if (imin == -1)
            label3->Text = ("В массиве нет положительных чисел");
        
        else
            {
                for (int i = 0; i < n; i++)
                    if (massiv[i]>0 && massiv[i] < min)
                    {
                        min = massiv[i];
                        imin = i + 1;
                    }
                label3->Text = ("Позиция первого минимума: ") + imin;
            }
    }
Я на форуме первый раз, и если что-то не так, не кидайтесь в меня, пожалуйста =)
Если есть вопросы - задавайте, как смогу объясню =)

Добавлено через 14 часов 29 минут
Проблему решил
C++
1
2
int l = 0;
l = (Massiv1->Text[i]) - '0';
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2015, 16:50
Ответы с готовыми решениями:

Некорректное преобразование double в int (приведение типов)
Не совсем очевидно. https://ideone.com/7P0EhY #include &lt;iostream&gt; #include &lt;math.h&gt; int main() { float y = pow(64, 1.0...

Тест по лабораторной работе
Балів: 1 Використовуючи масиви А і B визначте значення наступного виразу A(1,3)+B(2,2)*A(2,4). У виразі: перший індекс - рядок, а другий...

Вопрос по лабораторной работе
program lab2; var x: array of real; k, n, i: integer; xx, eps, t: real; L: array of real; ff: text; begin assign (ff,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2015, 16:50
Помогаю со студенческими работами здесь

Задание по лабораторной работе
Вот такое задание. Не могу понять, как именно все это организовать. В голове только вариант &quot;если др в интервале дд. мм-дд. мм, то...

Примеры заданий к лабораторной работе
Здравствуйте. Получил задание от преподавателя разработать лабораторную работу по программированию для Android. Дисциплина -...

Расчетная часть в лабораторной работе
Вольфрамовый катод облучается ультрафиолетовым светом с длиной волный лямбда. Задерживающий потенциал для фотоэлектронов U. Определить...

Исправьте ошибку в лабораторной работе
Var hx,x,x0,p,x1,F,i,n:real; k,n:integer; begin Write('Введите x0='); //1 Read(x0); Write('Введите hx='); //1 Read(hx); ...

Одно из заданий в лабораторной работе
Задание 8 (для самостоятельного выполнения; в новом проекте!). Модифицировать программу из задания 5 (включая 5.1) так, чтобы рисование...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru