Совсем другие числа

Kreichik
Offline
Зарегистрирован: 27.10.2019

Всем привет!!! Я делаю копилку. Сам вводишь в ручную сумму через клавиатуру 4х4, она всасывает деньги. Потом при нажатии на кнопку "В" должно показываться сколько всего в копилке. Вроде-бы всё сделал, но когда ввожу число, то в балансе показывается совсем другое число. Помогите пожалуйста! 

Вот сам скетч:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h> 

LiquidCrystal_I2C lcd(0x27,16,2);

const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {' ','0','#','D'}
}; 
byte rowPins[ROWS] = {11,10, 9, 8}; 
byte colPins[COLS] = {7, 6, 5, 4}; 

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad 

int Relay = 13; //красный светодиод
int Relay2 = 2; //зелёный светодиод
int b = 0; //баланс
int k = 7; //порядок числа при вводе

void setup() {              
  Serial.begin(9600);
   lcd.init(); // Инициализируем экран
      lcd.backlight();  
  pinMode(Relay, OUTPUT); //карсный светодиод пин 13
  pinMode(Relay2, OUTPUT); //зелёный светодиод пин 2
      
}
void loop() 
{
      char customKey = kpd.getKey();
      if (customKey){
            Serial.println(customKey);
            lcd.setCursor(k, 1); // устанавливаем курсор на начало второй строки
            lcd.print(customKey);
            k = k + 1;
            lcd.setCursor(0, 1); // устанавливаем курсор на начало второй строки
            lcd.print("RUB/DOL");
            tone(12, (int)customKey*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд
      
 
if(customKey) // Check for a valid key. 
{ 
switch (customKey) 
{ 
case 'A': //ОЖИДАЙТЕ, ОПЕРАЦИЯ ПРОШЛА УСПЕШНО, ВОЗВРАЩЕНИЕ К НАЧАЛУ
digitalWrite(Relay, HIGH); 
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Ozhidajte");
delay(4000);
digitalWrite(Relay, LOW);
digitalWrite(Relay2, HIGH);
b = b + customKey;

lcd.setCursor(3, 0);
lcd.print("Operaciya"); 
lcd.setCursor(0, 1);
lcd.print("Proshla uspeshno");
delay(4000);
digitalWrite(Relay2, LOW);

lcd.clear();
lcd.setCursor(4, 0);
 lcd.print("NAZHMITE");
 lcd.setCursor(7, 1);
  lcd.print("*"); //ВОЗВРАЩЕНИЕ К НАЧАЛУ
  k= 16;
  lcd.backlight();  
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();  
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight(); 
break; 
case ' ': //НАЧАЛО
lcd.clear();
k = 8;
lcd.setCursor(1,0); // устанавливаем курсор на начало первой строки
      lcd.print("Vvedite summu");

break; 
case 'B': 
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Vsego:");
lcd.setCursor(7, 1);
lcd.print(b);
 
break;
} 
} 
}
}

Используются: LCD дисплей 1602 I2C, матричная клавиатура 4х4, Ардуино УНО, Buzzer(пищалка), пара светодиодов

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ну если так писать 

b = b + customKey;

то да, результат будет далёк от ожидаемого

тем более, што другие кнопки, кроме "А", "В" и "*" ты НИКАК не обрабатываешь, памойму

b707
Offline
Зарегистрирован: 26.05.2017

а покажите мне строчку в скетче, где вы складываете введенное число с балансом копилки? - я такого в коде не нашел

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Что-то совсем ничего непонятно. Вы где число-то вводите?

Нельзя ли программу прокомментировать? Ваши нынешние комментарии не дают никакого понимания, только запутывают. Например, в строке №22 написано, что b – это баланс. А в строке №58 Вы к этому балансу букву 'A' прибавляете. Зачем? Что надеетесь получить?

Прокомментируйте программу нормально – в терминах решаемой задачи.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

b707 пишет:

а покажите мне строчку в скетче, где вы складываете введенное число с балансом копилки? - я такого в коде не нашел

Ну, как же! В переменной b копятся буквы A. Стоит поделить её на 'A' - сразу получим количество сложений, которые были выполнены :)

b707
Offline
Зарегистрирован: 26.05.2017

загрузили ТС - он теперь в страхе забился под диван и мы его не увидим :)

astwo
Offline
Зарегистрирован: 10.07.2019

Ну у меня так же бывает. Захожу в магазин скупится. Там под товарами числа. Гляжу в свой кошелёк а там другие числа. С деньгами всегда так. Лучше считать всякие яблоки и груши. Это надёжнее получается.

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

Потому что должно быть хотя бы так:

