[ ZKING @ 30.01.2006. 21:00 ] @
Napisati program u programskom jeziku c, koji ce u bilo kojem c programu koji
mu se preda kao paramaetar analizirati ponavljanje for naredbe analiza podrazumjeva
a) ispis linije koda na kojoj pocinje i na kojoj se zavrsava naredba
b) sintaksnu analizu ukoliko postoji neka greska - linija koda i ispis greske
c) program napisati u vise funkcija koje su napisane u odvojenim datotekama
d) uz program priloziti testni materijal


ako ko zna uraditi nek mi se javi na mail [email protected] ili msn (isti mail)

molim vas...

hvalal unaprijed
[ srki @ 30.01.2006. 21:07 ] @
Procitaj pravilnik foruma.
Cheers.
[ ZKING @ 30.01.2006. 21:41 ] @
evo nesto sam cita i nevidim u cemu je problem..

ali hajd nije bitno ako sam nesto lose uradio izvinjavam se samo moze li mi iko odgovorititii i u raditi molim vas...
[ srki @ 31.01.2006. 00:17 ] @
http://www.elitesecurity.org/o/pravilnik/korisnici/

Citat:
6. Ne tražite da Vam neko radi domaći zadatak

Ne očekujte da bilo ko obavezno odradi sav posao umesto Vas! Rado ćemo pomoći oko svakog problema u slučaju da Vam "gori pod nogama", pred neki ispit ili posao, ali morate da pokažete na delu da ste u stvari krenuli sa radom i zastali pošto ne znate kako dalje. Ako samo navedete zadatak i specifikacije, u zavisnosti od raspoloženja članova na forumu, možda će se naći neko da odradi kompletan posao, ali pošto to zavisi od entuzijazma samih članova, ne postoji garancija da će se i dogoditi! [ES] posetioci će Vam pomoći da bolje SHVATITE problem sa kojim ste suočeni, ali ponešto morate i sami da uradite!
[ srki @ 31.01.2006. 00:25 ] @
Takodje nema smisla traziti da se resenje posalje na email jer je cilj foruma da svi nesto nauce.

Sto se tice tvog problema, pa ne ocekujes valjda ozbiljno da ti neko uradi sav posao. Pa nesto od ovoga mozes i sam:

Citat:
a) ispis linije koda na kojoj pocinje i na kojoj se zavrsava naredba

Napisi prvo pogram koji samo ucitava i ispisuje program (to su osnovne stvari) pa cemo da ti objasnimo kako da vidis da li linija sadrzi nek naredbu

Citat:
b) sintaksnu analizu ukoliko postoji neka greska - linija koda i ispis greske

Eh, pa da bi napravio parser za ovo trebalo bi da provedes par dana dok sve ne izstestiras i vidis sintaksu C-a.
Citat:
c) program napisati u vise funkcija koje su napisane u odvojenim datotekama

To mozes i sam da razdvojis, objasnicemo ti kako...
Citat:
d) uz program priloziti testni materijal

Pa valjda ovo mozes sam da uradis, test materijal moze da ti bude bilo koji kod u C-u.
[ ZKING @ 31.01.2006. 07:51 ] @
znam nesto uraditi znam pisati programe s petljama i sve to ali ne znam kako preuzeti program kako program? tjeste predati neki program mom programu da ga provjerava, kako nalaziti pocetak fora i kraj for? kako naparavtii vise f-ja u vise datoteka???
[ srki @ 31.01.2006. 08:33 ] @
Napisi nam prvo kod za citanje fajla i ispis na ekranu a posle cemo da ti pomognemo da nadjes odredjene naredbe. Takodje mi cemo da ti pomognemo posle da podelis taj fajl na vise fajlova...

[Ovu poruku je menjao srki dana 31.01.2006. u 09:34 GMT+1]
[ c00l3D @ 31.01.2006. 09:16 ] @
Evo ti dio koda koji ti govori koliko ima linija u njemu tacnije ako ne kontas na sta mislim to je koliko si puta enter pritisno :) i ocitava i ispisuje na ekran citav sadrzaj unesene datoteke.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

main ()
{
     FILE *fajl;
     char f_ime[100];
     char znak;
     int brojac=0;
       printf("\n [NAPOMENA: Ako zelite pisati citavu putanju onda umjesto \\ pisati \\\\]\n");
       printf("\n   IME FAJLA: ");
       scanf("%s",&f_ime);
       
       fajl=fopen(f_ime,"r");
       if (fajl==NULL) printf("\nGreska prilikom otvaranja fajla !!!");
          else
           {
              do {
                  znak = fgetc(fajl);
                  printf("%c",znak);
                  if (znak=='\n') brojac++;
                 } while (!feof(fajl));
              printf("\n\nOvaj kod ima %d linija koda",brojac);
           }
     closef(fajl);
     getch();
}
[ c00l3D @ 31.01.2006. 09:40 ] @
Da poredis stringove koristi komandu
strcmp ako si cuo za nju.

Mozes provjeravati da li ti se nalazi rijec u tom tvom textu na sljedeci nacin


Code:

