Помогите с программированием
- Войдите на сайт для отправки комментариев
Чт, 18/10/2012 - 14:31
Добрый день
Программирую действие - нужно проверять наличие сигналов на входе, при их появлении ждать 50 мс и потом проверять другие входа на наличие сигнала, получается вот такая конструкция
if ( digitalRead (OpenDoor) == HIGH ) {
delay (50);
if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) {
}
else {
}
Почему то не могу в этот код поставить второй else, и вообще правильно ли програмирую вложеный if?
Обратите внимание на то, что самая верхняя фигурная скобка у вас осталась не закрытой. Закройте ее в самом конце и будет вам счастье. Встроенный иф верен (при условии того, что второе условие у вас выполнится тогда когда его левая и правая часть будут истиной)
Верхняя скобка закрыта, сюда не написал, а вот второй else не дает добавить - компилятор ругается.
Как именно ругается?
Хотите что то подобное?
if ( digitalRead (OpenDoor) == HIGH ) { delay (50); if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) { } else { } else { } }как это вы к внутреннему if два else прикрутили? Так не зя!
верно замечено, правильно так
if ( digitalRead (OpenDoor) == HIGH ) { delay (50); if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) { } else { } } else { }Ctrl+t рулит :)
Вот что получилось
if ( digitalRead (OpenDoor) == HIGH ) {
delay (50);
if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) {
digitalWrite (SlaveOnOff, HIGH);
}
else {
}
else {
}
}
Ругается
my_sketch:94: error: expected `}' before 'else'
my_sketch.cpp: At global scope:
my_sketch:98: error: expected unqualified-id before 'if'
Че за нафиг
Прочитайте внимптельно ощибку! Там всё написано. Если не дружите с английским, тоже не беда. Вот что перевёл google:
my_sketch: 94: ошибка: ожидается `} 'до' еще '
my_sketch.cpp: На глобальном объеме:
my_sketch: 98: ошибка: ожидается неквалифицированные-ID до 'если'
Обратите внимание на выделенный текст.
И вообще заведите себе за правело форматирвать текст. Тогда сами всё увидите.
Вот ваш код в отформатированном виде:
if ( digitalRead (OpenDoor) == HIGH ) { delay (50); if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) { digitalWrite (SlaveOnOff, HIGH); }else { } else { } }Для чего у вас второй else который ни к чему не относится? Ответ от memfise, который на один пост выше уже всё ответил на ваш вопрос. "Че за нафиг"
Ещё раз вот как это должно выглядеть:
if ( digitalRead (OpenDoor) == HIGH ) { delay (50); if ( digitalRead (LeftTurnSignal) == HIGH && digitalRead (RightTurnSignal) == HIGH) { digitalWrite (SlaveOnOff, HIGH); }else { // ... } }else { // ... }Прочтите вот эту статью: Оператор If ... else
Думаю эта тоже не повредит: Вставка програмного кода ...
Удачи
Спасибо, за помощь, я затупил, думал if нужно закрывать после else, а его нужно перед else закрывать :))
> Если не дружите с английским
С английским мы дружим, я просто не мог понять куда ему скобку нужно :)
Здравствуте, не могли вы мне помочь, нужно написать программу, которая проверят чтобы элементы не повторялисб по горизонтали и вертикали, никак не могу разобраться
Здравствуте, не могли вы мне помочь, нужно написать программу, которая проверят чтобы элементы не повторялисб по горизонтали и вертикали, никак не могу разобраться
Касса рядом с бухгалтерией :)
soinikova
Вы конечно очень доступно описали вашу проблемму!
Ну что понял, то и сделал. Код написан на JAVA, просто первое что под руку попалось.
Для проверки столбцов, нужно в циклах заменить индексы аррэя.
public class TestArray { public static void main(String[] args) { int[][] array1 = { {1,2,3,4,5,6,7,8,9,0}, {2,2,3,4,5,6,7,8,9,0}, {3,2,3,4,5,6,7,8,9,0}, {4,2,3,4,5,6,7,8,9,0}, {5,2,3,4,5,6,7,8,9,0}, {6,2,3,4,5,6,7,8,9,0}, {7,2,3,4,5,6,7,8,9,0}, {8,2,3,4,5,6,7,8,9,0}, {9,2,3,4,5,6,7,8,9,0}, {0,2,3,4,5,6,7,8,9,0} }; int[][] array2 = { {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0}, {1,2,3,4,5,6,7,8,9,0} }; System.out.println("Rows1: "+rowsValid(array1)); System.out.println("Rows2: "+rowsValid(array2)); } public static boolean rowsValid(int[][] arr){ for(int i=0; i<arr.length; i++) for(int j=0; j<arr[i].length; j++) for(int l=j+1; l<arr[i].length; l++) if(arr[i][j] == arr[i][l]) return false; return true; } }