Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 14 odgovora
  • 6.185 pregleda

Najnovija ↓

Potrebna pomoć u C jeziku 14.03.2005. u 09:43 · pre 263 meseca #1
Potrebna mi je pomoč u vezi zadatka iz C programskog jezika. Dakle, dobio sam da uradim zadatak u C jeziku, ali mi izgleda zaista komplikovano (programiranje mi nije jaca strana).
Zadatak:
Napisati program u programskom jeziku "C", koji će u bilo kojem "C" programu koji mu se preda kao parametar analizirati upotrebu konstanti.
Analiza podrazumijeva:
- ispis linije na kojoj počinje i na kojoj završava naredba,
- sintaksnu analizu, ukoliko postoji neka greška - linija koda i ispis greške
- program napisati u više funkcija koje su napisane u odvojenim datotekama
- uz program priložiti testni primjer

Pokušavao sam na nekoliko nacina ovo uraditi, ali (pretpostavljate) neuspjesno. Bio bi veoma zahvalan na pomoci.

Unaprijed hvala
Re: Potrebna pomoć u C jeziku 14.03.2005. u 10:04 · pre 263 meseca #2
Citat:
Bio bi veoma zahvalan na pomoci.
Pošalji nam šta si pokušao da napraviš kako bi se odatle krenulo.

f
Re: Potrebna pomoć u C jeziku 14.03.2005. u 10:17 · pre 263 meseca #3
Sve je to na samom pocetku, i ne pomijera se. :(
Ali imam jedan slican zadatak, koji sam uspio naci. Prilično je slican mome zadatku.
To je na papiru, pa ce mmu trebati malo da ga otkucam
Re: Potrebna pomoć u C jeziku 14.03.2005. u 13:29 · pre 263 meseca #4
Zadatak kao takav je jako nedorecen i _jako_ tezak ako ga se shvati doslovno.

Citat:
SanelD
Napisati program u programskom jeziku "C", koji će u bilo kojem "C" programu koji mu se preda kao parametar analizirati upotrebu konstanti.


Sto je konstanta? Npr.:

Code:

#define a 3.14
const int b = 2.14;

float f(void) {
  return a+b*1.14;
}


Sto je prema zadatku ovdje konstanta? 1.14? a? b? sve troje?

Citat:

- ispis linije na kojoj počinje i na kojoj završava naredba,

Koja naredba? Sto je sa compound naredbama (unutar {})?

Citat:

- sintaksnu analizu, ukoliko postoji neka greška - linija koda i ispis greške

C jezik kakav je, sintaksna analiza nije uvijek moguca bez semanticke analize. Ovaj posao radi kompajler. Kompajler pise TIM od nekoliko profesionalnih programera, nikako pocetnika.

Citat:

Bio bi veoma zahvalan na pomoci.
Unaprijed hvala


Ne mogu ti pomoci jer zadatak nije dovoljno definiran. Tko god da je zadao ovakav zadatak - NESPOSOBAN JE. Bilo kao programer, bilo kao profesor, a mozda i oboje istovremeno.
Re: Potrebna pomoć u C jeziku 15.03.2005. u 09:17 · pre 263 meseca #5
Ja sam dobio takav zadatak, pa sam ga i doslovno napisao. Iskreno ovdje mi je malo toga jasno.
Zadatak koji sam dobio kao primjer zapravo i nije ono sto bi meni moglo pomoc.

Citat:
Tko god da je zadao ovakav zadatak - NESPOSOBAN JE. Bilo kao programer, bilo kao profesor, a mozda i oboje istovremeno.


Osoba koja ima oko 70 godina i ujedno je ucila asambler u svoje vrijeme, stvarno bi se mogao s tobom složiti.

Meni bi dobro dosla bilo kakva pomoc.
Re: Potrebna pomoć u C jeziku 15.03.2005. u 15:37 · pre 263 meseca #6
pazi ovako, #define int a; ti je samo makro,tj. gdje god naidje u kodu c umjesto a vrijednost koju si ti definisao po tipu i po vrijednosti dakle ideja rijesenja slijedi:
taj kod koji ti je proslijedjen kao parametar posmatraj kao jednu datoteku.
Citas red po red, postavis odredjene brojace kako bi znao u kom redu se nalazis.
Poredis slova sve dok ne otkrijes gdje se nalazi <#define blabla ili const a vrijednost> dakle nasao si gdje su defiinisani. Sledece sto treba da pamtis jeste promjenjliva koja se nalazi kao argument ovim makroima i dalje u tekstu da tragas za njima i naravno da ispisujes pronadjene rezultate!
PS: nadam se da je ovo bilo od pomoci, a ako nije javi se da ti napisem kod kada budem imao vremena!
Re: Potrebna pomoć u C jeziku 16.03.2005. u 10:29 · pre 263 meseca #7
Citat:
PS: nadam se da je ovo bilo od pomoci, a ako nije javi se da ti napisem kod kada budem imao vremena!


Naravno da je od pomoci
Usput, uradio sam nesto i kod profesora je proslo mada i sam znam da neradi kako treba ali sta je tu je. :)

