singlepost

проблема в с++ << На главную или назад  

У меня проблема, помогите плиз.
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <Math>
//—————————————————————————
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//—————————————————————————
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//—————————————————————————

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit2->Text = sqrt(81);
}

Вот это вычисляет квадр. корень 81, а как сделать чтобы оно вычисляло корень числа введенного в Edit1->Text?

10 ответов в теме “проблема в с++”

  1. 10
    Дмитрий Потапов ответил:

    AFAIUI, на нормальном компиляторе этот мега код должен с SIGSEGV валиться. ибо глобальный int* d; перекрыт локальным, и под него память не выделяется. это был "раз"
    а "два" – это то что у вас гениальные (j <= r) сортировку делают от 0-го до n-го элементов включительно, т.е. n+1 элемент, а их у вас всего n.

    Выдохнул и прочёл заклинание "Saint Anger"

    Блин, топикстартер даже не удосужился даже банальную книжку открыть или готовое решение в интернете поискать! Кто то мне из модеров заливал что удаляет темы в которых нет попытки решения. Здесь оно есть что ли? Автор даже не удосужился посмотреть что выдаёт IntelliSence в IDE для эдит-бокса.
    А "мегасортировщик" даже не пытался отдельно проверить как работает его (а "его" ли?) функция merge, я уж и не говорю о таких вещах как дебаг который видимо чужд всем "крутым программерам".

  2. 9
    Vitaly Martynovich ответил:

    Используйте встроенные средства отладки; сравните с другой, правильно работающей программой. В чем проблема?

  3. 8
    Антон Лиознов ответил:

    у меня тоже: (это сортировка слиянием… должна быть…)

    #include <stdio.h>
    //#include "stdafx.h"
    #include <iostream>
    #include <fstream>
    using namespace std;
    int n;
    int *d;
    int *b;

    void merge(int l, int m, int r)
    {
    int i, j, k;

    i = l;
    j = m;
    k = l;
    while ((i < m) && (j <= r))
    {
    if(d[i] < d[j])
    {
    b[k] = d[i];
    i++;
    }
    else
    {
    b[k] = d[j];
    j++;
    }
    k++;
    }
    while (i < m)
    {
    b[k] = d[i];
    i++;
    }
    while (j <= r)
    {
    b[k] = d[j];
    k++;
    }

    }
    void sort(int l, int r)
    {
    //cout << l << " " << r << endl;
    int i, m;
    if (l >= r-1) return;
    else
    {
    m = ( l + r) / 2;
    sort(l, m);
    sort(m, r);
    merge(l, m, r);
    for (i = l; l < r; i++) d[i] = b[i];
    }
    }

    void main()
    {
    ifstream in("sort.in");
    ofstream out("sort.out");

    int i;
    int *d;

    in>>n;
    //cout << n << endl;
    d = new int[n];
    b = new int[n];

    for(i = 0; i < n; i++)
    {
    in>>d[i];
    }
    sort(0, n);
    cout << n << endl;
    for (i = 0; i < n; i++) out<<d[i]<<' ';
    delete(d);
    delete(b);
    out.close();

    }

  4. 7
    Vitaly Martynovich ответил:

    тт

  5. 6
    Vitaliy Alyoshin ответил:

    ))

  6. 5
    Игорь Опарин ответил:

    Преобразование строки в число

  7. 4
    Андрей Питько ответил:

    большое спасибо

  8. 3
    Андрей Питько ответил:

    Спасибо

  9. 2
    Андрей Питько ответил:

    А что такое StrToInt??

  10. 1
    Игорь Опарин ответил:

    Edit2->Text = sqrt(StrToInt(Edit1->Text));
    Только о проверках не забудь.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.