C programs

Wednesday, November 30, 2005

 

Program za odredjivanje nekog cudnog proseka (za detalje videti komentare u programu)

  1. /*******************************************
  2. *
  3. *  N.P. koji omogucava unos N brojeva i izracunava srednju vrednost
  4. *  pozitivnih brojeva medju njima iskljucujuci sve one koji su minimalni
  5. *  ili maximalni! (bez nizova)
  6. *
  7. ********************************************/
  8.  
  9. #include <stdio.h>
  10.  
  11. main () {
  12.     int n, i, br, brmin=0, brmax=0, brneg=0;
  13.     double a, sum=0, min, max, p;
  14.     char again = 'y';
  15.     /****************************************
  16.     *
  17.     *  n je broj brojeva koji se unose
  18.     *  i je pomocna promenljiva za bor petlju
  19.     *  br je broj onih koji ispunjavaju uslov
  20.     *  brmin je broj minimalnih
  21.     *  brmax je broj maximalnih
  22.     *  brneg je broj negativnih
  23.     *  a je promenljiva za ucitavanje svakog broja
  24.     *  sum je zbir svih pozitivnih brojeva, i posle onih koji ispunjavaju kriterijum
  25.     *  min je najmanji od svih unesenih brojeva
  26.     *  max je najveci od svih unesenih brojeca
  27.     *  p je prosek brojeva koji zadovoljavaju kriterijum
  28.     *
  29.     ****************************************/
  30.  
  31.  
  32.     /***************************************
  33.     *
  34.     *  Pocetna konverzacija
  35.     *
  36.     ***************************************/
  37.     printf("Program za racunanje proseka pozitivnih brojeva bez minimuma i maximuma!\n");
  38.  
  39.  
  40.     while (again=='y')
  41.     {
  42.                 /********************************
  43.                 *
  44.                 *  Dodeljuje promenljivima vrednost nula
  45.                 *  da ne bi zadrzale vrednost iz prethodnog
  46.                 *  ponavljanja!
  47.                 *
  48.                 ********************************/
  49.                 br=0; brmin=0; brmax=0; brneg=0;
  50.                 sum=0;
  51.  
  52.  
  53.                 /**************************************
  54.                 *
  55.                 *  Unos broja brojeva za obradu
  56.                 *
  57.                 **************************************/
  58.                 printf("\nKoliko imate brojeva? ");
  59.                 scanf("%d", &n);
  60.                 while ((n<=0) && (n>=500))
  61.                 {
  62.                     printf("Broj je izvan opsega! Unesite ponovo koliko imate brojeva: ");
  63.                     scanf("%d", &n);
  64.                 }
  65.  
  66.  
  67.                 /*************************************
  68.                 *
  69.                 *  Petlja za unos brojeva i njihovu obradu
  70.                 *  U petlji se trazi minimalni, maximalni,
  71.                 *  broj minimalnih i maximalnih, zbir pozitivnih
  72.                 *  i broj negativnih!
  73.                 *
  74.                 *************************************/
  75.                 for (i=1; i<=n; i++) {
  76.  
  77.                     /*************************
  78.                     *
  79.                     * Unos svakog broja
  80.                     *
  81.                     *************************/
  82.                     printf("\nUnesite %d. broj: ", i);
  83.                     scanf("%lf", &a);
  84.  
  85.                     /***************************************
  86.                     *
  87.                     *  Ako se unosi prvi broj, on je i minimalan i maximalan
  88.                     *
  89.                     ****************************************/
  90.                     if (i==1) {
  91.                         min = a;
  92.                         brmin = 1;
  93.                         max = a;
  94.                         brmax = 1;
  95.                         }
  96.                         /**************************************
  97.                         *
  98.                         *  a ako nije prvi, onda se proverava da li je unesen
  99.                         *  broj  veci od maximuma ili manji od minimuma i na
  100.                         *  osnovu toga odredjuje minimum i maximum!
  101.                         *  Ako je unesen broj jedank minimumu ili maximumu
  102.                         *  broj minimalnih ili maximalnih se povecava za jedan!
  103.                         *
  104.                         **************************************/
  105.                         else
  106.                         {
  107.                             if (a==min) brmin++;
  108.                             if (a==max) brmax++;
  109.                             if (a>max) {
  110.                                 max = a;
  111.                                 brmax = 1;
  112.                                 }
  113.                             if (a<min) {
  114.                                 min = a;
  115.                                 brmin = 1;
  116.                                 }
  117.  
  118.                         }
  119.                     /************************************
  120.                     *
  121.                     *  Ako je unseseni broj pozitivan, dodaje ga sumi
  122.                     *  a ako nije, povecava broj negativnih za jedan
  123.                     *
  124.                     ************************************/
  125.                      if (a>=0) sum += a;
  126.                         else brneg++;
  127.  
  128.                 }
  129.  
  130.  
  131.  
  132.                 /***************************************
  133.                 *
  134.                 *  U zavisnosti od toga da li su minimalni i maximalni
  135.                 *  pozitivni ili negativni, racuna se suma onih koji ispunjavaju
  136.                 *  kriterijum i broj onih koji ispunjavaju kriterijum!
  137.                 *
  138.                 ***************************************/
  139.                 if (min>0) sum -= brmin*min;
  140.                 if (max>0) sum -= brmax*max;
  141.                 if (min<0) br = n - (brneg + brmax);
  142.                     else
  143.                     br = n - (brneg + brmin + brmax);
  144.  
  145.                 /**************************************
  146.                 *
  147.                 *  Moze da se desi da su svi brojevi isti
  148.                 *  pa ce tada broj onih koji ispunjavaju
  149.                 *  kriterijum biti negativan. Zbog toga se
  150.                 *  koristi sledeci uslov!
  151.                 *
  152.                 ***************************************/
  153.                 if (br<0) br = 0;
  154.                  /***************************************
  155.                  *
  156.                  *  Ako je maximalnan manji od nule, broj onih koji
  157.                  *  zadovoljavaju uslov je nula
  158.                  *
  159.                  ****************************************/
  160.                 if (max<0) br = 0;
  161.  
  162.                 /****************************************
  163.                 *
  164.                 *  Proverava da li je broj onih koji ispunjavaju kriterijum
  165.                 *  razlicit od nule (jer deljenje nulom nije dozvoljeno)
  166.                 *  i racuna prosek!
  167.                 *
  168.                 ****************************************/
  169.                 if (br != 0) {
  170.                     p = sum / br;
  171.                     }
  172.  
  173.                 /***************************************
  174.                 *
  175.                 *  Ako postoji trazeni prosek ispisuje ga, u suprotnom
  176.                 *  ispisuje odgovarajucu poruku!
  177.                 *
  178.                 ***************************************/
  179.                 if (br !=0) printf("\n\nProsek trazenih brojeva je %.2lf!\n\n", p);
  180.                     else printf("\n\nNe postoje brojevi koji ispunjavaju uslov!\n\n");
  181.  
  182.  
  183.                 /**************************************
  184.                 *
  185.                 *  Provera da li korisnik zeli da ponovi program
  186.                 *
  187.                 **************************************/
  188.                 printf("\nDa li zelite da ponovite program? (y/n) : ");
  189.                 scanf("%c", &again);
  190.                 scanf("%c", &again);
  191.                 while (again!='y' && again!='n')
  192.                 {
  193.                     printf("\nPOGRESAN UNOS! Da li zelite da ponovite program? (y/n): ");
  194.                     scanf("%c", &again);
  195.                     scanf("%c", &again);
  196.                 }
  197.     }
  198.     /**************************
  199.     *
  200.     *  KRAJ PROGRAMA
  201.     *
  202.     **************************/
  203.     printf("***KRAJ PROGRAMA***\n\n");
  204.  
  205.     return 0;
  206. }
  207.  

 

