---
# System prepended metadata

title: Lab 15

---

# Lab 15
## Lab 15-1.c
```clike
#include <stdio.h>

int get_problem(void);
void get_rate_drop_factor(double *, double *);
void get_kg_rate_conc(double *, double *, double *);
void get_units_conc(double *, double *);
double fig_drops_min(double, double);
double fig_ml_hr(double);
double by_weight(double, double, double);
double by_units(double, double);

int get_problem(void){
    printf("Enter the number of the problem you to solve.\n\n");
    printf("GIVEN A MEDICAL ORDER IN                  CALAULATE RATE IN\n");
    printf("[1] ml/hr & tubing drop factor            drops/min\n");
    printf("[2] 1 L for n hr                          ml/hr\n");
    printf("[3] mg/kg/hr & concentration in mg/ml     ml/hr\n");
    printf("[4] units/hr & concentration in units/ml  ml/hr\n");
    printf("[5] Quit\n\n");
    int opt;
    printf("problem -> ");
    scanf("%d",&opt);
    return opt;
}
// opt 1
void get_rate_drop_factor(double *speed, double *drops){
    printf("Enter rate in ml/hr -> ");
    scanf("%lf",speed);
    printf("Rnter tubing's drop factor(drops/ml) -> ");
    scanf("%lf",drops);
    double rate=fig_drops_min(*speed,*drops);
    printf("The drop rate per minute is %.0lf\n\n",fig_drops_min(*speed,*drops));

}
// opt 3
void get_kg_rate_conc(double *speed, double *kilo, double *conc){
    printf("Enter rate in mg/kg/hr -> ");
    scanf("%lf",speed);
    printf("Enter patient weight in kg -> ");
    scanf("%lf",kilo);
    printf("Enter concentration in mg/ml -> ");
    scanf("%lf",conc);
    double rate=by_weight(*speed,*kilo,*conc);
    printf("The rate in milliliters per hour is %.0lf\n\n",by_weight(*speed,*kilo,*conc));
}
// opt 4
void get_units_conc(double *speed, double *conc){
    printf("Enter rate in units/hr -> ");
    scanf("%lf",speed);
    printf("Enter concentration in units/ml -> ");
    scanf("%lf",conc);
    printf("The rate in milliliters per hour is %.0lf\n",by_units(*speed,*conc));
}
double fig_drops_min(double speed, double drops){
    return speed*drops/60;  // drops/min
}
double fig_ml_hr(double hr){
    int rate=1000/hr;
    if((int)(rate*10)%10>5) rate+=1;
    return (int)rate; // ml/hr
}
double by_weight(double speed, double kilo, double conc){
    int rate=speed*kilo/conc;
    if((int)(rate*10)%10>5) rate+=1;
    return (int)rate;   // ml/hr
}
double by_units(double speed, double conc){
    int rate=speed/conc;
    if((int)(rate*10)%10>5) rate+=1;
    return (int)rate;  // ml/hr
}

int main(){
    int end_flag=0;
    int opt;
    double speed,drops,kilo,conc;
    while(!end_flag){
        opt=get_problem();
        switch(opt) {
            case 1:
                get_rate_drop_factor(&speed,&drops);
                break;
            case 2:
                double hour;
                printf("Enter number of hour -> ");
                scanf("%lf",&hour);
                printf("The rate in milliliters per hour is %.0lf\n\n",fig_ml_hr(hour));
                break;
            case 3:
                get_kg_rate_conc(&speed,&kilo,&conc);
                break;
            case 4:
                get_units_conc(&speed,&conc);
                break;
            case 5:
                end_flag=1;
        }
    }

    return 0;
}
```