Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36

Возведение чисел в квадрат в memo

10.11.2012, 15:18. Показов 3597. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Пожалуйста, подскажите, как возвести число в memo в квадрат, по идее должно быть что-то подобное:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int i;
       for(i=0;i<Memo1->Lines->Count;i++) 
         {
                if (Memo1->Lines->Strings[i]!="")
                {
                  if (Memo1->Lines->Strings[i]==Text[i]) 
                  {
 
                   Memo1->Lines->....(i);         
                   };
                };
          };
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2012, 15:18
Ответы с готовыми решениями:

Вывод hex чисел в Memo
Здравствуйте Глобальная задача в том, чтобы при помощи ГПСЧ вывести заданное количество шестнадцатеричных последовательностей на экран....

Memo как матрица чисел
Пытаюсь создать программу, производящую действия с матрицей чисел 5х5. Матрица должна задаваться через с помощью компонета Memo. Не...

Чтение массива чисел из Memo
Доброго времени суток! У меня есть большой массив двузначных чисел в *.txt, который я при запуске программы сразу загружаю в memo1: ...

20
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
10.11.2012, 18:11
Цитата Сообщение от D4gon Посмотреть сообщение
как возвести число в memo в квадрат
Вы уверены в правильности поставленной задачи?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.11.2012, 22:12
C++
1
2
3
4
int res = StrToInt(Memo1->Lines->Strings[i])*StrToInt(Memo1->Lines->Strings[i]);
// или
int res = pow(StrToInt(Memo1->Lines->Strings[i]),2);
Memo1->Add(IntToStr(res));
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 04:42  [ТС]
вот задача:
В визуальном режиме написать программу, которая бы позволяла загружать текстовый файл, содержащий записанные в столбик числа и вычислять сумму их квадратов. Загружаемый файл должен выбираться с помощью стандартного диалогового окна открытия файла.
-----
я сделал приложение, кроме возведения в квадрат, все не могу дойти...
хочу, чтобы строки в первом memo возводились в квадрат и выводились во второе memo
Вложения
Тип файла: rar LB_6.rar (590.8 Кб, 8 просмотров)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 06:41
1. Выкладывая файлы для тестирования, делаете Release, а не Debug - см. картинку.
Компиляция программы под С++ Builder, чтобы работала на других компьютерах

2.
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
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
  int i,res,cnt,tmp;
  AnsiStr str;
  cnt = Memo1->Lines->Count;
  for (i=0;i<cnt;i++) {
    res = StrToInt(Memo1->Lines->Strings[i]);
    if (res!=0) {
      res =  IntPower(res,2);
    }
    Memo2->Lines->Add = IntToStr(res);
  }
// или без цикла, по индексу строки
    res = StrToInt(Memo1->Lines->Strings[0]); // квадрат первой строки
    if (res!=0) {
      res =  IntPower(res,2);
    }
    Memo2->Lines->Add = IntToStr(res);
//
  tmp = 23; // 1,2,...,222 и т.дю
 
  if (tmp<=cnt && tmp!=-1) {
    res = StrToInt(Memo1->Lines->Strings[tmp]); // квадрат строки
    if (res!=0) {
      res =  IntPower(res,2);
    }
    Memo2->Lines->Add = IntToStr(res);
  }      
//
    res = StrToInt(Memo1->Lines->Strings[cnt]); // квадрат последней строки
    if (res!=0) {
      res =  IntPower(res,2);
    }
    Memo2->Lines->Add = IntToStr(res);
}
//---------------------------------------------------------------------------
схема, не для копипейста, не проверял
консультации и техническая поддержка не предоставляются


3.
pow(x,y), powl(x,y), pows() - х в степени у, (C)
может понадобиться
C++
1
#include <math.h>
IntPower(Extended Base, int Exponent) - Base в целую степень Exponent, (Builder)
Power(Extended Base, Extended Exponent)
4. Bonus:
Работа с текстовыми файлами в Borland C++ Builder

