In: Computer Science
SWITCH CASE, WHILE, DO WHILE STRUCTURES, using ARDUINO. Urgent Please for Arduino! Implement the following programs, attach a flow chart, photos of its operation and use your own values. 1. Read a number that represents the month and say what months it is. 2. Using the conditional "while" calculate the factorial of a number 3. Using the “do-while” conditional, make a program that prints all numbers from 1 up to a maximum number entered by the user.
1. Read a number that represents the month and say what months it is.
void setup() {
  Serial.begin(9600);
  Serial.println("Enter a number to display Month.");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int result;
void loop() {
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();       // get the character
    
    if ((rx_byte >= '0') && (rx_byte <= '9')) {
      rx_str += rx_byte;
    }
    else if (rx_byte == '\n') {
      // end of string
      if (not_number) {
        Serial.println("Not a number");
      }
      else {
      result=rx_str.toInt();
      Serial.print(" The Month is : ");
        switch (result) {
   case 1: Serial.print("January"); break;
   case 2: Serial.println("February"); break;
   case 3: Serial.println("March"); break;
   case 4: Serial.println("April"); break;
   case 5: Serial.println("May"); break;
   case 6: Serial.println("June"); break;
   case 7: Serial.println("July"); break;
   case 8: Serial.println("August"); break;
   case 9: Serial.println("September"); break;
   case 10: Serial.println("October"); break;
   case 11: Serial.println("November"); break;
   case 12: Serial.println("December"); break;
   default: Message("Invalid state!");
}
       
        
    
        Serial.println("");
        Serial.println("Enter a number to display Month.");
      }
      not_number = false;         // reset flag
      rx_str = "";                // clear the string for reuse
    }
    else {
      // non-number character received
      not_number = true;    // flag a non-number
    }
  } // end: if (Serial.available() > 0)
}

2. Using the conditional "while" calculate the factorial of a number
void setup() {
  Serial.begin(9600);
  Serial.println("Enter a number to display Factorial");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int number;
int fact=1;
void loop() {
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();       // get the character
    
    if ((rx_byte >= '0') && (rx_byte <= '9')) {
      rx_str += rx_byte;
    }
    else if (rx_byte == '\n') {
      // end of string
      if (not_number) {
        Serial.println("Not a number");
      }
      else {
Serial.println("The Factorial is :");
      number=rx_str.toInt();
while(number>0)
{
fact=fact*number;
number=number-1;
}
Serial.println(fact);     
}
       
        
    
        Serial.println("");
        Serial.println("Enter a number to display Factorial");
      }
      not_number = false;         // reset flag
      rx_str = "";                // clear the string for reuse
    }
    else {
      // non-number character received
      not_number = true;    // flag a non-number
    }
  } // end: if (Serial.available() > 0)
}

3. Using the “do-while” conditional, make a program that prints all numbers from 1 up to a maximum number entered by the user.
void setup() {
  Serial.begin(9600);
  Serial.println("Enter a number to display Increment");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int number;
int increment=1;
void loop() {
  if (Serial.available() > 0) {    // is a character available?
    rx_byte = Serial.read();       // get the character
    
    if ((rx_byte >= '0') && (rx_byte <= '9')) {
      rx_str += rx_byte;
    }
    else if (rx_byte == '\n') {
      // end of string
      if (not_number) {
        Serial.println("Not a number");
      }
      else {
      number=rx_str.toInt();
do
{
Serial.println(increment);  
increment=increment+1;  
}while(increment<=number);
   
}
       
        
    
        Serial.println("");
        Serial.println("Enter a number to display Increment");
      }
      not_number = false;         // reset flag
      rx_str = "";                // clear the string for reuse
    }
    else {
      // non-number character received
      not_number = true;    // flag a non-number
    }
  } // end: if (Serial.available() > 0)
}