pomoc oko zadatka u C

1

pomoc oko zadatka u C

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

tekst zadatka glasi:
Napisati program koji na osnovu unteog broja x racuna vrednost y po formuli

y= -5*x+2; x<-4
y=2/x -3; -2>=x<2
y=2*x+1 x>=6

i ja napsiem kod


#include <stdio.h> #include <stdlib.h> int main() {     float x,y;     scanf("%f",&x); if((x>=-4) || (x<-2 && x>2) || (x<6) || (x==0)) {     printf ("Funkcija nije definisana");     getch(); } else {     if(x<-4) y=-5*x+2;     if (x>=-2 && x<2) y=2/x-3;     if(x>=6) y=2*x+1;     printf("Y=%d",y); }     getch();   return 0; }


i nikako ne uspevam da dobijem dobra resenja GUZ - Glavom U Zid gde gresim? Neutral



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Jul 2011
  • Poruke: 5424

Napisano: 21 Feb 2012 20:40

if((x>=-4) || (x<-2 && x>2) || (x<6) || (x==0))
Ovo izbaci, po ovom ti funkcija nikada nije definisana. Nacrtaj ove intervale na brojevnoj pravoj, i videces...

Dopuna: 21 Feb 2012 20:45

Drugo:
float x,y=-1; scanf("%f",&x); . . . printf("Y=[b]%d[/b]",y);
Ne mozes tako da menjas tipove.



offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

Napisano: 21 Feb 2012 21:00

printf("Y=%d",y);
klasicna greska GUZ - Glavom U Zid


samo sam zamenio ovo if((x>=-4) || (x<-2 && x>2) || (x<6) || (x==0)) sa ovim


if((x<-4) || (x>=-2 && x<2) || (x>6))

i proradilo je.... Smile

Dopuna: 20 Mar 2012 17:51

Dobih nov zadatak od profesora,i ako ga dobro uradim (uz pomoc foruma) dobicu 5,i bicu oslobodjen kontrolnog...imam neku ideju,ali tu ideju,zbog nedovoljnog poznavanja C-a,ne mogu da pretocim u delo Mr. Green

Zadatak kaze da pomocu strelica gore dole levo desno pomeramo objekat tj zvezdicu,i da ta zvezdica moze da prolazi kroz "zidove" (znaci nesto kao zmijice,samo sto ovde ne postoje poeni i nemam nista da skupljam kao poene,znaci ono nesto najprostije)
od komandi mogu da koristim kbhit,delay(sleep),getch,gotoxy.

#include<stdio.h> #include<conio.h> #include<dos.h> void main (void) {  gotoxy(40,11);  printf("*");  sleep(500);  do  {  sleep(500);  gotoxy(40,++);/*problem mi je i to sto ne znam kako da nateram "zmijicu" da se krece  printf("*");  }    getch();  }
ovako nesto sam ja zamislio,ali znam da tako ne moze...tako da pomoc bilo kakve vrste bi mi dobrodosla. Hvala Ziveli

Dopuna: 20 Mar 2012 17:51

Dobih nov zadatak od profesora,i ako ga dobro uradim (uz pomoc foruma) dobicu 5,i bicu oslobodjen kontrolnog...imam neku ideju,ali tu ideju,zbog nedovoljnog poznavanja C-a,ne mogu da pretocim u delo Mr. Green

Zadatak kaze da pomocu strelica gore dole levo desno pomeramo objekat tj zvezdicu,i da ta zvezdica moze da prolazi kroz "zidove" (znaci nesto kao zmijice,samo sto ovde ne postoje poeni i nemam nista da skupljam kao poene,znaci ono nesto najprostije)
od komandi mogu da koristim kbhit,delay(sleep),getch,gotoxy.

#include<stdio.h> #include<conio.h> #include<dos.h> void main (void) {  gotoxy(40,11);  printf("*");  sleep(500);  do  {  sleep(500);  gotoxy(40,++);/*problem mi je i to sto ne znam kako da nateram "zmijicu" da se krece  printf("*");  }  while(/*pa nesto ovde ,kbhit,ili getch mozda)  getch();  }
ovako nesto sam ja zamislio,ali znam da tako ne moze...tako da pomoc bilo kakve vrste bi mi dobrodosla. Hvala Ziveli

offline
  • Pridružio: 04 Jul 2011
  • Poruke: 5424

Da li ste radili objekte? Koje biblioteke ste obrađivali?

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

Napisano: 20 Mar 2012 18:11

nikakve objekte nismo radili.Nismo biblioteke pojedinacno obradjivali.(samo znam da u stdio.h se nalaze standardne funkcije,conio.h se nalaze funkcije za promenu boje i getch(); ,ove ostale nismo skoro ni spomenuli (mozda mi je profesor spomenuo i time.h samo se ne secam,a vidim po netu da se koristi))