5. Прететзия :
Миниатюры
Возведение чисел в квадрат в memo  
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 07:28  [ТС]
работаю в борландском с++
и мне выдает такую ошибку - [C++ Error] Unit2.cpp(62): E2451 Undefined symbol 'AnsiStr'
буду пробовать
-----
Большое спасибо за помощь
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 07:51
пардон, сочинял на коленке - AnsiString, т.е.,
C++
1
AnsiString str;
Добавлено через 2 минуты
И оно там не используется, видимо, я о чем-то о своем, думал, о девичьем , закомментируйте для начала
C++
1
// AnsiString str;
Добавлено через 1 минуту
AnsiString
И сходите-ка вы все же сюда:
Библиотека VCL и сопутствующие материалы

Добавлено через 1 минуту
Работает вы, судя по всему, в Borland C++ Builder, а Borland C++ Builder и Borland C++ - две больше разницы.
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 07:59  [ТС]
LK
я вас наверное совсем замучал, и приношу извинения за свою глупость , но я немного подправил вашу программу:
C++
1
2
3
4
5
6
7
8
9
10
 int i,res,cnt,tmp;
 // AnsiString str;
  cnt = Memo1->Lines->Count;
  for (i=0;i<cnt;i++) {
    res = StrToInt(Memo1->Lines->Strings[i]);
    if (res!=0) {
      res = StrToInt(Memo1->Lines->Strings[i])*StrToInt(Memo1->Lines->Strings[i]);
    }
    Memo2->Lines->Add = IntToStr(res);
    }
AnsiStr исправил еще до вашего топика
C++
1
res = StrToInt(Memo1->Lines->Strings[i])*StrToInt(Memo1->Lines->Strings[i]);
это поменял, т.к. выдавало ошибку на неизвестную функцию, и ни #include <cmath> и #include <math.h> не помогли
но выдает ошибку на неизвестную функцию в
C++
1
Memo2->Lines->Add = IntToStr(res);
сейчас думаю над этим
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 09:18
блин
C++
1
Memo2->Lines->Add(IntToStr(res));
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 09:26  [ТС]
LK
+_+
большое спасибо за помощь, очень выручили, все работает как надо
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 09:49
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Memo2->Clear();
  int i,res,cnt,tmp;
  // AnsiString str;
  cnt = Memo1->Lines->Count;
  for (i=0;i<cnt;i++) {
    res = StrToInt(Memo1->Lines->Strings[i]);
    if (res!=0 || res!=1) {
      res = StrToInt(Memo1->Lines->Strings[i]);
      res = pow(res,2);
    }
  Memo2->Lines->Add(IntToStr(res));
  }
}
//---------------------------------------------------------------------------
и это
C++
1
res = pow(res,2);
тоже работает:
Миниатюры
Возведение чисел в квадрат в memo   Возведение чисел в квадрат в memo  
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 10:03
и это тоже:
Миниатюры
Возведение чисел в квадрат в memo  
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 11:11  [ТС]
LK, угу
а вот такой вопрос появился, при больших числах он выводит минусовойй результат, как этого избежать?

Добавлено через 6 минут
все, сам себе ответил, сделать long int

Добавлено через 3 минуты
не помогло...
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
11.11.2012, 11:17
long long int, __int64, UINT64
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 11:17
при каких больших?
0
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 16:07  [ТС]
C++
1
long long int
помогло, спасибо

