Friday, November 7, 2014

5# Matrice full unos ispis min max dijagonala suma prosek

// Napisati program koji unosi,ispisuje kvadratnu matricu preko funkcija i pokazivaca
#include <stdio.h>
#include <conio.h>
#define mN 3
#define mM 3
int sah_tabla[mN][mM];

 void matrica_unos(int mat[][mM],int n,int m);


  void matrica_ispis(int mat[][mM],int n,int m);
  void matrica_mesto(int mat[][mM],int n, int m,int x,int y);
  //dijagonale
  void matrica_ispis_glavne_dijagonale(int mat[][mM],int n);
  void matrica_ispis_sporedne_dijagonale(int mat[][mM],int n);
  // horizontala vertikala
  void matrica_ispis_horizontalne_sredine(int mat[][mM],int n,int m);
  void matrica_ispis_vertikalne_sredine(int mat[][mM],int n,int m);
  //max min
  int matrica_min_element(int mat[][mM],int n,int m);
  int matrica_max_element(int mat[][mM],int n,int m);
  //sortiranje
  void matrica_sort_up(int mat[][mM],int n,int m);
  void matrica_sort_down(int mat[][mM],int n,int m);

  //statistika
  int matrica_suma(int mat[][mM],int n,int m);
  float  matrica_prosek(int mat[][mM],int n,int m);

 main(){
  printf("Unesi cele brojeve  matrice %dx%d\n",mN,mM);

  matrica_unos(sah_tabla,mN,mM);
  printf("\n Ispis matrice \n");
  matrica_ispis(sah_tabla,mN,mM);

  printf("\n Ispis kordinate 2,2 \n");
  matrica_mesto(sah_tabla,mN,mM,2,2);
   printf("\n glavna diajgonala \n");
  matrica_ispis_glavne_dijagonale(sah_tabla,mN);
   printf("\n sporedna dijagonala \n");
  matrica_ispis_sporedne_dijagonale(sah_tabla,mN);

   printf("\n vertikalna sredina \n");
  matrica_ispis_vertikalne_sredine(sah_tabla,mN,mM);
   printf("\n horizontalna sredina \n");
  matrica_ispis_horizontalne_sredine(sah_tabla,mN,mM);
  printf("\n Minimalni element matrice %d \n",matrica_min_element(sah_tabla,mN,mM));
  printf("\n Maksimalni element matrice %d \n",matrica_max_element(sah_tabla,mN,mM));

  // sortiranje matrice up
   matrica_sort_up(sah_tabla,mN,mM);
   printf("\n Ispis sortirane matrice sort up matrice \n");
  matrica_ispis(sah_tabla,mN,mM);

  // sortiranje matrice down
   matrica_sort_down(sah_tabla,mN,mM);
   printf("\n Ispis sortirane matrice sort down matrice \n");
   matrica_ispis(sah_tabla,mN,mM);
   printf("Suma svih elemenata matrice %d\n",matrica_suma(sah_tabla,mN,mM));
   printf("Prosek svih elemenata matrice %f\n",matrica_prosek(sah_tabla,mN,mM));
 
 getch();  
 }

 void matrica_unos(int mat[][mM],int n,int m){
   for(int i=0; i<n; i++){
      for(int j=0; j<m; j++){
          printf("Niz[%d][%d]=",i,j); scanf("%d", &mat[i][j]);
      }
   }
 }

  void matrica_ispis(int mat[][mM],int n,int m){
   for(int i=0; i<n; i++){
      for(int j=0; j<m; j++){
          printf("mat[%d][%d]=%d\n",i,j,mat[i][j]);
      }
   }
 }

 void matrica_mesto(int mat[][mM],int n, int m,int x,int y){
     if (x>=0 && x<n && y>=0 && y<m){
        printf("[%d][%d]=%d\n",x,y,mat[x][y]);
     }
     else {
           printf ("Izvan domena x=%d ,y=%d",x,y);
          }
   }
 
   void matrica_ispis_glavne_dijagonale(int mat[][mM],int n){
        for(int i=0; i<n; i++){
          printf("mat[%d][%d]=%d\n",i,i,mat[i][i]);
          }
   }
 
   void matrica_ispis_sporedne_dijagonale(int mat[][mM],int n){
    for(int i=0; i<n; i++){
          printf("mat[%d][%d]=%d\n",i,n-1-i,mat[i][n-1-i]);
          }
   }
   void matrica_ispis_horizontalne_sredine(int mat[][mM],int n,int m){
    for(int i=0; i<m; i++){
          printf("mat[%d][%d]=%d\n",(int)(n/2),i,mat[(int)(n/2)][i]);
          }
   }
    void matrica_ispis_vertikalne_sredine(int mat[][mM],int n,int m){
    for(int i=0; i<n; i++){
          printf("mat[%d][%d]=%d\n",i,(int)(m/2),mat[i][(int)(m/2)]);
          }
   }
 
    int matrica_min_element(int mat[][mM],int n,int m){
        int min=mat[0][0];
        for(int i=0; i<n; i++){
         for(int j=0; j<m; j++){
                  if(min>mat[i][j]) min=mat[i][j];
         }
        }
         return min;
    }
 
     int matrica_max_element(int mat[][mM],int n,int m){
        int max=mat[0][0];
        for(int i=0; i<n; i++){
         for(int j=0; j<m; j++){
                  if(max<mat[i][j]) max=mat[i][j];
         }
        }
         return max;
    }
 
    void matrica_sort_up(int mat[][mM],int n,int m){
        //if(min>mat[i][j]) min=mat[i][j];
        for(int i=0; i<n; i++){
         for(int j=0; j<m; j++){
             for(int p=i; p<n; p++){
              for(int q=j; q<m; q++){
                       
                 if ( mat[i][j]>mat[p][q]) {
                      //mat[i][j]=-1;
                      int korpa=mat[i][j];
                     mat[i][j]=mat[p][q];
                      mat[p][q]=korpa;
                      }
              }
              }  
         }
        }
    }
 
    void matrica_sort_down(int mat[][mM],int n,int m){
        //if(min>mat[i][j]) min=mat[i][j];
        for(int i=0; i<n; i++){
         for(int j=0; j<m; j++){
             for(int p=i; p<n; p++){
              for(int q=j; q<m; q++){
                       
                 if ( mat[i][j]<mat[p][q]) {
                      //mat[i][j]=-1;
                      int korpa=mat[i][j];
                     mat[i][j]=mat[p][q];
                      mat[p][q]=korpa;
                      }
              }
              }  
         }
        }
    }
 
     int  matrica_suma(int mat[][mM],int n,int m){
        int suma=0;
        for(int i=0; i<n; i++){
         for(int j=0; j<m; j++){
                 suma+=mat[i][j];
         }
        }
         return suma;
     }
   
   float matrica_prosek(int mat[][mM],int n,int m){
         return ((float)matrica_suma(mat,n,m))/(n*m);
   }

