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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 11:54   #1
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Вопрос С++ Ошибка

Товарищи помогите разобраться почему не компилится?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <math.h>

#define n_MAX 100000;

double main(){
  long k,n;
  double x,y,s;
  double a,b,c,d;
  double r=1; //Радиус круга
  a=-1; b=1; c=-1; b=1; //Прямоугольник
  srand(); //Установка генератора
  n=k=0;
  while (n<=n_MAX){
    x=(double)rand()/RAND_MAX;
    y=(double)rand()/RAND_MAX;
    x=(b-a)*x+a;
    y=(d-c)*y+c;
    if ((x*x+y*y<r && x>1 && y<exp(-x)) || (x*x+y*y<1 && x<0 && >exp(-x))){
      k++
    }
    n++;
  }
  s=(double)m/k*(b-a)*(d-c);
  return s;
}
sir.andrey вне форума Ответить с цитированием
Старый 03.09.2010, 12:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
k++
Где точка-запятая?
Цитата:
(double)m
Что это за переменная? Где она описана?
Цитата:
srand(); //Установка генератора
Эта процедура должна принимать параметр.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 12:29   #3
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

Все равно проблемка:

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <math.h>
#include <time.h>

#define n_MAX 100000;
double karlo(void);
double karlo(){
  long k,n;
  double x,y,s;
  double a,b,c,d;
  double r=1; //Радиус круга
  a=-1; b=1; c=-1; b=1; //Прямоугольник
  srand(time(0));
  n=0;  k=0;
  while(n<=n_MAX){
    x=(double)rand()/RAND_MAX;
    y=(double)rand()/RAND_MAX;
    x=(b-a)*x+a;
    y=(d-c)*y+c;
    if ((x*x+y*y<r && x>1 && y<exp(-x)) || (x*x+y*y<1 && x<0 && y>exp(-x))){
      k++;
    }
    n++;
  }
  s=(double)k/n*(b-a)*(d-c);
  return s;
}
sir.andrey вне форума Ответить с цитированием
Старый 03.09.2010, 12:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Перепиши на
Код:
const int n_MAX=100000;
И не ломай моск.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 12:53   #5
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Вопрос

Stilet скажите пожалуйста почему надо программу начинать с процедуры MAIN? И всю программу заключать в ее оперторные скобки?
sir.andrey вне форума Ответить с цитированием
Старый 03.09.2010, 13:23   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
почему надо программу начинать с процедуры MAIN
Кто сказал? Не надо.
В Си Main считается стартовой функцией, и с ее кода начинается выполнение программы, так уж Керниган и Риччи задумывали. Но начинают программу обычно с директив компилятора типа #include
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 13:50   #7
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Кто сказал? Не надо.
В Си Main считается стартовой функцией, и с ее кода начинается выполнение программы, так уж Керниган и Риччи задумывали. Но начинают программу обычно с директив компилятора типа #include
Т.е. MAIN можно вообще не писать?
Просто дать другое название?
sir.andrey вне форума Ответить с цитированием
Старый 03.09.2010, 13:58   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не в этом дело.
В основах языка Си заложено что main - стартовая точка. Но от версии компиляторов может различаться.
Например:
int _tmain(int argc, _TCHAR* argv[]) - Консольное приложение
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow) - Оконка
и т.д. Но все они для своих типов приложений являются стартовыми, без них нельзя.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2010, 14:02   #9
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Вопрос

То что она обязательная и ее писать первой я понял.
И скажите пожалуйста, я правильно понял, что она кроме выше сказанного и названия от других функций не отличается?

ну все теперь кажется разобрался!!!
Main -это основная программа
А др ф-ции - подпрограммы

Последний раз редактировалось Stilet; 03.09.2010 в 14:13.
sir.andrey вне форума Ответить с цитированием
Старый 03.09.2010, 14:13   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
она кроме выше сказанного и названия от других функций не отличается?
В общем да.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в статье = ошибка в рограмме. Alex Cones Общие вопросы Delphi 14 29.07.2009 18:17
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI Алексей_xXx Помощь студентам 2 29.05.2009 00:09
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44