Poslao: 30 Apr 2005 16:36
|
offline
- Omadawn
- Novi MyCity građanin
- Pridružio: 09 Jan 2005
- Poruke: 18
|
1) Ljudi treba mi pomoc.Totalni sam noob.Znam da ce se neko smejati i da sam nesto eznuo onako bas glupo ali nisam do sad radio ovako nesto uglavnom sam se gubio sa brojevima a sad mi trazi da unesem slova:
Zadatak je da napisem program koji trazi da se preko tastature izabere opcija Da/Ne (unese slovo D ili N) i odgovarajuce poruke a ako nije izabrana ni jedna opcija da prijavi gresku.
Evo dokle sam dosao:
char a;
printf("Da ili Ne?(D ili N)\n");
scanf("%c",&a);
if (a==D)
printf("Tacno\n\n");
else if (a==N)
printf("Netacno\n\n");
else
printf("Pogresno slovo\n\n");
Izbaci mi gresku a kada declare-ujem N i D onda uvek izbacuje "pogresno slovo".
2) I imam jos jedno pitanje.Program koji izracunava izraz:
z=(min(x,y)+0.5)/(1+max(pa na kvadrat)(x,y))
e sad,ocigledno ne znam kako se pravilno pise taj izraz i sta mu dodju min i max uglavnom nikako mi ne prihvata ovako napisan izraz (kvadrat pisem ^2).
Izvinjavam se sto sam puno pisao.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 30 Apr 2005 16:54
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Da pokusam da ti pomognem, ali uzmi u obzir da neznam C++ (a za mesec dana moram vec da predam program radjen u C++).
Generalno, mislim da ti linija za uporedjivanje ne radi:
if (a==D)
U programskim jezicima u kojima sam dosad radio, uporedjivanje karaktera ili stringova nikad nije moglo da se odradi na taj nacin. Kako si ga napisao, ispada da je i D varijabla. Probaj sledece:
if (a=="D")
Ili probaj:
if ( a==68 )
68 je ASCII kod za "D"
Za ASCII kodove pogledaj: http://www.lookuptables.com/
|
|
|
|
Poslao: 30 Apr 2005 17:35
|
offline
- Pridružio: 23 Maj 2003
- Poruke: 590
|
problem 1.)
if(a=='D')
ili
if(a=='D' || a=='d') kako ti ne bi pravilo razliku izmedju malog i velikog D.
znaci izmedju apostrofa stavljas zeljeni znak, ne izmedju znaka navoda kako ti je rekao bobby niti bez icega kako si ti napisao.
problem 2.)
recimo da probas sa ternarnim operatorima da uradis pa ti izraz
z=(min(x,y)+0.5)/(1+max(pa na kvadrat)(x,y))
moze izgledati recimo na brzinu nesto ovako
Z=((x>y) ? (y+0.5) : (x+0.5) )/(1+ ((x>y) ? pow(x,2) : pow(y,2)));
ako je max na kvadrat maximum od x na kvadrat ili y na kvadrat
ili ovako
Z=((x>y) ? (y+0.5) : (x+0.5) )/(1+ ((pow(x,2)>pow(y,2)) ? x : y);
ako se gleda da je na kvadrat maximum od x ili y
ne znam sta je tacno pesnik hteo dakaze time "max(pa na kvadrat)(x,y)"
a inace ono sto si ti napisao ^ to ti je logicki operator za iskljucivo "ili" u c-u i c++ pises pow(x,y) sto u prevodu znaci X na Y.
mozda izgresih negde sa zagradama ali ako znas kako funkcionise ternanrni operator (? znaces i sam da napises
btw mozda i postoji neka funkcija min() i max() u c++, ali trebalo bi i ovako da radi.
i nemoj zaboraviti da ukljucis math.h zaglavlje
|
|
|
|
Poslao: 01 Maj 2005 21:56
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
prvo
#include <ctype.h>
i onda
if (tolower(a)=='d')
tako ne mora da ima ||
|
|
|
|
Poslao: 01 Maj 2005 22:18
|
offline
- Pridružio: 23 Maj 2003
- Poruke: 590
|
E vidis moze i tako da se napise...
Ali recimo da idemo tom logikom da kao pocetnik prvo nauci da koristi oparatore a posle sve ostalo
Mislim ono... da mu ne napravimo citavu zbrku u glavi....
|
|
|
|
Poslao: 02 Maj 2005 11:33
|
offline
- Omadawn
- Novi MyCity građanin
- Pridružio: 09 Jan 2005
- Poruke: 18
|
Hvala vam.Jeste,u onom prvom sam samo morao da stavim ' ' a drugi sam bio glup pa nisam skapirao da je min(x,y) ustvari manji od ta dva broja.Da,moglo je preko ?.
Ali sad sam presao na for petlje i do...while i imam jos jedan problem:
Zadatak glasi:da napisem program koji izracunava sumu kvarata svih parnih i kubova svih neparnih brojeva,u opsegu zadatih celih brojeva a i b,a<b (for petlja).
Evo dokle sam ja stigao:
int x,a,b,c;
do
{
printf("Unesi opseg (od 1 do 10):");
scanf("%d%d",&a,&b);
}
while(a<1 || a>10 || b<1 || b>10 || a>b);
printf("Brojevi su u opsegu od %d do %d:",a,b);
printf("\n");
for(x=a;x<=b;x++)
{
/*problem*/
}
I nemam predstavu kako dalje mislim kapiram da mi treba recimo if funkcija za x%2==0 i else za neparni broj,ali nikako ne mogu da ga nateram da radi a zaista sam se smorio pokusavajuci i totalno zabo.
|
|
|
|
Poslao: 02 Maj 2005 11:56
|
offline
- Pridružio: 23 Maj 2003
- Poruke: 590
|
na brzinu samo, npr
int suma=0;
for(x=a;x<=b;x++)
{
if((x%2)==0)
suma+=pow(x,2);
else
suma+=pow(x,3);
}
printf("\n Suma kvarata svih parnih i kubova svih neparnih brojeva je:%d", suma);
recimo da bi mozda ovo moglo da radi
|
|
|
|
Poslao: 02 Maj 2005 13:06
|
offline
- Pridružio: 29 Apr 2005
- Poruke: 59
- Gde živiš: Mrkonjic - Grad
|
Koristi ASCII kodove. Mnogo ce ti lakce biti. Jos nesto: obavezno prevedi u mala ili velika slova (zavisi sa kojima uporedjujes).
D = 68
d = 100
N = 78
n = 110
|
|
|
|
Poslao: 02 Maj 2005 13:57
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
sto bi bilo lakse ako koristi te ASCII kodove umesto slova, bas bi voleo da mi objasnis?
po kojoj logici je bolje?!?
|
|
|
|
Poslao: 02 Maj 2005 16:12
|
offline
- Omadawn
- Novi MyCity građanin
- Pridružio: 09 Jan 2005
- Poruke: 18
|
I ja mislim da ce mi samo biti teze preko ASCII.U redu je radi na onaj nacin ali mi je trebalo malo vremena da ukapiram kako uopste radi for petlja.
Ok imam jos jedan problem ali mi piglu da vas cimam da neko slucajno ne pomisli kako ja ovde plandujem dok mi vi resavate zadatke posto se desilo ne nekom drugom topicu nesto slicno.Ali onda makar savet kako da krenem.
Zadatak:
Napisati program koji odredjuje najvecu i najmanju vrednost u nizu zadatih celih brojeva.Pri tome kao znak za kraj unosa koristi broj 0.(while petlja)
E sad buni me sto moram preko while petlje pa ne znam kako dal moze da se pise while((c=getchar(0))==EOF ili da idem preko #define STOP 0.I ne znam kako da odredim najveci i najmanji broj kod niza.Da je u pitanju 2,3,5,7... brojeva pa nekako bi se snasao za max i min (doduse sa ?)ali ne znam kako kod niza?
THX
|
|
|
|