Hvala svima koji su mi pomogli
Re: Potrebna pomoć u C jeziku 16.03.2005. u 12:52 · pre 263 meseca #8
Citat:
drazen_tb:
Citas red po red, postavis odredjene brojace kako bi znao u kom redu se nalazis.

Ne mozes citati red po red jer je dozvoljeno spajanje redova sa \, npr:
Code:

#define ABCD -12
int x=12*AB\
CD;


Citat:

Sledece sto treba da pamtis jeste promjenjliva koja se nalazi kao argument ovim makroima i dalje u tekstu da tragas za njima i naravno da ispisujes pronadjene rezultate!

Ne radi ni ovo, npr. sljedeci primjer:
Code:

int f1(int a)
{
  const int x = 14;
  return x*a;
}

int f2(int a)
{
  int x = a+a;
  return x*x;
}

U funkciji f2 x vise nije konstanta koja ima vrijednost 14 nego obicna varijabla.

Kao sto rekoh, za ispravno rjesenje treba potpuna sintaksna i semanticka analiza - a to radi iskljucivo kompajler.
Re: Potrebna pomoć u C jeziku 16.03.2005. u 17:02 · pre 263 meseca #9
Ja nisam od onih koji ce na ucitelja, nastavnika, profesora (sta god) da baca drvlje i kamenje cim mu nesto u zivotu zapne. Cilj postojanja tih ljudi nije da te nauci svemu sto bi ti trebalo da znas, vec da te uputi i da ti kaze odakle sta, i kada, treba da naucis. Ako ti sam ne sednes i naucis to sto ti je ta osoba rekla, onda si sam kriv sto nesto ne znas.
Misljenja sam da nastavnici NE MORAJU uslovno biti dobro programeri da bi od djaka napravili programere. - Glavno, MNOGO vaznije je da oni budu dobri pedagozi.
Smeo bih da dam desnu ruku da je originalna postavka zadatka drugacija od Sanelove interpretacije (procitati na pocetku ove diskusije). Cak i da nije, jasno je iz aviona sta taj program treba da radi, i kako da radi, kao i kako treba da se realizuje (u vise modula).
S obzirom da znam kakvo je skolstvo, i s obzirom da sam i ja nekada bio djak i da znam kako je djacima MNOGO lakse kriviti ucitenje/nastavnike/profesore, siguran sam da je to i ovde slucaj - jedan lenji djak dolazi po N+prvi put na ES da mu se resi zadatak koji bi on da je bio malo pazljiviji i malo samo vise radio, znao i mogao i da razume i da ga resi.
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: Potrebna pomoć u C jeziku 16.03.2005. u 20:26 · pre 263 meseca #10
zvrba
------------------------------------------------------------------------------
Code:

int f1(int a)
{
const int x = 14;
return x*a;
}

int f2(int a)
{
int x = a+a;
return x*x;
}


U funkciji f2 x vise nije konstanta koja ima vrijednost 14 nego obicna varijabla.
------------------------------------------------------------------------------

GLUPOST!!!!