Wednesday, November 5, 2014

#2 Niz ocena ucitavanje sa WHILE

#include <stdio.h>
#include <conio.h>
main () {
 int ocena[5];
 // program za unos i ispis niza uz pomoc WHILE petlje
   printf("Unesite ocene u niz \n");
   int i=0;
   while(i<5){
      printf("ocena[%d]=",i); scanf("%d",&ocena[i]);
      i++;
     }
   printf("ispis niza ocena\n");
 
   int j=0;
   while(j<5){
      printf("ocena[%d]=%d \n",j,ocena[j]);
      j++;
     }

     getch();
}

#2 Niz ocena ucitavanje i ispis na ekran

#include <stdio.h>
#include <conio.h>
main () {
 int ocena[5];
 // program za unos i ispis niza uz pomoc for petlje
   printf("Unesite ocene u niz \n");
     for(int i=0;i<5;i++){
      printf("ocena[%d]=",i); scanf("%d",&ocena[i]);
     }
   printf("ispis niza ocena\n");
     for(int j=0;j<5;j++){
      printf("ocena[%d]=%d \n",j,ocena[j]);
     }

     getch();
}

Tuesday, June 3, 2014

#5 turtle Include kornjaca

#ifndef C_TURTLE_H
#define C_TURTLR_H
#include <graphics.h>
#include "c_shape.h"

class c_turtle:public c_shape{
public:
c_turtle(int _x, int _y, int _r, int _color);
void drawMe(int x, int y);
void eraseMe(int x, int y, int backColor);
};
c_turtle::c_turtle(int _x, int _y, int _r, int _color){

x=_x;
y=_y;
radius=_r;
color=_color;
drawMe(x,y);
}
void c_turtle::drawMe(int x, int y){
setcolor(this->getColor());
     circle(x,y,this->getRadius());  

}
void c_turtle::eraseMe(int x, int y, int backColor){
setcolor(backColor);
    circle(x,y,this->getRadius());
}
#endif

