Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» C++ (Господа программеры)

Автор: mirk
Дата сообщения: 05.06.2003 08:33
Подскажите плиз чайнику что я неправильно пишу, код следующий:

void __fastcall TfMain::cbVenNoClick(TObject *Sender)
if (cbVenNo->Checked==True)
{
cbGon->Checked=False;
cbGon->Enabled=False;
cbTri->Checked=False;
cbTri->Enabled=False;
cbSif->Checked=False;
cbSif->Enabled=False;
}
else
{
cbGon->Checked=True;
cbGon->Enabled=True;
cbTri->Checked=True;
cbTri->Enabled=True;
cbSif->Checked=True;
cbSif->Enabled=True;
}
Автор: MonsterXXX
Дата сообщения: 05.06.2003 08:41
Всё правльно, а в чём проблема? Какая ошибка вылетает?
Автор: mirk
Дата сообщения: 05.06.2003 08:57
Забыл написать использую C++ Builder 6.0

uMain.cpp(419):E2333 Class member '_fastcall t Fmain::cbVenNoClick(TObject*)' declared outside its class
uMain.cpp(419):E2141 Declaration syntax error
Автор: FireBrizz
Дата сообщения: 05.06.2003 09:41

Цитата:
void __fastcall TfMain::cbVenNoClick(TObject *Sender)
{
if (cbVenNo->Checked==True)
{
cbGon->Checked=False;
cbGon->Enabled=False;
cbTri->Checked=False;
cbTri->Enabled=False;
cbSif->Checked=False;
cbSif->Enabled=False;
}
else
{
cbGon->Checked=True;
cbGon->Enabled=True;
cbTri->Checked=True;
cbTri->Enabled=True;
cbSif->Checked=True;
cbSif->Enabled=True;
}
}

Тело функции попробуй взять в {} и будет тебе счастье + посмотри в обьявлении класса (в uMain.h )- есть там у тебя такая функция или нет
Автор: mirk
Дата сообщения: 05.06.2003 10:03
2FireBrizz
Сенк получилось

void __fastcall TfMain::cbVenNoClick(TObject *Sender)
{
if (cbVenNo->Checked==True)
{cbGon->Checked=False;
cbGon->Enabled=False;
cbTri->Checked=False;
cbTri->Enabled=False;
cbSif->Checked=False;
cbSif->Enabled=False;}
else
{cbGon->Checked=True;
cbGon->Enabled=True;
cbTri->Checked=True;
cbTri->Enabled=True;
cbSif->Checked=True;
cbSif->Enabled=True;}
}

я то думал что опять память барахлит(недавно плашка 512 Mb начала глючить, приходиться работать на 1.5 гигах памяти, нехватает)
Автор: FireBrizz
Дата сообщения: 05.06.2003 10:10
mirk

Учите мат.часть, как сказал кто-то в смысле синтаксис языка, и начинать изучение лучше не с Buildera а то потом проблем больше будет , лучше начать с чегонить простого, с консоли или доса, проникнуться ООП, а потом от поделок дяди Borlanda воротить будет.

все вышесказанное ИМХО.
Автор: mirk
Дата сообщения: 05.06.2003 10:21
Это понятно, просто прога нужна срочно. Кстати пишут что лучше использовать VC вместе с intel компилятором использовать, это как понимать. И какую литературу вы можете посоветовать. Да и кстати в плане хотябы стандартных компонент в VC как обстоят дела.
Автор: MonsterXXX
Дата сообщения: 05.06.2003 10:28

Цитата:
а потом от поделок дяди Borlanda воротить будет.


Нихрана не будет
В VC если захочешь быстро прогу написать, запаришся с одним интерфейсом, пока до программирования дойдёшь.

А в Buildere раз и интерфейсик готов. Все стандартные задачи решаются очень просто.
А остальное нужно позновать только при нестандартных решениях.
Так, что моё мнение, что для Бизнес приложений Builder круче VC.

Добавлено

Цитата:
в плане хотябы стандартных компонент в VC  как обстоят дела.