int provjera(char rijec1,char text) /*Provjerava da li je trazena rijec*/
{
    if (strcmp(text,trazena_rijec)==o) 
          return (1);  /*Ako je nadjena rijec*/
          return (-1); /* Ako se ne nalazi*/
}


Takodjer kako bi ja uradio to za ispis pozicije nakojoj pocinje i na kojoj se zavrsava komanda mozes uraditi na sljedeci nacin:
- Da svaki red upises u jedan niz znakova i da mu dodjelis vrijednost tog reda npr:

Code:

   red[1]='#include <stdio.h>';
   red[2]='#include <conio.h>';
   red[n]='} /*Kraj programa*/';


I sam si rekao da znas raditi sa petljama pa eto ti prilike da se dokazes. Stavi jednu petlju da ti se vrti sve dok ne dodje do kraja fajla npr

Code:

  i=1;
  uslov='\n';  /*Ovo ti je znak za novi red ako nisi znao :)*/
  while (!feof(tvoj_fajl)) do
    {
      while(strcmp(text,uslov)!=0) do 
         niz[i]:=getchar(fajl); else i++;
    }


Ovo sto se tice sintaksne analize to ti je ja mislim ono da li se nalazi ; na kraju komande i tako te sitnice, da li je zagrada zatvorena itd...

[NAPOMENA: Kod nije testiran nego sam ti samo dao za primjer kako bi mogao da radis i sam znas da sam i ja novi u ovim vodama i ja trazim da mi neko pomogne oko algoritma za moj kod ali nista od toga evo jos niko nije ni pogledao :(]
[ c00l3D @ 31.01.2006. 09:47 ] @
Jos jedna stavar ako hoces da negdje pises sve te linije koda gdje si nasao for ja ti predlazem da upisujes u neku datoteku pozicuju i taj dio koda na sljedeci nacin

Code:

fprintf(fajl,"Linija na kojoj se nalazi: %d \n Kod: \n %s",brojac_linija,kod_koji_si_nasao);


Nemoj da ovo upisujes u isti fajl ni slucajno :)
napravi neki novi ako neznas komandu evo:

Code:

FILE *drugi_fajl; /*To ti je onaj gore 'fajl' */

drugi_fajl=fopen("pomocni.dat","w"); /*Ovo w ti govori da kreiras datoteku a ako postoji onda je brise i ponovo kreira tako da uvijek dobijes praznu datoteku gdje mozes da pises sta god hoces :)*/


Dosta ti od mene za sad odoh da doruckujem :P
[ ZKING @ 31.01.2006. 20:01 ] @
hehe imali jos neko da sta mi pomogne ovo je pomoglo dosta kako ovo povezati i to kako ove u posebne fajlove napsiati direktorije? kako isptraiviti i odvojiti sto pise ovo pod b i c...

coll3d hvalal ti vidi se da si veliki hacker ;)
[ c00l3D @ 04.02.2006. 23:24 ] @
Posto vidim da ti niko ne odgovara a ni meni onda ovako: Poceo sam da radim svoj kod i dosa sam donekle i sam sam skonto algoritam pa posto su nam sem slicni (jes moj malo tezi ali eto) evo ti dio koda koji ti nalazi koliko imas FOR petlji i govori ti na kojoj liniji pocinje sto je dovoljno za sad od mene nemoj da ti ja radim citav seminarski uljenit ces se :)

Code:

#include <stdio.h>
#include <conio.h>

char text[10000];

main ()
{
     FILE *fp;
     char imefajla[100];
     char znak;
     int pozicija[1000];
     long i=0,j=0,brojac=0,br_for=0,tmp=1;
       printf("Unesi ime fajla: ");
       scanf("%s",&imefajla);
       if ((fp=fopen(imefajla,"r"))==NULL) printf("\nGreska prilikom otvaranja fajla !!!");
          else
           {
              do {
                          znak=fgetc(fp);
                          text[i]=znak;
                          printf("%c",znak);
                          i++;
                 } while (!feof(fp));
for (i=0;i<10000;i++)
     { 
 if (((text[i]==' ')||(text[i]=='\n')||(text[i]=='\t')||(text[i]=='}')||(text[i]==';'))
      &&(text[i+1]=='f')&&(text[i+2]=='o')&&(text[i+3]=='r')&&((text[i+4]=='\n')
      ||(text[i+4]=='\t')||(text[i+4]==' ')))
              {
              br_for++;
              pozicija[tmp]=0;
              for (j=i;j>=0;j--)  
                 { 
                    if (text[j]=='\n') pozicija[tmp]++;
                 }
              printf("\n 'for' %d se nalazi na liniji broj: %d",br_for,pozicija[tmp]+1);
              tmp++;
             }
     } 
           }
if (br_for==0) printf("Nije nadjena ni jedna 'for' naredba");
     getch();
     fclose(fp);
}


Kod je testiran i kod mene radi punom parom i da nam ne bi bilo isto bar varijable promjeni da ne bude preofirno :)
-----------------------------------------------------
Long live OPEN SOURCE :)
[ c00l3D @ 05.02.2006. 00:57 ] @
I drugi put mi bar nick lijepo napisi u znak zahvalnosti :p