C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
Дали е точна задачава

Код:
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?
 
Ќе можеш да напишеш како би била точната, бидејќи утре правам инф тест.

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

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

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

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

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

#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;
}
 
Ќе можеш да напишеш како би била точната, бидејќи утре правам инф тест.

Бидејќи веќе ти ја решија задачата сакам да ти дадам еден совет за полесно да ги решаваш ваквите задачи. Значи, доколку имаш ваква задача (дали некој број е делив со друг, дали цифрите на еден број се деливи со друг, да се определи бројот на цифрите на N-цифрен број итн) секогаш прво пробај да ја решиш на лист хартија, да го смислиш алгоритмот односно постапката како проблемот би се трансформирал во код. Непробувај да ги учеш кодовите на памет, така нема многу да постигнеш :)
Поради тоа што си прва година и си почетник во програмирањето, ако ти треба помош или материјали за учење (на македонски) пиши ми пп и ќе ти пратам.
 
Нов сум во програмирање и ај ако можи помош малце...
значи сакам да напрам програма која ќе решава задача од математика. И сега сакам прво корисникот да внеси што е дадено во задачата ама тука кажва дека има грешка и неможи да споредва 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': .... ;
}
 
Фала, се снајдов некако со цел збор (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 по формулата горе што ја напишав?
 
^ на приме да пресметаш P одкако ќе ги внесеш сите параметри ? вака сите параметри ги внесуваш џабе..не ги користиш никаде.
--- надополнето: 20 мај 2012 во 22:45 ---
тука кажва дека има грешка и неможи да споредва pointer со interger (кај if(a1 == "P"))
Грешката е што сакаш да споредиш знак со стринг.
Треба if(a1=='P')
"ova e string" a ova se znaci 'a' , 'b' ...
 
^ на приме да пресметаш P одкако ќе ги внесеш сите параметри ? вака сите параметри ги внесуваш џабе..не ги користиш никаде.
то со P беше колку за на пример, иначе поинаку ке ја продолжам програмата, само сакав да знам оти неќи да го пресмета.
 
Па стави го после while циклусот и ќе сака. Пошто вака има рандом глупости кај тие променливи.
 
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и 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";
}
 
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и virtual int getenergija(){return energija;} треба да биде виртуелна?
Виртуелните фукнции ти требаат ако сакаш да ги користиш во сите наследени класи ама различно имплементирани.
 
Како да забележам кога треба да употребам чисто виртуелни односно виртуелни функции? еве на пример во конкретнава задача што ми укажува на тоа дека и virtual int getenergija(){return energija;} треба да биде виртуелна?
Чисти виртуелни функции ќе користиш кога од таа класа нема смисла да има објект. Пр имаш класа човек. Човек како човек постои но или е машко или е женско. За тоа класата човек е абстрактна класа (со чиста виртуелна функција ) а изведени класи од таа ќе бидат машко и женско и нешто измеѓу. И тука мораш таа функцика што е виртуелна да ја препокриеш т.е да ја напишеш пак..пр за печатење... во класата женско да печати дека е женско, има цицки итн..а за машко да печати дека има пенис и е многу паметен:icon_lol:
 

Kajgana Shop

Back
На врв Bottom