Dopuna: 20 Mar 2012 20:00

malcice izmenih kod
#include<stdio.h> #include<conio.h> #include<dos.h> void main (void) { int i=1; char S; printf("UPUTSVO:\n POMERATE ""ZMIJICU"" UZ POMOC SLEDECIH KONTROLA \n   ""W-POMERA ZMIJICU GORE\n S-POMERA ZMIJICU DOLE \n A-POMERA ZMIJICU LEVO \n D-POMERA ZMIJICU DESNO \n"); getch(); clrscr(); gotoxy(40,11); printf("*"); do{ sleep(1); clrscr(); gotoxy(40+i,11); printf("*"); i++; } while(kbhit); }
sad se "zmijica" uspesno pomera u desno,samo mi je ovo presporo... ako neko ima neki predlog kako da je "ubrzam (kada stavim sleep na 0.5,samo mi blinka) neka mi javi. Ja cu nastaviti sa ovim da se mucim kad se vratim iz setnje Mr. Green

Dopuna: 21 Mar 2012 16:44

Ljudi molim vas...u skripcu sam Sad
#include<stdio.h> #include<conio.h> #include<dos.h> void main (void) { int i=1,s=0,x=40,y=11,s1=0,p=1; char smer; printf("UPUTSVO:\n POMERATE ""ZMIJICU"" UZ POMOC SLEDECIH KONTROLA \n   ""W-POMERA ZMIJICU GORE\n S-POMERA ZMIJICU DOLE \n A-POMERA ZMIJICU LEVO \n D-POMERA ZMIJICU DESNO \n"); getch(); clrscr(); gotoxy(x,y); printf("*"); do{     sleep(1);     clrscr();     gotoxy(x+i,y);     s=x+i;     printf("*");     i++;     if (s==80) x=1;     smer=getch();     if(smer=='w' || smer=='a' || smer=='s') break;}     while(1>2);     switch(smer)     case 'a': do{         i=1;         sleep(1);         clrscr();         gotoxy(s,y);         printf("*");         s-=i; } while(1>3); }

ovako nesto probavam,ali mi ni to ne ide.... Sad

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12488
  • Gde živiš: Južni pol

Prvi način koji mi pada na pamet je (mada bi ovo moglo biti sporo):
1) prikažeš zvezdicu na jednom mestu
2) clrscr
3) prikažeš zvezdicu na mestu na kome je izabrao korisnik

Koordinate su ti x i y. Da bi pokretao zvezdicu moraš da smanjuješ ili povećaš koordinate. Kako, zavisi od toga kako se konkretno vrši računanje koordinata (da li je 0,0 u gornjem levom uglu ili u nekom drugom).

Ako zmijica pređe "granicu", samo postaviš krajnje koordinate za suprotan pravac (recimo 0).

S obzirom da je y manji, da bi to delovalo "glatko", možeš probati da za x povećaš korak (+2 umesto +1).

Btw, šta će ti dos.h? Za sleep?

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

#include<stdio.h> #include<conio.h> #include<dos.h> #include<time.h> void main(void) {     int x  = 10;     int y  = 10;     int xd = 1;     int yd = 0;     int play = 1;     while(play)     {         if(kbhit())         {             char c = getch();             switch(c)             {             case 'w': xd =  0; yd = -1; break;             case 's': xd =  0; yd =  1; break;             case 'a': xd = -1; yd =  0; break;             case 'd': xd =  1; yd =  0; break;             case 'q': play =  0; break;             default: break;             };         }         x += xd;         y += yd;       if(x > 80)             x = 1;         else if(x < 1)             x = 80;         if(y > 23)             y = 1;         else if(y < 1)             y = 23;         sleep(1);         clrscr();         gotoxy(x, y);         printf("*");     } } Smile

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Bilo bi bolje da umesto brisanja celog ekrana, izbrišeš samo tu * koju si nacrtao Wink

offline
  • Més que un club
  • Glavni vokal @ Harpun
  • Pridružio: 27 Feb 2009
  • Poruke: 3898
  • Gde živiš: Novi Sad,Klisa

pa nemam nesto puno stvari prikazanih na ekranu, tako da mislim da nije tolika greska brisati ga celog Mr. Green

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Fora je u tome da brisanje celog ekrana traje jednako i ako je ekran vec prazan i ako je ceo ispunjen. Nekako je steta da se gubi vreme na brisanje vec praznog ekrana Smile

Ko je trenutno na forumu
 

Ukupno su 947 korisnika na forumu :: 18 registrovanih, 1 sakriven i 928 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Aleksandar Tomić, banebeograd, ccoogg123, Dannyboy, Djokislav, esx66, Ksh037, Lazarus, Milos82, Mixelotti, procesor, S2M, stagezin, Trpe Grozni, VJ, vladulns