Thursday, March 28, 2013

3# Grafika osnova crtanje kruga


#include <graphics.h>
main ( )
{
   initwindow (800,600);  /*otvara prozor veli?ine 800 x 600 piksela*/
  circle (400,300,200);  /*crta krug ?ije su koordinate centra (400,300) polupre?nika 200*/
   while (!kbhit( ));  /*zadržava prozor sa crtežom otvorenim*/
   closegraph( );
}

/* Potrebne bibljoteke
Otvoriti File / New Project / Empty Project/

zatim u Project/Project Options/ Parameters / Linker

iskopirajte sledece:
   -lbgi
   -lgdi32
   -lcomdlg32
   -luuid
   -loleaut32
   -lole32



*>

Monday, March 18, 2013

#4 Fajl pisanje i citanje vise poruka u fajl


#include<stdio.h>
#include<conio.h>


void fajl_pisi(FILE *file,char poruka[256]);
void fajl_citaj(FILE *file);
int broj_poruka=0;
FILE *fajl_poruka;
main(){

  // uneti neke poruke koliko zelim poruka i upisati ih u fajl
  // zatim iscitati te poruke iz fajla
  printf("Program za unos vise poruka u fajl i njihov ispis\n ");
  // koliko zelis poruka
   printf("Koliko zelite poruka da unesete \n ");
   printf("broj_poruka=");scanf("%d",&broj_poruka);
   printf("**********************************************************************\n");
   printf("Molim vas unestie vase poruke jednu po jednu i pritisnite ENTER \n");
   // otvaram neki fajl za unos
   fajl_poruka=fopen("poruke.txt","w+");
   //for petlja unos poruka
   for(int i=0;i<broj_poruka;i++){
      char poruka[256];
      printf("poruka %d \n",i+1);
      scanf("%s",&poruka);
      // unos poruka u fajl
      fajl_pisi(fajl_poruka,poruka);              
   }
  // iscitavnaje poruka iz fajl

    fajl_citaj(fajl_poruka);
   
   fclose(fajl_poruka);  
 getch();    
}

void fajl_pisi(FILE *file,char poruka[256]){
   if(file!=NULL){          
     fprintf(file, "\n %s",poruka); // upisivanje podataka u fajl
    }  
}
void fajl_citaj(FILE *file){
     char poruka[256];
  if (file!=NULL){
   rewind(file); // vrati na pocetak fajla pre citnaja
    while(fgets(poruka, 256, file) != NULL)
     {
     /* get a line, up to 80 chars from fr.  done if NULL */
     printf ("%s\n", poruka);
     }
  }
}

Thursday, March 14, 2013

#3 Pisanje niza ocena u paran i neparan fajl


#include<stdio.h>
#include<conio.h>

 const int max=3;
 int ocene[max];

 FILE *fParan,*fNeparan;
 void ocene_unos(int koliko);
 void ocene_provera(int koliko);
 void ocene_ispis(int koliko);

void file_upis(FILE *file,int ocena);
void file_ispis(FILE *file);
   int ocena=0;
main(){
     
   printf("Molim vas unesite %d ocena u niz\n",max);
   ocene_unos(max);
   printf("ocene ispis iz niza\n");
   ocene_ispis(max);
   // otvarnaje fajlova
     fParan=fopen("paran.txt","w+");
     fNeparan=fopen("neparan.txt","w+");
     // provera ocena i pisanje u fajl
   ocene_provera(max);
   // ispis sadrzaja fajlova
   // ispis parnog
   printf("Ispis parnih ocena iz fajla\n");
   file_ispis(fParan);
   printf("Ispis neparnih ocena iz fajla\n");
   file_ispis(fNeparan);
 
    fclose(fParan);
    fclose(fNeparan);
 getch();    
}