b = b + (customKey-48);

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Kakmyc пишет:
Потому что должно быть хотя бы так: b = b + (customKey-48);

Нет.  У него сумма прибавляеца, тока когда "А" нажмёшь, а прибавлять к сумме 17 каждыйрас, по твоему коду, - я думаю, это не то, что хотел ТС

b707
Offline
Зарегистрирован: 26.05.2017

Kakmyc пишет:
Потому что должно быть хотя бы так: b = b + (customKey-48);

бестолку

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

DetSimen пишет:

другие кнопки, кроме "А", "В" и "*" ты НИКАК не обрабатываешь, памойму

А чо, надо было?

Kreichik
Offline
Зарегистрирован: 27.10.2019

Извините что долго. Вот скетч с комментариями:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h> 

LiquidCrystal_I2C lcd(0x27,16,2);

const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {' ','0','#','D'} //вместо звёздочки пробел
}; 
byte rowPins[ROWS] = {11,10, 9, 8}; 
byte colPins[COLS] = {7, 6, 5, 4}; 

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad 

int Relay = 13; //красный светодиод
int Relay2 = 2; //зелёный светодиод
int b = 0; //баланс
int k = 7; //порядок числа при вводе

void setup() {              
  Serial.begin(9600);
   lcd.init(); // Инициализируем экран
      lcd.backlight();  //включаем подсветку экрана
  pinMode(Relay, OUTPUT); 
  pinMode(Relay2, OUTPUT); 
      
}
void loop() 
{
      char customKey = kpd.getKey();
      if (customKey){
            Serial.println(customKey);
            lcd.setCursor(k, 1); // устанавливаем курсор на начало второй строки
            lcd.print(customKey);
            k = k + 1;
            lcd.setCursor(0, 1); // устанавливаем курсор на начало второй строки
            lcd.print("RUB/DOL");
            tone(12, (int)customKey*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд
      
 
if(customKey) // Check for a valid key. 
{ 
switch (customKey) 
{ 
case 'A': //текст чисто для декора
digitalWrite(Relay, HIGH); //включается красный светодиод
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Ozhidajte");
delay(4000);
digitalWrite(Relay, LOW); //выключается красный светодиод
digitalWrite(Relay2, HIGH); //включаем зелёный светодиод
b = b + customKey; //прибавляем к балансу то что ввели(customKey)

lcd.setCursor(3, 0);
lcd.print("Operaciya"); 
lcd.setCursor(0, 1);
lcd.print("Proshla uspeshno");
delay(4000);
digitalWrite(Relay2, LOW); //выключаем зелёный светодиод

lcd.clear();
lcd.setCursor(4, 0);
 lcd.print("NAZHMITE");
 lcd.setCursor(7, 1);
  lcd.print("*");
  k= 16; //устонавливаем курсор для ввода числа далеко за дисплей чтобы текст не вводился
  lcd.backlight();  //начинам моргать дисплеем
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();  
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight(); //заканчиваем моргать дисплеем
break; 
case ' ': //при нажатии на звёздочку экран очищается и выводится текст
lcd.clear();
k = 8;
lcd.setCursor(1,0); // устанавливаем курсор на начало первой строки
      lcd.print("Vvedite summu");

break; 
case 'B': //при нажатии на кнопку "В" очищаем экран и выводим переменную b(баланс)
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Vsego:");
lcd.setCursor(7, 1);
lcd.print(b); //выводим баланс
 
break;
} 
} 
}
}

Вроде-бы основное прокомментировал

Kreichik
Offline
Зарегистрирован: 27.10.2019

У меня вот так. Например ввожу 5000, а в балансе 65

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

Конечно бестолку.
Учитывая как он это опрашивает и обрабатывает.

int input_value=0;
if(customKey>='0'&&customKey<=9){
input_value=(input_value*10)+(customKey-48);

if(customKey=='A'){balans+=input_value;input_value=0;}

Kreichik
Offline
Зарегистрирован: 27.10.2019

Kakmyc пишет:
if(customKey>='0'&&customKey<=9){ input_value=(input_value*10)+(customKey-48); if(customKey=='A'){balans+=input_value;input_value=0;}

Можно спросить куда это?

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Kreichik пишет:

Вроде-бы основное прокомментировал

Вы читаете, что люди пишут?

Вам уже сказали, что

1. в строке №58 Вы прибавляете не то, что ввели, а всегда букву А и ничего другого
2. никакие кнопки, кроме А, В и звёздочки Вы вообще никак не обрабатываете.

Я же Вас спрашивал "где Вы вводите числа"? Ну и где? Где комментарий "ввод числа" или "ввод очередной цифры"?

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

Ну первый if, при нажатии на цифровую кнопку кейпада, записывает значение в переменную
input_value.(не забывая предыдущее значение умножать на 10, дабы при нажатии кнопок , скажем 5 и 6,
Сначала переменная стала 0*10+5=5, а потом 5*10+6=56.

Второй if при нажатии кнопки A, прибавляет введённые данные к балансу и обнуляет ввод.

Куда это запихнуть, думайте сами.
Ваш же скетч.
Вам виднее , что вы от него хотите.
Я просто показал , как правильно обработать данные вводимые с клавиатуры.

Kreichik
Offline
Зарегистрирован: 27.10.2019
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h> 

LiquidCrystal_I2C lcd(0x27,16,2);

const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {' ','0','#','D'} //вместо звёздочки пробел
}; 
byte rowPins[ROWS] = {11,10, 9, 8}; 
byte colPins[COLS] = {7, 6, 5, 4}; 

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad 

int Relay = 13; //красный светодиод
int Relay2 = 2; //зелёный светодиод
int b = 0; //баланс
int k = 7; //порядок числа при вводе

void setup() {              
  Serial.begin(9600);
   lcd.init(); // Инициализируем экран
      lcd.backlight();  //включаем подсветку экрана
  pinMode(Relay, OUTPUT); 
  pinMode(Relay2, OUTPUT); 
      
}
void loop() 
{
      char customKey = kpd.getKey(); //создаём массив customKey
      if (customKey){
            Serial.println(customKey); //в монитор порта пишем числа которые ввели с помощью клавиатуры
            lcd.setCursor(k, 1); // устанавливаем курсор на начало второй строки
            lcd.print(customKey); //выводим на дисплей числа с клавиатуры
            k = k + 1;
            lcd.setCursor(0, 1); // устанавливаем курсор на начало второй строки
            lcd.print("RUB/DOL");
            tone(12, (int)customKey*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд
      
 
if(customKey) // Check for a valid key. 
{ 
switch (customKey) 
{ 
case 'A': //текст чисто для декора
digitalWrite(Relay, HIGH); //включается красный светодиод
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Ozhidajte");
delay(4000);
digitalWrite(Relay, LOW); //выключается красный светодиод
digitalWrite(Relay2, HIGH); //включаем зелёный светодиод
b = b + customKey; //прибавляем к балансу то что ввели(customKey)

lcd.setCursor(3, 0);
lcd.print("Operaciya"); 
lcd.setCursor(0, 1);
lcd.print("Proshla uspeshno");
delay(4000);
digitalWrite(Relay2, LOW); //выключаем зелёный светодиод

lcd.clear();
lcd.setCursor(4, 0);
 lcd.print("NAZHMITE");
 lcd.setCursor(7, 1);
  lcd.print("*");
  k= 16; //устонавливаем курсор для ввода числа далеко за дисплей чтобы текст не вводился
  lcd.backlight();  //начинам моргать дисплеем
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();  
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight(); //заканчиваем моргать дисплеем
break; 
case ' ': //при нажатии на звёздочку экран очищается и выводится текст
lcd.clear();
k = 8;
lcd.setCursor(1,0); // устанавливаем курсор на начало первой строки
      lcd.print("Vvedite summu");

break; 
case 'B': //при нажатии на кнопку "В" очищаем экран и выводим переменную b(баланс)
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Vsego:");
lcd.setCursor(7, 1);
lcd.print(b); //выводим баланс
 
break;
} 
} 
}
}

Вводим числа с помощью customKey

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я хренею, дарагая редакция

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

Kreichik пишет:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
#include <Keypad.h> 

LiquidCrystal_I2C lcd(0x27,16,2);

const byte ROWS = 4; // 4 строки
const byte COLS = 4; // 4 столбца
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {' ','0','#','D'} //вместо звёздочки пробел
}; 
byte rowPins[ROWS] = {11,10, 9, 8}; 
byte colPins[COLS] = {7, 6, 5, 4}; 

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Create the Keypad 

int Relay = 13; //красный светодиод
int Relay2 = 2; //зелёный светодиод
int b = 0; //баланс
int k = 7; //порядок числа при вводе

void setup() {              
  Serial.begin(9600);
   lcd.init(); // Инициализируем экран
      lcd.backlight();  //включаем подсветку экрана
  pinMode(Relay, OUTPUT); 
  pinMode(Relay2, OUTPUT); 
      
}
void loop() 
{
      char customKey = kpd.getKey(); //создаём массив customKey
      if (customKey){
            Serial.println(customKey); //в монитор порта пишем числа которые ввели с помощью клавиатуры
            lcd.setCursor(k, 1); // устанавливаем курсор на начало второй строки
            lcd.print(customKey); //выводим на дисплей числа с клавиатуры
            k = k + 1;
            lcd.setCursor(0, 1); // устанавливаем курсор на начало второй строки
            lcd.print("RUB/DOL");
            tone(12, (int)customKey*10, 300); // Издаем звуковой сигнал длиной 300 миллисекунд
      
 
if(customKey) // Check for a valid key. 
{ 
switch (customKey) 
{ 
case 'A': //текст чисто для декора
digitalWrite(Relay, HIGH); //включается красный светодиод
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Ozhidajte");
delay(4000);
digitalWrite(Relay, LOW); //выключается красный светодиод
digitalWrite(Relay2, HIGH); //включаем зелёный светодиод
b = b + customKey; //прибавляем к балансу то что ввели(customKey)

lcd.setCursor(3, 0);
lcd.print("Operaciya"); 
lcd.setCursor(0, 1);
lcd.print("Proshla uspeshno");
delay(4000);
digitalWrite(Relay2, LOW); //выключаем зелёный светодиод

lcd.clear();
lcd.setCursor(4, 0);
 lcd.print("NAZHMITE");
 lcd.setCursor(7, 1);
  lcd.print("*");
  k= 16; //устонавливаем курсор для ввода числа далеко за дисплей чтобы текст не вводился
  lcd.backlight();  //начинам моргать дисплеем
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();  
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight();
  delay(300);
  lcd.noBacklight();
  delay(300);
  lcd.backlight(); //заканчиваем моргать дисплеем
break; 
case ' ': //при нажатии на звёздочку экран очищается и выводится текст
lcd.clear();
k = 8;
lcd.setCursor(1,0); // устанавливаем курсор на начало первой строки
      lcd.print("Vvedite summu");

break; 
case 'B': //при нажатии на кнопку "В" очищаем экран и выводим переменную b(баланс)
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Vsego:");
lcd.setCursor(7, 1);
lcd.print(b); //выводим баланс
 
break;
} 
} 
}
}

Вводим числа с помощью customKey

"Вводим числа с помощью customKey" , должно выглядеть как у меня в первом if

b707
Offline
Зарегистрирован: 26.05.2017

Kreichik пишет:
Вводим числа

ГДЕ???

Вот блин, вы вообще не читаете ответов?

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

b707 пишет:

Kreichik пишет:
Вводим числа

ГДЕ???

Вот блин, вы вообще не читаете ответов?

Походу клиника.

b707
Offline
Зарегистрирован: 26.05.2017

Кактус. оформляйте код как положено, вы вроде не новичок :)

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

СКОРО , ВСТРЕЧАЙТЕ.
НОВЕЙШИЕ ЧУДО-БАНКОМАТЫ ОТ
НациональногоАрмяно-ЕврейскоегоБАНКа. :-)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Бида-бида, поцыэнт с непроходимостью головного мозга. 

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018

С телефона крайне неудобно это делать. Каждый раз приходится переходить в режим ПК.
Но намек понял

Kreichik
Offline
Зарегистрирован: 27.10.2019

ИЗВИНИТЕ что вынес вам мозги. 

Kreichik
Offline
Зарегистрирован: 27.10.2019

Выходит вот-это

b707
Offline
Зарегистрирован: 26.05.2017

Kreichik пишет:

ИЗВИНИТЕ что вынес вам мозги. 

Не торопитесь писать разную чушь. Изучите подсказки, что дал Кактус и другие участники, попытайтесь их понять.

Сейчас в вашем коде ввода суммы НЕТ ВОВСЕ

Kreichik
Offline
Зарегистрирован: 27.10.2019

Я понимаю под вводом суммы:

Мы ввели данные с переменной customKey. Потом мы прибавляем к переменной b данные переменной customKey. Потом выводим переменную b на дисплей

b707
Offline
Зарегистрирован: 26.05.2017

Kreichik пишет:

Я понимаю под вводом суммы:

Мы ввели данные с переменной customKey. Потом мы прибавляем к переменной b данные переменной customKey. Потом выводим переменную b на дисплей

последний раз, терпеливо обьясняю - постарайтесь вникнуть. вероятно вы предполагали так - вводим "2", потом "3", потом нажимаем "А" и к сумме должно прибавится 23. верно?

Ну так вот - реально в вашем коде ни "2" ни "3" не обрабатывается. обрабатывается только "А" а все введенные числа улетают в никуда.

Kreichik
Offline
Зарегистрирован: 27.10.2019

 

Спасибо всем! Я понял в чём ошибка

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

b707 пишет:

загрузили ТС - он теперь в страхе забился под диван и мы его не увидим :)

