Wednesday, May 21, 2014

#5 Objektni nasledjivanje profesor klasa nasledjuje osoba klasu

#include <iostream>
using namespace std;
class c_osoba{
private:
string ime;
string prezime;

public:
c_osoba();
string getIme();
string getPrezime();
void setIme(string _ime);
void setPrezime(string _prezime);

};
 c_osoba::c_osoba(){
// neradi nista u ovom slucaju
}
string c_osoba::getIme(){
return this->ime;
}
string c_osoba::getPrezime(){
return this->prezime;
}
void c_osoba::setIme(string _ime){
this->ime=_ime;
}
void c_osoba::setPrezime(string _prezime){
this->prezime=_prezime;
}
// nasledjivanje
// profesor je prosirena osoba
//tj klasa profesor nasledjuje atribute i metode osobe
class c_profesor:public c_osoba{
private:
string predaje;
public:
c_profesor();
void setPredaje(string _predaje);
string getPredaje();

};
c_profesor::c_profesor(){
//nema nist u konstruktoru
// poziva konstruktor od svoga roditelja
c_osoba();
}
string c_profesor::getPredaje(){
return this->predaje;
}
void c_profesor::setPredaje(string _predaje){
this->predaje=_predaje;
}
int main (){

// primer osobe
  c_osoba *osoba=new c_osoba();

 
  //stavlajm u objekat ime i prezime
  osoba->setIme("petar");
  osoba->setPrezime("petrovic");
  //ispis iz objekta osoba na ekran
  cout << "*** Ispis osobe ***"<<endl;
  cout <<"osoba.ime="<<osoba->getIme()<<endl;
  cout << "osoba.prezime="<<osoba->getPrezime()<<endl<<endl;
 
   // primer profesora
   c_profesor *profesor=new c_profesor();
 
 
   // stavljam u objeat pprofesor ime,prezime i predaje (ime,prezime nasledjeno)
   profesor->setIme("profa");
   profesor->setPrezime("profic");
   profesor->setPredaje("matematika");
 
  //ispis iz objekta profesor na ekran (ispisi imena i prezimena nasledjeni)
  cout<<"*** Ispis profesora ***"<<endl;
  cout<<"profesor.ime="<<profesor->getIme()<<endl;
  cout<<"profesor.prezime="<<profesor->getPrezime()<<endl;
  cout<<"profesor.predaje="<<profesor->getPredaje()<<endl;
 
  delete osoba;
  delete profesor;
  //ako je potrebno da ceka ako nije komentarisi //cin.ignore();
  cin.ignore();
  return 1;
 
}

Wednesday, March 5, 2014

#4 Rastojanje izmedju 2 tacke u 3d prostoru - strukture

#include <conio.h>
#include <stdio.h>
#include <math.h>
   // made by Dejan Bogdanovic :)
    //struktura
struct s_point{
int x;
int y;
int z;
};

struct s_point point_A;
struct s_point point_B;
//deklarisanje funkcija
struct s_point s_point_unos();
void s_point_ispis(struct s_point point);
float rastojanje_tacaka(struct s_point point1,struct s_point point2);
float rastojanje_pocetak(struct s_point point);

int main(){
     
    float rastojanje;
    float rast_pocetak_A;
    float rast_pocetak_B;
     
printf("Molimo vas da unesete koordinate tacke A.\n");
point_A = s_point_unos();
printf("Molimo vas da unesete koordinate tacke B.\n");
point_B = s_point_unos();

rastojanje = rastojanje_tacaka(point_A, point_B);
rast_pocetak_A = rastojanje_pocetak(point_A);
rast_pocetak_B = rastojanje_pocetak(point_B);

//ispis rastojanja
printf("Rastojanje izmedju tacaka je: %1.2f.\n", rastojanje);
printf("Rastojanje tacke A od koordinatnog pocetka je: %1.2f.\n", rast_pocetak_A);
printf("Rastojanje tacke B od koordinatnog pocetka je: %1.2f.\n", rast_pocetak_B);

getch();
return 1;
}
//funkcija za racunanje rastojanja izmedju tacaka
float rastojanje_tacaka(struct s_point point1,struct s_point point2){
float rastojanje;
int xd;
int yd;
int zd;

xd = point1.x - point2.x;
yd = point1.y - point2.y;
zd = point1.z - point2.z;

rastojanje = sqrt(xd*xd + yd*yd + zd*zd);

return rastojanje;
}
//funkcija za racunanje rastojanja tacke od koordinatnog pocetka
float rastojanje_pocetak(struct s_point point){
float rastojanje;

rastojanje = sqrt(point.x*point.x + point.y*point.y + point.z*point.z);

return rastojanje;
}
//funkcija za ispis
void s_point_ispis(struct s_point point){
printf("point.x = %d", point.x);
printf("point.y = %d", point.y);
printf("point.z = %d", point.z);
}
//funkcija za unos
struct s_point s_point_unos(){
struct s_point point;
printf("point.x = ");scanf("%d", &point.x);
printf("point.y = ");scanf("%d", &point.y);
printf("point.z = ");scanf("%d", &point.z);

return point;
}

