snaptrap013 icon

tijanie

snaptrap013 | PRO | 03/20/20 04:58:42 PM UTC | 0 ⭐ | 313 👁️ | Never ⏰ | []
C |

2.92 KB

|

None

|

0 👍

/

0 👎

//CSC099 Individual Assignment
//Name : MUHAMMAD IRFAN TIJANIE BIN MOHAMMAD TASNIM
//STUDENT ID : 2019273078
//GROUP : PI009E34
 
#include <stdio.h>
void realgas(float,int);
void display(int,float);
#define a 3.592         //co2 van der walls constant
#define b 0.0427
#define r 0.08206       //gas constant
 
int main()              //main fn
{
    float mole;
    int temp;
    char choice;
    do  {
        do{
            printf("Mole: ");
            scanf("%f", &mole);
            if(mole<=0)                         //reenter if mole<=0
            printf("Invalid Input . Please enter Positive value\n\n");  
            }
            while(mole<=0);
        do{
            printf("Temperature (Kelvin): ");
            scanf("%d", &temp);
            if(temp<=0)                         //reenter if temperature<=0
            printf("Invalid Input . Please enter Positive value\n\n");
            }
            while(temp<=0);
        realgas(mole, temp);
        do{
            printf("\n\n\nDo you want to continue (Y,y-Yes, N,n-NO): ");
            scanf(" %c", &choice);
            if(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n')  //reenter if invalid input
            printf("Invalid Input. Please enter Y,y or N,n\n");
            }
        while(choice!='Y'&&choice!='y'&&choice!='N'&&choice!='n');
        
        printf("-------------------------------------------------------------\n");
            }
    while(choice=='Y'||choice=='y');
    printf("From this calculation, you know that when volume (ml) in increasing,\npressure of gas reduce\n\nThank you");
}
 
void realgas(float mole, int temp)      //calculation fn
{
    int i_vol,f_vol,inc,dec;
    float ps;
    
    do{                                 //repeat if negative
        printf("Initial volume (milliliter): ");
        scanf("%d", &i_vol);
        if(i_vol<=0)        //display error 
        printf("Invalid Input . Please enter Positive value\n\n");
        }
    while(i_vol<=0);
    
    do{                                 //repeat if negative
        printf("Final volume(): ");
        scanf("%d", &f_vol);
        if(f_vol<=0)                        //display error
        printf("Invalid Input . Please enter Positive value\n\n");
        }
    while(f_vol<=0);
    
    if(i_vol<f_vol){                    //user enter increment/decrement
        do{
            printf("Increment : ");
            scanf("%d", &inc);  
            if(inc<=0)                  //reenter if increment<=0
            printf("Invalid Input . Please enter Positive value\n\n");
            }
        while(inc<=0);
        }
    else {  
        do{
            printf("Decrement : ");
            scanf("%d", &dec);      
            if(dec<=0)                  //reenter if decrement<=0
            printf("Invalid Input . Please enter Positive value\n\n");
            }
        while(dec<=0);
        }
    
    printf("\n\n%.4f moles of carbon dioxide at %d kelvin\n\n\n", mole, temp);
    printf("Volume (milliliter)\t Pressure(atm)\n");
    
    if(i_vol<f_vol)
    {   do{
            ps=(mole*r*temp)/(i_vol*0.001-(mole*b))-((a*mole*mole)/(i_vol*0.001*i_vol*0.001));
            display(i_vol,ps);      //fn call
            i_vol+=inc;
        }   
        while(i_vol<=f_vol);
    }
    
    else
    {
        do{
            ps=(mole*r*temp)/(i_vol*0.001-(mole*b))-((a*mole*mole)/(i_vol*0.001*i_vol*0.001));
            display(i_vol,ps);      //fn call
            i_vol-=dec;
        }
        while(f_vol<=i_vol);
    }
    
}
 
void display(int vol,float ps)          //display fn
{
    printf("%d\t\t\t %.4f\n", vol, ps);     //show in tab
}

Comments