Распечатать таблицу умножения от 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»?
- Как создать несколько запущенных потоков?
- avrdude ser_open() can't set com-state
- Как подключиться к Arduino с помощью WiFi?
- Mac OSX Yosemite не отображает последовательные порты для Uno R3
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
зачем ты пробуешь это на ардуино? научиться программированию на компьютере. легче, @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