• facebook
  • whatsapp
  • telegram

మ‌రికొన్ని ' కండిష‌న‌ల్ ' ప్రోగ్రామ్‌లు !

'రి'లేష‌నల్‌, కండిషనల్ ఆపరేటర్లను ఉప‌యోగించి ప్రోగ్రాం రాయండం ఇంత‌కుముందు నేర్చుకున్నాం . ఈ పాఠంలో మ‌రిన్ని ఉదాహ‌ర‌ణ‌లను అభ్యాసం చేద్దాం. అంతే కాకుండా మ‌రికొన్ని ఆప‌రేట‌ర్లను ఉప‌యోగించి ప్రోగ్రామ్‌లు రాయండం తెలుసుకుందాం.

ఉదాహరణ: 1
ఇన్‌పుట్‌గా ఒక పాయింట్ ఇచ్చి ఆ పాయింట్ వృత్తం పై ఉందో లేదో ప్రింట్ చేసేలా ప్రోగ్రాం రాయండి?


ప్రోగ్రాం రాసే విధానం
* ముందుగా ప్రోగ్రాంలో పాయింట్ x, y co-ordinates తో పాటు circle పెరామీట‌ర్స్‌, వ్యాసార్థం ఇవ్వాలి.
* పాయింట్ వృత్తం పై ఉందో లేదో తెలియాలంటే అది వృత్త కేంద్రం నుంచి ఎంత దూరంలో ఉందో క‌నుక్కోవాలి
* ఆ దూరం వ్యాసార్థనికి స‌మానం అయితే పాయింట్ వృత్తంపై ఉన్నట్లుగా ప్రింట్ చేసే ప్రోగ్రాం రాయాలి

ప్రోగ్రాం:
#include
int main()
{
      float a,b,r,x,y;
      printf("Enter x and y co-ordinates of the point\n");
      scanf("%f%f",&x,&y);
      printf("Enter center co-ordinates of circle and its radius\n");
      scanf("%f%f%f",&a,&b,&r);
      ( ((x-a)*(x-a)+(y-b)*(y-b))==r*r)? printf("On the Circle\n"): printf("Not on the given circle\n");
      return (0);
}

Output:

ఉదాహరణ: 2
మూడు సంఖ్యల‌ను ఇన్ పుట్‌గా ఇచ్చి ఆ మూడింటిలో పెద్ద సంఖ్యను గుర్తించి ప్రింట్ చేసే ప్రోగ్రాం రాయండి?

ప్రోగ్రాం రాసే విధానం
* ముందుగా మూడు సంఖ్యల‌ను ఇన్ పుట్ గా తీసుకునేలా ప్రోగ్రాం రాయాలి
* త‌రువాత మూడో సంఖ్యను ఇత‌ర సంఖ్యల‌తో పోలుస్తు conditional if ప్రోగ్రాం రాయాలి

ప్రోగ్రాం :
#include
int main()
{
      int a,b,c,max;
      printf("Enter three integers\n");
      scanf("%d%d%d",&a,&b,&c);
      max=(a>b)?a:b;
      max=(c>max)?c:max;
      printf("Maximum out of three=%d\n", max);
      return 0;
}

Output:

{ పై ప్రోగ్రాంను మ‌రో విధంగా కూడా రాయ‌వచ్చు.
* మొదటి సంఖ్యను ముందుగా అన్నింటికన్నా పెద్దదిగా తీసుకోవాలి.
* రెండో సంఖ్యను రీడ్ చేసిన తర్వాత, అది మొద‌టి సంఖ్య కంటే పెద్దది అయితే రెండో సంఖ్యనే పెద్ద సంఖ్యగా కంప్యూట‌ర్‌ గుర్తిస్తుంది
* ఇలానే మూడో సంఖ్య రెండో సంఖ్యను రీడ్ చేస్తుంది. ఇది పెద్ద సంఖ్య అయితే దీన్నే పెద్ద సంఖ్యగా కంప్యూట‌ర్‌ గుర్తిస్తుంది. పెద్దది కాక‌పోతే రెండో సంఖ్య నే పెద్ద సంఖ్యగా ఉండిపోతుంది.
* ఇలా ఎన్ని రీడ్ చేసిన వాటికన్నా పెద్దదానికన్నా పెద్దది అయితే, దాన్నే అన్నింటిక‌న్నా పెద్దది అని తీసుకుంటుంది. ఇలా ఎన్ని సంఖ్యలు ఉన్నఅందులో పెద్ద సంఖ్యను క‌నుక్కోవ‌చ్చు

ఈ ప‌ద్ధతి గురించి త‌రువాతి పాఠంలో నేర్చుకుందాం. }