// Funkcije za unos
 void ocene_unos(int koliko){
  for (int i=0;i<koliko;i++){
       printf("ocene[%d]=",i+1);
       scanf("%d",&ocene[i]);
      }  
 }
  void ocene_ispis(int koliko){
  for (int i=0;i<koliko;i++){
       printf("ocene[%d]=%d\n",i+1,ocene[i]);
      }  
 }
 // provera d ali je paran ili neparna sa upisom u fajl
  void ocene_provera(int koliko){
    for (int i=0;i<koliko;i++){
       if (ocene[i]%2==0) file_upis(fParan,ocene[i]);
       else file_upis(fNeparan,ocene[i]);
      }    
  }
 // rad sa fajlovima
  void file_upis(FILE *file,int ocena){
       if (file!=NULL){
          fprintf(file,"%d\n",ocena);                
          }  
      }  
   void file_ispis(FILE *file){
       if (file!=NULL){
          rewind(file);
          while(fscanf(file,"%d",&ocena)!=EOF){
          printf("%d\n",ocena);              
          }                
       }
     }


Monday, March 4, 2013

#4 Niz struktura ucenik sortianje pretraga ...


#include<stdio.h>
#include<conio.h>

const int max=1;
const int min=0;

struct s_ucenik{
       char ime[15];
       char prezime[15];
       char datum[15];
       float srpski;
       float matematika;
       };
     
struct s_ucenik ucenici[max+1];// niz ucenika    
//definicije funkcija
void ucenik_unos(int mesto);
void ucenik_ispis(int mesto);
void ucenici_unos();
void ucenici_ispis();
float ucenici_srpski_prosek();
float ucenici_srpski_najveca_ocena();
float ucenici_matematika_prosek();
float ucenici_srpski_najmanja_ocena();  
     
       // unesi ga na redni broj mesta
     
main(){
  // unesi jednog ucenika u niz za test
   ucenici_unos();
   ucenici_ispis();
   // ispis proseka iz srpskog
   printf("prosek srpski=%f \n",ucenici_srpski_prosek());
   printf("najveca ocena srpski=%f \n",ucenici_srpski_najveca_ocena());
   printf("najmanja ocena srpski=%f \n",ucenici_srpski_najmanja_ocena());
 getch();    
}

// definicija funkcija
void ucenik_unos(int mesto){
       // uneti ucenika na odredjeno mesto u nizu
       struct s_ucenik ucenik;
       // unos ucenika pr ovi
       printf ("molim vas unesite sve podatke za ucenika \n");
       printf("ucenik.ime=");scanf("%s",&ucenik.ime);
       printf("ucenik.prezime=");scanf("%s",&ucenik.prezime);
       printf("ucenik.datum=");scanf("%s",&ucenik.datum);
       printf("ucenik.srpski=");scanf("%f",&ucenik.srpski);
       printf("ucenik.matematika=");scanf("%f",&ucenik.matematika);
     
       // unesi ga na redni broj mesta
       if (mesto>=min && mesto<=max){
       ucenici[mesto]=ucenik;
       }
       else {
             printf("mesto:%d u nizu nepostoji, min:%d , max:%d\n",mesto,min,max);
            }
     }
   
     void ucenik_ispis(int mesto){
       // uneti ucenika na odredjeno mesto u nizu
       if (mesto>=min && mesto<=max){
       // unos ucenika pr ovi
       printf ("\n ************************\n",mesto+1);
       printf ("\nUcenik %d\n",mesto+1);
     
       printf("ucenik.ime=%s \n",ucenici[mesto].ime);
       printf("ucenik.ime=%s \n",ucenici[mesto].prezime);
       printf("ucenik.ime=%s \n",ucenici[mesto].datum);
       printf("ucenik.ime=%f \n",ucenici[mesto].srpski);
       printf("ucenik.ime=%f \n",ucenici[mesto].matematika);
       }
       else {
             printf("mesto:%d u nizu nepostoji, min:%d , max:%d\n",mesto,min,max);
            }
     }

void ucenici_unos(){
  for (int i=min;i<=max;i++){
       ucenik_unos(i);
      }
}
void ucenici_ispis(){
   for (int i=min;i<=max;i++){
       ucenik_ispis(i);
      }
}
float ucenici_srpski_prosek(){
      float suma=0;
      for (int i=min;i<=max;i++){
       suma+=ucenici[i].srpski;
       }
       return float(suma/float(max+1.0));
}
float ucenici_matematika_prosek(){
      float suma=0;
      for (int i=min;i<=max;i++){
       suma+=ucenici[i].matematika;
       }
       return float(suma/float(max+1.0));
}
float ucenici_srpski_najveca_ocena(){
       // trenutna promenjiva
      float najveci=ucenici[0].srpski;
     
        for (int i=min;i<=max;i++){
          if (najveci<ucenici[i].srpski) najveci=ucenici[i].srpski;
       }
       return najveci;
      }
