Mislim danasnji ljudi mi nikako nisu jasni ....
Kako nisu? Lijenost.
I sâm sam velika lijenčina, ali kad ovo vidim odmah mi je lakše, znači da ima i gorih... 
Mislim danasnji ljudi mi nikako nisu jasni ....
Kako nisu? Lijenost.
I sâm sam velika lijenčina, ali kad ovo vidim odmah mi je lakše, znači da ima i gorih... 
Koji su redom ovdje glavni prioriteti kako se računa x % - y *w?
I kod ovoga ako mi mozete objasniti x / y / z jel racunam s lijevo na desno ili ?
Šta ima veći prioritet * ili %?
Koji su redom ovdje glavni prioriteti kako se računa x % - y *w?
I kod ovoga ako mi mozete objasniti x / y / z jel racunam s lijevo na desno ili ?
Šta ima veći prioritet * ili %?
http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence
Savjetujem ti da tablicu ne ucis napamet, zapravo savjetujem ti ni da ne gledeas tablicu kada pises svoj kod. Ako hoces napisati neki izraz i imas nejasnoca, radije stavi zagrade bez obzira jesu li one potrebne ili ne. Tako je kod puno razumljiviji.
Koji su redom ovdje glavni prioriteti kako se računa x % - y *w?
I kod ovoga ako mi mozete objasniti x / y / z jel racunam s lijevo na desno ili ?
Šta ima veći prioritet * ili %?
http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence
EDIT: lol isti link smo stavili, samo što ja po običaju zujim... :D
evo još malo:
http://en.cppreference.com/w/cpp/language/operator_precedence
Zašto ne provjeriti sam prioritet operatora, tako se lakše nauči, nego iz tablica.
printf("%d\n", 7%3*4);
printf("%d", 4*7%3);
Pošto u prvom slučaju ispisuje 4, a u drugom 1 zaključak je:
- Isti prioritet, s lijeva na desno.
Dalje možeš 7%4-3*2
Kad izbaci -3, a hoće objašnjenje je samo jedno: 3-6=-3, a to znači da je obrađen modulo i množenje prvo, oduzimanje iza toga.
Zaključak: operator - ima niži prioritet.
Riješiš mu zadatke, položi i dobiješ još jednog tukca s bezvrijednom svjedodžbom ili diplomom. Nedavno je jedan na forumu tražio da mu riješe ulazni zadatak za razgovor za posao. Koliko daleko glupost ide...
Riješiš mu zadatke, položi i dobiješ još jednog tukca s bezvrijednom svjedodžbom ili diplomom. Nedavno je jedan na forumu tražio da mu riješe ulazni zadatak za razgovor za posao. Koliko daleko glupost ide...
Može link da ne moram tražit ? 
Pozdrav, ekipa imam problem naime zadatak koji imam jest unjeti rečenicu u provjeriti jel ona palindrom ili nije e sad ja sam napiso program koji radi za neke rijeći a za neke nažalost ne npr."anavolimilovna" veli da je palindom ali i za "ananevolimilovana" također veli da je palindrom evo moj kod je ovo, pa ako ima netko dobar da progleda i proba rješit problem:
#include <iostream>
using namespace std;
int main()
{
char a[100];
int i=0,p=0;
cout <<"Dragi korsinice, u ovom progremu se NE koristi razmak!"<<endl;
cout <<"unesite svoju recenicu: ";
gets(a);
while(a[p+1]!='\0')
p++;
cout<<"Vasa recenica ispisana obrnutim redoslijedom znakova: ";
for (i=p;i>=0;i--)
cout <<a[i];
cout<<endl;
for (i=0;i>=0;i--)
if (a[i] == a[p])
{
cout<<"Vasa recenica je PALINDROM!"<<endl;
}
else
{
cout<<"Vasa recenica NIJE PALINDROM!"<<endl;
}
system("pause");
return 0;
}
Pozdrav, ekipa imam problem naime zadatak koji imam jest unjeti rečenicu u provjeriti jel ona palindrom ili nije e sad ja sam napiso program koji radi za neke rijeći a za neke nažalost ne npr."anavolimilovna" veli da je palindom ali i za "ananevolimilovana" također veli da je palindrom evo moj kod je ovo, pa ako ima netko dobar da progleda i proba rješit problem:
#include <iostream>
using namespace std;
int main()
{
char a[100];
int i=0,p=0;
cout <<"Dragi korsinice, u ovom progremu se NE koristi razmak!"<<endl;
cout <<"unesite svoju recenicu: ";
gets(a);
while(a[p+1]!='\0')
p++;
cout<<"Vasa recenica ispisana obrnutim redoslijedom znakova: ";
for (i=p;i>=0;i--)
cout <<a[i];
cout<<endl;
for (i=0;i>=0;i--)
if (a[i] == a[p])
{
cout<<"Vasa recenica je PALINDROM!"<<endl;
}
else
{
cout<<"Vasa recenica NIJE PALINDROM!"<<endl;
}
system("pause");
return 0;
}
Polazi od nule, vrti se dok je i veće ili jednako nuli, i smanjuje se za jedan, hoće li to raditi!?
ha neće, ali mi je ovako jedino kako tako proradilo
Po headeru vidim da radiš u C++, pa onda i iskoristi prednosti C++ da olakšaš sebi posao. Ovako:
#include<iostream>
#include<string>
using namespace std;
bool Palindrom(string recenica)
{
for (int i = 0; i < recenica.length()/2; i++)
{
if(recenica[i] != recenica[recenica.length()-1-i])
return false;
}
return true;
}
int main()
{
string recenica;
cin>> recenica;
bool isPalindrom = Palindrom(recenica);
if(isPalindrom)
{
cout<< "Palindrom" << endl;
}
else
{
cout<< "Nije palindrom" << endl;
}
return 0;
}
Još dodati uklanjanje razmaka, interpukcije i svesti na mala slova i to je to.
A ako želiš ostati na char nizu, primjeni ovaj algoritam iz funkcije Palindrom, stvar je ista.
ma tu i je problem jer ja bool Palindrom nemogu koristit jer prof. to ne dozvoljava jer to nismo još učili
ma tu i je problem jer ja bool Palindrom nemogu koristit jer prof. to ne dozvoljava jer to nismo još učili
int Palindrom(char* niz)
{
for(int i=0; i<duljina/2; i++)
{
if(niz[i] != niz[duljina-1-i]
return 0;
}
return 1;
}
Ej, da sam ti profa, sad bi ti zavilašio asa kao kuća, i to s guštom, analiziraj ovu petlju, iteraciju po iteraciju, inače će ti on zavilašiti asa ako skuži da ne znaš što si naspisao.
Jednostavno provjeravaš prvo slovo sa zadnjim, drugo sa predposljednjim i sve po redu, ako naletiš na nejednakost funkcija se prekida sa return 0, odnosno vraća 0, ako sva
mjesta pašu izlazi se iz petlje i funkcija se prekida sa return 1, odnosno vraća 1.
Duljinu char niza odrediti znaš, dakle, sad imaš sve, ako ne želiš zasebnu funkciju, utrpaj ovu petlju u main i to je to, naravno onda ideš bez return, deklariraš zasebnu int varijablu koju postaviš prije petlje na 1, a kojoj u if testu pridružuješ vrijednost 0 ako nije palindrom.
Riješiš mu zadatke, položi i dobiješ još jednog tukca s bezvrijednom svjedodžbom ili diplomom. Nedavno je jedan na forumu tražio da mu riješe ulazni zadatak za razgovor za posao. Koliko daleko glupost ide...
Ma da, tako se ne radi, ne izbacuje monitor rješenja, ovaj dečko sa palindromom je druga priča. došao je sa svojim kodom, pomučio se za njega, pa kad se potrudio da skuži kolko je napisao, nije mi krivo i prenjeti mu ako znam, jer će naučiti.
Napišite program koji rješava problem razmnožavanja zečeva pomoću rekurzivnog poziva funkcije, prema algoritmu:
- n je broj mjeseci koji je protekao od početka razmnožavanja, f(n) je broj parova zečeva nakon n mjeseci
- za n=0 i n=1, f(n)=n
- za n>1, broj parova zečeva je f(n) = f(n-1) + f(n-2)
Zatim napišite program koji isti problem rješava iterativno.
Kada unesem f(7)=16 , zar ne bih trebalo izbaciti 13?
#include<iostream>
using namespace std;
long int rekurzija(int n)
{
if (n==0 || n==1)
return 1;
else
return rekurzija(n-1)+(n-2);
}
void main()
{
int x;
cout<<"Unesite broj mjeseci: ";
cin>>x;
if(x<1)
{
cout<<"Unijeli ste neispravan broj.\n";
}
else
{
cout<<"Broj zeceva nakon: "<<x<<" mjeseca/i je: "<< rekurzija(x)<<"\n";
}
system("PAUSE");
}
Napišite program koji rješava problem razmnožavanja zečeva pomoću rekurzivnog poziva funkcije, prema algoritmu:
- n je broj mjeseci koji je protekao od početka razmnožavanja, f(n) je broj parova zečeva nakon n mjeseci
- za n=0 i n=1, f(n)=n
- za n>1, broj parova zečeva je f(n) = f(n-1) + f(n-2)
Zatim napišite program koji isti problem rješava iterativno.
Kada unesem f(7)=16 , zar ne bih trebalo izbaciti 13?
#include<iostream>
using namespace std;
long int rekurzija(int n)
{
if (n==0 || n==1)
return 1;
else
return rekurzija(n-1)+(n-2);
}
void main()
{
int x;
cout<<"Unesite broj mjeseci: ";
cin>>x;
if(x<1)
{
cout<<"Unijeli ste neispravan broj.\n";
}
else
{
cout<<"Broj zeceva nakon: "<<x<<" mjeseca/i je: "<< rekurzija(x)<<"\n";
}
system("PAUSE");
}
evo ti rješenje:
#include<iostream>
using namespace std;
long int rekurzija(int n)
{
if (n==0)
return 0;
else if(n==1)
return 1;
else
return rekurzija(n-1) + rekurzija(n-2) ;
}
int main()
{
int x;
cout<<"Unesite broj mjeseci: ";
cin>>x;
if(x<1)
{
cout<<"Unijeli ste neispravan broj.\n";
}
else
{
cout<<"Broj zeceva nakon: "<<x<<" mjeseca/i je: "<< rekurzija(x)<<"\n";
}
return 0;
}
Pitanje, kako da zapišem datum, a da poslije mogu ga usporediti s nekim drugim datumom?
npr da mi se ispišu neke strukture koje imaju u sebi datum veći od 23.9.2012. , tj. znaci datum poslije od 23.9.2012?
ja sam pisal cin>>datum; (upisal bi npr 20121025) format god., mj., dan al to mi je malo glupo
Htio bi da mogu normalno napisati 25 10 2012 i onda usporediti s 23 09 2012, i ako je taj datum poslije njega da mi ga ispise?
Ja bi ručno to ovako napisao:
1. dva int polja veličine 3
2. unos ovako cin>> polje[0] >> polje[1] >> polje[2] (dakle unos spaceom dan mjesec godina)
3. pozvao bool funkciju Usporedba(int* polje1, int* polje2)
4. u funkciji primjenio ovu logiku:
if(polje1[2]>polje2[2])
return false;
else if(polje[1]<polje2)
return true;
else
{
if (polje1[1]>polje2[1])
return false;
else if(polje[1]<polje2[1])
return true;
else
{
if(polje1[0]>=polje2[0])
return false;
}
return true; // na kraju funkcije iza if grananja
Dakle, uspoređuje se drugi datum sa prvim - ako je veći vraća true
Ovako bi ja napravio ručno, a netko će već potegnuti ugrađene funkcije - nisam radio s njima.
Varijacija na temu, ovaj puta sa strukturama:
#include <iostream>
#include <cstdlib>
using namespace std;
struct DATUM
{
int dan,
mjesec,
godina;
};
/*
vrati 1 ako je d2 veci od d1
vrati 0 ako su datumi jednaki
vrati -1 ako je d2 manji od d1
*/
int usporedi(DATUM d1, DATUM d2)
{
if (d2.godina > d1.godina)
return 1;
if (d2.godina == d1.godina)
{
if (d2.mjesec > d1.mjesec)
return 1;
if (d2.mjesec == d1.mjesec)
{
if (d2.dan > d1.dan)
return 1;
if (d2.dan == d1.dan)
return 0;
}
}
return -1;
}
int main()
{
DATUM datum1={21, 12, 2012}, datum2;
cout<<"Unesite danasnji datum: ";
cin>>datum2.dan;
cin>>datum2.mjesec;
cin>>datum2.godina;
if (usporedi(datum1, datum2)>0)
cout<<"Cestitamo prezivjeli ste smak svijeta.\n";
else
cout<<"Smak svijeta vas tek ocekuje.\n";
system("pause");
return 0;
}
EDIT: znao sam da je prvobitno rješenje bilo prejednostavno da bi bilo točno, no dobro, sada bar radi kako treba...
Ovo je odličan zadatak da si malo ponovim operatore 
#include <iostream>
using namespace std;
class Datum{
private:
int dan, mjesec, godina;
public:
Datum(){}
Datum(int d, int m, int g) : dan(d), mjesec(m), godina(g) {}
friend bool operator < (const Datum& d1, const Datum& d2);
friend bool operator > (const Datum& d1, const Datum& d2);
friend bool operator == (const Datum& d1, const Datum& d2);
friend istream& operator >> (istream& izlaz, Datum& d);
friend ostream& operator << (ostream& izlaz, Datum d);
};
bool operator < (const Datum& d1, const Datum& d2){
if(d1.godina < d2.godina) return true;
if(d1.mjesec < d2.mjesec) return true;
if(d1.dan < d2.dan) return true;
return false;
}
bool operator > (const Datum& d1, const Datum& d2){
if(d1.godina < d2.godina) return false;
if(d1.mjesec < d2.mjesec) return false;
if(d1.dan <= d2.dan) return false;
return true;
}
bool operator == (const Datum& d1, const Datum& d2){
if(d1.godina == d2.godina && d1.mjesec && d2.mjesec && d1.dan == d2.dan)
return true;
return false;
}
istream& operator >> (istream& ulaz, Datum& d){
ulaz >> d.dan >> d.mjesec >> d.godina;
return ulaz;
}
ostream& operator << (ostream& izlaz, Datum d){
izlaz << d.dan << "." << d.mjesec << "." << d.godina;
return izlaz;
}
int main(){
// test podaci
Datum d1(1, 1, 1111), d2(2, 1, 1111), d3;
if(d1 < d2)
cout << d1 << " je manji od " << d2 << endl;
if(d1 > d2)
cout << d1 << " je veći od " << d2 << endl;
if(d1 == d2)
cout <<"Datumi su isti! " << endl;
// test s unosom podataka
cin >> d3;
if(d1 < d3)
cout << d1 << " je manji od " << d2 << endl;
if(d1 > d3)
cout << d1 << " je veći od " << d2 << endl;
if(d1 == d3)
cout <<"Datumi su isti! " << endl;
return 0;
}
Hm, Tracer je ovo riješio klasom, i preopterećenjem operatota, svaka čast
To je to! Hvala svima 
riješeno je već prije ali evo ti još jedan način samo preko stringa.
u komentarima objašnjeno
#include <iostream>
#include <string>
#include <ctype.h>
using namespace std;
class Date {
public:
Date(string date);
~Date() {}
bool compare(Date& dateToCompare) const;
string getData(int index) {return data[index];}
private:
//array data velicina 3
//za dan , mjesec , godinu
//pri komparaciji imaju vaznost
//od kraja prema pocetku :: vidi nize
string data[3];
};
Date::Date(string date)
{
//formiraj datum iz stringa
//s isalnum zanemari interpunkciju
int dateIndex = 0;
for(int index = 0 ; index < 3 ; index++)
{
while( isalnum(date[dateIndex]) )
{
data[index]+= date[dateIndex];
dateIndex++;
}
dateIndex++;
}
}
bool Date::compare(Date& dateToCompare) const
{
//kompariraj dva datuma
// s kraja data[2] --- prema data[0]
//veca je vaznost s desna prema lijevom
// dan <--- mjesec <--- godina
for(int i = 2; i > -1 ; i--)
{
if( data[i] > dateToCompare.data[i])
return true;
else if( data[i] == dateToCompare.data[i])
continue;
else
return false;
}
cout<<" jednaki su ";
return false;
}
int main()
{
cout<<"format datuma za unos 12.11.2008" << endl;
cout<<"upisi prvi datum : ";
string datum1;
cin>> datum1;
cout<<"upisi drugi datum : ";
string datum2;
cin>> datum2;
Date Datum1(datum1);
Date Datum2(datum2);
cout<< boolalpha;
cout<< "prvi je datum veci ? : " <<
Datum1.compare(Datum2);
return 0;
}
sada otvaram procese s ovim kodom:
HWND handle = FindWindow(0 ,TEXT("Internet explorer"));
GetWindowThreadProcessId(handle,&ID);
HANDLE hProcess = OpenProcess(PROCESS_VM_WRITE|PROCESS_VM_OPERATION|PROCESS_VM_READ, FALSE,ID);
hoću ovo modificirati da ne otvaram po imenu aplikacije, nego po imenu procesa, npr ovdje ie.exe
nisam baš uspio naći korisnih stvari na googlu :( može pomoć :)
WinExec("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe", SW_SHOW);
ne kužim kak bi ti to točno napisao u programu? di je tu ID...?
Pa dao sam ti točnu liniju coda koju trebaš napisati. Ako baš inzistiraš na CreateProcess funkciji onda;
STARTUPINFO startInfo;
PROCESS_INFORMATION processInfo;
char CommandLine[255] = "C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe";
GetStartupInfo(&startInfo);
if (!CreateProcess(NULL, CommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &startInfo, &processInfo)) {
// Ne mogu kreirati proces!
}
sada otvaram procese s ovim kodom:
HWND handle = FindWindow(0 ,TEXT("Internet explorer"));
GetWindowThreadProcessId(handle,&ID);
HANDLE hProcess = OpenProcess(PROCESS_VM_WRITE|PROCESS_VM_OPERATION|PROCESS_VM_READ, FALSE,ID);
hoću ovo modificirati da ne otvaram po imenu aplikacije, nego po imenu procesa, npr ovdje ie.exe
nisam baš uspio naći korisnih stvari na googlu :( može pomoć :)
Čekaj malo, ti želiš dobiti handle od nekog procesa koji je već pokrenut?
Pogledaj EnumProcesses funkciju
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623%28v=vs.85%29.aspx
EnumProcesses je samo brojanje. Npr;
#include <windows.h>
#include <iostream>
using namespace std;
bool CALLBACK EnumWndProc( HWND hwnd, LPARAM lParam ){
char buffer[512], name[256];
GetWindowText( hwnd, buffer, 512 );
GetWindowText(hwnd, name, 255);
// if window title is not empty string...
if (strlen(name) > 0)
cout << buffer << endl;
return true;
}
int main(){
EnumWindows((WNDENUMPROC)EnumWndProc,NULL);
return 0;
}
Ako se baš želi naći handle procesa onda to ide preko caption-a (FindWindow).
EnumProcesses je samo brojanje. Npr;
Ako se baš želi naći handle procesa onda to ide preko caption-a (FindWindow).
Znam što je EnumProcesses, ali je napomenuo i da ne želi ići preko window captiona, nego pomoću imena izvršne datoteke, a za to mora izlistati sve procese i onda provjeriti ime izvršne datoteke svakoga od njih, kako bi npr dobio sve ie.exe procese.