Распечатать таблицу умножения от 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();
}

, 👍1

Обсуждение

зачем ты пробуешь это на ардуино? научиться программированию на компьютере. легче, @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


1 ответ


Лучший ответ:

0
//Определить глобальный массив, нужно ли это? Не имеет значения для моего вывода на последовательном мониторе.
//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