Там вообще нет компонент, и такого понятия. Там библиотеки и всё.
Автор: FireBrizz
Дата сообщения: 05.06.2003 15:01
MonsterXXX
Это флеймовая тема ИМХО, а программирование это не тока интерфейс к вашему сведению . Если у тебя конечно были серьезные проекты и на VC и на Builder ты наверно это заметил.

mirk
VS с Intel компилятором - это Visual Studio c установленным компилятором от фирмы Intel, он интегрируется в студию и в настройках проекта выбираеш какой использовать компилер.(они оба в конечном итоге вызываются из командной строки а VS - это просто IDE)

Если решиш использовать VS то рекомендую поставить VisualAssist - вещь оч. полезная см. тут http://forum.ru-board.com/topic.cgi?forum=35&topic=3627 IDE становится на порядок удобнее (расширенная подсветка синтаксиса и тд.)
Насчет компонентов - ну скажем так: компонент это тоже класс а библиотеки классов есть тоже разные - и нетолько для UserInterface
К томуже вроде в VS.NET 2003 должны были сделать редактор форм для С++ (сам пока неставил и невидел)

Насчет книг - ну даже незнаю их сейчас много и давно это у меня самого было, но одно могу сказать - она должна быть бумажная (ИМХО намного удобнее если пользоваться часто, а в первое время наверно притется постоянно чтонить искать, смотреть, уточнять)
Сходи в большой магазин полистай что есть, бери что понятней написано пойми азы, ну а потом Страуп
Загляни кстати в эту ветку - там такие зубры копья ломали http://forum.ru-board.com/topic.cgi?forum=33&topic=1551
Автор: mirk
Дата сообщения: 06.06.2003 07:26
Сенк ребята. И напоследок, последний вопрос чайника: VC какой версии лучше использовать.
Автор: Serjik
Дата сообщения: 06.06.2003 08:02
FireBrizz
откуда можно качнуть интеловский компилятор???
Автор: FireBrizz
Дата сообщения: 06.06.2003 09:43
mirk

ИМХО последней (в смысле IDE понавороченнее, удобнее да и к стандарту все ближе и ближе). Удачи тебе в этом нелегком но увлекательном занятии.

Serjik
с сайта Intel, или в варезник там тема есть: http://forum.ru-board.com/topic.cgi?forum=35&topic=4530
Автор: Serjik
Дата сообщения: 06.06.2003 09:54
FireBrizz
Ту ссылку я ковырял, ничего дельного не вышло, сервер возвращает 500-ю ошибку . Может знаешь другие мести для слива?

Добавлено
Все! Нашел
Автор: kgt2003
Дата сообщения: 11.06.2003 11:15
kto nibyt mojet podckazat kak napisat programy dla 'printf' perevoda texta latinckogo shrifta na gruzincki ili xotia bi na kirilicu
sposibo
Автор: MadCatMSU
Дата сообщения: 11.06.2003 15:26
FireBrizz

Цитата:
К томуже вроде в VS.NET 2003 должны были сделать редактор форм для С++ (сам пока неставил и невидел)

Забавно... А что в предыдущей студии ты его не видел?!?
Вообще-то он там ещё с 6.0, а 2003 тем более он есть...
Причём очень, имхо, удобная вещь...

Добавлено
MonsterXXX

Цитата:
Там вообще нет компонент, и такого понятия. Там библиотеки и всё.


Вот тут и ты не прав! Есть там компоненты (уже по крайней мере ): в 2003 их полно, от openFileDialog, до PerfomanceCounter b т.д.
Они там так и называются компоненты:
ms-help://MS.MSDNQTR.2003APR.1033/vbcon/html/vbconComponentCreation.htm

Так что не надо пятнать честь VS )
Автор: FireBrizz
Дата сообщения: 16.06.2003 09:27
MadCatMSU

Если ты заметил, в этом треде люди говорят о C++, тогда причем здесь VB и C# -???


Цитата:
ms-help://MS.MSDNQTR.2003APR.1033/vbcon/html/vbconComponentCreation.htm


