C/C++

Xibalba

Corona Australis
Член од
24 јануари 2012
Мислења
6.090
Поени од реакции
11.494
Дали е точна задачава

Код:
3.dali zbirot na cifrite na nekoj broj e deliv so 5;
{
int n,i,n1,s,
cin>>n;
s=0;
for (i=1; i<=n;i++)
{
n1=n%10;
s+=n1;
n=n/10;
}
if (S%5==0) cout<<se deli;
else cout <<ne se deli;
return 0;
}
Изгледа не е.
Не знам зошто бројачот i ти оди од 1 до внесениот број n. Што ако внесеш 1.000.000?
 

Xibalba

Corona Australis
Член од
24 јануари 2012
Мислења
6.090
Поени од реакции
11.494
Ќе можеш да напишеш како би била точната, бидејќи утре правам инф тест.
Тешка работа, немам Ц компајлер при рака.
Ама ќе ти дадам хинт, пробај со while или do/while циклус наместо for.
Нешто од типот

while (n >0)
{
n1=n%10;
s+=n1;
n=n/10;
}

За на факултет ти треба?
 
L

Löwe

Гостин
Тешка работа, немам Ц компајлер при рака.
Ама ќе ти дадам хинт, пробај со while или do/while циклус наместо for.
Нешто од типот

while (n >0)
{
n1=n%10;
s+=n1;
n=n/10;
}

За на факултет ти треба?
Прва година гимназија. :(
 
Член од
31 март 2012
Мислења
47
Поени од реакции
9
Ќе можеш да напишеш како би била точната, бидејќи утре правам инф тест.
Еве како би била точна задачата.

#include <iostream>

using namespace std;

int main()
{
int n, n1, s;
cin >> n;
s = 0;
while(n>0)
{
n1=n%10;
s+=n1;
n=n/10;
}
if (s%5==0) cout<<"se deli";
else cout <<"ne se deli";
return 0;
}
 
Член од
7 јануари 2008
Мислења
5.366
Поени од реакции
804
Ќе можеш да напишеш како би била точната, бидејќи утре правам инф тест.
Бидејќи веќе ти ја решија задачата сакам да ти дадам еден совет за полесно да ги решаваш ваквите задачи. Значи, доколку имаш ваква задача (дали некој број е делив со друг, дали цифрите на еден број се деливи со друг, да се определи бројот на цифрите на N-цифрен број итн) секогаш прво пробај да ја решиш на лист хартија, да го смислиш алгоритмот односно постапката како проблемот би се трансформирал во код. Непробувај да ги учеш кодовите на памет, така нема многу да постигнеш :)
Поради тоа што си прва година и си почетник во програмирањето, ако ти треба помош или материјали за учење (на македонски) пиши ми пп и ќе ти пратам.
 
Член од
22 октомври 2011
Мислења
65
Поени од реакции
10
Нов сум во програмирање и ај ако можи помош малце...
значи сакам да напрам програма која ќе решава задача од математика. И сега сакам прво корисникот да внеси што е дадено во задачата ама тука кажва дека има грешка и неможи да споредва pointer со interger (кај if(a1 == "P"))
{
char a1,a2;
double P,V,B,M;
cout << "Sto e dadeno vo zadacata ?(P, V, B, M)" <<endl;
cin >> a1;
if(a1 == "P"){
cout << "P = " <<endl;
cin >> P;
}
else if(a1 == "V"){
cout << "V = " <<endl;
cin >> V;
}


}
зато ај ако можи малце помош :icon_mrgr:
 
Г

Грејвдигер

Гостин
Еден начин ти е да ги ставиш сите карактери, а кога ќе треба да внесеш вредност за P, V, B или M ќе ги кастираш во int, double или што и да ти треба.

Втор начин да работиш со кејсови. За P внеси 1, за V - 2, B - 3... и нема да имаш од споредување на карактер.

Код:
switch(a1) {
case 1: {
cout << "P = ";
cin >> P;
}
}
или пак мислам дека и така можеше

