Распечатать таблицу умножения от 1 до 10 с массивом
Я хотел бы Serial.print();
таблицы умножения от 1 до 10. На данный момент это моя работа. Есть ли более простой способ сделать это с помощью массива? Спасибо
// "Мультитаблица"
//Определить глобальный массив, нужно ли это? Не имеет значения для моего вывода на последовательном мониторе.
//int число[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//Определяем переменную
int prod;
void setup() {
// Открытие последовательного соединения на скорости 9600 Бод
Serial.begin(9600);
}
void loop() {
//Распечатываем таблицу умножения для 1
for(int i = 0; i <=9; i=i+1) {
prod = i*1+1;
Serial.print(prod);
Serial.print(", ");
}
Serial.println();
delay(3000);
Serial.println();
//Распечатываем таблицу умножения на 2
for(int i = 0; i <= 9; i=i+1) {
prod = i*2+2;
Serial.print(prod);
Serial.print(", ");
}
Serial.println();
delay(3000);
Serial.println();
//Распечатываем таблицу умножения на 3
for(int i = 0; i <= 9; i=i+1) {
prod = i*3+3;
Serial.print(prod);
Serial.print(", ");
}
Serial.println();
delay(3000);
Serial.println();
}
@AndreasH, 👍1
Обсуждение1 ответ
Лучший ответ:
//Определить глобальный массив, нужно ли это? Не имеет значения для моего вывода на последовательном мониторе.
//int number[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Это не обязательно, вы можете использовать for lop от 1 до 10.
Цикл void будет выглядеть следующим образом (не отмечен, поблизости нет IDE):
void loop()
{
for (int multiplier = 1; multiplier <= 3; multiplier++)
{
for(int i = 0; i <= 9; i++)
{
prod = i * multiplier + multiplier;
// or: prod = (i + 1) * multiplier;
Serial.print(prod);
Serial.print(", ");
}
Serial.println();
Serial.println();
delay(3000);
}
}
Некоторые замечания:
- Чтобы перейти к основному циклу for (с множителем):
- Определите схожие части.
- Проверьте различия внутри каждой похожей части (только значение множителя: 1, 2 или 3)
- Сделайте это циклом for и вместо 1, 2, 3 используйте переменную множителя.
- Вместо этого, если i = i + 1, вы можете использовать i++. Это означает то же самое.
- Для ясности я объединил Serial.println() вместе. Вы также можете использовать Serial.print('\r\n\r\n') или Serial.println('\r\n') для достижения того же самого.
Для справки, терминатором строки, используемым Serial
, является CRLF. Таким образом, пара Serial.println()
эквивалентна Serial.print("\r\n\r\n")
или Serial.println("\r\n")
., @Edgar Bonet
@EdgarBonet Спасибо за замечание, я соответствующим образом обновил ответ., @Michel Keijzers
Что с prod = i * multiplier + 1;
...? Разве вы не хотите просто выполнить цикл от 1 до 10, а не от 0 до 9 и не добавлять 1 (которая в любом случае должна быть «i»...)?, @Majenko
@Маженко Я полагаю, это вопрос к ОП? Никаких функциональных изменений я не делал. Хотя я бы ожидал prod = (i + 1) * множитель, но, возможно, он хочет начать с 0., @Michel Keijzers
Но у вас есть prod = i * multiplier + 1
, тогда как в OP фактически было i * multiplier + multiplier
(i * 1 + 1
, i * 2 + 2
и т. д.), @Majenko
@Маженко: да, я скопировал неправильно; Я обновил ответ, спасибо за упоминание., @Michel Keijzers
@AndreasH Если это поможет / если это правильный ответ, нажмите «+» и нажмите кнопку «Принять ответ»., @Michel Keijzers
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
зачем ты пробуешь это на ардуино? научиться программированию на компьютере. легче, @Juraj
Добро пожаловать в Arduino:SE. Я не уверен, как это связано с Arduino. Возможно, этот вопрос лучше подходит для [Stack Overflow](https://stackoverflow.com/)? Возможно, вам будет полезно просмотреть сайт [тур](https://arduino.stackexchange.com/tour) и [Справочный центр](https://arduino.stackexchange.com/help) и, в частности, [спросить ]., @sempaiscuba
Спасибо за помощь! У меня есть Arduino, подключенный к моему компьютеру, и я хотел бы использовать его как в теории (программировании), так и на практике., @AndreasH
Итак, Arduino запрограммирован на C или C++? У меня есть учебник с набором, который я получил, и код в нем сильно отличается от того, который я получаю, когда ищу помощь., @AndreasH
зачем вам хранить значения?, @jsotola
примечание: в существующем коде измените цикл на счет от 1 до 10 вместо 0 до 9....
for(int i = 1; i <= 10; i=i+1) {
.... . таким образом вам не придется добавлять в следующей строке., @jsotolaХорошо, я думал, что первое значение должно было быть на «месте 0», но, может быть, это не так?, @AndreasH