Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.04.2009, 16:02   #1
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
Радость Использование функций

Здравствуйте! Начал изучать по книге функции, вот код, ниже, выдаёт ошибку "__main".

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
square (int radius);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------


//---------------------------------------------------------------------------
 square (int radius)
{
   int sqr ;
   double pi ;
   pi = 3.14159 ;
   sqr = pi*(radius*radius);
   return(sqr);
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
   Edit1->Text = square(Edit1->Text.ToInt());
}
prikolist вне форума
Старый 05.04.2009, 16:06   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

У Вас у функции square не указан тип возвращаемого значения
pu4koff вне форума
Старый 05.04.2009, 16:11   #3
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Пробую вот так int square (int radius),а вверху, после (TForm1 *Form1
тоже вот так int square (int radius); выдаёт ту же ошибку:
"__main"
prikolist вне форума
Старый 05.04.2009, 16:17   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

main - это вообще к консольному приложению относится. Может Вы создали консольный проект и скопировали весь этот код откуда-то? Все те ошибки, что в этом коде есть, не должны приводить к такому сообщению
pu4koff вне форума
Старый 05.04.2009, 16:34   #5
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Попробывал, перезапустить С++, и вставить код, запускается, но при нажатии на кнопку, результат не выводится в Эдит, а при нажатии выдаёт ошибку "Is not a valid integer value"
prikolist вне форума
Старый 05.04.2009, 16:35   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

В Эдит Вы ввели число, чтобы оно могло преобразоваться в int?
pu4koff вне форума
Старый 05.04.2009, 16:43   #7
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Понятно,спасибо. Подскажите, пожалуйста, при описании функции, обязательно нужно после
Код:
#pragma resource "*.dfm"
TForm1 *Form1;
повторять описание, тоесть прописывать square (int radius). Кстати,почему теперь без (int square (int radius)) запустилось.
И ещё, расшифруйте пожалуйста неизвестное вот это:
Код:
 Edit1->Text = square(Edit1->Text.ToInt());
Меня интересует вот этот кусок Text.ToInt());
Заранне благодарен.
prikolist вне форума
Старый 05.04.2009, 16:56   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от prikolist Посмотреть сообщение
обязательно нужно повторять описание, тоесть прописывать square (int radius).
Мне кажется, не обязательно (я всегда "повторяю", поэтому точно о необходимости не скажу). Тем более как у Вас в cpp файле и описание и реализация. Еще один камень в огород билдера. Готов поспорить, что вы не знаете о существовании хедера, а если правой кнопкой в области кода нажать, то там самый первый пункт в меню будет - переключение между h и cpp файлами. Хедер - это "интерфейсный" файл. Должно быть минимум реализации в нём, по возможности должно быть только описание классов, функций,... В cpp файлах уже реализация описанных в хедере классов, функций,...
Цитата:
Сообщение от prikolist Посмотреть сообщение
И ещё, расшифруйте пожалуйста неизвестное вот это:
Код:
 Edit1->Text = square(Edit1->Text.ToInt());
Меня интересует вот этот кусок Text.ToInt());
Ужасная запись для понимания этого новичком.
Text - это объект класса AnsiString (в общем строка это). ToInt - это метод, преобразующий строку в тип int. С оператором присваивания здесь вообще "чудеса" будут. Пока Вам их всё равно не понять, а объяснять их долго, поэтому лучше пока не заморачивайтесь
pu4koff вне форума
Старый 05.04.2009, 17:08   #9
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Скажите, правильно ли я понял вот эту строку.
Код:
Edit1->Text = square(Edit1->Text.ToInt());
Свойству текст, объекта Edit1 присвоить всю функцию, под названием
square в которую мы введём текст преобразуемый в формат целого типа, и выдать результат на Edit1. Если что не так я понял, допишите пожалуйста, чтоб понятно было.
И ещё, почему,если я введу в Эдит1, например 8,78 выдаст ошибку.

Последний раз редактировалось prikolist; 05.04.2009 в 17:10.
prikolist вне форума
Старый 05.04.2009, 17:14   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Не знаю. Может у Вас с "терминологией" некоторые проблемы. Я бы сказал так:
Вызываем функцию square. В качестве параметра передаём число введённое в Edit1, для чего предварительно преобразуем его в целочисленный тип посредством вызова метода ToInt. И в итоге в Edit1->Text записываем результат работы этой функции.
pu4koff вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование логических функций Клубничка Microsoft Office Excel 52 15.01.2009 15:01
использование процедур и функций! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 15:33
Использование функций Excel СеВа Microsoft Office Excel 0 14.03.2008 13:37