Код:
switch(a1) {
case 'P': бла бла бла;
case 'V': .... ;
}
 
Член од
22 октомври 2011
Мислења
65
Поени од реакции
10
Фала, се снајдов некако со цел збор (string) напрајв а не само првата буква. Ама сега па на друг проблем наидов :icon_mrgr:

{
#include <cstdlib>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
string a1;
double P,V,a,b,c

P=2*(a*b+a*c+b*c);

cout << "Sto e dadeno vo zadacata ?(P, V,a,b,c )" <<endl;
cout << "Stom vnesis se sto e dadeno, vnesi ja bukvata 't' za da zavrsis"<<endl;
do {
cin >> a1;
if(a1 == "P"){
cout << "P = ";
cin >> P;
}
else if(a1 == "V"){
cout << "V = ";
cin >> V;
}
else if(a1 == "a"){
cout << "a = ";
cin >> a;
}
else if(a1 == "b"){
cout << "b = ";
cin >> b;
}
else if(a1 == "c"){
cout << "c = ";
cin >> c;
}
}while(a1 != "t");

cout << P <<endl;
}
напишав формула за P колку за пример,
ко ке ја пуштам апликацијата ги внесувам a,b и c и ми иди еден одговор:
шо треба да напрам за да го најди P по формулата горе што ја напишав?
 
M

Mr.InF3ction

Гостин
^ на приме да пресметаш P одкако ќе ги внесеш сите параметри ? вака сите параметри ги внесуваш џабе..не ги користиш никаде.
--- надополнето: 20 мај 2012 во 22:45 ---
тука кажва дека има грешка и неможи да споредва pointer со interger (кај if(a1 == "P"))
Грешката е што сакаш да споредиш знак со стринг.
Треба if(a1=='P')
"ova e string" a ova se znaci 'a' , 'b' ...
 
Член од
22 октомври 2011
Мислења
65
Поени од реакции
10
^ на приме да пресметаш P одкако ќе ги внесеш сите параметри ? вака сите параметри ги внесуваш џабе..не ги користиш никаде.
то со P беше колку за на пример, иначе поинаку ке ја продолжам програмата, само сакав да знам оти неќи да го пресмета.
 
M

Mr.InF3ction

Гостин
Па стави го после while циклусот и ќе сака. Пошто вака има рандом глупости кај тие променливи.
 