Добавлено через 13 минут
вот что получилось:
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
OpenDialog1->Filter="Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";   //Задаём фмльтр для ращирений файлов, показываемых в диалоговых окнах
SaveDialog1->Filter="Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";   //
SaveDialog1->DefaultExt="txt";
Memo1->Lines->Clear();
Memo2->Lines->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{
char i1, i2;
 
i1=OpenDialog1->Execute();  //Открываем диалоговое окно чтения файла
i2=FileExists(OpenDialog1->FileName); //  Если файл существует
 
if (i1 && i2)
        {
         Label3->Caption="";
         Memo1->Lines->LoadFromFile(OpenDialog1->FileName);  //Загружаем из него текст
        }
        else
        {
         Label3->Caption="Невозможно открыть файл";
        };
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::Button2Click(TObject *Sender)
{
Memo1->Clear();     //очищаем формы
Memo2->Clear();
Edit1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button4Click(TObject *Sender)
{
char i1;
 
i1=SaveDialog1->Execute();   //Открываем диалоговое окно записи в файл
 
if (i1) {
        Label3->Caption="";
        Memo2->Lines->SaveToFile(SaveDialog1->FileName);  //Записываем текст в файл
        };
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
long long int i,res,cnt,tmp;
 // AnsiString str;
  cnt = Memo1->Lines->Count;    //считаем строки
  for (i=0;i<cnt;i++)
  {
    res = StrToInt(Memo1->Lines->Strings[i]);  //делаем   строку числом и обозначаем переменной
    if (res!=0)  //если переменная не равна нулю
    {
      res = StrToInt(Memo1->Lines->Strings[i]); //вычисляем квадрат
      res = pow(res, 2);
    }
 
Memo2->Lines->Add(IntToStr(res));  //выводим результат в memo2
 
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button5Click(TObject *Sender)
{
int i,res,cnt,tmp;
 // AnsiString str;
  cnt = Memo1->Lines->Count;    //считаем строки
  for (i=0;i<cnt;i++)
  {
    res = StrToInt(Memo1->Lines->Strings[i]);  //делаем   строку числом и обозначаем переменной
    if (res!=0)  //если переменная не равна нулю
    {
      res = StrToInt(Memo1->Lines->Strings[i]); //вычисляем квадрат
      res = pow(res, (StrToInt(Edit1->Text)));
    }
 
Memo2->Lines->Add(IntToStr(res));  //выводим результат в memo2
 
  } 
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, char &Key)
{
if ((Key >= '0') && (Key <= '9')) {}  // цифры
else if (Key == 8) {}  // <-
else if ((Key == '.') || (Key == ',')) // запятая
        {
        if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // если запятая уже есть
                Key = 0;
        else // если ещё нет
                Key = DecimalSeparator;
        }
else Key = 0; // не цифра
}
//---------------------------------------------------------------------------

а как сделать, чтобы при загрузке из файла в мемо выводились только числа, а буквы убирались
----
и как сделать, чтобы вовзводило в степень дробное число, пробовал заменить StrToInt на StrToDouble и StrToD но выдает ошибки

Добавлено через 4 часа 2 минуты
но если это долго делать, то не пытайтесь, это уже из интереса спрошено
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.11.2012, 16:27
1. считывать построчно и проверять символы функцией isdigit()
C++
1
2
3
4
5
6
7
8
9
10
TStringList *list = new TStringList();
list->LoadtFromFile(filename);
for (int i=0;i<list->Count;i++) { // нумерация в списке - с 0
  for (int j=1;j<list->Strings[i]->Length();j++) { // нумерация в строке - с 1
    char ch = list->Strings[j];
    if (isdigit(ch)) {
      Memo->Lines->Add(ch);
    }
  }
}
2. StrToFloat()
1
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
11.11.2012, 16:45  [ТС]
большое спасибо
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
11.11.2012, 21:28
Или так число в мемо умнож на этоже число:

Memo1->Text=StrToInt(Memo1->Text)*StrToInt(Memo1->Text);
0
0 / 0 / 0
Регистрация: 10.11.2012
Сообщений: 36
14.11.2012, 14:29  [ТС]
еще один вопрос, как посчитать все цифры в мемо и показать это в лэйбле?

Добавлено через 20 минут
точнее сумму цифр в мемо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2012, 14:29
Помогаю со студенческими работами здесь

Считать элементы из Memo в массив чисел
подскажыте, пожалуста, как мне считать елементы с memo, которіе введены в один столбец, тоесть каждый елемент с нового рядка? мне нужно...

возведение чисел в квадрат
Даны действительные x,y. Если х и у положительные,то найти квадратные корни из х и у. Если только одно из этих сисел положительное,то...

Возведение в квадрат только положительных чисел
Задача : Даны три действительных числа . Разработать прогу , которая возведет в квадрат только положительные .... Добавлено через 5...

Файл целых чисел. Вывод, возведение в квадрат
Помогите решить задачи на зачет до завтра 1. Создать программу, формирующую файл nums.dat из целых чисел вводимых с клавиатуры....

Возведение в квадрат натуральных чисел, оканчивающихся на цифру 5
var x,y:longint; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output); read(x); y:=x div...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru