roboforum.ru

Технический форум по робототехнике.
Текущее время: 17 фев 2025, 08:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: пробные шаги в с++
СообщениеДобавлено: 03 фев 2015, 23:48 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
всем доброе время суток. не нашел в какой раздел запихнуть. выложу сюда. подскажите где ошибка. при компиляции выдает ошибку но потом программа запускается и работает.
Код:
#include<iostream>
#include <conio.h>
using namespace std;
int main()
{
char ch;
char gh;
while(ch!='\r')
  {
     cout<<"vvedite signal datchika horizont (1/0)\2\n";
    while(ch!='0')
    {
    ch=getche();

   if(ch=='1')
   cout<<"\nPovorot v pravo na 0.01s\n";
   else
   cout<<"\nPovorot v levo na 0.1s\n";
    }
    ch++;
    while(gh!='0')
    {
     gh=getche();
   if(gh=='1')
      cout<<"\nPovorot v levo na 0.01s\n";
    else
      cout<<"\nPovorot v praqvo na 0.1s\n";
    }
    gh++;
}

return 0;
}



вот продолжение кода
Код:
include<iostream>
#include <conio.h>
using namespace std;
int main()
{
int rh;
int lh;
int rv;
int lv;
while(rh!='\r')
  {
     cout<<"vvedite signal datchika horizont (1/2) i datchika vertikal (3/4) \2\n";
    while(rh!='2' && rv!='4')
    {
    rh=getche();
    rv=getche();
   if(rh=='1' && rv=='3')
   cout<<"\nPovorot v pravo na 0.01s,   Povorot vniz na 0.01s\n";
   else
      if(rv=='3')
       cout<<"\nPovorot vniz na 0.01s\n";
      else
         if(rh=='1')
            cout<<"\nPovorot v pravo na 0.01s\n";
         else
            cout<<"\nPovorot v levo na 0.1s,   Povorot vverh na 0.01s\n";
    }
    rh++; rv++;
    while(lh!='2' && lv!='4')
    {
     lh=getche();
     lv=getche();
     if(lh=='1' && lv=='3')
     cout<<"\nPovorot v levo na 0.01s,   Povorot vverh na 0.01s\n";
      else
      if(lv=='3')
        cout<<"\nPovorot vverh na 0.01s\n";
      else
         if(lh=='1')
            cout<<"\nPovorot v levo na 0.01s\n";
         else
            cout<<"\nPovorot v pravo na 0.1s,   Povorot vniz na 0.01s\n";
    }
    lh++; lv++;
}

return 0;
}


_________________
Всем удачного дня и хорошего настроения!


Последний раз редактировалось Павел_Сергеевич 04 фев 2015, 00:21, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 03 фев 2015, 23:57 
Не в сети

Зарегистрирован: 08 май 2014, 18:32
Сообщения: 609
Наверное стоит написать какую ошибку. А то телепаты все в теплых краях.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 00:28 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
run-time check failure #3-the variable 'rh' is being used without being initialized.

_________________
Всем удачного дня и хорошего настроения!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 01:37 
Не в сети

Зарегистрирован: 08 май 2014, 18:32
Сообщения: 609
Ну и что непонятного? У вас в rh мусор (не инициализирована), а уже используется.
Код:
include<iostream>
int main()
{
int rh;
while(rh!='\r')

так понятнее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 10:44 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
хорошо. место ошибки найдено. но поскольку я далеко не профи, мне этого мало. пришлите исправленный вариант.

Добавлено спустя 1 час 11 минут 19 секунд:
для чего все собственно и делается:
Код:
#include<iostream>
#include <conio.h>
using namespace std;
int PinA =12;
int PinB =11;
int PinC =10;
int PinD =9;
int PinE =8;
int PinF =7;
void setup()

{
  pinMode(PinA, OUTPUT);
  pinMode(PinB, OUTPUT);
  pinMode(PinC, OUTPUT);
  pinMode(PinD, OUTPUT);
  pinMode(PinE, INPUT);
  pinMode(PinF, INPUT);
}
void loop()
{
int main()
{
int ch=PinE;
int gh=PinE;
while(ch!='\r')    //для бесконечного цыкла
  {
    while(ch=0, ch<500)
    digitalWrite(PinA, HIGH);
    delay(100);
    digitalWrite(PinA, LOW);
    delay(10);
    {
   if(ch>500)
   digitalWrite(PinA, HIGH);
        delay(10);
        digitalWrite(PinA, LOW);
        delay(2);
   else
   digitalWrite(PinB, HIGH);
        delay(10);
        digitalWrite(PinB, LOW);
        delay(2);
    }
       while(ch=0, ch<500)
    digitalWrite(PinA, HIGH);
    delay(100);
    digitalWrite(PinA, LOW);
    delay(10);
    {
   if(ch>500)
   digitalWrite(PinB, HIGH);
        delay(10);
        digitalWrite(PinB, LOW);
        delay(2);
   else
   digitalWrite(PinA, HIGH);
        delay(10);
        digitalWrite(PinA, LOW);
        delay(2);
    }
     }
   }
}

тоже ошибку выдает но другую:
dance.ino: In function 'void loop()':
dance:23: error: a function-definition is not allowed here before '{' token
dance:64: error: expected `}' at end of input

_________________
Всем удачного дня и хорошего настроения!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 11:59 
Не в сети

Зарегистрирован: 03 янв 2012, 12:55
Сообщения: 3298
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...
Вы не профи - вам пофиг.
Говорите "спасибо".
Разбирайте ошибки.
Учите язык.
Больше практики...инет в помощь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 12:10 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
в loop не надо использовать main !

int rh=0;

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 14:29 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
Romikgy писал(а):
в loop не надо использовать main !

int rh=0;

с присвоением 0 получилось, огромное спасибо! четко и понятно.
А вот ардуино теперь ругается на else
Код:
#include<iostream>
#include <conio.h>
using namespace std;
int PinA =12;
int PinB =11;
int PinC =10;
int PinD =9;
int PinE =8;
int PinF =7;
void setup()

{
  pinMode(PinA, OUTPUT);
  pinMode(PinB, OUTPUT);
  pinMode(PinC, OUTPUT);
  pinMode(PinD, OUTPUT);
  pinMode(PinE, INPUT);
  pinMode(PinF, INPUT);
}
void loop()

{
int ch=PinE;
int gh=PinE;
while(ch!='\r')    //для бесконечного цикла
  {
    while(ch=0, ch<500)
    digitalWrite(PinA, HIGH);
    delay(100);
    digitalWrite(PinA, LOW);
    delay(10);
    {
   if(ch>500)
   digitalWrite(PinA, HIGH);
        delay(10);
        digitalWrite(PinA, LOW);
        delay(2);
   else
   digitalWrite(PinB, HIGH);
        delay(10);
        digitalWrite(PinB, LOW);
        delay(2);
    }
       while(ch=0, ch<500)
    digitalWrite(PinA, HIGH);
    delay(100);
    digitalWrite(PinA, LOW);
    delay(10);
    {
   if(ch>500)
   digitalWrite(PinB, HIGH);
        delay(10);
        digitalWrite(PinB, LOW);
        delay(2);
   else
   digitalWrite(PinA, HIGH);
        delay(10);
        digitalWrite(PinA, LOW);
        delay(2);
    }
     }
   }

Boidar_test.ino: In function 'void loop()':
Boidar_test:38: error: 'else' without a previous 'if'
Boidar_test:55: error: 'else' without a previous 'if'

_________________
Всем удачного дня и хорошего настроения!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 15:54 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
А скобки где?! "{" Надо хоть читать, что компилятор донести пытается. И перед программированием язык подучить.

Добавлено спустя 1 минуту 26 секунд:
операторы после условия - заключаются в скобки.
Читаем. http://arduino.ru/Reference/Else

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 15:54 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2009, 13:37
Сообщения: 750
Откуда: Porto Franco "Odessa"
все что хотите делать при условии if(ch>500) должно быть заключено в { }
после else также должно быть заключено в { }

_________________
die Wahrheit ist irgendwo da draußen


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 18:22 
Не в сети

Зарегистрирован: 08 май 2014, 18:32
Сообщения: 609
Павел_Сергеевич по языку читать букварь, а по ардуине посмотреть уроки на амперке. И только потом возвращайтесь с вопросами.
*букварь - K&R - Керниган, Ричи "Язык программирования С"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 21:28 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
Romikgy писал(а):
все что хотите делать при условии if(ch>500) должно быть заключено в { }
после else также должно быть заключено в { }

Как всегда, все четко и понятно, при прогоне все работает. спасибо!

Добавлено спустя 4 минуты 38 секунд:
holomrn писал(а):
Павел_Сергеевич по языку читать букварь, а по ардуине посмотреть уроки на амперке. И только потом возвращайтесь с вопросами.
*букварь - K&R - Керниган, Ричи "Язык программирования С"

я читаю ооп лафоре, пока дошод до continue в циклах.

_________________
Всем удачного дня и хорошего настроения!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 04 фев 2015, 22:03 
Не в сети

Зарегистрирован: 08 май 2014, 18:32
Сообщения: 609
До оопа надо хоть основы языка выучить. Чтобы не спрашивать куда делась фигурная скобка и почему компилятор ругается на использование неинициализированной переменной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 06 фев 2015, 00:23 
Не в сети
Аватара пользователя

Зарегистрирован: 17 окт 2012, 01:19
Сообщения: 170
Откуда: москва - Гусь-Хрустальный
Skype: sadtenei
не меняет направление вращения. завис на первом цикле и не переходит дальше. мониторинг порта показывпет при открытом экране между диодом и сенсором 902, про закрытом 180-200.
Код:
#include<iostream>
#include<conio.h>
using namespace std;
int PinA =12;
int PinB =11;
int PinC =10;
int PinD =9;
int PinE =0;
void setup()
{
Serial.begin(9600); //установка общение с компом в скобках скорость
pinMode(PinA, OUTPUT); //УСТАНОВКА КАК ВЫХОД
pinMode(PinB, OUTPUT); //УСТАНОВКА КАК ВЫХОД
pinMode(PinC, OUTPUT); //УСТАНОВКА КАК ВЫХОД
pinMode(PinD, OUTPUT); //УСТАНОВКА КАК ВЫХОД
pinMode(PinE, INPUT); //УСТАНОВКА КАК ВХОД
}
void loop()
{ //горизонталь
int ch=PinE;
while(ch!='\r')
{
digitalWrite(PinA, HIGH);
Serial.println(analogRead(ch));
delay(100); // первый импульс для приведения датчиков в чувства
digitalWrite(PinA, LOW);
delay(10); // остановка для запуска основной программы
if(ch>500)
{
digitalWrite(PinA, HIGH);
Serial.println(analogRead(ch));
delay(100);
digitalWrite(PinA, LOW);
delay(1);
}
else
{
digitalWrite(PinA, LOW);
delay(1);
}}
{
digitalWrite(PinB, HIGH);
Serial.println(analogRead(ch));
delay(10); // первый импульс для приведения датчиков в чувства
digitalWrite(PinB, LOW);
delay(1); // остановка для запуска основной программы
{
if(ch>500)
{
digitalWrite(PinB, HIGH);
Serial.println(analogRead(ch));
delay(10);
digitalWrite(PinB, LOW);
delay(2);
}
else
{
digitalWrite(PinB, LOW);
delay(2);
}
}}
}

я думаю else тут вообще лишнее. просто код в стадии эксперементов.

_________________
Всем удачного дня и хорошего настроения!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: пробные шаги в с++
СообщениеДобавлено: 06 фев 2015, 01:38 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
первый цикл бесконечный по определению. при входе во второй он становится бесконечным по факту и else к этому вообще не при чём. для начала или тренируйте внимательность и уменее считать хотя бы скобки или нормально код форматировать. а в общем вам пока лучше уделять побольше времени на изучение самого языка и поменьше на всякие ардуинки и потуги покодить ваши хотелки.
по текущему коду вообще мало что понятно, что хотели и где именно и как нужно переделывать. кусок после while цикла пока абсолютно не имеет смысла хотя бы по той причине, что он никогда не выполнится. в самом while тоже только телепатией заниматься. допустим смотря на "if(ch>500)". может вам еще разок нужно почитать про функции и присваивание значений? и т.д. по всему коду.


Последний раз редактировалось Angel71 06 фев 2015, 02:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 39 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO