Форум программистов, компьютерный форум CyberForum.ru

Ошибки в компиляции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Коммивояжёр - или оптимизация пути. http://www.cyberforum.ru/cpp-beginners/thread43969.html
Задача заключается в том, чтобы оптимизировать пути движения транспорта от подбора клиента до его высадки. Распределение заказов по машинам. К примеру у нас n машин и m заказов. машина1 координаты машины Xi1j1 машина2 координаты машины Xi2j2 ...
C++ Win32 API vs MFC vs .NET Что это такое, чем они отличаются и что сейчас лучше учить? http://www.cyberforum.ru/cpp-beginners/thread43952.html
Веб книга по С++ только для печати C++
подскажите пжл книгу для новичков по с++ но только для печти.....а то тут никаких книг нету:-\........ну книга для печати что бы читать.....а по веб книгам не могу-глаза болят))буду благодарен
CoweWarrior C++
Кто нить пользуется этим компилятором? Что скажите о нем? Как насчет совместимости с DirectX? Добавлено через 19 минут 58 секунд В частности меня интересует DirectX дело в том что когда я прописываю #include <d3d9.h> #include <d3dx9.h> мне выдают то что Error : the file 'd3d9.h' cannot be opened
C++ Атрибуты консоли в C++ http://www.cyberforum.ru/cpp-beginners/thread43898.html
С++ Win32 Console Application. Компилятор - Microsoft Visual Studio C++ 2005 Как при компилировании задать параметр для консоли, что бы при запуске *.exe отсутствовала полоса прокрутки? Как вообще настроить параметры? Видел реализации, где при запуски программ были явно просто консоли, но с изменёнными шрифтами, размерами, цветами.
C++ WinAPI в С++ Дайте, пожалуйста, ссылку на книгу или хорошую статью по теме "WinAPI в C++" (или в Си). В интернете нашел кучу справочников по сообщениям, но ни одной нормальной книги (статьи), как использовать винапи в С++. З.Ы. не предлагайте ссылки на англоязычные сайты, я его (английский язык) тока учу. подробнее

Показать сообщение отдельно
M128K145
Эксперт С++
8283 / 3502 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
15.07.2009, 11:49     Ошибки в компиляции
2 hanasi
Ошибка где пишется redefinition означает, что ты несколько раз обьявил переменную с одним именем, если передал в функцию параметром, то в теле функции не надо снова указывать ее тип.
Если в сигнатуре функции стоит тип переменной double, то почему ты в теле описываеш такую же переменную с типом int???
При передаче параметров в функцию возле каждого параметра указывают его тип, по типам не группируют, в списке параметров может быть только ",", а не ";"