పై ప్రోగ్రాంలో ఇన్‌పుట్‌ని మ‌రో విధంగా ప్రింట్ చేసేవిధంగా ప్రోగ్రాం
#include
int main()
{
      int a,max;
      printf("Enter first number\n");
      scanf("%d",&max);
      printf("Enter second number\n");
      scanf("%d",&a);
      max=(a>max)?a:max;
      printf("Enter Third number\n");
      scanf("%d",&a);
      max=(a>max)?a:max;
      printf("Maximum out of three=%d\n", max);
      return 0;
}

Output

ఉదాహరణ: 3

అస‌లు (principal amount) (p), శాతం ( r ), స‌మ‌యం (t) సంవత్సరాల్లో ఇన్ పుట్‌గా తీసుకొని వడ్డీ లెక్కించి ప్రింట్ చేయాలి. స‌మ‌యం ఒక సంవ‌త్సరం కన్నా తక్కువ అయితే సాధారణ వడ్డీ (simple interest) లేకపొతే చక్ర వడ్డీ (compound interest) ప్రకారం వడ్డీ లెక్కించాలి ?

ప్రోగ్రాం రాసే విధానం
* సాధారణ, చక్రవ‌డ్డీల సూత్రాల‌ను ఉప‌యోగించాలి
* స‌మ‌యంలో తేడా వ‌స్తే లెక్కించే విధంగా conditional if ప్రోగ్రాం రాయాలి

సూత్రం:


ప్రోగ్రాం:
#include
#include
int main()
{
      float p,r,t,interest;
      printf("Enter principal amount, rate and time\n");
      scanf("%f%f%f",&p,&r,&t);
      interest=(t<1)? (p*r*t/100.0): ( p*pow(1+r/100.0,t)-p);
      printf("Interest=%f\n", interest);
      return 0;
}

Output:

ఉదాహరణ: 4
ఒక వ్యక్తి సంవత్సర జీతం ఇన్‌పుట్ గా తీసుకొని, అతడు క‌ట్టాల్సిన ఆదాయ‌పు ప‌న్ను ఎంతో లెక్కించి ప్రింట్ చేసే ప్రోగ్రాం రాయండి

ప్రోగ్రాం రాసే విధానం
* ముందు టాక్స్ 0 అనుకుందాం . తర్వాత జీతం నుంచి రూ.1,00,000 తీసివేసి మిగిలిన దానికి 10% చొప్పున కడతాం.
* జీతం 1,50,000 కన్నా ఎక్కువ వుంటే, ఎక్కువవున్న దానికి 10% కట్టి ఇంత‌కు ముందు దానికి కలుపుతాము.
* జీతం 2,50,000 కన్నా ఎక్కువ ఉంటే, ఎక్కువవున్న దానికి 10% కట్టి ఇంత‌కు ముందు దానికి కలుపుతాం.

ప్రోగ్రాం
#include
int main()
{
      float sal,tax=0;
      printf("Enter total yearly salary\n");
      scanf("%f",&sal);
      tax=(sal>=100000)?(sal-100000)*0.1:tax;
      tax=(sal>=150000)?tax+(sal-150000)*0.1:tax;
      tax=(sal>=250000)?tax+(sal-250000)*0.1:tax;
      printf("Income Tax Payable=%f\n",tax);
      return 0;
}

Output

మ‌రో ప‌ద్ధతి

#include
int main()
{
      float sal,tax=0;
      printf("Enter total yearly salary\n");
      scanf("%f",&sal);

      tax=0.1*( (sal>=100000)*(sal-100000)+
      (sal>=150000)*(sal-150000) +
      (sal>=250000)*(sal-250000) );
      printf("Income Tax Payable=%f\n",tax);
      return 0;
}

* ప్రోగ్రాం రాసేట‌ప్పుడు రెండు కండిషన్లను క‌ల‌పాల్సి ఉంటుంది.
* అప్పుడు, *, + లు ఉప‌యోగించ‌వ‌చ్చు . ఉదాహరణకు, ఈ కింద ఇచ్చిన
* (expr1)*(expr2) గా కండిష‌న్లను క‌లిపితే రెండూ (expr1, expr2) స‌త్యం (True) అయినప్పుడు మాత్రమే ఫ‌లితం స‌త్యం వ‌స్తుంది .
* అంటే expr1, expr2 లు రిలేషనల్ expressions అయితే, రెండు స‌త్యం అయితేనే మొత్తం స‌త్యం అవుతుంది.
* (expr1)+(expr2) గా కండిష‌న్లను క‌లిపితే expr1, expr2 లలో ఏ ఒక్కటి స‌త్యం అయినా స‌త్యం అవుతుంది.

