You are on page 1of 36

U main funkciji učitajte NazivRukometneReprezentacije i broj postignutih golova na

prvenstvu. U funkciji suma pronađite sumu ASCII kodova upisanog naziva, te u


funkciji max pronađite najveću znamenku u broju golova, a u funkciji pretvori
pretvorite dobivenu sumu znakova u sustav s bazom koja je jednaka vrijednosti
funkcije max. Ispišite dobivenu sumu kodova, najveću znamenku i dobiveni
ekvivalent.

// Zadatak1-NazivRukometneReprezentacije.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

int suma(char niz[]){


int zbroj=0;
for(int i=0; i<strlen(niz); i++)
zbroj+=niz[i];
return zbroj;
}
int sumaZnamenaka(char niz[]){
int zbroj=0;
for(int i=0; i<strlen(niz); i++)
zbroj+=niz[i];
return zbroj;
}
int najveca(int a){
int max=0;
do
{
if(a%10>max) max=a%10;
a/=10;
}
while(a>0);
return max;
}
void pretvori(int broj, int baza){
if(broj>baza-1) pretvori(broj/baza, baza);
cout<<broj%baza;
}
void main(){
char Naziv[30];
cout<<"Upisite naziv rukometne reprezentacije: ";
cin.getline(Naziv,30);

int golovi;
cout<<"Upisite golove: ";
cin>>golovi;
int sumaNaziva=suma(Naziv);
int baza=najveca(golovi);

cout<<"Suma znamenaka u nazivu rukometne reprezentacije:


"<<sumaZnamenaka(Naziv)<<endl;
cout<<"Najveca znamenka u broju golova: "<<najveca(golovi)<<endl;
cout<<"Suma znamenaka u sustavu s bazom koja je jednaka najvecoj
znamenci gola: ";
pretvori(sumaNaziva,baza);
cout<<endl;
}
U main funkciji učitajte Datum i u funkciji suma pronađite sumu ASCII kodova
upisanog datuma, te u funkciji pretvori pretvorite dobivenu sumu u sustav s bazom
13. Ispišite dobivenu sumu kodova i dobiveni njen ekvivalent u sustavu s bazom 13.

// Zadatak1-Datum.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

int suma(char Datum[]){


int zbroj=0;
for(int i=0; i<strlen(Datum); i++)
zbroj+=Datum[i];
return zbroj;
}
void sustav13(int broj){
if(broj>12) sustav13(broj/13);
switch(broj%13)
{
case(10): cout<<"A"; break;
case(11): cout<<"B"; break;
case(12): cout<<"C"; break;
default: cout<<broj%13; break;
}
}
void main(){
char Datum[9];
cout<<"Upisite datum: ";
cin.getline(Datum, 9);

cout<<"Zbroj znamenaka datuma: "<<suma(Datum)<<endl;


cout<<"\nZbroj pretvoren u sustav s bazom 13 iznosi: ";
sustav13(suma(Datum));
cout<<endl;
}
U main funkciji učitajte svoje ime i prezime i u funkciji suma pronađite sumu ASCII
kodova upisanog imena i prezimena, te u funkciji pretvori pretvorite dobivenu sumu u
sustav s bazom 18. Ispišite dobivenu sumu kodova i dobiveni njen ekvivalent u
sustavu s bazom 18

// Zadatak1-ImePrezime.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

int suma(char ImePrezime[]){


int zbroj=0;
for(int i=0; i<strlen(ImePrezime); i++)
zbroj+=ImePrezime[i];
return zbroj;
}
void sustav18(int a){
if(a>17) sustav18(a/18);
switch(a%18){
case(10): cout<<"A"; break;
case(11): cout<<"B"; break;
case(12): cout<<"C"; break;
case(13): cout<<"D"; break;
case(14): cout<<"E"; break;
case(15): cout<<"F"; break;
case(16): cout<<"G"; break;
case(17): cout<<"H"; break;
default: cout<<a%18; break;
}
}
int main(){
char ImePrezime[20];
cout<<"Upisite ime i prezime: ";
cin.getline(ImePrezime,20);

cout<<"Zbroj znamenaka upisanog imena i prezimena:


"<<suma(ImePrezime)<<endl;
cout<<"\nZbroj znamenaka pretvoren u sustav s bazom 18 iznosi: ";
sustav18(suma(ImePrezime));
cout<<endl;
}
// Zadatak1-BrojStudenata.cpp : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

int suma(int broj){


int zbroj=0;
while(broj>0){
zbroj+=broj%10;
broj=broj/10;
}
return zbroj;
}
void sustav14(int a){
if(a>13) sustav14(a/14);
switch(a%14){
case(10): cout<<"A"; break;
case(11): cout<<"B"; break;
case(12): cout<<"C"; break;
case(13): cout<<"D"; break;
default: cout<<a%14; break;
}
}
int zbrojZnamenakaUNizu(char a[]){
int zbroj=0;
for(int i=0; i<strlen(a); i++)
zbroj+=a[i] - 48;
return zbroj;
}
void main(){
int brStud;
cout<<"Upisi broj studenata: ";
cin>>brStud;

int zbrojZnamenaka=suma(brStud);
cout<<"Suma znamenaka iznosi: "<<suma(brStud)<<endl;
cout<<"\nZbroj u sustavu s bazom 14: ";
sustav14(zbrojZnamenaka);
cout<<endl;

//2.dio

cin.ignore();
char brojStudenata[5];
cout<<“\n\nUpisite string: “;
cin.getline(brojStudenata,5);
cout<<“Zbroj: “<<zbrojZnamenakaUNizu(brojStudenata)<<endl;
cout<<“Zbroj znamenaka u stringu pretvoren u sustav s bazom 14: “;
sustav14(zbrojZnamenakaUNizu(brojStudenata));
cout<<endl;
}
U izravnoj neformatiranoj datoteci nogomet.ini spremaju se podaci o nogometnim
reprezentacijama. Struktura zapisa je: NazivReprezentacije, Trener, BrojNogometasa,
EuropskoPrvenstvo_DA/NE, PostignutiRang. Reprezentacije su u datoteci raspoređeni po
nazivu. Napišite program koji stvara tu datoteku i za određeni NazivReprezentacije ispisuje
sve informacije o toj reprezentaciji.

// Zadatak3-Nogomet.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;

struct nogomet {
char naziv_reprezentacije[20];
char trener[20];
int broj_nogometasa;
char za_ep[3];
int postignuti_rang;
};
char datoteka[50];
nogomet nog;

void kreiranje_datoteke(){
fstream d;

cout<<"Unesite putanju do datoteke: ";


cin.getline(datoteka,50);

d.open(datoteka, ios::in | ios::binary);


if(!d){
d.open(datoteka, ios::out | ios::binary);
cout<<"Datoteka kreirana!"<<endl;
}
else{
cout<<"Datoteka vec postoji!"<<endl;
}
d.close();
}
void unos_podataka(){
char nastavak;
fstream d_unos;

d_unos.open(datoteka, ios::out | ios::binary);

do{
cout<<"Naziv reprezentacije: ";
cin.getline(nog.naziv_reprezentacije,20);
cout<<"Trener: ";
cin.getline(nog.trener,20);
cout<<"Broj nogometasa: ";
cin>>nog.broj_nogometasa;
cout<<"Da li je reprezentacija bila na Europskom
prvenstvu(da/ne)? ";
cin.ignore();
cin.getline(nog.za_ep,3);
cout<<"Postignuti rang: ";
cin>>nog.postignuti_rang;

cout<<"Zelite li nastaviti unos (d/n)? ";


cin>>nastavak;
cin.ignore();
d_unos.write((char*)&nog, sizeof(nog));
} while (nastavak=='d');
d_unos.close();
}
void ispis_podataka(){
fstream d_ispis;
d_ispis.open(datoteka, ios::in | ios::binary);
while(d_ispis.read((char*)&nog, sizeof(nog))){
cout<<"Reprezentacija: "<<nog.naziv_reprezentacije<<endl;
cout<<"Trener reprezentacije: "<<nog.trener<<endl;
cout<<"Broj nogometasa: "<<nog.broj_nogometasa<<endl;
cout<<"Da li je reprezentacija bila na EP: "<<nog.za_ep<<endl;
cout<<"Postignuti rang: "<<nog.postignuti_rang<<endl;
}
d_ispis.close();
}
void pretraga(){
fstream d_pretraga;
char naziv_reprezentacije[20];
int nadena=0;

cout<<"Unesite naziv reprezentacije: ";


cin.getline(naziv_reprezentacije,20);

d_pretraga.open(datoteka, ios::in | ios::binary);


while(d_pretraga.read((char*)&nog, sizeof(nog))){
if(strcmp(nog.naziv_reprezentacije, naziv_reprezentacije)==0){

//strcmp - za odredeni naziv reprezentacije ispisuje sve informacije o toj


reprezentaciji!!!!!!!!!!!!!!!!!!!!!!

cout<<"\nTrazena reprezentacija:
"<<nog.naziv_reprezentacije<<endl;
cout<<"Trener: "<<nog.trener<<endl;
cout<<"Broj nogometasa: "<<nog.broj_nogometasa<<endl;
cout<<"Da li su bili na EP: "<<nog.za_ep<<endl;
nadena++;
}
}
if(nadena==0)cout<<"\nReprezentacija nije pronadena!!\n";
d_pretraga.close();
}
int main(){
cout<<"--- KREIRANJE DATOTEKE ---"<<endl<<endl;
kreiranje_datoteke();
cout<<endl<<endl<<"--- UNOS PODATAKA O REPREZENTACIJAMA
---"<<endl<<endl;
unos_podataka();
cout<<endl<<endl<<"--- ISPIS PODATAKA O REPREZENTACIJAMA
---"<<endl<<endl;
ispis_podataka();
cout<<endl<<endl<<"--- PRETRAZIVANJE ---"<<endl<<endl;
pretraga();

return 0;
}
U datoteci zaglavlja deklarirajte klasu RacunalnaOprema s podacima članovima:
NazivOpreme, GodinaProizvodnje, CijenaOpreme koji su privatni, i osigurajte metode upis(),
ispis() i metodu starost() koja vraća starost svake opreme koje su javne. Napišite program
koji uključuje tu datoteku zaglavlja i stvara tri objekta klase RacunalnaOprema. Ispišite
vrijednosti svih funkcija za sve objekte.

//Zadatak4-RacOprema (header file)

#include "stdafx.h"
#include <iostream>
using namespace std;

class RacunalnaOprema
{
char NazivOpreme[50];
float Cijena;
int GodP;

public:
void upis(){
cout<<endl<<"Upisi naziv opreme: ";
cin.getline(NazivOpreme,50);
cout<<"Upisite cijenu: ";
cin>>Cijena;
cout<<"Godina proizvodnje: ";
cin>>GodP;
cin.ignore();
}
void ispis(){
cout<<"\nNaziv opreme: "<<NazivOpreme<<", cijena: "<<Cijena<<",
godina proizvodnje: "<<GodP;
}
int starost(){
return 2009-GodP;
}

};

