✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.
Білет №14
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Кодовий замок
// Початок обов'язкового коду
#include "Keypad.h"
const byte ROWS = 4; // чотири ряди кнопок
const byte COLS = 3; // по три в кожному ряду
char keys [ROWS] [COLS] =
{{ '1', '2', '3'},
{ '4', '5', '6'},
{ '7', '8', '9'},
{ '*', '0', '#'}};
byte rowPins [ROWS] = {5, 4, 3, 2};
byte colPins [COLS] = {8, 7, 6};
Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
// Кінець обов'язкового коду
char PIN [6] = { '1', '2', '3', '4', '5', '6'}; // таємний код
char atteammpt [6] = {0,0,0,0,0,0};
int z = 0;
void setup ()
{
Serial.begin (9600);
}
void correctPIN () // викликається, якщо введений вірний код
{
Serial.println ( "Correct PIN entered ...");
}
void incorrectPIN () // викликається, якщо введений невірний код
{
Serial.println ( "Incorrect PIN entered!");
}
void checkPIN ()
{
int correct = 0;
int Bi;
for (i = 0; i <6; i ++)
{
if (attempt [i] == PIN [i])
{
correct ++;
}
}
if (correct == 6)
{
correctPIN ();
} else
{
incorrectPIN ();
}
for (int zz = 0; zz <6; zz ++) // видалити код, введений в попередній спробі
{
attempt [zz] = 0;
}
}
void readKeypad ()
{
char key = keypad.getKey ();
if (key! = NO_KEY)
{
switch (key)
{
case '*':
z = 0;
break;
case '#':
delay (100); // усунути ймовірність брязкоту
checkPIN ();
break;
default:
attempt [z] = key;
z ++;
}
}
}
void loop ()
{
readKeypad ();
}