Thursday, February 13, 2014

#5 Slozena struktura ucenik sa nizom od 3 predmeta kao pod strukture

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

// struktura datum i funkcije upisa i ispisa
struct s_datum{
int dan;
int mesec;
int godina;
};
struct s_datum s_datum_upis(){
   struct s_datum datum;
   printf("    datum.dan=");scanf("%d",&datum.dan);
   printf("    datum.mesec=");scanf("%d",&datum.mesec);
   printf("    datum.godina=");scanf("%d",&datum.godina);
   return datum;
}

void s_datum_ispis(struct s_datum datum){
   printf("    datum.dan=%d\n",datum.dan);
   printf("    datum.mesec=%d\n",datum.mesec);
   printf("    datum.godina=%d\n",datum.godina);
}
struct s_predmet{
char ime[20];
int ocena;
};


struct s_predmet s_predmet_upis(){
   struct s_predmet predmet;
   printf("    predmet.ime=");scanf("%s",&predmet.ime);
   printf("    predmet.ocena=");scanf("%d",&predmet.ocena);
   return predmet;
}

void s_predmet_ispis(struct s_predmet predmet){
  printf("    predmet.ime=%s\n",predmet.ime);
  printf("    predmet.ocena=%d\n",predmet.ocena);
}

// struktura ucenik i funkcije upisa i ispisa
struct s_ucenik{
char prezime[20];
char ime[20];
struct s_datum datum;
struct s_predmet predmet[3];

};

struct s_ucenik s_ucenik_upis(){
struct s_ucenik ucenik;
printf("ucenik.prezime:");scanf("%s",&ucenik.prezime);
printf("ucenik.ime:");scanf("%s",&ucenik.ime);
printf("\n");
ucenik.datum=s_datum_upis();
for (int i=0;i<3;i++){
ucenik.predmet[i]=s_predmet_upis();
printf("\n");
}
return ucenik;
}
void s_ucenik_ispis(struct s_ucenik ucenik){
printf("ucenik.prezime:%s\n",ucenik.prezime);
  printf("ucenik.ime:%s\n",ucenik.ime);
  printf("\n");
s_datum_ispis(ucenik.datum);
printf("\n");
for (int i=0;i<3;i++){
s_predmet_ispis(ucenik.predmet[i]);
printf("\n");
}
}
main (){
 struct s_ucenik ucenik;

 printf("Unesite podatke za ucenika \n");
 ucenik=s_ucenik_upis();

 printf("Ispis podataka od ucenika \n");
 s_ucenik_ispis(ucenik);




 getch();
}

#4 Struktura uceni slozena sa pripadajucim funkcijama upisa i ispisa za svaku pod strukturu

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

// struktura datum i funkcije upisa i ispisa
struct s_datum{
int dan;
int mesec;
int godina;
};
struct s_datum s_datum_upis(){
   struct s_datum datum;
   printf("datum.dan=");scanf("%d",&datum.dan);
   printf("datum.mesec=");scanf("%d",&datum.mesec);
   printf("datum.godina=");scanf("%d",&datum.godina);
   return datum;
}

void s_datum_ispis(struct s_datum datum){
   printf("datum.dan=%d\n",datum.dan);
   printf("datum.mesec=%d\n",datum.mesec);
   printf("datum.godina=%d\n",datum.godina);
}

// struktura ucenik i funkcije upisa i ispisa
struct s_ucenik{
char prezime[20];
char ime[20];
struct s_datum datum;
};

struct s_ucenik s_ucenik_upis(){
struct s_ucenik ucenik;
printf("ucenik.prezime:");scanf("%s",&ucenik.prezime);
printf("ucenik.ime:");scanf("%s",&ucenik.ime);
ucenik.datum=s_datum_upis();
return ucenik;
}
void s_ucenik_ispis(struct s_ucenik ucenik){
printf("ucenik.prezime:%s\n",ucenik.prezime);
  printf("ucenik.ime:%s\n",ucenik.ime);
s_datum_ispis(ucenik.datum);
}
main (){
 struct s_ucenik ucenik;

 printf("Unesite podatke za ucenika \n");
 ucenik=s_ucenik_upis();

 printf("Ispis podataka od ucenika \n");
 s_ucenik_ispis(ucenik);




 getch();
}

Thursday, February 6, 2014

#5 Brojac reci, navodnika, zareza... u recenici

#include<stdio.h>
#include<conio.h>
#include<string.h>
char recenica[100];
 char rec[100];
 int br_rec=0;

 int br_slova=0;
 int br_space=0;

 int br_reci=0;

 int br_tacka=0;
 int br_zarez=0;
 int br_usklicnik=0;
 int br_upitnik=0;
 int br_tackaZarez=0;
 int br_dvotacki=0;
 int br_navodnika=0;
 int br_apostrofa=0;

main (){

 printf("program za brojanje znakova u recenici");
 printf("Molim vas unesite neku recenicu i pritisnite taster enter\n");

 gets(recenica);

  char znakPrethodni='#';
 for (int i=0;i<strlen(recenica);i++){
  char znak=recenica[i];
 
  if (znak!=' '){
   printf("%c",znak);
  znakPrethodni=znak;
  }
  else{
  if (znakPrethodni!=' ') printf("\n");
  znakPrethodni=znak;
  }
  // proverava velika slova od 65 do 90 i mala od 97 do 122
  if((int(znak)>=65 && int(znak)<=90) || (int(znak)>=97 && int(znak)<=122)) {
  br_slova++;
br_rec++;
  }
  else {
  if(br_rec>=2) {
  br_reci++;
  br_rec=0;
  }
  else {
  br_rec=0;
  }
  }
 
  if(znak==' ') br_space++;
  //if(znak=='%') br_reci++;
  if(znak=='.') br_tacka++;
  if(znak==',') br_zarez++;
  if(znak=='!') br_usklicnik++;
  if(znak=='?') br_upitnik++;
  if(znak==';') br_tackaZarez++;
  if(znak==':') br_dvotacki;
  if(znak=='"') br_navodnika++;
  if(znak=='\'') br_apostrofa++;
 
 }
 //if (br_rec>=2) br_reci++;// kada zavrsi citanje cele recenice proverava da li je zaostala rec
 printf("\n");
 printf("broj reci: %d\n",br_reci);
 printf("broj slova: %d\n",br_slova);
 printf("broj praznih mesta: %d\n",br_space);
 printf("broj . %d\n",br_tacka);
 printf("broj , %d\n",br_zarez);
 printf("broj ! %d\n",br_usklicnik);
 printf("broj ? %d\n",br_upitnik);
 printf("broj ; %d\n",br_tackaZarez);
 printf("broj : %d\n",br_dvotacki);
 printf("broj \" %d\n",br_navodnika);
 printf("broj \' %d",br_apostrofa);


 getch();
}

Tuesday, December 10, 2013

Pregled zadataka po težini

Težina zadataka po brojevima # ispred naslova


#1 Osnovi upoznavajući zadaci

U ovu grupu spadaju osnovni liniski i jednostavni razgranati zadaci, učitavanje SCANF, PRINTF dva ili više brojeva osnovne operacije ispis brojeva na standardni izlaz, takođe tu spadaju i zadaci sa IF ELSE ali osnovni ne ugnježdeni.

#2 Osnovni zadaci sa iskazima

U ovu grupu zadataka spadaju IF ELSE, SWITCH CASE.


#3 Laki zadaci sa

U ovu grupu zadataka spadaju SWITCH CASE, jendostruki nizovi brojeva, bez sortiranja.

#4 Pčela zadaci

U ovu grupu zadataka spadaju zadaci sa nizovima, sortiranje rastući/opadajući nizova, min/max element niza, prosek i suma niza,

#5 Lasica

U ovu grupu zadataka spadaju zadaci sa nizovima, sortiranje rastući/opadajući nizova, min/max element niza, prosek i suma niza,

#6 Lisica

#7 Lav

#8 Lisica

#9 Sova

#10 Mudra sova


#5 Matrice preko pokazivaca

// 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);
 
  void matrica_ispis_glavne_dijagonale(int mat[][mM],int n);
  void matrica_ispis_sporedne_dijagonale(int mat[][mM],int n);
 
  void matrica_ispis_horizontalne_sredine(int mat[][mM],int n,int m);
  void matrica_ispis_vertikalne_sredine(int mat[][mM],int n,int m);
 
  int matrica_min_element(int mat[][mM],int n,int m);
  int matrica_max_element(int mat[][mM],int n,int m);
 
  void matrica_sort_up(int mat[][mM],int n,int m);
  void matrica_sort_down(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);
 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;
                      }
              }
              }    
         }
        }
    }