C++ zadaci,resenja,pitanja,tutoriali

Da li bi mi neko mogao pomoci u vezi ovog zadatka(hitno je) ? A zadatak glasi :Napisati program za odredjivanje parnosti broja?
Hvala unaprijed

Nazalost izgleda da niko nece ni da razmisli, svi hoce da dobiju zavrseno :confused:

Kod:
include <iostream.h>

using namespace std;

int main()
{
   int br;
   cin >> br;
   if(br%2==0)
   cout << "Broj je paran!" << endl;
   else
   cout << "Broj je neparan!" << endl;
   return 0;
}
Uzgred, ako nisi znao broj je paran ako je ostatak deljenja sa 2 jednak nuli. Tu nije bilo nikakve mudrosti.
 
Због употребе бинарног система за снимање бројева, могу се применити и операције над битовима.
Kod:
if(broj & 1) {
  // непаран...
} else {
  // паран...
}
односно:
Kod:
inline bool isEven(int val) {
  return !(val & 1);
}
 
evo još jedan način:

Kod:
  TextBox2.Text = TextBox1.Text.Clone(TextBox1.Text.Count - 1)
        If TextBox2.Text = "0" Or TextBox2.Text = "2" Or TextBox2.Text = "4" Or TextBox2.Text = "6" Or TextBox2.Text = "8" Then 
            Label1.Text = "paran"
        Else
            Label1.Text = "neparan"
        End If
_____________________________________________________________________________________________________
1. zadatak
ja u vb radim ovako
Kod:
Kod:
if instr(textbox1.text, "=") then
msgbox("Matematicki izraz je dobar!")
end if
_________________
Console

Dim a$
        a = console.readline
        If instr(a, "=") Then
            console.writeline("Matematicki izraz je dobar")
        else
            console.writeline("Matematicki izraz nije dobar, fali znak '=' na kraju!")
        end if
        Console.ReadKey()
nauci manipulisanje stringova :D
ne znam jel C++ ima "InStr" mislim da nema...ali nauci manipulisanje stringova
 
Poslednja izmena:
Da li neko može da mi objasni ovaj kod.
Kod:
#include <stdio.h>
#define MaxN 10001
int main()
{ int a[MaxN], d[MaxN], n, x, i, min;
scanf("%d", &n);
a[0]=0;
for (i=1;i<=n;i++);
{ scanf("%d", &x);
if ( x==1 ) a[i] = a[i - 1] + 1;
else a[i]=a[i-1];
   
}

for (i=0;i<=n;i++) d[i]=(i - a[i]) + (a[n] - a[i]);
min=d[0];
for (i=1;i<=n;i++) if (d[i]<min) min=d[i];
printf("%d",min);
return 0;
 
Прва ствар коју видим је да је постављено ограничење броја елемената ту само реда ради. Ако се унесе веће n, ствар може пући или не али дефинитивно излази ван оквира предвиђене меморије.

Осим тога, не изгледа ми много смислено. Дефинише се низ a дужине n+1 на основу корисниковог уноса. Први елемент је 0, након чега се уноси n бројева за сваки наредни елемент низа. Ако је унесени број 1, тренутно дефинисани елемент низа је инкремент претходног за 1. У супротном је његова копија. Тако се добија низ a.

Други део трансформие низ a у низ d и налази његов минимум.

Ако се само минимум тражио, није морао ни да формира нови низ...

Цела ствар ми не изгледа смислена. Личи на вежбу коју је неко дао генерички реда ради.
 
На други поглед, ако се на улазу очекују само 0 или 1, може да представља алгоритам који као улаз има бинарни запис неког броја. Тај број има n цифри, а оба низа имају по n+1 елемената.

Низ a представља колико 1-битова је нађено до одређеног стадијума улаза. Низ d је низ чије вредности крећу од укупног броја јединица, наредна се смањује у односу на претходну када у низу a постоји повећање, а расте у односу на претходну када у низу а постоји стагнација. Крајњи елемент низа d је његова дужина-1 од које је одузет број јединица.

Шта ће то коме ког ђавола, ај реци.
 
Da li neko može da mi objasni ovaj kod.
Kod:
#include <stdio.h>
#define MaxN 10001
int main()
{ int a[MaxN], d[MaxN], n, x, i, min;
scanf("%d", &n);
a[0]=0;
for (i=1;i<=n;i++);
{ scanf("%d", &x);
if ( x==1 ) a[i] = a[i - 1] + 1;
else a[i]=a[i-1];
   
}

for (i=0;i<=n;i++) d[i]=(i - a[i]) + (a[n] - a[i]);
min=d[0];
for (i=1;i<=n;i++) if (d[i]<min) min=d[i];
printf("%d",min);
return 0;

Kod:
#include <stdio.h> //ukljucuje heder fajl zaduzen za io operacije
#define MaxN 10001 //definise se vrednost koja ce svako MaxN zameniti sa 10001
int main() //ulazna metoda
{ 
int a[MaxN], d[MaxN], n, x, i, min; definisu se dva niza a i d, sa maksimalnim brojem elemenata od 10001.

scanf("%d", &n); //zahteva se unos realnog broja i smesta na mem lokaciju varijable n

a[0]=0; //prvi elemenat je 0

for (i=1;i<=n;i++) //dok je i manje od unesenog broja, povecavaj i za 1
{ 
scanf("%d", &x); //zahteva se unos realnog broja i smesta u varijablu x

if ( x==1 ) //ako je x jednako 1
a[i] = a[i - 1] + 1; //a[elementi] je jednak prethodnom elementu uvecanom za 1

else a[i]=a[i-1]; // ako nije 1, a[i] je jednak prethodnom elementu
   
}

for (i=0;i<=n;i++) //dok je i manje ili jednako od n, povecavaj i za jedan

d[i]=(i - a[i]) + (a[n] - a[i]); //d[elementi] je jednak broju umanjenom za vrednost elemenata sabran sa poslednjim elementom koji je oduzet od elemenata niza 
 
min=d[0]; //min = jednak prvom elementu
for (i=1;i<=n;i++) //dok je manje ili jednako od n povecavaj i za jedan
{
if (d[i]<min) //ako je svaki od elemenata manji od prvog
min=d[i]; //prvi je jednak tom najmanjem
}
printf("%d",min); //ispisi min
return 0;

Cela funkcija programa je da nadje najmanji broj u nizu koji je "namucen" matematickim operacijama.
 
Cela funkcija programa je da nadje najmanji broj u nizu koji je "namucen" matematickim operacijama.

To sigurno nije funkcija programa.
probaj unos:
5 2 1 3 2 2 2 1 1 1 1

Низ a представља колико 1-битова је нађено до одређеног стадијума улаза.

Slažem se, mada bih dodao da je svaki element niza d ustvari suma pristiglih elemenata različitih od jedinice, sa leve strane trenutne pozicije i elemenata jednakih jedinici iza te pozicije.

Trenutno nemam ideju čemu bi ovakav kod mogao da posluži, osim ukoliko nema nekakve veze sa Microsoftom.
 
To sigurno nije funkcija programa.
probaj unos:
5 2 1 3 2 2 2 1 1 1 1



Slažem se, mada bih dodao da je svaki element niza d ustvari suma pristiglih elemenata različitih od jedinice, sa leve strane trenutne pozicije i elemenata jednakih jedinici iza te pozicije.

Trenutno nemam ideju čemu bi ovakav kod mogao da posluži, osim ukoliko nema nekakve veze sa Microsoftom.

Nisam ni upalio studio, odokativno sam to izkomentarisao.
 
Nisam ni upalio studio, odokativno sam to izkomentarisao.
Па добро, не мораш баш да покренеш програм да би предвидео шта ће да уради. Млад си и пре ти можеш то да радиш него старије генерације. :) Нисам био прошао кроз улаз, хајде да видим.

Kod:
IN:   5 2 1 3 2 2  2 1 1 1 1
A:  0 0 0 1 1 1 1  1 2 3 4 5
D:  5 6 7 6 7 8 9 10 9 8 7 6
Па добро, нисам то ни морао да радим. Јесте, програм на крају налази минимални број у низу D. Али шта је функција тог броја у контексту обављених операција? У горњем примеру је тај минимум једнак броју јединица, била му то намена или не. Може доказом да се провери ал` мене мрзи. :lol:
 
У горњем примеру је тај минимум једнак броју јединица, била му то намена или не. Може доказом да се провери ал` мене мрзи. :lol:

Nije mu to namena, namestio sam primer tako da izlaz bude jednak najvećem unetom broju, što se slučajno poklopilo sa brojem jedinica.
Evo npr. ulaz : 1 1 1 0 0 0 vraća nulu, a to svakako nije broj jedinica.

Kod:
scanf("%d", &x); //zahteva se unos realnog broja i smesta u varijablu x

Za realne brojeve se koriste konverzije f,e i g (jednostruka tačnost) i sa prefiksom L ukoliko se radi o realnim brojevima dvostruke tačnosti.
Konverzija d se odnosi samo na označene cele brojeve (tip int).
 
Poslednja izmena:
Nije mu to namena, namestio sam primer tako da izlaz bude jednak najvećem unetom broju, što se slučajno poklopilo sa brojem jedinica.
Evo npr. ulaz : 1 1 1 0 0 0 vraća nulu, a to svakako nije broj jedinica.



Za realne brojeve se koriste konverzije f,e i g (jednostruka tačnost) i sa prefiksom L ukoliko se radi o realnim brojevima dvostruke tačnosti.
Konverzija d se odnosi samo na označene cele brojeve (tip int).

Au zezas? Ja sam za int koristio %i, a %f za realne, a %d sam mislio da mi nesto ne radi kako treba :lol:
 
Nije mu to namena, namestio sam primer tako da izlaz bude jednak najvećem unetom broju, što se slučajno poklopilo sa brojem jedinica.
Evo npr. ulaz : 1 1 1 0 0 0 vraća nulu, a to svakako nije broj jedinica.
Зашто би му то уопште била намена, када крај низа a ионако показује број јединица? Неки моји коментари су реторички.

Da li ti ja ličim na šaljivdžiju ?!.
Дефинитивно не. Хумор је резервисан за неке друге људе.
 
1.Napišite program koji učitava 10 brojeva, a zatim prvo ispisuje brojeve unesene pod neparnim rednim brojem, a zatim pod parnim rednim brojem!
2.Napišite program koji učitava 10 brojeva a zatim ispisuje zbir susednih brojeva!
3.Napišite program koji ispisuje da li je uneseni niz od 10 brojeva strogo opadajući, ili nije!
4.Napisati program koji učitava 10 brojeva, pa u jedan red ispisuje prane, a u drugi neparne.
5.Napišite program koji učitava 10 brojeva a zatim ispisuje aritmetičke sredine susednih brojeva!
 
Da li ima neko volje da mi odradi ove zadatke,zahvalan bi mu bio :D
1 Napišite program koji učitava 10 brojeva, a zatim prvo ispisuje brojeve unesene pod neparnim rednim brojem, a zatim pod parnim rednim brojem!
2 Napišite program koji učitava 10 brojeva a zatim ispisuje zbir susednih brojeva!
3 Napišite program koji ispisuje da li je uneseni niz od 10 brojeva strogo opadajući, ili nije!
4 Napisati program koji učitava 10 brojeva, pa u jedan red ispisuje prane, a u drugi neparne.
5 Napišite program koji učitava 10 brojeva a zatim ispisuje aritmetičke sredine susednih brojeva!
 
Napišite program koji učitava 10 brojeva, a zatim prvo ispisuje brojeve unesene pod neparnim rednim brojem, a zatim pod parnim rednim brojem!
Napišite program koji učitava 10 brojeva a zatim ispisuje zbir susednih brojeva!
Napišite program koji ispisuje da li je uneseni niz od 10 brojeva strogo opadajući, ili nije!
Napisati program koji učitava 10 brojeva, pa u jedan red ispisuje prane, a u drugi neparne.
Napišite program koji učitava 10 brojeva a zatim ispisuje aritmetičke sredine susednih brojeva!
Ko moze ovo da mi odradi,puno bi mu zahvalan bio :D
 
Ima li pomoci za resavanje mog problema?


Cilj sledeceg zadatka je provera rada sa apstraktnim klasama, visestrukim nasledjivanjem, pokazivacima na klase, pokazivacima na metode izvedenih klasa i pozivom tih metoda preko pokazivaca na funkcije.
Realna predstava zadatka je: Program za izracunavanje cene ucesca na simpozijumu.

Projektovati sledeci sistem klasa:

A. Kreirati apstraktnu klasu kSimpozijum koja sadrzi javne atribute:

- pNaziv - naziv simpozijuma |string|. javni atribut
- pMesto - naziv mesta gde se simpozijum odrzava |string|, javni atribut
- pKotizacija - visina kotizacije |float|, privatni atribut


kao i sledece javne metode:

- Konstruktor - koji upisuje vrednosti koje korisnik unese u atribute.
- fIspis - funkcija koja ispisuje atribute na ekran
(ne prima parametre, ne vraca rezultat)
- fDohvatiKot - funkcija koja vraca vrednost atributa pKotizacija
(ne prima parametre, ne vraca rezultat)
- fUcesce - cista virtualna funkcija koja izracunava cenu ucesca na simpozijumu, sa troskovima smestaja
i prevoza, pri cemu se vrednost za troskove smestaja i prevoza prima iz glavnog programa
(prima 2 parametra i vraca rezultat)
- destruktor

B. Kreirati klasu kUcesnik koja sadrzi javne atribute
- pIme - ime i prezime ucesnika u simpozijumu |string|,
- pUstanova - naziv ustanove u kojoj je ucesnik zaposlen |string|

kao i sledece javne metode:

- Konstruktor - koji upisuje vrednosti koje korisnik unese u atribute
- fPisiUcesnika - funkcija koja ispisuje vrednosti atributa na ekran
(ne prima parametre, ne vraca rezultat)
- destruktor

V. Kreirati klasu iStrucniRad koja nasledjuje klasu kSimpozijum i kUcesnik i sadrzi sledece javne atribute:

- pNazRada - naziv rada |string|
- pBrAutora - broj autora knjige |int|
- pPovez - tip poveza (1- tvrdi povez, 2- meki povez) |int|

kao i metode:

- Konstruktor - koji upisuje vrednosti koje korisnik unese u atribute i nadogradjuje konstruktore klasa
kSimpozijum i kUcesnik
- fIspis - funkcija koja ispituje vrednosti atributa na ekran i poziva funkcije
- fPisiUcesnika klase kUcesnik
- fIspis i fUcesce klase kSimpozijum
(prima 2 parametra, ne vraca rezultat)
- fUcesce - cista virtualna funkcija koja izracunava cenu ucesca na simpozijumu, sa troskovima smestaja
i prevoza, pri cemu se vrednost za troskove smestaja i prevoza prima iz glavnog programa.
Cena se izracunava po sledecem obrascu:
Cena ucesca = Pkotizacija + troskovi smestaja + troskovi prevoza
Ako je rad pisalo vise od dva ucesnika cena kotizacije se smanjuje za 30% po osobi,
s tim da svaki ucesnik placa kotizaciju, odnosno:

Cena Ucesca = (0.7 * (Pkotizacija + troskovi smestaja + troskovi prevoza)) * broj ucesnika
(prima 2 parametra i vraca rezultat)
- destruktor

U glavnom programu:

- kreirati niz pokazivac pokK na klasu iStrucniRad
- kreirati pokazivac pokf na funkciju clanice fIspis
- kreirati interaktivan meni: 1 - upis 2 - ispis
- alocirati memoriju na slobodnom skladistu za niz radova
- pozvati odgovarajucu metodu za upis podataka u niz radova
- ponavljati prethodna dva koraka sve dok korisnik ne unese opciju za ispis
- stampati niz radova pozivom funkcije fIspis pomocu pokazivaca pokf
 
#include <iostream>
#include<vector>

using namespace std;

void ispisi_par_nepar(const vector<double>& niz){
for(int i=0;i<10;i=i+2)
cout<<"Redni broj :"<<i+1<<" :"<<niz.at(i)<<endl; //neparni redni broj
cout<<endl;
for(int i=1;i<10;i=i+2)
cout<<"Redni broj :"<<i+1<<" :"<<niz.at(i)<<endl;//parni
}
void zbir(const vector<double>& niz){
for(int i=0;i<9;i++){
cout<<"Zbir brojeva pod indeksom: "<<i<<" i "<<i+1<<" je :"<<niz.at(i)+niz.at(i+1)<<endl;
}
}
bool opadajuci(const vector<double>& niz){
for (int i=0;i<9;i++){
if(niz.at(i)>niz.at(i+1))
continue;
else
return false;
}
return true;
}
void par_nepar(const vector<double>& niz){
cout<<"Parni brojevi: "<<endl;
for(int i=0;i<10;i++){
if((int)niz.at(i)%2==0)
cout<<niz.at(i)<<" ";
}
cout<<endl<<"Neparni brojevi: "<<endl;
for(int i=0;i<10;i++){
if((int)niz.at(i)%2!=0)
cout<<niz.at(i)<<" ";
}

}
void arit_sredina(const vector<double>& niz){

for(int i=0;i<9;i++){
cout<<"Aritmeticka sredina brojeva pod indeksom: "<<i<<" i "<<i+1<<" je :"<<(niz.at(i)+niz.at(i+1))/2<<endl;
}
}


int main(){
vector<double> brojevi;
cout<<"Unesite 10 brojeva"<<endl;
double temp;
for(int i=0;i<=9;i++){
cout<<"Unesite "<<i+1<<" broj!"<<endl;
cin>>temp;
brojevi.push_back(temp);
cin.clear();
}
ispisi_par_nepar(brojevi);
zbir(brojevi);
if(opadajuci(brojevi))
cout<<"Niz je strogo opadajuci!"<<endl;
else
cout<<"Niz nije strogo opadajuci"<<endl;
par_nepar(brojevi);
arit_sredina(brojevi);

}
 
Dobar dan. Zeleo bi da mi pruzite malu pomoc i da mi odradite makar 2 od ova 4 zadataka. Hvala unapred :)

Napišite program koji učitava 10 brojeva a zatim ispisuje zbir susednih brojeva!
Napišite program koji ispisuje da li je uneseni niz od 10 brojeva strogo opadajući, ili nije!
Napisati program koji učitava 10 brojeva, pa u jedan red ispisuje prane, a u drugi neparne.
Napišite program koji učitava 10 brojeva a zatim ispisuje aritmetičke sredine susednih brojeva!
 

Back
Top