float ucenici_srpski_najmanja_ocena(){
       // trenutna promenjiva
      float najmanji=ucenici[0].srpski;
     
        for (int i=min;i<=max;i++){
          if (najmanji>ucenici[i].srpski) najmanji=ucenici[i].srpski;
       }
       return najmanji;
      }

Wednesday, February 20, 2013

#4 Primer nabrojivog tipa u c-u ENUM


#include<stdio.h>
#include<conio.h>
#include<string.h>
// definisanje novog tipa uz pomoc typedef i enum
typedef enum boolType{FALSE,TRUE}; // enum kao novi tip
//koristenje enuma
// ponedeljak 0, utorak 1 ... nedelja 6
enum e_dan{ponedeljak,utorak,sreda,cetvrtak,petak,subota,nedelja};

const char *dan_ispis(e_dan dan,char tmp[12]){
     char ret[12];
     switch (dan){
       case 0:{strcpy(tmp,"ponedeljak");break;}
       case 1:{strcpy(tmp,"utorak");break;}
       case 2:{strcpy(tmp,"sreda");break;}
       case 3:{strcpy(tmp,"cetvrtak");break;}
     
       case 4:{strcpy(tmp,"petak");break;}
       case 5:{strcpy(tmp,"subota");break;}
       case 6:{strcpy(tmp,"nedelja");break;}
       }
            //strcpy(ret,"ponedeljak");
       return tmp;
     }
   
main(){
   // primer koristenja enum u c jeziku
   boolType flag;
 
 
   flag=TRUE;
 
   if (flag){
     printf("Flag je true\n");        
   }
   else {
     printf("Flag je false\n");
   }
   // enum nemoze da se ispisuje kao string samo kao broj
   e_dan dan=ponedeljak;
   // c nemoze da vrati iz funkcije string zato sto je on niz karaktera pa mora da mu se
   //prosledi promenjiva koju bi on napunio i vratio nazad
   char tmp[12]="privremena";
   // ispis dana kao pozicije
   printf("danas je dan %d\n",dan);
   // ispis dana uz pomoc specijalne funkcije
   printf("danas je dan %s\n",dan_ispis(dan,tmp));
 
getch();    
}

Monday, February 18, 2013

#4 Unija kako se koristi i sta se nesme


#include<stdio.h>
#include<conio.h>
#include<string.h>

// unija kako se koristi i zasto nemoze da cuva sve podatke
union u_data{
      int i;
      float f;
      char str[20];
      };

   


 main(){
  union u_data udata;
  printf("Unos pojedinacno pa ispis pojedniacno u redosledu MOZE\n");
  udata.i=200;
  printf("udata.i=%d\n",udata.i);
  udata.f=200.001;
  printf("udata.f=%f\n",udata.f);
  strcpy(udata.str,"hello my friend");
  printf("udata.str=%s\n",udata.str);

  // ovo nemoze biti kao kod struktura
  printf("\n\n\n Unos svih pa ispis svih NEMOZE\n");
  udata.i=200;
  udata.f=200.001;
  strcpy(udata.str,"hello my friend");

  printf("udata.i=%d\n",udata.i);
  printf("udata.f=%f\n",udata.f);
  printf("udata.str=%s\n",udata.str);
     
  getch();    
 }

#4 Unija i Struktura kolicina zauzete memorije poredjenje


#include<stdio.h>
#include<conio.h>

// unija
union u_data{
      int i;
      float f;
      char str[20];
      };
// struktura
struct s_data{
      int i;
      float f;
      char str[20];
      };
   


 main(){
  union u_data udata;
  struct s_data sdata;

  // kontrolni tipovi podataka
  int i=0;
  float f=0.00;
  char str[20]="1234567890123456789";

  printf("int i=%d\n",sizeof(i));
  printf("float f=%d\n",sizeof(f));
  printf("char str[20]=%d\n",sizeof(str));
 
  // provera koliko je memorije zauzeto sa unijom i strukturom
  printf("Zauzeto memorije sa unijom u_data udata=%d\n",sizeof(udata));
  printf("Zauzeto memorije sa strukturom s_data sdata=%d\n",sizeof(sdata));
     
  getch();    
 }