На амперку перебежал. Жаль, там дядя Витя выпилился :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

да я ему тут уже вручил сертификат, да bwn его осторожно выпилил. 

bwn
Offline
Зарегистрирован: 25.08.2014

DetSimen пишет:

да я ему тут уже вручил сертификат, да bwn его осторожно выпилил. 

А я то с чего? Я ваще два дня не заглядывал, чуть чо, сразу Косой. (с).

bwn
Offline
Зарегистрирован: 25.08.2014

Kakmyc пишет:
СКОРО , ВСТРЕЧАЙТЕ. НОВЕЙШИЕ ЧУДО-БАНКОМАТЫ ОТ НациональногоАрмяно-ЕврейскоегоБАНКа. :-)

Уже в работе, вчера в МФЦ презентация была. Две тыщи сто рублев, на пошлину, запихал, это чудо поурчало и затихло. Барышня, по телефону, сказала: если при инкассации лишние обнаружим, то в течении недели, на телефон переведем. Писец, если переведут, года два забесплатно трепаться буду, о радость то.
Решил, х-ый день, пришел, достал срецтво и ушел в астрал. А Дед, меня здесь, в чёрти чем обвиняет. Монстр, бездушный.))))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ну не  ты, значить, абознался, извини. :)  Тут еще есть кто с Секирой ходит.  Я подумал, совпало, что ты появился, и сритификат пропал.   Прошу пращенью. :) 