В конце каждой строчки всегда ставится ";". НО!!! После for(; точка с запятой не ставится!!! Только если это не намеренный пустой цикл.

{} - не ставится где угодно, а только в условиях if(если более одной выполняемой строки), при переходах switch, в циклах while(если более одной выполняемой строки), for(если более одной выполняемой строки), do while, тела функции, пространства имен, класса, структуры. Количество открывающих скобок должно быть равно количеству закрывающих

С++ does not support default-int - возле main указывай его тип

Чтобы пользоватся константами лучше пиши так:
C++
1
#define Pi 3.1415926536
Самое быстродействующее возведение в степень - это умножение вручную
C++
1
z = a*a*a*a
. Если же изначально степень не известна, то используй или
C++
1
2
for(int i = 0; i <tvoei_stepeni; ++i)
        z *= a;
или
C++
1
z = Pow(a, tvoja_stepen);
А где ты нашел на клаве такие кавычки " ” "? Вообще-то ставят те который возле энтера находятся " " "(ну или на двойке, в зависимости от языка)

Невозможно вернуть несколько переменных из функции. Вот поэтому необходимо начинать с ассемблера. На return выделяется регистр eax (размером в 4 байта), туда записывается один адрес, а ты решил вернуть целых четыре
C++
1
2
return dist2, dr; 
return mdArray1, mdArray2;
Если это так необходимо, то возвращай массив
Цитата Сообщение от hanasi
Я знаю, что эта прога просто ужасна по стилю и по логике и вообще мне за неё стыдно, но фактически эта моя первая прога на с++. Может кто её в порядок приведет.
Так зачем начинать сразу с таких программ? Начни писать что-то попроще. Без обид, но в этой программе даже циклы непонятно написаны. Прочитай что такое глобальная и локальная видимость переменных
C++
1
2
3
4
5
for ( int iplanet =1 ; iplanet <=2 ; ++iplanet);// суммирование по планетам
 int dist2 = mdArray1 [iplanet] [1]+ mdArray1 [iplanet] [1]; 
 int dist2 = dist1 + mdArray1 [iplanet] [2] + mdArray1 [iplanet] [2];// рас-ние планеты от Солнца
 
  int myArray1[iplanet] = sqr(dist2);
твой iplanet видно только в следующей за фором строчке, далее это неизвестная переменная. Когда исправиш эти ошибки - поищем другие

to @lex"Старушка" это про Borland C++ 3.1, которая появилась в 92 году

Добавлено через 45 секунд
2 hanasi
Ошибка где пишется redefinition означает, что ты несколько раз обьявил переменную с одним именем, если передал в функцию параметром, то в теле функции не надо снова указывать ее тип.
Если в сигнатуре функции стоит тип переменной double, то почему ты в теле описываеш такую же переменную с типом int???
При передаче параметров в функцию возле каждого параметра указывают его тип, по типам не группируют, в списке параметров может быть только ",", а не ";"

В конце каждой строчки всегда ставится ";". НО!!! После for(; точка с запятой не ставится!!! Только если это не намеренный пустой цикл.

{} - не ставится где угодно, а только в условиях if(если более одной выполняемой строки), при переходах switch, в циклах while(если более одной выполняемой строки), for(если более одной выполняемой строки), do while, тела функции, пространства имен, класса, структуры. Количество открывающих скобок должно быть равно количеству закрывающих

С++ does not support default-int - возле main указывай его тип

Чтобы пользоватся константами лучше пиши так:
C++
1
#define Pi 3.1415926536
Самое быстродействующее возведение в степень - это умножение вручную
C++
1
z = a*a*a*a
. Если же изначально степень не известна, то используй или
C++
1
2
for(int i = 0; i <tvoei_stepeni; ++i)
        z *= a;
или
C++
1
z = Pow(a, tvoja_stepen);
А где ты нашел на клаве такие кавычки " ” "? Вообще-то ставят те который возле энтера находятся " " "(ну или на двойке, в зависимости от языка)

Невозможно вернуть несколько переменных из функции. Вот поэтому необходимо начинать с ассемблера. На return выделяется регистр eax (размером в 4 байта), туда записывается один адрес, а ты решил вернуть целых четыре
C++
1
2
return dist2, dr; 
return mdArray1, mdArray2;
Если это так необходимо, то возвращай массив
Цитата Сообщение от hanasi
Я знаю, что эта прога просто ужасна по стилю и по логике и вообще мне за неё стыдно, но фактически эта моя первая прога на с++. Может кто её в порядок приведет.
Так зачем начинать сразу с таких программ? Начни писать что-то попроще. Без обид, но в этой программе даже циклы непонятно написаны. Прочитай что такое глобальная и локальная видимость переменных
C++
1
2
3
4
5
for ( int iplanet =1 ; iplanet <=2 ; ++iplanet);// суммирование по планетам
 int dist2 = mdArray1 [iplanet] [1]+ mdArray1 [iplanet] [1]; 
 int dist2 = dist1 + mdArray1 [iplanet] [2] + mdArray1 [iplanet] [2];// рас-ние планеты от Солнца
 
  int myArray1[iplanet] = sqr(dist2);
твой iplanet видно только в следующей за фором строчке, далее это неизвестная переменная. Когда исправиш эти ошибки - поищем другие

2 @lex"Старушка" это про Borland C++ 3.1, который появился в 92 году
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru