Nije riječ o nasljeđivanju već inicijalizaciji. Gornja linija identična je ovom codu:
Monster (int n) {
health = n;
}
Nije riječ o nasljeđivanju već inicijalizaciji. Gornja linija identična je ovom codu:
Monster (int n) {
health = n;
}
Mozete pomoci jedan zadatak,da mi kazete kako se rjesava samo....
Pozitivne cijele brojeve nazivamo sretnim ako zadovoljavaju sledeci kriterij : Ako broj zamjenimo sa sumom kvadrata njegovig cifara i ponavljajuci taj postupak dobijemo broj 1.Brojevi koji nisu sretni nikada ne zavrse taj proces tj. proces zavrsi u petlji.
Primjer sretnog broja 19:
1*1+9*9=82
8*8+2*2=68
6*6+8*8=100
1*1+0*0+0*0=1......
Vas zadatak je da za zadata dva cijela broja Ai B odredite koliko ima sretnih brojeva u opsegu od A do B,ukljucujuci i brojeve A i B.Mozete pretpostaviti da ako za neki zadati broj N<=1.000.000 ni nakon 8 izvrsenih iteracija ne dobijemo broj 1,da je taj broj N nesretan broj.
Primjer 1 :
Ulaz:
1
20
Izlaz:
5
Sretni brojevi izmedju 1 i 20 su : 1,7,10,13,19...
Primjer 2 :
Ulaz:
50
100
Izlaz:
9
Sretni brojevi izmedju 50 i 100 su : 68,70,79,82,86,91,94,97,100..
Možeš to rješiti preko ovog algoritma koji koristi string varijable da bi računao kvadrate char vrijednosti na indexima string varijable.
Za pretvaranje char vrijednosti u double koristi se ascii dekadska vrijednost char znaka, a za pretvorbu double u string koristi se stringstream.
#include <iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string broj;
cin>> broj;
double suma = 0;
int brojac = 0;
stringstream s;
while(suma != 1 && brojac != 8)
{
suma = 0;
for(int i=0; i<broj.length(); i++)
{
suma += pow(((double)broj[i])-48, 2);
}
s<< suma;
broj = "";
broj = s.str();
s.str(string());
brojac++;
}
if(suma == 1)
{
cout<< "Sretni broj!" << endl;
}
else
{
cout<< "Nije!" << endl;
}
return 0;
}
Kako da u dev c++ napravim multi file program?
u tutorialu pise "In Visual Studio 2005 Express, right click on “Source Files” in the Solution Explorer window on the left, and choose Add -> New Item. Give the new file a name, and it will be added to your project."
ali kako da to izvedem u dev c++
Nista uspio sam
Ja sam napravio gresku u kodu.
@Rattner
Vidim da ti je u međuvremenu odgovoreno na većinu nedoumica vezano za <list>.Ja nešto u gužvi ovih dana a dosta i izbivao iz ZG-a pa onda samo postam ono što sam ti naveo vezano za C++11 lambdu.Pošto nije full implementirana u svim komp. napravio sam kratki prikaz na online kompajleru http://ideone.com/mS3Tx. Imaš dolje pri kraju strane opciju upload with new input pa idi na 1 ili 2. Radi pojednostavljenja , napravio sam listu integera umjesto Dragona ali vidio si da je to ionako svejedno. Bitno je da vidiš koliko možeš skratiti kod te putem anonimne funkcije automatski olakšati čitanje istog onom tko ga želi proučiti.
/*kompajlirano sa C++11 implementacijom*/
#include<iostream>
#include<list>
using namespace std;
int main()
{
list<int> dragonList;
dragonList = {10 , 9 , 5 , 6 , 1 , 2 , 4 , 3 , 8 , 7};
int AscendDescend;
cout<< "press 1 for Ascending or 2 for Descending : ";
cin>> AscendDescend;
// BEGIN Lambda C++11
dragonList.sort( [AscendDescend](int a , int b) {
switch(AscendDescend)
{
case 1 :
{
return (a < b);
break;
}
case 2 :
{
return (a > b);
break;
}
}
});
// END Lambda C++11 cijeli sort je sveden na
// nesto vise od 10 linija koda
list<int>::iterator it;
cout<< endl << "list : " << endl;
for(it=dragonList.begin() ; it!=dragonList.end() ; it++)
{
cout<< *it << endl;
}
return 0;
}
Dakle i C++ je dobio lambda izraze.
A to nas dovodi do anonimnih metoda, kao si ih ti upotrijebio, baš sam probao i u mom MS Visual C++ 2010 Express radi.
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> nizBrojeva;
for(int i=0; i<10; i++)
{
nizBrojeva.push_back(i);
}
for(int i=0; i<10; i++)
{
cout<< nizBrojeva[i] << " ";
}
cout<< endl;
sort(nizBrojeva.begin(), nizBrojeva.end(), [] (int i, int j) -> bool{return i>j;});
for(int i=0; i<10; i++)
{
cout<< nizBrojeva[i] << " ";
}
return 0;
}
Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.
EDIT: @floki
baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.
#include <iostream>
#include <string>
int UserInput1(){
using namespace std;
int UserInput1;
cout << "Input a number" << endl;
cin >> UserInput1;
return UserInput1;
}
int UserInput2(){
using namespace std;
int UserInput2;
cout << "input a number" << endl;
cin >> UserInput2;
return UserInput2;
}
int MOperator(){
using namespace std;
char MOperator;
cout << "Input mathematical operator (+,-,/,*)" << endl;
cin >> MOperator;
return MOperator;
}
int CalcResult(){
int MOperator;
int UserInput2;
int UserInput1;
int CalcResult;
if (MOperator== '+')
CalcResult = UserInput1 + UserInput2;
if(MOperator =='-')
CalcResult = UserInput1 - UserInput2;
if(MOperator =='*')
CalcResult = UserInput1 * UserInput2;
if(MOperator =='/')
CalcResult = UserInput1 / UserInput2;
return 0;
}
int main(){
using namespace std;
UserInput1();
UserInput2();
MOperator();
CalcResult();
cout << CalcResult;
system("pause");
return 0;
}
Evo kod za kalkulator koji sam pokusao napraviti
Nakon nekog vremena uspio sam da ga natjeram da radi(otisao sam se istusirati i svatio sam gdje je greska)
Ali ne izracunava tacno i stalno izbacuje 1 kao odgovor.
Gdje je problem?
int CalcResult(){
int MOperator;
int UserInput2;
int UserInput1;
int CalcResult;
if (MOperator== '+')
CalcResult = UserInput1 + UserInput2;
if(MOperator =='-')
CalcResult = UserInput1 - UserInput2;
if(MOperator =='*')
CalcResult = UserInput1 * UserInput2;
if(MOperator =='/')
CalcResult = UserInput1 / UserInput2;
return 0;
}
Ne znam je li može do toga biti, a vjerovatno je. Gore deklariraš MOperator kao int, ujesto kao char, jer ga tu u upitima porediš sa charovima
A i BTW gdje ti čuvaš returnane varijable?
int CalcResult;
if (MOperator== '+')
CalcResult = UserInput1 + UserInput2;
if(MOperator =='-')
CalcResult = UserInput1 - UserInput2;
if(MOperator =='*')
CalcResult = UserInput1 * UserInput2;
if(MOperator =='/')
CalcResult = UserInput1 / UserInput2;
return 0;
}
Evo kod za kalkulator koji sam pokusao napraviti
Nakon nekog vremena uspio sam da ga natjeram da radi(otisao sam se istusirati i svatio sam gdje je greska)
Ali ne izracunava tacno i stalno izbacuje 1 kao odgovor.
Gdje je problem?
Pokusaj taj dio uraditi sa Select Case...
Kao što je hambrle rekao, problem je u deklaraci varijable MOperator, koja mora biti tipa char.
Kao što je hambrle rekao, problem je u deklaraci varijable MOperator, koja mora biti tipa char.
Znam hvala
nego sam u zurbi ukucao int.
EDIT:opet isti problem.
U žurbi?, ne programira se na brzinu, polako, korak po korak, nemoj "se tjerati" da ti neke stvari na brzinu pređu u rutinu, polako, kasnije ti se neće lako desiti da znak deklarišeš kao cjeli broj, što on po ASCII-u i jeste, ali to je druga stvar. Samo polako i razmišljaj dok radiš.
BTW, kakvi su to uvjeti, tu se ne zna ko pije, a ko plaća, kao što je Intelovac rekao, radi sa switch-om.
switch(Moperator)
{
case '+':
//To Do
break;
case '-':
//To Do
break;
default:
cout<<"Pogresan upis"<<endl;
break;
}
http://www.cplusplus.com/doc/tutorial/control/
Skrolaj do:
Znam hvala
nego sam u zurbi ukucao int.
EDIT:opet isti problem.
Nije problem u tome što koristiš int zato što u njega ionako stane cijeli char. Problem su ti povratne vrijednosti koje nigdje ne koristiš.
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int UserInput1()
{
int UserInput1;
cout << "Input a number" << endl;
cin >> UserInput1;
return UserInput1;
}
int UserInput2()
{
int UserInput2;
cout << "input a number" << endl;
cin >> UserInput2;
return UserInput2;
}
int MOperator()
{
char MOperator;
cout << "Input mathematical operator (+,-,/,*)" << endl;
cin >> MOperator;
return MOperator;
}
int CalcResult(int UserInput1, int UserInput2, int MOperator)
{
int CalcResult;
if (MOperator== '+')
CalcResult = UserInput1 + UserInput2;
if (MOperator =='-')
CalcResult = UserInput1 - UserInput2;
if (MOperator =='*')
CalcResult = UserInput1 * UserInput2;
if (MOperator =='/')
CalcResult = UserInput1 / UserInput2;
return CalcResult;
}
int main()
{
int input1 = UserInput1();
int input2 = UserInput2();
int m_operator = MOperator();
cout << CalcResult(input1, input2, m_operator) << endl;
system("pause");
return 0;
}
I zašto si svugdje stavljao "using namespace std;" kad ti je to dovoljno jednom na početku?
Sam bog zna, po kakvoj "knjizi" uči?
Ne znam je li može do toga biti, a vjerovatno je. Gore deklariraš MOperator kao int, ujesto kao char, jer ga tu u upitima porediš sa charovima
Nema veze, char ide 0-255 int ide 0-4294967295 (govorim o unsigned varijablama). Oba su brojevi samo što je jedan ograničeniji.
A i BTW gdje ti čuvaš returnane varijable?
Ovo je problem.
Da, lik fino vrati nulu...
Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.
EDIT: @floki
baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.
Tako je, dostupno je kroz boost, ali je boost tako i tako svojevrsni testni poligon za neke stvari koje onda dodu u novom standardu. Nisam znao da su lambda izrazi u novom dosli, thx. ;)
Ok hvala.
Ma idem po onom tut sa learncpp.com
govore tu kao "a sta ako korisnik upise pogresan znak "
i u tutorialu pise da ce to kasnije objasniti.
Nista hvala.
A pokusao sam samostalno bez gledanja u kod na tutorialu.
Senaid
Ma zapravo je lambda već dugo prisutna kroz Third party libraries (boost) ali je kroz C++11 standard postala sastavni dio jezika službeno i bit će u nadolazećim implementacijama kompajlera podržana kao core C++.
EDIT: @floki
baš smo nekako u isto vrijeme postali pa nadodajem da na code::blocks-u 10.05 ja importam i dalje lambdu kroz boost a na VS 2008 nisam niti probavao.
OBAVIJEST:: Stavio jučer MinGW gcc 4.6.1 u code::blocks i lambda radi po defaultu bez boost-a.
Google kaže " it supports most of C++11's features ".
Pa ako je netko zaglavio na gcc 4.4.1 kao i ja te ga zaboravio updateati.
Ok wtf
napravim program sve kako treba
ono test da se vidi jel znam nesto.
Uradim sve
drugi zadatak funkcije u odvojenom fajlu
uradim
onda ide kao headerfiles
ja to uradim
uklonim greske
krenem compile and run
i program se uopste ne otvori.
dole pise kao da su funkcije visestruko definisane
multiple definition of `ReadNumber()'
evo jedna od gresaka
onda sam kopirao kod sa tutoriala
ista imena za fajlove koristio
i opet isto
http://www.learncpp.com/cpp-tutorial/111-comprehensive-quiz/
evo ovde je to
dole pod solutions pod 3
neznam gdje je problem
U čemu radiš? Meni je sve kako treba biti.
Dakle napraviš projekt, i sve ove tri datoteke dodaš u projekt.
U čemu radiš? Meni je sve kako treba biti.
Dakle napraviš projekt, i sve ove tri datoteke dodaš u projekt.
radim u dev c++
Ja mislim da on tu grješi, uvjek muke sa dodavanjem datoteka u projekte imaju početnici.
radim u dev c++
File->New->Project
odaberi "empty project"
Tražit će te ime projekta, ime je svejedno, upiši što želiš.
Onda File->New->Source File
kada te pita "Add new file to the current project" odgovori "yes". I tako za svaku od 3 datoteke.
Sve datoteke spremi sa imenima koja se nalaze na stranici sa koje učiš. Kompajliraj i deri.
Evo i slike:
radim u dev c++
File->New->Project
odaberi "empty project"
Tražit će te ime projekta, ime je svejedno, upiši što želiš.
Onda File->New->Source File
kada te pita "Add new file to the current project" odgovori "yes". I tako 3 puta za svaku od 3 datoteke.
Sve datoteke spremi sa imenima koja se nalaze na stranici sa koje učiš. Kompajliraj i deri.
Znam vec to sa source file
koristio sam sa jednostavnijim header files.
Jednostavno nece
Znam vec to sa source file
koristio sam sa jednostavnijim header files.
Jednostavno nece
Pogledaj slike gore što sam stavio, i prebaci mi kompletan projekt i sve source datoteke u neku arhivu pa na net da mogu skinuti i pregledati što si ti tu napravio.
Znam vec to sa source file
koristio sam sa jednostavnijim header files.
Jednostavno nece
Pogledaj slike gore što sam stavio, i prebaci mi kompletan projekt i sve source datoteke u neku arhivu pa na net da mogu skinuti i pregledati što si ti tu napravio.
nema potrebe.
Nekako sam uspio nzm kako.
Nista dmrnut cu po hvala tipci.
I sta ako si naklepao a da ne znas sta si u biti uradio, ne moze to tako, nego ispocetka po slikama kako je komadant rekao. 