// Zadatak4-RacunalnaOprema.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "RacunalnaOprema.h"
using namespace std;

void main(){
RacunalnaOprema polje[3];
for(int i=0; i<3; i++)
polje[i].upis();
for(int i=0; i<3; i++)
polje[i].ispis();
for(int i=0; i<3; i++)
cout<<endl<<"Starost "<<i+1<<". opreme: "<<polje[i].starost();
cout<<endl;
}

U datoteci zaglavlja deklarirajte klasu Objekt s podacima članovima: NazivObjekta,


GodinaOsnivanja, VrstaDjelatnosti koji su privatni, i osigurajte metode upis(), ispis() i
metodu starost() koja vraća starost svakog objekta koje su javne. Napišite program koji
uključuje tu datoteku zaglavlja i stvara tri objekta klase UgostiteljskiObjekt. Ispišite
vrijednosti svih funkcija za sve objekte

//Zadatak4-Objekt (header file)

#include "stdafx.h"
#include <iostream>
using namespace std;

class Objekt
{
char NazivObjekta[50];
char VrstaDjelatnosti[50];
int GodOsnivanja;

public:
void upis(){
cout<<endl<<"Upisite naziv objekta: ";
cin.getline(NazivObjekta,50);
cout<<"Upisite vrstu djelatnosti: ";
cin.ignore();
cin.getline(VrstaDjelatnosti,50);
cout<<"Godina osnivanja: ";
cin>>GodOsnivanja;
cin.ignore();
}
void ispis(){
cout<<"\nNaziv objekta: "<<NazivObjekta<<", vrsta djelatnosti:
"<<VrstaDjelatnosti<<", godina osnivanja: "<<GodOsnivanja;
}
int starost(){
return 2009-GodOsnivanja;
}
};

// Zadatak4-Objekt.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "Objekt.h"
using namespace std;

void main(){
Objekt polje[3];
for(int i=0; i<3; i++)
polje[i].upis();
for(int i=0; i<3; i++)
polje[i].ispis();
for(int i=0; i<3; i++)
cout<<endl<<"Starost "<<i+1<<". objekta: "<<polje[i].starost();
cout<<endl;
}

U datoteci zaglavlja deklarirajte klasu Olimpijci s podacima članovima: ImePrezimeOlimpijca,


GodinaRodjenja, VrstaSporta koji su privatni, i osigurajte metode upis(), ispis() i metodu
starost() koja vraća starost svakog olimpijca koje su javne. Napišite program koji uključuje tu
datoteku zaglavlja i stvara n objekata klase Olimpijci. Ispišite vrijednosti svih funkcija za sve
objekte.

// Zadatak4-Olimpijci.h : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

class Olimpijci
{
char ImePrezime[30];
char VrstaSporta[20];
int GodRodenja;

public:
void upis(){
cout<<endl<<"Upisi ime i prezime olimpijca: ";
cin.getline(ImePrezime,30);
cout<<"Upisite godinu rodenja olimpijca: ";
cin>>GodRodenja;
cout<<"Upisite vrstu sporta kojim se bavi olimpijac: ";
cin.ignore();
cin.getline(VrstaSporta,20);
}
void ispis(){
cout<<"\nIme i prezime olimpijca: "<<ImePrezime<<", godina
rodenja: "<<GodRodenja<<", vrsta sporta kojim se bavi: "<<VrstaSporta;
}
int starost(){
return 2009-GodRodenja;
}

};

// Zadatak4-Olimpijci.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "Olimpijci.h"
using namespace std;

void main(){
Olimpijci polje[3];
for(int i=0; i<3; i++)
polje[i].upis();
for(int i=0; i<3; i++)
polje[i].ispis();
for(int i=0; i<3; i++)
cout<<endl<<"Starost "<<i+1<<". olimpijca:
"<<polje[i].starost();
cout<<endl;
}
Ako ti u zadatku pise npr. "Stvorite n objekata klase Igraliste" onda bi to ovako
napisala :
umjesto Igraliste ig[3];
napisala bi ove tri naredbe:

int n;
cout<<"Koliko stanova: ";
cin>>n;
Igraliste *polje=new Igraliste[n];
Napišite program koji deklarira klasu Kocka koja ima varijablu itsDuljina i funkciju pristupa za
duljinu. Stvorite tri Kocka objekta. Upotrijebite konstruktor s podrazumijevanom vrijednošću 8
za prvi objekt a vrijednosti za ostala dva objekta učitajte. Stvorite postfiksni dekrement
operator za klasu Kocka koji dekrementira vrijednost varijable itsDuljina. Pozovite dekrement
operator za svaki objekt, pa ispišite njihove vrijednosti. Na kraju pridružite prvi trećem i
ispišite njihove vrijednosti

// Zadatak5-Kocka.h : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

class Kocka{
public:
int itsDuljina;

Kocka(){
itsDuljina=8;
}
void upis(){
cout<<"Upisite stranicu: "; cin>>itsDuljina;
}
void ispis(){
cout<<"Stranica: "<<itsDuljina<<endl;
}
void dekrement(){
itsDuljina--;
}
};

// Zadatak5-Kocka.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "Kocka.h"
using namespace std;

int main(){
Kocka k[3]; //3 kocka objekta
for(int i=1; i<3; i++) //brojac krece od drugog objekta i=1, jer za
prvi imamo definiranu vrijednost!!!!!

k[i].upis();
for(int i=0; i<3; i++)
k[i].dekrement();
for(int i=0; i<3; i++){
cout<<i+1<<".: "; k[i].ispis();}

k[2].itsDuljina+=k[0].itsDuljina; //vrijednost prvog (k[0]) smo


pridruzili trecem (k[2])
for(int i=0; i<3; i++)
k[i].ispis();
}

Napišite program koji deklarira klasu Igraliste koja ima varijable itsDuljina i itsSirina, funkcije
pristupa za duljinu i sirinu, funkciju za izračunavanje površine terena i funkciju za
izračunavanje duljine žice koja je potrebna za označavanje terena. Stvorite tri Igraliste
objekta. Upotrijebite konstruktor s definiranim vrijednostima za jedan, a za drugi učitajte
vrijednosti. Ispišite izračunate vrijednosti za svaki objekt

// Zadatak5-Igraliste.h : main project file.

#include "stdafx.h"
#include <iostream>
using namespace std;

class Igraliste{
public:
int a;
int b;

Igraliste(){
a=10;
b=8;
}

void upis(){
cout<<"Upisite duljinu igralista: ";
cin>>a;
cout<<"Upisite sirinu igralista: ";
cin>>b;
}
int povrsina(){
return a*b;
}
int opseg(){
return 2*a+2*b;
}

};

// Zadatak5-Igraliste.cpp : main project file.

#include "stdafx.h"
#include <iostream>
#include "Igraliste.h"
using namespace std;

int main(){
Igraliste ig[3];
for(int i=1; i<3; i++)
ig[i].upis();
for(int i=0; i<3; i++)
cout<<endl<<"Povrsina igralista je: "<<ig[i].povrsina();
for(int i=0; i<3; i++)
cout<<endl<<"Opseg igralista je: "<<ig[i].opseg();
cout<<endl;
}

NASLJEĐIVANJE

#include "stdafx.h"
#include <iostream>
using namespace std;

#include "vb.h"

int main(){

ugostiteljski_objekt ug;
restoran re;
kafic ka;
hotel ho;

ug.upis();
re.upis();
ka.upis();
ho.upis();

ug.ispis();
re.ispis();
ka.ispis();
ho.ispis();

system("Pause");
return 0;
}

#include <iostream>
using namespace std;

class ugostiteljski_objekt{

private:
char naziv[30];
char vlasnik[30];
char mat_broj[14];
char adresa[30];
int godina_osnivanja;

public:
void upis();
void ispis();
};

void ugostiteljski_objekt::upis(){

cout<<endl<<"naziv: ";
cin.getline(naziv,30);
cout<<endl<<"vlasnik: ";
cin.getline(vlasnik,30);
cout<<endl<<"mat_broj: ";
cin>>mat_broj;
cin.ignore();
cout<<endl<<"adresa: ";
cin.getline(adresa,30);
cout<<endl<<"godina: ";
cin>>godina_osnivanja;
cin.ignore();
}

void ugostiteljski_objekt::ispis(){

cout<<endl<<"naziv: "<<naziv;
cout<<endl<<"vlasnik: "<<vlasnik;
cout<<endl<<"mat_broj: "<<mat_broj;
cout<<endl<<"adresa: "<<adresa;
cout<<endl<<"godina: "<<godina_osnivanja;

class hotel:public ugostiteljski_objekt{

private:
char kategorija[30];
int broj_osoba;

public:
void upis();
void ispis();
};

void hotel::upis(){

ugostiteljski_objekt::upis();
cout<<endl<<"kategorija: ";
cin.getline(kategorija,30);
cout<<endl<<"broj_osoba: ";
cin>>broj_osoba;
cin.ignore();
}

void hotel::ispis(){

ugostiteljski_objekt::ispis();
cout<<endl<<"kategorija: "<<kategorija;
cout<<endl<<"broj_osoba: "<<broj_osoba;

class restoran:public ugostiteljski_objekt{

private:
char specijalitet_kuce[30];
char radno_vrijeme[10];

public:
void upis();
void ispis();
};
void restoran::upis(){

ugostiteljski_objekt::upis();
cout<<endl<<"specijalitet kuce: ";
cin.getline(specijalitet_kuce,30);
cout<<endl<<"radno vrijeme: ";
cin.getline(radno_vrijeme,10);
}

void restoran::ispis(){

ugostiteljski_objekt::ispis();
cout<<endl<<"specijalitet kuce: "<<specijalitet_kuce;
cout<<endl<<"radno vrijeme: "<<radno_vrijeme;
}

class kafic:public ugostiteljski_objekt{

private:
char radno_vrijeme[10];

public:
void ispis();
void upis();
};

void kafic::upis(){

ugostiteljski_objekt::upis();
cout<<endl<<"radno vrijeme: ";
cin.getline(radno_vrijeme,10);
}

void kafic::ispis(){

ugostiteljski_objekt::ispis();
cout<<endl<<"radno vrijeme: "<<radno_vrijeme;
}
REKURZIJA NAJMANJEG INDEXA

/*Napiši rekurzivnu funkciju koja vraca index


najmanjeg broja od 10 upisanih!*/

#include "stdafx.h"
#include<iostream>
#include <string>

using namespace std;

int funk(int polje[],int index,int duljinaPolja){

index--;
if(polje[index]<polje[index-1])
duljinaPolja = index-1;

if(index>0)
return funk(polje,index,duljinaPolja);

return duljinaPolja;
}

void fun(int* polje,int n){

for(int i=0;i<n;i++){

cout<<endl<<"clan:"<<i+1<<" ";
cin>>polje[i];
}

void sortiraj(int* a,int* b,int n){

for(int i=0;i<n;i++){

b[i]=a[i];
}

for(int i=0;i<n;i++){

for(int j=0;j<n-1;j++){

if(b[j]>b[j+1]){

int pom=b[j];
b[j]=b[j+1];
b[j+1]=pom;
}
}
}
}

void ispisi(int*a,int* b,int n){


cout<<endl<<"polje prvo: ";
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}

cout<<endl<<"polje drugo: ";


for(int i=0;i<n;i++){
cout<<b[i]<<" ";
}
}
int main(){
/*
int polje[10];
for(int i=0;i<10;i++){
cout<<"broj "<<i+1<<": ";

cin>>polje[i];
}
int dulj=9;

cout<<endl<<"naj index je: "<<funk(polje,10,dulj);*/


int n;
do{
cout<<"broj brojeva:(max-20) ";
cin>>n;
}while(n<0 || n>20);
int* polje=new int[n];

fun(polje,n);

int* b= new int[n];;

sortiraj(polje,b,n);
ispisi(polje,b,n);

system("PAUSE"); // negdje ovo treba, ili return 0;


return 0;
}
REKURZIJE

// rekurzije.cpp : main project file.


/* napisi program koji ima
funkciju koja za
ucitani cijeli broj vraca njegov binarni
ekvivalent
*/

#include "stdafx.h"
# include <iostream>
using namespace std;

void rekurzija (int a);

int main()
{
int broj;
cout << " upisi broj: ";
cin >> broj;
cout << "binarni ekvivalent " << broj << " je " <<endl;
rekurzija (broj);
cout << "\n";
return 0;
}

void rekurzija (int a)


{
if (a>0)
rekurzija (a/2);
cout << a%2;
}

#include "stdafx.h"
#include<iostream>

using namespace std;

int rek(int b,int e)


{
if(e==0)
return 1;

else
return(b*rek(b,e-1));
}

int main()
{
int b,e;
cout<<"Upisi bazu >: ";
cin>>b;
cout<<"Upisi exponent >: ";
cin>>e;
cout<<"Rezultat je: "<<rek(b,e)<<endl;
}

//04_rekurzije_pridodavanje.cpp

#include "stdafx.h"
#include <iostream>
using namespace std;

int pridodaj(int broj, int pridodavanje)


{
broj++;
pridodavanje--;
if(pridodavanje>0) return pridodaj(broj,pridodavanje);
return broj;
}

int main()
{
int broj, pridodavanje;
cout<<"Unesi broj: ";
cin>>broj;
cout<<"Koliko mu zelis pridodati? ";
cin>>pridodavanje;
if(pridodavanje!=0)cout<<"Zbroj iznosi
"<<pridodaj(broj,pridodavanje)<<".\n";
system("pause");
return 0;
}

// prog koji u rekz. izrac zbroj prvih n prirodnih brojeva


#include "stdafx.h"
#include "iostream"
using namespace std;

int zbroj(int n, int s);

void main()
{
int n, s = 0, rez;
cout << "Upisi n: ";
cin >> n;
rez = zbroj(n, s);
cout << "Suma prvih " << n << " prirodnih brojeva = " << rez << "\n";
}
int zbroj(int n, int s)
{
if (n == 0)
return s;
else
{
s = s + n;
return zbroj(n-1, s);
}

#include"stdafx.h"
#include<iostream>

using namespace std;

//Rješila Ivana
void rekurzija (int broj)
{
if (broj!=0)
{
rekurzija(broj/8);
cout<<broj%8;
}
}

main(){

int broj;
cout<<"Unesi broj: ";
cin >>broj;
rekurzija(broj);

system("PAUSE");
}

// 04 rekurzije_faktorijela.cpp

#include "stdafx.h"
#include <iostream>
//using namespace System;
using namespace std;

int fakto(int n);

int main()
{
int n;
cout<<"Upisi broj: ";
cin>>n;
cout<<"\nFaktoriel je: ";
cout<<fakto(n)<<endl;
return 0;
}

int fakto(int n)
{
if (n==1) return 1;
else
return n*fakto(n-1);
}

/*
Napiši program u kojem se upisuje baza b i exponent e. Napišite
rekurzivnu funkciju
koja izračunava b na e. Ispišite vrijednost izračunate potencije.
*/

#include "iostream"
using namespace std;

int Potencija(int b, int e)


{
// Elegantnija varijanta
if (e == 0) return 1;
if (e > 0) return b * Potencija(b, e - 1);
if (e < 0) return Potencija(b, e + 1) / b;
/*
if (e == 0)
return 1;
else
return (b * Potencija(b, e-1));
*/
}

int main()
{ int b, e, rez = 1;
cout << "Upisi bazu: ";
cin >> b;
cout << "Upisite eksponent: ";
cin >> e;
rez = Potencija(b, e);
cout << "Rezultat je: " << rez << endl;
return 0;
}

/*
1. Napišite program koji sadrži rekurzivnu funkciju
koja racuna sumu aritmetickog niza od clana A do clana B s razmakom D.
Niz mora biti uzlazni (A<B), inace funkcija vraca 0. Ispišite dobivenu
sumu. Ako upises 5 i 10, a za razmak 2,
onda on zbroja 5, 7 i 9, i rezultat je 21.
*/
#include "stdafx.h"
#include <iostream>

using namespace std;

int rekurzivna(int a, int b, int d, int s)


{
if (a > b)
return s;
else
{
s = s + a;
return rekurzivna(a+d, b, d, s);
}
}

void main()
{
int a, b, d;
cout << "Upisite pocetak niza: ";
cin >> a;
cout << "Upisite kraj niza: ";
cin >> b;
cout << "Upisite razmak: ";
cin >> d;
cout << "Suma niza: " << rekurzivna(a,b,d, 0) << endl;
}

/*Napišite program koji u rekurzivnoj funkciji


izracunava sumu prvih "n" parnih prirodnih brojeva.
Ispišite dobivenu vrijednost.*/

#include "stdafx.h"
#include<iostream>

using namespace std;

int Suma(int a,int s)


{

if(a==0)
return s;
else
{
s=a+s;
return Suma(a-1,s);
}
}

void main ()
{
int n,s=0;
cout<<"Unesi broj: ";
cin>>n;
cout<<"Suma prvih "<<n<<" parnih prirodnih brojeva je: "<< Suma(n,s);

// 04 rekurzije_potencije.cpp

#include "stdafx.h"
#include <iostream>
using namespace std;

int funk (int eksponent, int broj);

int main()
{
int eksponent, broj=2;
bool uvjet=1;
cout<<"Unesi eksponent: ";
cin>>eksponent;
//'iskljucenje' uvjeta pod kojima funkcija ne radi:
if(eksponent<0) {cout<<"Program ne radi s negativnim eksponentima.";
uvjet=0;}
if(eksponent>30) {cout<<"Program ne radi s toliko velikim
potencijama."; uvjet=0;}
if(eksponent==0) {cout<<"Bilo koji broj na nultu potenciju je 1. \n";
uvjet=0;}
//ukoliko se eksponent nalazi u 'legalnom' podrucju, poziva se
funkcija 'funk'
if(uvjet==1) cout<<eksponent<<". potencija broja 2 je
"<<funk(eksponent, broj)<<".\n";
system("pause");
return 0;
}

int funk (int eksponent, int broj) {

eksponent--;

if(eksponent==0) {return broj;} //za slucaj da se radi o 2^1

broj=broj+broj; //ili broj=broj*a; ili broj*=2;

if(eksponent>1) {return funk(eksponent,broj);}

return broj;
}

/*Napišite program koji u rekurzivnoj funkciji


izracunava sumu prvih "n" parnih prirodnih brojeva.
Ispišite dobivenu vrijednost.*/

#include "stdafx.h"
#include<iostream>

using namespace std;

int suma (int n)


{
if (n%2!=0)
n=n-1;

if (n==0)
return 0;

return n+suma(n-2);
}

void main ()
{
int n;
cout<<"Unesi broj: ";
cin>>n;
cout<<"Suma prvih "<<n<<" parnih prirodnih brojeva je: "<< suma(n);

}
FUNKCIJE

/*
U main funkciji učitajte NazivRukometneReprezentacije i
broj postignutih golova na prvenstvu. U funkciji suma
pronađite sumu ASCII kodova upisanog naziva, te u funkciji
max pronađite najveću znamenku u broju golova, a u funkciji
pretvori pretvorite dobivenu sumu znakova u sustav s bazom
koja je jednaka vrijednosti funkcije max. Ispišite dobivenu
sumu kodova, najveću znamenku i dobiveni ekvivalent.
*/

#include"stdafx.h"
#include<iostream>

using namespace std;

int suma(char naziv[])


{
int s;
for (int i=0; i<strlen(naziv); i++)
{
s=s+naziv[i];
}
return s;
}

int maximum(int a)
{
int max=0;
do
{
if(a%10>max)
max=a%10;
a=a/10;
}
while(a>0);
return max;
}

void pretvori(int a, int baza)


{
if(a>baza-1)
pretvori(a/baza,baza);
cout << a%10;
}

void main()
{
char naziv[30];
int golovi;
int s,baza;

cout << "Naziv rukometne reprezentacije: ";


cin.getline(naziv,30);
cout << "Broj golova: ";
cin >> golovi;

s=suma(naziv);
baza=maximum(golovi);

cout << "Suma: " << s << endl;


cout << "Najveca znamenka: " << m << endl;
cout << "Suma u sustavu.. bl bal: ";
pretvori(s,baza);

/*
U main funkciji učitajte Datum i u funkciji suma
pronađite sumu ASCII kodova upisanog datuma, te
u funkciji pretvori pretvorite dobivenu sumu u
sustav s bazom 13. Ispišite dobivenu sumu kodova i
dobiveni njen ekvivalent u sustavu s bazom 13.
*/

#include "stdafx.h"
#include <iostream>
using namespace std;

int suma(char Datum[])


{
int zbroj=0;
for(int i=0; i<strlen(Datum); i++)
zbroj+=Datum[i];
return zbroj;
}

void sustav13(int broj)


{
if(broj>12)
sustav13(broj/13);

switch(broj%13)
{
case(10): cout<<"A"; break;
case(11): cout<<"B"; break;
case(12): cout<<"C"; break;
default: cout<<broj%13; break;
}
}

void main()
{
char Datum[9];
cout<<"Upisite datum: ";
cin.getline(Datum, 9);

cout<<"Zbroj znamenaka datuma: "<<suma(Datum)<<endl;


cout<<"\nZbroj pretvoren u sustav s bazom 13 iznosi: ";
sustav13(suma(Datum));
cout<<endl;
}

/*
U main funkciji učitajte svoje ime i prezime
i u funkciji suma pronađite sumu ASCII kodova
upisanog imena i prezimena,
te u funkciji pretvori pretvorite dobivenu
sumu u sustav s bazom 18.
Ispišite dobivenu sumu kodova i dobiveni njen
ekvivalent u sustavu s bazom 18.
*/

// Zadatak1-ImePrezime.cpp : main project file.

#include "stdafx.h"
#include <iostream>

using namespace std;

int suma(char ImePrezime[])


{
int zbroj=0;

for(int i=0; i<strlen(ImePrezime); i++)


zbroj+=ImePrezime[i];

return zbroj;
}
void sustav18(int a)
{
if(a>17)
sustav18(a/18);

switch(a%18)
{
case(10): cout<<"A"; break;
case(11): cout<<"B"; break;
case(12): cout<<"C"; break;
case(13): cout<<"D"; break;
case(14): cout<<"E"; break;
case(15): cout<<"F"; break;
case(16): cout<<"G"; break;
case(17): cout<<"H"; break;
default: cout<<a%18; break;
}
}

int main()
{
char ImePrezime[20];
cout<<"Upisite ime i prezime: ";
cin.getline(ImePrezime,20);

cout<<"Zbroj znamenaka upisanog imena i prezimena:


"<<suma(ImePrezime)<<endl;
cout<<"\nZbroj znamenaka pretvoren u sustav s bazom 18 iznosi: ";
sustav18(suma(ImePrezime));
cout<<endl;
}

/*
ispiši najvecu ascii vrijednost unesenog naziva
*/

#include "stdafx.h"
#include <iostream>

using namespace std;

int najveciASCII(char rijec[])


{
int najveci=rijec[0];
for(int i=1;i<strlen(rijec);i++)
{
if(rijec[i]>najveci)
{
najveci=rijec[i];
}
}
return najveci;
}

void main()
{
char rijec[50];
cout<<"upisi rijec: ";
cin.getline(rijec,50);
cout<<"najveca ASCII vrijednost u rijeci je "<<najveciASCII(rijec)<<"
tj znamenka "<<(char)najveciASCII(rijec)<<endl;
}

//zadatak racuna zbroj znamenki za uneseni broj

#include "stdafx.h"
#include <iostream>

using namespace std;

void funkcija(char A[50])


{
int i=0,s=0;
do
{
if(A[i]>'0' && A[i]<'9')
{s+=A[i]-48;i++;}
else
cout<<"Broj je prevelik!!!"<<endl;
}
while(A[i]!='\0');

cout<<"Suma znamenaka: "<<s<<endl;


}

int main()
{

char A[50];

cout<<"Upisi vise znamenkasti broj: ";


cin>> A;
funkcija(A);

//system("PAUSE"); //samo za dev c++


}
POLJA

// 2DD.cpp : main project file.


/* Napišite program koji sadrži funkciju koja stvara polje A koje sadrži
brojeve bodova sa 4 kolokvija iz nekog kolegija za n studenata.
Stvorite polje S koji će sadržavati sume tih bodova za svakog studenta.
Sortirajte niz S silazno. Ispišite niz S.
*/
#include "stdafx.h"
#include <iostream>
using namespace std;

void upis(int **A, int n,int *S){

for(int i=0; i<n; i++){


cout<<endl<<i+1<<". student: "<<endl;

A[i]=new int[4]; //usmjeravamo pokazivac A[i] na polje od 4


clana tipa int koje smo alocirali operatorom new
int zbroj=0;
for(int j=0; j<4; j++){
cout<<"Upisi bodove "<<j+1<<". kolokvija: ";
cin>>A[i][j];
zbroj+=A[i][j];
}
S[i]=zbroj;
}
}

void sortiraj(int *S, int n){


for(int i=0; i<n; i++)
for(int j=0; j<n-1; j++)
if(S[j]<S[j+1]){
int pom=S[j];
S[j]=S[j+1];
S[j+1]=pom;
}
}

void ispis(int *S, int n){


cout<<endl<<"Ispis: ";
for(int i=0; i<n; i++)
cout<<S[i]<<" ";
}

void dealokacija(int **A, int n){ //dealokacija dvodimenzionalnog


dinamickog polja
for(int i=0; i<n; i++)
delete []A[i]; //brisemo i-ti redak
delete []A;//brisemo polje pokazivaca
}

void main(){
int n;
cout<<"Koliko studenata: ";
cin>>n;

int **A=new int *[n];


int *S=new int[n];

upis(A,n,S);
sortiraj(S,n);
ispis(S,n);
cout<<endl;

dealokacija(A,n);

delete []S; //dealokacija polja S


S=NULL;

// 2zadatak2.cpp : main project file.


/* Napišite program koji sadrži funkciju koja stvara dvodimenzionalno
polje BODOVI u koje se za učitani broj studenata i učitani broj ispita
upisuje
za svaki položeni ispit pripadajući ECTS bodovi a ako ispit nije položen
upisuje se 0. Izračunajte sumu bodova za svakog studenta i upišite kao
zadnji podatak
u njegovom retku. Ispišite polje BODOVI
*/

#include "stdafx.h"
#include <iostream>
using namespace std;

void upis(int **A, int n){


int i, j;
for(i=0; i<n; i++)
{
int ispiti;
cout<<"Koliko ispita: ";
cin>>ispiti;
A[i]=new int [ispiti+2];
A[i][0]=ispiti;
int zbroj=0;

for(j=1; j<=A[i][0]; j++)


{
cout<<"Broj ECTS bodova "<<i+1<<". studenta za "<<j<<".
ispit: ";
cin>>A[i][j];
zbroj+=A[i][j];
}
A[i][j]=zbroj;
}

void ispis(int **A, int n){


for(int i=0; i<n; i++){
cout<<endl;
for(int j=0; j<=A[i][0]+1; j++)
cout<<A[i][j]<<" ";
}
}

void dealokacija(int **A, int n){


for(int i=0; i<n; i++)
delete []A[i];
delete []A;
A=NULL;
}

void main(){
int n;
cout<<"Koliko studenata: ";
cin>>n;

int **bodovi=new int *[n];


upis(bodovi,n);
ispis(bodovi,n);
dealokacija(bodovi,n);
}

/*napisite program koji stvara niz a sa n


ucitanih realnih brojeva i koji ce izraunati srednju vrijednost
tog niza i u niz b upisati sve brojeve iz a vece od te atritmeticke
sredine ili nulu.Ispisite niz b.*/

#include "stdafx.h"
#include <iostream>
using namespace std;

float ucitaj (float *x,int d)


{
int i;
for (i=0;i<d;i++)
{
cout << endl << i+1 << " .broj: ";
cin >> x[i];
}
return *x;
}

float prosjek (float *p,int d)


{
int i;
float suma=0, pr;
for (i=0;i<d;i++)
suma = suma + p[i];
return pr=suma/d;
}
float veci_od_prosjeka (float *z,float *v,int d,float p)
{
int i;
for (i=0;i<d;i++)
if (v[i]>p)z[i]=v[i]; else z[i]=0;
return *z;
}

void ispisi (float *niz,int n)


{
for (int i=0;i<n;i++)
cout << niz[i]<<" ";
}
int main ()
{
float *a,*b;
float sv;
int n;
cout << "koliko brojeva zelite unijeti: ";
cin >> n;
a=new float [n];
b=new float [n];
ucitaj(a,n);
sv=prosjek(a,n);
cout << endl <<"srednja vrijednost niza je: " <<sv<<endl;
veci_od_prosjeka (b,a,n,sv);
cout <<"brojevi niza b su: " << endl;
ispisi (b,n);
cout << endl;
delete []a;
delete []b;
a=NULL;
b=NULL;
retURN
}

/*
2. Napišite program koji sadrži funkciju koja
stvara niz A s maximalno 100 brojeva i
funkciju koja ce u niz B upisati aritmeticku
sredinu brojeva niza A, sve brojeve iz
A manje i vece od te aritmeticke sredine.
Ispišite nizove A i B.

Znaci B[0] je aritmeticka sredina, a dalje je niz B


sve iz niza A razlicito od aritmeticke sredine.
*/

#include "stdafx.h"
#include <iostream>
using namespace std;

void funkcija()
{
int A[100], i, j = 1, sum = 0, n;
float aritm, B[100];

cout << "Upisite broj elemenata niza A: ";


cin >> n;

for(i = 0; i < n; i++)


{
cout << "Upisi " << i + 1 << ". element niza A: ";
cin >> A[i];
sum = sum + A[i];
}

aritm = float(sum) / float(n);


B[0] = aritm;

cout << "Aritmeticka sredina niza A je: " << aritm << endl;

for (i = 0; i < n; i++)


{
if(A[i] != aritm)
{
B[j] = A[i];
j++;
}
}

cout << "Niz A -> ";

for(i = 0; i < n; i++)


{
cout<<A[i]<<" ";
}
cout<<"\nNiz B -> ";

for(i = 0; i < j; i++)


{
cout << B[i] << " ";
}
cout << endl;
}
void main()
{
funkcija();
}

//Unesite velicinu polja, te napravite polje cijelih brojeva te velicine.


//Unesite vrijednosti u polje. Napisite f-ju 'min' koja ce ispisati
//najmanji clan polja, te f-ju 'max' koja ce ispisati najveci.

#include "stdafx.h"
#include <iostream>

using namespace std;

int max(int *polje, int vel)


{
int max=polje[0];
for (int i=0; i<vel; i++)
{
if(polje[i] > max)
{
max=polje[i];
}
}
return max;
}

int min(int *polje, int vel)


{
int min=polje[0];
for (int i=0; i<vel; i++)
{
if(polje[i] < min)
{
min=polje[i];
}
}
return min;
}

int main()
{
int vel;
int i;
int *polje = new int[vel];

cout << "Upisi velicinu polja: ";


cin >> vel;

for (i=0; i<vel; i++)


{
cout << "Upisi "<<i+1<<". vrijednost od ukupno "<<vel<<" u polje:";
cin >> polje[i];
}

cout << "Najveci broj unesen u polje je: " << max(polje, vel)<<endl;
cout << "Najmanji broj unesen u polje je: " << min(polje, vel)<<endl;

return 0;

/* programiranje: demonstrature 7
Napravi program koji ima strukturu proizvoda - koju sacinjava sifra, ime
proizvoda i cijena,
unesi proizvoljan broj proizvoda, te ispisi sve parametre.*/
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

struct zapis {
char ime[20];
int sifra;
float cijena;
};

int main()
{
int n;
cout<<"Koliko proizvoda? ";
cin>>n;
//stvaranje dinamickog 1D polja struktura:
zapis *proizvodi = new zapis[n];
//unos vrijednosti:
for (int i=0;i<n;i++) {
cout<<"Artikl "<<i+1<<":\n";
cout<<"\tUnesi sifru: ";
cin>>proizvodi[i].sifra;
cout<<"\tUnesi ime: ";
cin.ignore();
cin.getline(proizvodi[i].ime,20);
cout<<"\tUnesi cijenu: ";
cin>>proizvodi[i].cijena;
}
cout<<"<------------------ispis:------------------>\n";
cout<<"br.\tsifra:\tcijena:\time:\n";
for (int i=0;i<n;i++) {
cout<<i+1<<"\t"<<proizvodi[i].sifra;
cout<<"\t"<<proizvodi[i].cijena<<"\t";
for (int j=0;j<strlen(proizvodi[i].ime);j++)
{cout<<proizvodi[i].ime[j];}
cout<<"\n";
}
delete[]proizvodi;
system("pause");
return 0;
}