Но, человек же реально заслужил этот красивый сертификат, я, своей властью, ему пожаловал, а его тутже лишили чесно заработанного, не знаю кто. :)  Ирады.

bwn
Offline
Зарегистрирован: 25.08.2014

Это кто-то с сильной кармой сделал, в скрытых его нет. Удален начисто.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Клапа штоли?  :)  Запретил раздавать негосударственные награды, видимо. 

bwn
Offline
Зарегистрирован: 25.08.2014

Ну, типа того.)))

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

Ну не  ты, значить, абознался, извини. :)  Тут еще есть кто с Секирой ходит.  Я подумал, совпало, что ты появился, и сритификат пропал.   Прошу пращенью. :) 

Но, человек же реально заслужил этот красивый сертификат, я, своей властью, ему пожаловал, а его тутже лишили чесно заработанного, не знаю кто. :)  Ирады.

ну вообще-то правильно удалили - ТС-у 13 лет, а там ненормативная лексика :) хотя  он Сертификат заслужил по праву, тут соглсаен.

bwn
Offline
Зарегистрирован: 25.08.2014

b707 пишет:

ну вообще-то правильно удалили - ТС-у 13 лет, а там ненормативная лексика :) 

Всё шутите? Я, в тринадцать, начал себя ограничивать в ее использовании.)))

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

bwn пишет:

Всё шутите? Я, в тринадцать, начал себя ограничивать в ее использовании.)))

 

А смысл?

Kreichik
Offline
Зарегистрирован: 27.10.2019

А можно спросить? Что за сертификат?

bwn
Offline
Зарегистрирован: 25.08.2014

To asam, ее было слишком много, стояла задача использовать не более одного-двух слов на предложение.)))

To Kreichik, вы действительно хотите это знать? Если вам, как и озвучено, тринадцать, то не надо. Ибо, согласно любимому мною Экклезиасту: Во многая знания, многая печали.))))

strarbit
Offline
Зарегистрирован: 12.06.2016
..
#define KEYDIGIT    '0'...'9'
#define KEYRESET    '#'
#define KEYENTER    '*'
 
char key = customKeypad.getKey();
if ( key != NO_KEY ) {
  switch ( key ) {
    case KEYDIGIT:
      // TBO|/`| อenO3|/|T
      break;
    case KEYENTER:
      break;
    case KEYRESET:
      break;
  }
}
...

 

Kakmyc
Онлайн
Зарегистрирован: 15.01.2018
#define KEYDIGIT    '0'...'9'

Стесняюсь спросить, А такая запись корректна

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Kakmyc пишет:

#define KEYDIGIT    '0'...'9'

Стесняюсь спросить, А такая запись корректна

В GCC - да.

strarbit
Offline
Зарегистрирован: 12.06.2016

Kakmyc пишет:

#define KEYDIGIT    '0'...'9'

Стесняюсь спросить, А такая запись корректна

Этот вопрос для меня стого я азиатка да или нет? Знаеш это типично для меня. я привыкла. если Computing Science мальчик это хорошо, иначе девочка это плохо в Computing Science.

корректно да https://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html
корректно также это if ( key >='0' && key <= '9' )