#5 square.h include pravougaonik

#ifndef C_SQUARE_H
#define C_SQUARE_H
#include <graphics.h>
#include "c_shape.h"

class c_square:public c_shape{
public:
c_square(int _x, int _y, int _r, int _color);
void drawMe(int x, int y);
void eraseMe(int x, int y, int backColor);
};
c_square::c_square(int _x, int _y, int _r, int _color){

x=_x;
y=_y;
radius=_r;
color=_color;
drawMe(x,y);
}
void c_square::drawMe(int x, int y){
setcolor(this->getColor());
rectangle(x-this->getRadius(),y-this->getRadius(),x+getRadius(),y+getRadius());
     //circle(x,y,this->getRadius());  

}
void c_square::eraseMe(int x, int y, int backColor){
setcolor(backColor);
rectangle(x-this->getRadius(),y-this->getRadius(),x+getRadius(),y+getRadius());
    //circle(x,y,this->getRadius());
}
#endif

#8 shape.h

#ifndef C_SHAPE_H
#define C_SHAPE_H
#include <graphics.h>
class c_shape{
protected:
int x;
int y;
int color;
int radius;
public:
   //c_shape(int _x, int _y, int _r, int _color);
   c_shape();
~c_shape();
virtual void drawMe(int x, int y)=0;
virtual void eraseMe(int x, int y, int backColor)=0;
void moveMe(int x, int y, int backColor);
                        //get
                        const int & getX() const;
                        const int & getY() const;
                        const int & getColor() const;
                        const int & getRadius()const;
                        // set
                        void setColor(const int & _color);
                        void setRadius(const int & _radius);
};
c_shape::c_shape(){
//constructor;
}
c_shape:: ~c_shape(){

}
/*
c_shape::c_shape(int _x, int _y, int _r, int _color){

x=_x;
y=_y;
radius=_r;
color=_color;

}*/
void c_shape::moveMe(int x, int y, int backColor){
this->eraseMe(this->x,this->y, backColor);
this->drawMe(x,y);
this->x=x;
this->y=y;
}
const int & c_shape::getX() const{
    return x;
}
const int & c_shape::getY() const{
    return y;
}
const int & c_shape::getColor() const{
    return color;
}
const int & c_shape::getRadius() const{
    return radius;
}

void c_shape::setColor(const int& _color){
    color=_color;
}
void c_shape::setRadius(const int& _radius){
    radius=_radius;
}
#endif

#8 game.h Include Igra

#ifndef C_GAME_H
#define C_GAME_H
#include <graphics.h>
#include "c_shape.h"
#include "c_turtle.h"
#include "c_square.h"
class c_game{

private:

public:

c_game();
~ c_game();
void play(int _maxX,int _maxY);
void move (char direction, int step,int _maxX,int _maxY, int backColor, c_shape* shape);
};

c_game::c_game(){
    // constructor
}
c_game::~c_game(){
    //destructor
}
void c_game::play(int _maxX,int _maxY){

     c_shape *shape=new c_square(_maxX/2,_maxY/2,20,GREEN);
     char c=' ';
while(c!='q'){
  if(kbhit( )){
      c=getch();
      this->move((int) c,10,_maxX,_maxY,BLACK,shape);          
  }
}  
}
void c_game::move(char direction, int step,int _maxX,int _maxY, int backColor, c_shape* shape){
  switch(direction){
    case KEY_LEFT:
       if (shape->getX()-shape->getRadius()-step>0) {
        shape->moveMe(shape->getX()-step,shape->getY(),backColor);            
       }
    break;
    case KEY_RIGHT:
       if (shape->getX()+shape->getRadius()+step<maxX) {
        shape->moveMe(shape->getX()+step,shape->getY(),backColor);  
       }
    break;
    case KEY_UP:
       if (shape->getY()-shape->getRadius()-step>0) {
       shape->moveMe(shape->getX(),shape->getY()-step,backColor);
       }
    break;
    case KEY_DOWN:
       if (shape->getY()+shape->getRadius()+step<maxY) {
        shape->moveMe(shape->getX(),shape->getY()+step,backColor);
       }
    break;                                  
 }  

}

#endif