КТО РАЗБИРАЕТСЯ В АРДУИНО Поработайте с последовательным COM портом Arduino Uno.
a. При нажатии кнопки, выведите в COM порт следующее:
i. Одно нажатие, выведите: Одно нажатие.
ii. Двойное нажатие, выведите: Двойное нажатие. (Учитывайте дребезг кнопки, используйте интервал в 500 мс)
b. Непрерывно выводите в COM порт значения получаемые с потенциометра в диапазоне от 0 до 180 градусов:
i. При COM порта получайте команды для управления загоранием светодиодов.
ii. При введении слова “желтый”, загорается желтый светодиод и т.д.
import typing
from typing import Callable
def ReadSeqWhile(SeqType, predicate: Callable[[int], bool]):
temp = SeqType(input())
while predicate(temp):
yield temp
temp = SeqType(input())
def main():
RawSequence = ReadSeqWhile(int, lambda x: x != 0)
Selector = lambda item: (item % 3 == 0) and (item % 2 != 0)
FilteredSequence = filter(Selector, RawSequence)
print(f'Число элементов, удовлетворяющих условию: {len( list( FilteredSequence ) )}')
if __name__ == "__main__":
main()
Объяснение:
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUSSIAN");
const int n = 5; // (1≤N≤1000)
int mass[n] = { 5, 4, 3, 2, 1 };
int k = 0;
cout << "Исходный массив: ";
for (int i = 0; i < n; ++i)
{
cout << mass[i] << " ";
}
cout << endl;
for (int i = 1; i < n; i++) {
for (int j = 0; j < n-1; j++) {
if (mass[j] > mass[j + 1]) {
int b = mass[j]; // создали дополнительную переменную
mass[j] = mass[j + 1]; // меняем местами
mass[j + 1] = b; // значения элементов
k++;
}
}
}
cout << "Отсортированный массив: ";
for (int i = 0; i < n; ++i)
{
cout << mass[i] << " ";
}
cout << endl << "Kоличество обменов: " << k << endl;
system("pause");
return 0;
}