ఉదాహరణ: 5
మూడు సంఖ్యలను ఇన్‌పుట్ గా తీసుకొని అవి స‌హ‌జ‌క్రమం ( natural order ) లో ఉన్నాయా లేదో గుర్తించి ప్రింట్ చేయాలి ?

ప్రోగ్రాం రాసే విధానం
* Natural ఆర్డర్ అంటే ఉదాహ‌ర‌ణ 7, 8, 9 ఇస్తే ఆర్డర్ లో ఉన్నట్లు, 7, 9, 10 ఇస్తే ఆర్డర్ లో లేని అంకెలు.
* మొదటి రెండు సంఖ్యల తేడా 1, త‌రువాతి రెండు సంఖ్యల తేడా 1 ఉందో లేదో లెక్కించాలి.
* ఉదాహ‌ర‌ణ‌కు a,b,c లు మూడు సంఖ్యలు అయితే (b-a) 1, (c-b) 1 గా ఉంటే natural ఆర్డర్ అని ప్రింట్ చేసేలా ప్రోగ్రాం రాయాలి.

ప్రోగ్రాం
#include
int main()
{
      int a, b, c;
      printf("Enter three integers\n");
      scanf("%d%d%d", &a,&b, &c);
      (((b-a)==1)*((c-b)==1))?printf("Strict natural order\n"):printf("Not in strict natural order\n");
      return 0;
}

Output

ఉదాహరణ 6
మూడు సంఖ్యల‌ను ఇన్‌పుట్ గా ఇస్తే చివ‌రి రెండు మొద‌టి సంఖ్యకు కార‌ణాంకాల‌యితే అవును (Yes) అని లేక‌పోతే కాదు ( No ) అని ప్రింట్ చేయాలి ?

ప్రోగ్రాం

#include
int main()
{
      int a, b, c;
      printf("Enter three integers\n");
      scanf("%d%d%d", &a,&b, &c);
      ( ( a%b==0) * (a%c==0)) ? printf("Yes\n"):printf("No\n");
      return 0;
}


Output

ఉదాహరణ 7
ఒక త్రిభుజం మూడు భుజాల కొలతలు తీసుకొని, అది స‌మబాహుత్రిభుజం (equilateral triangle) అవునా కాదా అని గుర్తించి ప్రింట్ చేయాలి ?

ప్రోగ్రాం రాసే విధానం
* త్రిభుజం మూడు భుజాలు స‌మానంగా ఉంటే దాన్ని స‌మబాహుత్రిభుజం అంటారు.
* a,b,c మూడు భుజాల‌నుకుంటే a=b=c అయితే దాన్ని స‌మబాహుత్రిభుజం అని ప్రింట్ చేయాలి.
* ఈ ప్రోగ్రాంలో మొద‌టి రెండు భుజాల‌ను పోల్చి చూడాలి. త‌రువాత రెండు విలువ‌లను పోల్చి చూడాలి.

ప్రోగ్రాం
#include
int main()
{
      float a, b, c;
      printf("Enter three sides of a traingle\n");
      scanf("%f%f%f", &a,&b, &c);
      ( ( a==b) * (a==c)) ? printf("Yes\n"):printf("No\n");
      return 0;
}

Output

Implicit Assignment Statements

* Salary =Salary + bonus; అనే దానిని, షార్ట్ హ్యాండ్‌లో Salary += bonus; అని రాయోచ్చు.
ఇలా రాసే వాటినే implicit assignment statements అని అంటారు . ఇవి మ‌న టైపింగ్ స‌మ‌యాన్ని త‌గ్గిస్తాయి. పెద్ద ప్రోగ్రాంలు రాసేట‌ప్పుడు ఈ ప‌ద్ధతి ఎక్కువ‌గా ఉప‌యోగ‌ప‌డుతుంది.

ఉదాహరణ: 8

ఒక త్రిభుజం మూడు భుజాల కొలతలు తీసుకొని ఆ త్రిభుజం లంభ‌కోణ‌త్రిభుజం (Right angled triangle) అవునా కాదా అని గుర్తించి ప్రింట్ చేయాలి ?

ప్రోగ్రాం రాసే విధానం
* ఒక త్రిభుజం భుజాలు a, b, c ల‌యితే ఏ రెండు భుజాల మొత్తం మూడోదాని వ‌ర్గం అయినా అది లంబ‌కోణంత్రిభుజం అవుతుంది.
* ముందు combinationsను చెక్ చేయాలి. a^2+b^2= =c^2, a^2+c^2= =b^2, b^2+c^2= =a^2
* ఇలా చేసేటప్పుడు రెండు రిలేషనల్ expressionల మధ్యలో + ను ఉప‌యోగిస్తాం . పైన చెప్పిన implicit assignment statements ఉప‌యోడించి వ‌ర్గా(square) లను లెక్కిస్తాం.