так что непутай людей !!!

А для C++ был тока редактор диалогов (если ты конечно видиш разницу)
Автор: MonsterXXX
Дата сообщения: 16.06.2003 09:41
FireBrizz

Цитата:
так что непутай людей !!!




Да, бывает Может он супер программер и для него VS один язык.
Автор: MadCatMSU
Дата сообщения: 16.06.2003 10:12
FireBrizz
Visual Basic and Visual C# Concepts - написано в этой теме, т.е. C# в том числе, а это близко C++ всё-таки... эли ты его за язык не считаешь ? Мы, наверное, только С++ прзнаём...

Насчёт диалогов: возможно не виужу, так как сейчас на c# пишу, а там что диалог, что окно - особой разницы нету (галочку ставишь, что ты хочешь форму как диалог выводить и всё !)... поэтому может быть и не было редактора форм (теперь, выходит есть .


MonsterXXX
VS для меня не один язык (в отличие от борладнов...) , а до программера (тем более супер) ещё далековато будет...
Автор: FireBrizz
Дата сообщения: 16.06.2003 13:41
MadCatMSU
Ну сразу видно что ты на Visual С++ вообще не писал так что спорить с тобой невижу смысла.


Цитата:
Visual Basic and Visual C# Concepts - написано в этой теме, т.е. C# в том числе, а это близко C++ всё-таки... эли ты его за язык не считаешь ? Мы, наверное, только С++ прзнаём...


Ну ну ... удачи тебе - человек говорит про C++ а ты ему про С# (знаеш, есть еще оч. много разных языков программирования - может получиться интересный диалог)
Автор: mirk
Дата сообщения: 19.06.2003 08:58
Ребят вы юж простите, ни х..на не получается:

есть два три едита(eRost, eVes, eImt), в два едита(eRost, eVes) вводятся числа. В первое вводится рост в сантиметрах(к примеру 178 см)и преобразуется в метры, во второе вес тела (к примеру 67 кг), после ввода во второй едит или в первый смотря как вводишь, в третьем выводится индекс массы тела, формула следующая: индекс массы тела = (масса тела (кг)) / (рост в метрах в квадрате). индекс массы тела должен округляться. до XX,X

расчет получается но без округления, если в поле нет никаких цифр вылазит ошибка, преобразование не получается, приходится вводить так: 1.78.

Подскажите плиз код, а то нихрена не успеваю.
Автор: FireBrizz
Дата сообщения: 19.06.2003 10:18
mirk
немного теории (хотся пофлудить с утра )
Для начала - посмотри про обработку исключений (типа ключевые слова try, catch )
Во вторых - неиспользуй в формулах значение едита - сначала преобразуй в число, и только если преобразовалось нормально - делай расчет по формуле
В третих - не приравнивай едит числу - используй FloatToStrF и будет тебе округление
я же говорил что Builder не лучший интрумент для изучений C++

Ну раз уж просиш код ... ну ладно, держи:
Значит так
1) вывод с округлением

Цитата:
eImt->Text = FloatToStrF(Imt,ffFixed,5,2);

где float Imt - уже расщитанный коэфициент

2) считывание значения из едита

Цитата:
bool mConvertRost(){
try{
StrToFloat(eRost->Text);
return true;
}
catch(...){
return false;
}
}

- тут могу ошибаться - написал по памяти (ну и второй едит аналогично)

3) Расщет индекса массы тела выполняеш только если преобразования вернули true

Надеюсь уж соединить вместе ты это сможеш ?

ЗЫ ух чето я добрый с утра - стока нафлудил - все выше написанное простой способ но неоптимальный (писать ломает - можно недать возмодности вводить ничего кроме циферь и т.д.)

Автор: mirk
Дата сообщения: 19.06.2003 10:23
Сенк, счас попробую.

Добавлено
Ни хрюна не получается.
Извини за наглость но мжет всетаки весь код, а то в обед надо сдавать, ан не успеваю.

Добавлено
bool mConvertRost(){
try{
StrToFloat(meRost->Text);
return true;
}
catch(...){
return false;
}
}