Program za crtanje brodica od zvezdica na ekranu

  1. /*********************************
  2. *
  3. *  Napisati program u jeziku C za vrtanje brodica
  4. *  na osnovu unetog prirodnog neparnog broja
  5. *
  6. *********************************/
  7.  
  8. #include <stdio.h>
  9.  
  10. main()
  11. {
  12.     int r, z, j, i, n, m;
  13.     char again='y';
  14.     /***************************
  15.     *
  16.     *  r je broj razmaka
  17.     *  z je broj zvezdica
  18.     *  i i j su brojaci za for petlje
  19.     *  n je neparan broj koji koridnik unosi
  20.     *  again je pomocna promenljiva koja
  21.     *                  sluzi za ponavljanje programa
  22.     *                  ako korinsik to zeli
  23.     *
  24.     ***************************/
  25.  
  26.     /***************************
  27.     *
  28.     *  Pocetna konverzacija
  29.     *
  30.     ***************************/
  31.     printf("**Program za crtanje broda od zvezdica!**");
  32.  
  33.     while (again=='y')
  34.     {
  35.  
  36.             /**************************
  37.             *
  38.             *  Unos broja n
  39.             *
  40.             **************************/
  41.             printf("\n\tUnesite neparan broj veci od 3 i manji od 12: ");
  42.             scanf("%d", &n);
  43.             while ((n<=3) || (n>12) || ((n%2)==0))
  44.             {
  45.                 printf("\nPogresan unos! Unesite broj ponovo: ");
  46.                 scanf("%d", &n);
  47.             }
  48.  
  49.  
  50.             /****************************
  51.             *
  52.             *  Ispisivanje prvog dela brodica
  53.             *
  54.             ****************************/
  55.             for (i=1; i<=n; i++)
  56.             {
  57.                 r = n - i;
  58.                 printf("\t");
  59.                 for (j=0; j<r;j++) printf(" ");
  60.                 for (j=0; j<i; j++) printf("*");
  61.                 printf("\n");
  62.  
  63.             }
  64.  
  65.             /****************************
  66.             *
  67.             *  Ispisivanje drugog dela brodica
  68.             *
  69.             ****************************/
  70.             m = (n / 2) + 1;
  71.             for (i=1; i<=m; i++)
  72.             {
  73.                 z = n + i;
  74.                 printf("\t");
  75.                 for (j=0; j<z ; j++)
  76.                 {
  77.                     printf("*");
  78.                 }
  79.                 printf("\n");
  80.             }
  81.  
  82.             /**************************
  83.             *
  84.             *  Ispisivanje treceg dela brodica
  85.             *
  86.             **************************/
  87.             m = n - m;
  88.  
  89.             for (i=1; i<=m; i++)
  90.             {
  91.                 z = n + m - i;
  92.                 printf("\t");
  93.                 for (j=0; j<=z; j++)
  94.                 {
  95.                     printf("*");
  96.                 }
  97.                 printf("\n");
  98.             }
  99.  
  100.             /************************
  101.             *
  102.             *  Ispisivanje cetvrtog dela brodica
  103.             *
  104.             ************************/
  105.             for (i=0; i<n; i++)
  106.             {
  107.                 printf("\t");
  108.                 for (j=0; j<i; j++) printf(" ");
  109.                 for (j=0; j<(n-i); j++) printf("*");
  110.                 printf("\n");
  111.             }
  112.  
  113.             /*********************************
  114.             *
  115.             *  Provera da li korinik zeli da ponovi program
  116.             *
  117.             *********************************/
  118.             printf("\n\n Da li zelite da ponovite program? (y/n) ");
  119.             scanf("%c", &again);
  120.             scanf("%c", &again);
  121.             while (again!='y' && again!='n')
  122.             {
  123.                 printf("\n\tPOGRESAN UNOS! Da li zelite da ponovite program? (y/n) ");
  124.                 scanf("%c", &again);
  125.                 scanf("%c", &again);
  126.             }
  127.     }
  128.     /********************
  129.     *
  130.     *  KRAJ PROGRAMA
  131.     *
  132.     ********************/
  133.     printf("***KRAJ PROGRAMA***\n\n");
  134.     return 0;
  135. }
  136.  

Archives

November 2005   December 2005   January 2006  

This page is powered by Blogger. Isn't yours?