Член од
11 декември 2011
Мислења
51
Поени од реакции
19
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и virtual int getenergija(){return energija;} треба да биде виртуелна?
class heroj
{
protected:
char ime[20];
int energija;
int moknost;
int nivo;
public:
heroj (){strcpy(ime, 0); energija=0; moknost=0; nivo=0;}
heroj (char *a, int x, int y, int z)
{
strcpy(ime, a);
energija=x; moknost=y; nivo=z;
}
heroj (heroj &x)
{
strcpy(ime, x.ime);
energija = x.energija; moknost=x.moknost; nivo=x.moknost;
}
virtual int getenergija(){return energija;}
virtual int ostetuvanje();
};
class agilenheroj: public heroj
{
protected:
int agilnost;
public:
agilenheroj(){strcpy(ime, 0); energija=0; moknost=0; nivo=0; agilnost=0;}
agilenheroj(char *a, int x, int y, int z, int t)
{
{strcpy(ime, a); energija=x; moknost=y; nivo=z; agilnost=t;}
}
agilenheroj(agilenheroj &x)
{
strcpy(ime, x.ime);
energija = x.energija; moknost=x.moknost; nivo=x.moknost; agilnost=x.agilnost;
}
friend ostream &operator<<(ostream &out, agilenheroj &x)
{
out<<"Ime:"<<x.ime<<"\nEnergija:"<<x.energija<<"\nMoknost:"<<x.moknost<<"\nNivo:"<<x.nivo<<"\nAgilnost:"<<x.agilnost<<"\n";
return out;
}
agilenheroj operator++()
{
nivo++; energija+=10; moknost+=5; agilnost++;
return (*this);
}
int ostetuvanje(){return 2*agilnost+moknost;}
int getenergija(){return energija;}
};
class intelegentenheroj: public heroj
{
protected:
int intelegencija;
public:
intelegentenheroj(){strcpy(ime, 0); energija=0; moknost=0; nivo=0; intelegencija=0;}
intelegentenheroj(char *a, int x, int y, int z, int t)
{
{strcpy(ime, a); energija=x; moknost=y; nivo=z; intelegencija=t;}
}
intelegentenheroj(intelegentenheroj &x)
{
strcpy(ime, x.ime);
energija = x.energija; moknost=x.moknost; nivo=x.moknost; intelegencija=x.intelegencija;
}
friend ostream &operator<<(ostream &out, intelegentenheroj &x)
{
out<<"Ime:"<<x.ime<<"\nEnergija"<<x.energija<<"\nMoknost:"<<x.moknost<<"\nNivo"<<x.nivo<<"\nIntelegencija:"<<x.intelegencija<<"\n";
return out;
}
int getenergija(){return energija;}
intelegentenheroj operator++()
{
nivo++; energija+=10; moknost+=5; intelegencija++;
return (*this);
}
int ostetuvanje(){return 2*intelegencija+moknost;}
};
class silenheroj: public heroj
{
protected:
int sila;
public:
silenheroj(){strcpy(ime, 0); energija=0; moknost=0; nivo=0; sila=0;}
silenheroj(char *a, int x, int y, int z, int t)
{
{strcpy(ime, a); energija=x; moknost=y; nivo=z; sila=t;}
}
silenheroj(silenheroj &x)
{
strcpy(ime, x.ime);
energija = x.energija; moknost=x.moknost; nivo=x.moknost; sila=x.sila;
}
friend ostream &operator<<(ostream &out, silenheroj &x)
{
out<<"Ime:"<<x.ime<<"\nEnergija"<<x.energija<<"\nMoknost:"<<x.moknost<<"\nNivo"<<x.nivo<<"\nSila:"<<x.sila<<"\n";
return out;
}
int getenergija(){return energija;}
silenheroj operator++()
{
nivo++; energija+=10; moknost+=5; sila++;
return (*this);
}
int ostetuvanje(){return 2*sila+moknost;}};

heroj *bitka(heroj *x, heroj *y)
{
if (x->ostetuvanje()>y->ostetuvanje()) return x;
else if (y->ostetuvanje()>x->ostetuvanje()) return y;
else if (x->getenergija()>y->getenergija()) return x;
else return y;
}
void najsilen(heroj **x, int n)
{
int max=0;
for (int i=1; i<n; i++)
if ((*x).ostetuvanje()<(*x)[i-1].ostetuvanje()) {max=i;}
cout<<"Najsilen e herojot so broj : "<<max<<"\n";
}
 
Член од
27 ноември 2008
Мислења
1.433
Поени од реакции
341
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и virtual int getenergija(){return energija;} треба да биде виртуелна?
Виртуелните фукнции ти требаат ако сакаш да ги користиш во сите наследени класи ама различно имплементирани.
 
M

Mr.InF3ction

Гостин
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и virtual int getenergija(){return energija;} треба да биде виртуелна?
Чисти виртуелни функции ќе користиш кога од таа класа нема смисла да има објект. Пр имаш класа човек. Човек како човек постои но или е машко или е женско. За тоа класата човек е абстрактна класа (со чиста виртуелна функција ) а изведени класи од таа ќе бидат машко и женско и нешто измеѓу. И тука мораш таа функцика што е виртуелна да ја препокриеш т.е да ја напишеш пак..пр за печатење... во класата женско да печати дека е женско, има цицки итн..а за машко да печати дека има пенис и е многу паметен:icon_lol:
 

Kajgana Shop

На врв Bottom