может у меня машина тормозит, а может я сам тормоз но нихрюна неработает.

Добавлено
float index;
try
{
index=StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text));
}
catch(EMathError&)
{
Application->MessageBox("?? ????? ????????? ?????", "????????? ????",MB_OK);
}
if (StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text))>=18.5)
lImt->Caption="?????";
eIndex->Text=FloatToStr(StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text)));
if (StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text))>=24.9)
lImt->Caption="??????????";
eIndex->Text=FloatToStr(StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text)));
if (StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text))>=29.9)
lImt->Caption="????????";
eIndex->Text=FloatToStr(StrToFloat(eVes->Text)/(StrToFloat(eRost->Text)*StrToFloat(eRost->Text)));


Черт возьми и здесь косяк.
Автор: FireBrizz
Дата сообщения: 20.06.2003 09:42
mirk

Ну незнаю, у меня все рулит

Цитата:

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
bool TForm1::mConvertRost(){
try {
mRost = StrToFloat(eRost->Text);
return true;
}
catch(...){
return false;
}
}
bool TForm1::mConvertVes(){
try{
mVes = StrToFloat(eVes->Text);
return true;
}
catch(...){
return false;
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(mConvertRost()&&mConvertVes()){
mImt = mVes/(mRost*mRost/10000);
eImt->Text = FloatToStrF(mImt,ffFixed,5,2);
}

}

Это Unit1.cpp

Цитата:


#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TEdit *eRost;
TEdit *eVes;
TEdit *eImt;
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
float mImt;
float mRost;
float mVes;

bool mConvertRost();
bool mConvertVes();

public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


А это Unit1.h соответственно

На форме 3 едита: eRost, eVes, eImt и одна кнопка Button1 на ее нажатие стоит обработчик Button1Click.

Если ексепшен всеже вылетает при отладке смотри настройки дебагера - он не должен должен отдать обработку исклбчений твоей программе, и RTFM
Автор: mirk
Дата сообщения: 20.06.2003 10:09
Так рулит. сенк большое.

FireBrizz ты уж прости чайника
Автор: FireBrizz
Дата сообщения: 20.06.2003 10:20
mirk
Все когдато были чайниками , так что учись - и все будет ОК

Автор: mirk
Дата сообщения: 20.06.2003 10:47
и последний чайниковский вопрос при запуске программы выводит такую фишку:

uNRESOLVED EXTERNAL'_FASTCALL TFMAIN::meRostChange(System::TObject*)'referenced from from путь к umain.obj

и дальше не хотит.

Добавлено
и последний чайниковский вопрос: при компиляции программы выводит такую фишку:

uNRESOLVED EXTERNAL'_FASTCALL TFMAIN::meRostChange(System::TObject*)'referenced from from путь к umain.obj

и дальше не хотит.
Автор: FireBrizz
Дата сообщения: 20.06.2003 12:10
mirk

Цитата:
uNRESOLVED EXTERNAL'_FASTCALL TFMAIN::meRostChange(System::TObject*)'referenced from from путь к  umain.obj

Что значит при запуске? наверно при линковке ?
А такая функция у тебявообще есть ?
Автор: mirk
Дата сообщения: 20.06.2003 12:35
Был meRost но я его грохнул.

Добавлено
Был meRost но я его грохнул.
Автор: FireBrizz
Дата сообщения: 20.06.2003 12:51
mirk
А в .h грохнул??? - сообщение говорит о том что ненайдена реализация функции
Автор: mirk
Дата сообщения: 20.06.2003 12:55
и в .h грохнул, все тоже самое.

Добавлено
Блин я оказывается такой паникер. Разобрался.

Создал meRost,
вставил: void __fastcall TfMain::meRostChange(TObject *Sender)
{

}
//---------------------------------------------------------------------------

напрямую в код, через events ругается, и усе заурчало, заворчало, заработало.

Сенк за помощь.

Страницы: 123

Предыдущая тема: WSH. Передача параметров для скрипта на VBS


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.