Lab 3: Practice with control structures

Draw flow charts for each of the program fragments below:

1.

BEGIN
  ClrScr;
  writeln ('The momentum is:',10 * 12:5);
  readln
END

2.

IF (MealReply = 'D') OR (MealReply = 'd') THEN
  BEGIN    {  Calculate bill for a  }
    FoodChild := Deluxe * NumChild * 0.60; {deluxe meal}
    FoodAdult := Deluxe * NumAdult;
    TotalFood := FoodAdult + FoodChild;
  END
ELSE
  BEGIN  {  Calculate bill for a  }
    FoodChild := Standard * NumChild * 0.60; {standard}
    FoodAdult := Standard * NumAdult;
    TotalFood := FoodAdult + FoodChild
  END;

3.

FOR Divisors := 1 to Smaller DO
  IF (Num1 MOD Divisors = 0) AND
     (Num2 MOD Divisors = 0) THEN
    GCD := Divisors

4.

CASE RoomType OF
  'P' : Fees := Days * PrivateRate; { Private room 
  'S' : Fees := Days * SemiRate; { Semiprivate room  }
  'W' : Fees := Days * WardRate   { Ward }
ELSE
  BEGIN
    writeln ('Room charges cannot be dermined.');
    writeln ('Invalid input.');
    Fees := 0.0
  END;  {  of ELSE  }
END;

5.

CASE Vehicle OF
  'C' : BEGIN
          IF Hours <= 2 THEN  { 2 hours or less  }
            Fees := 0.0
          ELSE
            IF Hours <= 5 THEN  { Next 3 hours  }
              Fees := (Hours - 2) { CarRate1 }
            ELSE    {  Over 5 hours  }
              Fees := (3 * CarRate1) + (Hours - 5)
                        * CarRate2
         END;  {  of Car  }
  'T' : IF Hours <= 1 THEN  { Truck  }
          Fees := 0.0 {  Up to 1 hour  }
        ELSE
          IF Hours <= 3 THEN  {  Next 2 hours  }
            Fees := (Hours - 1) {  TruckRate1    }
          ELSE
            Fees := (2 * TruckRate1) + (Hours - 3)
                      * TruckRate2;
  'S' : Fees := 0  {  Senior Citizens  }
ELSE
  writeln ('Invalid vehicle type - - try again.')
END;