ప్రోగ్రాం:

#include
int main()
{
      float a, b, c;
      printf("Enter three sides of a traingle\n");
      scanf("%f%f%f", &a,&b, &c);
      a*=a;
      b*=b;
      c*=c;
      ( ((a+b)==c) + ((a+c)==b) + ( (b+c)==a) ) ? printf("Yes\n"):printf("No\n");
      return 0;
}

Output

ఉదాహరణ 9

ఒక సంవ‌త్సరం నెంబ‌ర్‌ని ఇన్‌పుట్‌గా ఇస్తే ఆ సంవ‌త్సరం లీప్‌ సంవ‌త్సరం అవునో కాదో అని లెక్కించి ప్రింట్ చేయాలి

ప్రోగ్రాం రాసే విధానం
* ఒక సంవ‌త్సరం లీప్ సంవత్సరం అవునో కాదో తెలియాలంటే. దాన్ని 400తో భాగించాలి శేషం సున్నా రావాలి అంతే కాకుండా ఆ సంఖ్య 100తో నిశ్శేషంగా భాగించ‌కూడ‌దు
* మొదట రెండు లాజికల్ expressions మధ్యలో + ఉప‌యోగించాలి. అంతే కాకుండా అందులో ఉండే రెండు లాజికల్ expressions మధ్యలో * వాడాలి.

ప్రోగ్రాం

#include
int main()
{
      int y;
      printf("Enter year number\n");
      scanf("%d", &y);
      ( ( y%400==0) + ( (y%4==0) * ( y%100!=0) ) ) ? printf("Yes\n"):printf("No\n");
      return 0;
}

Output

ఉదాహరణ 10

మూడు సంఖ్యల‌ను ఇన్‌పుట్‌గా ఇస్తే అందులో పెద్ద సంఖ్యను లెక్కించి ప్రింట్ చేసే ప్రోగ్రాం రాయండి ?

ప్రోగ్రాం రాసే విధానం
* ముందుగా ఇచ్చిన నెంబ‌ర్‌ల‌లో మొద‌టి సంఖ్యను మిగిలిన సంఖ్యల‌తో పోల్చుతాం మొద‌టి సంఖ్య పెద్దది అయితే అది ప్రింట్ చేస్తాం కాక‌పోతే మిగిలిన వాటిని పోల్చుతాం ఇలా చెక్ చేసే విధంగా ప్రోగ్రాం రాయాలి

ప్రోగ్రాం

#include
int main()
{
      int a,b,c;
      printf("Enter three numbers\n");
      scanf("%d%d%d", &a,&b,&c);
      ( (a>b)*(a>c) ) ? printf("%d\n",a):printf("%d",(b>c?b:c) );
      return 0;
}

Output

పై ప్రోగ్రాంను మరో విధంగా రాసే పద్ధతి

#include
int main()
{
      int a,b,c;
      printf("Enter three numbers\n");
      scanf("%d%d%d", &a,&b,&c);
      ( (a>b) ) ? printf("%d\n",(a>c? a: c) ):printf("%d",(b>c? b: c) );
      return 0;
}

ఉదాహరణ 11
ఒక విద్యార్థి ఐదు స‌బ్జెక్టుల మార్కులు ఇన్‌పుట్‌గా తీసుకొని అత‌డు ఉత్తీర్ణుడ‌య్యాడో లేదో గుర్తించి ప్రింట్ చేయాలి

ప్రోగ్రాం రాసే విధానం
* ఈ ప్రోగ్రాంలో పాస్ మార్కులు రావాలంటే ప్రతి స‌బ్జెక్టులో 35 క‌న్నా ఎక్కువ రావాలి.
* ఈ లాజిక్‌ని * ఉప‌యోగించి రాసే ప‌ద్ధతి.

ప్రోగ్రాం
#include
int main()
{
      int a,b,c,d,e,np,s;
      printf("Enter a student marks in five tests\n");
      scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
      ((a>=35)* (b>=35)*(c>=35)*( d>=35) *(e>=35) )?printf("Passed\n"):printf("Failed\n");
      return 0;
}

Output

 

 

 

NB Venkateswarlu
M.Tech(IIT-Kanpur)
Ph.D (BITS),PDF(UK),
Sr.Prof., CSE, AITAM, Tekkali

Posted Date : 03-02-2021 .