Pa valjda tolko znas da ti C nece dozvoliti da dva puta definises istu stvar razlicitim tipovima u istom programu!!!
Problem je bio da se ispise linija koda gdje pocinje i zavrsava sto znaci spajanje redova ne pije vode, moze da ispise sve!!!
I ko to koristi spajanje redova ????
Re: Potrebna pomoć u C jeziku 16.03.2005. u 23:28 · pre 263 meseca #11
x je var. u 2 razlicite fja samim tim to su dve POTPUNO razlicite varijable... a ko ne koristi \ za spajanje redova? (pogotovo kod #definea... jest da je ranije bilo problema kada kompajler naidje na to ali koliko sam primjetio nema ih vise, sve radi kao sat...)
Potpis
"nice town, i'll take it..."
Re: Potrebna pomoć u C jeziku 18.03.2005. u 09:30 · pre 263 meseca #12
a joj
kao sto rekoh const je makro sto znaci normalni ljudi ih koriste i definisu u samom zaglavlju programa, tj koriste globalne promjenjljive kako tokom citavog programa nebi morali pisati recimo 3.1415... vec samo napise x. taj x se definise samo jednom i poslije ga nemozes mijenjati, nece dozvoliti!
Re: Potrebna pomoć u C jeziku 18.03.2005. u 11:05 · pre 263 meseca #13
Citat:
drazen_tb: a joj
kao sto rekoh const je makro sto znaci normalni ljudi ih koriste i definisu u samom zaglavlju programa, tj koriste globalne promjenjljive kako tokom citavog programa nebi morali pisati recimo 3.1415... vec samo napise x. taj x se definise samo jednom i poslije ga nemozes mijenjati, nece dozvoliti!


const NIJE makro. const je varijabla sa alociranim prostorom (dakle, ima adresu) i moze imati bilo eksternal bilo internal linkage. ako ima internal linkage, tada u svakom source fajlu mozes imati varijablu istog imena razlicitih vrijednosti i tipova.

makro zamjenjuje pretprocesor prije nego sto uopce dodje do kompajlera i ako kazes nesto tipa
Code:

#define A 3.14

kompajler NEMA POJMA da u programu postoji "globalna varijabla" imena A. stovise, moguce mu je i promijeniti vrijednost na prljavi nacin (jednostavno novi #define; pretprocesor ce samo dati warning) ili prvo napraviti
Code:

#undef A
#define A 26

To je nesto sto ne mozes napraviti sa const.

Nesto sto ne mozes napraviti sa makroom a mozes sa konstantom je npr. uzimanje adrese:
Code:

f(&A)

nece raditi jer A nema alociran prostor nego je obicna konstanta (kako god da je f definiran).

A tvoj pojam "normalnih ljudi" je izgleda bitno ogranicen tvojim znanjem C-a.
Re: Potrebna pomoć u C jeziku 25.03.2005. u 19:11 · pre 263 meseca #14
Citat:
Napisati program u programskom jeziku "C", koji će u bilo kojem "C" programu koji mu se preda kao parametar analizirati upotrebu konstanti.

Analiza podrazumijeva:

- ispis linije na kojoj počinje i na kojoj završava naredba,
- sintaksnu analizu, ukoliko postoji neka greška - linija koda i ispis greške
- program napisati u više funkcija koje su napisane u odvojenim datotekama
- uz program priložiti testni primjer


Vecu glupost od zadatka nisam video. Koliko sam razumeo, on hoce:

Da ti napises jedan C program koji ce kao parametar imati drugi C program (sto bi sigurno znacilo da se predaje source code, a ne kompajlirani C)

Analiza mu je totalno konfuzna i nejasna i zahteva dodatna pitanja:

Citat:
- ispis linije na kojoj počinje i na kojoj završava naredba,


Sta on pod ovim podrazumeva? Da ti napravis program koji ce da trazi i identifikuje naredbe i potom ispise lokaciju istih, gde ih je nasao, i njenu punu sadrzinu?!

Citat:
- sintaksnu analizu


Kakve su ovo nebuloze???! Zar ovo vec ne radi sam kompajler?

Citat:
- program napisati u više funkcija koje su napisane u odvojenim datotekama


Ovo je jasnije.

Citat:
- uz program priložiti testni primjer


Ok, ali neka on prvo objasni sta podrazumeva pod prvim i drugim delom te analize???
Potpis
Welcome to the real (binary) world, neo(01)...
Re: Potrebna pomoć u C jeziku 26.03.2005. u 09:46 · pre 263 meseca #15
U potpunosti se slažem s tobom neo01. Zadatak ne da je nejasan nego je blago rečeno glup.
Zato sam se i ja napravio glup, i napravi jos gluplji program koji je samo prividno radio, sve u svemu, prosao je kod prof. sto je i najvažnije.

P.S. Hvala bogu pa ga nije kompajlirao :):)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme