Izrada dijela programske potpore mreže

Izrada dijela programske potpore mreže

Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24

Pozdrav svima!

Stvar je slijedeća, u tijeku je izrada programske infrastrukture naše bežične mreže a kao što sami znate ili ne znate, to je malčice prevelik posao za jednog čovjeka (mene). S tim u vidu, a i stoga što smo već polako ali sigurno ušli u 2009.g. a sustav još nije u potpunosti razvijen, zanima me postoji li u ovoj našoj maloj udruzi ljudi s iskustvom i ljubavi prema programiranju.

Volio bih sastaviti tim od 3-5 ljudi pa da zajedničkim snagama, na našu radost i na radost svih ostalih članova, upotpunimo i poboljšamo programsku infrastrukturu mreže.

Uvjeti koje biste trebali zadovoljiti su:

  • Želja za učenjem (trebat će vam, al' stvarno)
  • Nešto slobodnog vremena
  • Još malo slobodnog vremena
  • Poznavanje osnova programiranja:
- rad s varijablama
- rad s matricama (poljima)
- dinamičko alociranje memorije
- osnovni algoritmi sortiranja
- rad s datotekama (čitanje, brisanje, sortiranje)
  • Poznavanje engleskog jezika (gotovo sva dokumentacija je na engleskom)
  • Jesam li spomenuo slobodno vrijeme ?!

Programirat će se u programskim jezicima C i Java, i u ostalima prema potrebi. Tako npr. ako ste odlični u Pascalu a o C-u ne znate ništa nema problema. Za linux postoje odlični pascal compileri, kao u ostalom i za većinu drugih programskih jezika.

Kao što (ni)ste primijetili, spomenuo sam Linux. Naime kako je mreža bazirana na Linuxu, nužno je da nam naša programska potpora radi također na Linuxu (logično, zar ne?!). Svi programi koji će se vrtiti na serverima bit će komandnolinijski i pisat će se u prvenstveno C-u, po potrebi C++u, Pascal-u i sličnim jezicima. Sve što se da kompajlirati gcc-om, kompajlirat će se gcc-om. Ovo vam omogućuje da radite na windowsima, a kasnije vaše sourceove samo kompajlirate i testirate na Linuxu jer je ovaj kompajler dostupan na obje platforme.

Uz sve jezike spomenuo sam i Javu. Javu ćemo intenzivno koristiti. Po sintaksi je slična C-u, objektno je orjentirana i vrlo popularna. Nama je zanimljiva zbog vrlo dobre podrške, cijene (besplatna), jednostavnosti, brojnih primjera na netu, i najbitnije zbog svoje multiplatformnosti.

Što će se raditi u Javi?

  • Web sučelje za manipulaciju korisnicima, pregled statistika, objavu obavijesti i slično. (Ovaj sustav je već napola dovršen! - famozni TUMARS)
  • Klijentski softver koji će pokretati svi članovi mreže, a koji će omogućavati logiranje na mrežu i praćenje korisnika (u svrhu sprečavanja krađe podataka, mac adresa i sl.)
  • Prema potrebi dodatni programi za olakšavanje administriranja mreže ili nekih njenih dijelova

Spomenuo sam Klijentski softver koji će pokretati svi članovi mreže. Pošto je to jedna od bitnijih karika u lancu kojeg sam zamislio, i prva na popisu za žuran dovršetak, evo nekih detalja oko toga.
Najprije sam htio izbjeći ovakvu aplikaciju i ponuditi ljudima login putem web sučelja, ali nakon dužeg razmišljanja došao sam do zaključka da ova metoda neće spriječiti zloupotrebu ukradenih mac adresa. Klijentska aplikacija hoće. Ova će aplikacija biti obavezno pisana pomoću Java Web Start tehnologije, što nam omogućuje lako pokretanje na svim platformama za koje je Java dostupna, lak update aplikacije i dodavanje novih mogućnosti i slično.

Mogućnosti aplikacije bi u početku trebale biti login na server (na TUMARS) putem https protokola, čime bismo onemogućili krađu lozinki. Kad login sustav proradi, u aplikaciju bismo ugradili chat klijent (baziran na Jabber ili IRC protokolu, prema dogovoru), tako da bi svi članovi udruge bili povezani i da bi se do svih moglo u trenutku doći i prenijeti im važne obavijesti. Ugradili bismo i čitač RSS feedova preko kojih bismo prenosili hitne obavijesti (vezano uz članarine, događanja i slično).

Ovo je bio ukratko opseg poslova koji nas očekuje, pa molim zainteresirane da se jave u ovom threadu i ukratko napišu s čime dobro barataju, a s čime baš i ne, pa da možemo složiti nekakav tim i raspodijeliti zadatke. Nemojte da vas nepoznavanje nečeg navedenog gore kao poželjnog zastraši, slobodno se javite jer i najmanja pomoć je dobrodošla.

Unaprijed hvala svima! 



Hacker
Hacker's picture
Postovi: 12
Registrirao se: 2007-10-27
Na mjene možeš računati u

Na mjene možeš računati u svakom slučaju oko toga posla.Vidjet ćću ti još za nekoliko ljudi!!!!!!!!!



Razarach
Razarach's picture
Postovi: 245
Registrirao se: 2007-10-29
Ja zadovoljavam tri od

Ja zadovoljavam tri od četiri uvjeta. Naime vremena imam, još vremena imam, želju za učenjem imam ali neznam programirati.



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
Rado bih se uključio u

Rado bih se uključio u nešto kreativno.  Ne mogu ništa posebno obećati ali znam ponešto programirati u javascriptu i php te rad s mysql-om. Napravio sam samo jedan programčić za maturalnu radnju tako da to možete vidjeti ovdje: http://f4m.890m.com/  , znam da nije ništa posebno ali eto. Usput znam osnove c-a, ali stvarno samo osnove, nisam napravio niti jedan približno kompliciran program u c-u. Eto ako budem mogao pomoći ću. 



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Odlično, evo ovako

Odlično, evo ovako ćemo.

Stavit ću vam ovdje jedan tutorial: http://www.udruga-teng.org/marko/Srpski_skolski_C_tutrial.zip . Tutorijal sam pronašao na elitesecurity forumu, više o tome ovdje: http://www.elitesecurity.org/t219106-Srpski-skolski-tutorial .

Kad prođete kroz ovaj tutorial, postavit ću nekoliko probnih zadataka, da vidimo gdje što kome zapinje, i da iskristaliziramo bitne stvari. Nakon toga krećemo s poslom.

Ako netko ima nekakvih pitanja, slobodno pitajte ovdje!

Pozdrav i hvala na javljanju!



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Kompajler

Pozdrav!

Nitko se ne javlja, zanima me u kojoj ste fazi, kako ide? Evo na slijedećoj stranici imate Editor i kompajler koji možete koristiti za pisanje programčića i vježbanje. Stvar je dakako besplatna i nalazi se ovdje: http://www.bloodshed.net/devcpp.html (skinite ovu verziju 5, najgornju na popisu). Kad spremate fajlove obavezno stavite nastavak .c, inače kompajler neće shvatiti da želite kompajlirati običan c kod, i pokušat će kompajlirati c++.

Uskoro ću stavit i 3 probna zadačića. Zapravo evo odmah jedan jednostavan za početak:

/**
* --+ Zadatak 1 +--
* Napisati program koji učitava ime i prezime osobe, te ispisuje poruku:
*
* Pozdrav Ime P., zelim vam ugodan dan!
*
* Ime predstavlja ime koje je korisnik unio a P inicijal prezimena.
*/

Oznake /* i */ su početak odnosno kraj komentara. Ovo sve skupa možete zalijepiti na početak zadatka da svi znamo o čemu se radi. Ako šta zapne pitajte, sutra stiže nešto mrvicu žešće.

Pozdrav! 



Hacker
Hacker's picture
Postovi: 12
Registrirao se: 2007-10-27
Izvini tek sam sada došo na

Izvini tek sam sada došo na forum.....Pa ću sada krenuti sa učenjem....



Hacker
Hacker's picture
Postovi: 12
Registrirao se: 2007-10-27
Nisam stigao cijeli

Nisam stigao cijeli tutorijal proći pa ću još danas to učiti,a sada idem spavati...



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Quote:Nisam stigao cijeli

Quote:
Nisam stigao cijeli tutorijal proći pa ću još danas to učiti,a sada idem spavati...

Nema žurbe, treba spavat da sve to sjedne u glavu :) Ako ima kakvih problema, pitaj ovdje, to nije nešto što se može naučiti samo tako, jer učiš logiku programiranja. Sama sintaksa i naredbe će sjesti same od sebe, jer ako znaš na koji način riještit problem, tj. ako znaš napisati pseudokod onda u biti znaš programirati.



Razarach
Razarach's picture
Postovi: 245
Registrirao se: 2007-10-29
Ja sam čitao tutorial ali

Ja sam čitao tutorial ali pošto sam totalni početnik, tj. nikad se u životu nisam s time susreo, trebat će mi malo duže da to sve pokopčam.



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Quote:Ja sam čitao tutorial

Quote:
Ja sam čitao tutorial ali pošto sam totalni početnik, tj. nikad se u životu nisam s time susreo, trebat će mi malo duže da to sve pokopčam.

To mi je jasno, zato ako ima bilo kakvih nejasnoća pitaj ovdje. I obavezno isprobaj sve primjere iz skripte, probaj ih malo mijenjati pa vidi što se događa i slično. Samo iz čitanja nećeš ništa uspjeti.

Pitanje za sve, kako ide rješavanje zadatka? 



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
#include <stdio.h>#include

Nisam u potpunositi pročitao zadatak... :) 



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
Imam problem, program mi se

Imam problem, program mi se ruši na kada treba izvršiti printf("%s" variabla[0]). Neznam jeli zato što koristim betu kompajlera ili...? Evo cjelog programa 

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. char ime[50], prezime[50];
  6. char prez = prezime[0];
  7. printf("Unesi ime: ");
  8. scanf("%s", ime);
  9. printf("\nUnesi prezime:");
  10. scanf("%s", prezime);
  11. printf("\n Pozdrav ");
  12.     printf(ime);
  13.     printf("%s", prezime[0]); 
  14.     printf(" zelim vam ugodan dan!"); 
  15.     scanf("%s");
  16. }

  



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
Našao sam grešku. To bi

Našao sam grešku. To bi trebalo biti to. 

  1. /**
  2. * --+ Zadatak 1 +--
  3. * Napisati program koji učitava ime i prezime osobe, te ispisuje poruku:
  4. *
  5. * Pozdrav Ime P., zelim vam ugodan dan!
  6. *
  7. * Ime predstavlja ime koje je korisnik unio a P inicijal prezimena.
  8. */
  9. #include <stdio.h>
  10. #include <string.h>
  11. /*conio.h
  12. getchr()*/
  13. int main()
  14. {
  15. char ime[50], prezime[50];
  16. char prez = prezime[1];
  17. printf("Unesi ime: ");
  18. scanf("%s", ime);
  19. printf("\nUnesi prezime:");
  20. scanf("%s", prezime);
  21. printf("\n Pozdrav ");
  22.     printf(ime);
  23.     printf(" ");
  24.     printf("%c", prezime[0]); 
  25.     printf(". , zelim vam ugodan dan!"); 
  26.     scanf("%s");
  27.     return 0;
  28. }



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Super

Mr.X., odlično! Drago mi je vidjeti da je netko shvatio tematiku, još će nešto biti od ovoga svega :)

Samo jedan komentar. Korištenje scanf funkcije za čitanje iz konzole (fajla ili bilo čega sličnog čiju duljinu ne znamo unaprijed) je jaaaako opasno! Korisnik može namjerno poslati više podataka nego što program očekuje i tako zloupotrijebiti sam program u svrhe koje nije namijenjen (dobivanje punog pristupa računalu i slično). Naime programski jezik C nema mehanizma zaštite od ovoga, pa je moguće slobodno pisati i brisati po memoriji programa bez ikakvih ograničenja.Više informacija: http://en.wikipedia.org/wiki/Buffer_overflow

Ovdje možete naći moje rješenje ovog zadatka, pa ga proučite, i ako nešto nije jasno, slobodno pitajte: http://www.udruga-teng.org/marko/zadatak1.c. Naša slova (čćžšđ)možda vam neće biti ispravno prikazana jer je datoteka u UTF-8 encodingu, a nisam siguran što se na windowsima i u dev-c++ koristi, u svakom slučaju, ako vam smeta konvertirajte :D

Dalje, došlo je vrijeme za zadatak br. 2

/*
 * --+ Zadatak 2 +--
* Napisati program koji učitava dva broja (A i B), te u cjelobrojnoj aritmetici ispisuje rezultat
* operacija A-B, A+B, A*B, A/B, A mod B
*
* Primjer ispisa rjesenja za unesene brojeva 16 i 3
*
* 16-3=13
* 16+3=19
* 16*3=48
* 16/3=5
* 16 mod 3=1
*/

Ovaj je isto lagan, i očekujem da ćete ga riješiti bez štucanja.

Evo i treći:

/**
 * --+ Zadatak 3 +--
 * Napisati program koji ucitava POZITIVAN broj, te ga množi sa 2 i s 4, i dijeli s 2 i s 4, i ispisuje rezultat u obliku:
 *        X*2=Y
 *        X*4=Z
 *        X/2=Q
 *        X/4=R
 *
 * Primjer ispisa rjesenja za unesen broj 4
 *        4*2=8
 *        4*4=16
 *        4/2=2
 *        4/4=1
 *
 * NAPOMENA: Zabranjeno je koristenje operatora +, -, *, /, kao i petlji ili naprednih matematičkih funkcija!
 */

Ovaj je jako jednostavan ako shvatite u čemu je kvaka (HINT: Brojevni sustavi).

 

Mislim da je to to, ako mi još šta padne napamet, natipkat ću...

Poz!



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Napomena uz 3. zadatak,

Napomena uz 3. zadatak, riječ je o dakako cjelobrojnoj aritmetici, iako se to iz primjera ne vidi.

Edit:
Eh da, sjetio sam se, ako radite na windowsima postoji šansa da će vam se prozor zatvoriti čim pokrenete program. Da biste ovo spriječili, prije return tj. prije kraja programa upišite naredbu getchar();

Druga stvar, bez obzira što u skripti piše da se funkcija main piše kao void main(), obavezno ju pišite kao int main(). Naime funkcija main MORA vraćati (po c standardu) rezultat tipa int (dakle cijeli broj). Ovaj broj se proslijeđuje operacijskom sustavu, i služi mu kako bi znao da li je program završio normalno, ili s greškom. Dakle return 0 znači da je sve završilo u redu, dok brojevi različiti od 0 znače grešku.

Treća stvar, JAKO BITNA!!! Molim vas, pripazite na formatiranje evo vam u arhivi nekoliko datoteka. Sve su sintaksno ispravne, daju se kompajlirati i rade istu stvar. Kad ih proučite nadam se da ćete shvatiti da se isplati pisati lijepo :D http://www.udruga-teng.org/marko/primjeri-frmt.zip

 



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
/*  * --+ Zadatak 2 +-- *
  1. /*
  2.  * --+ Zadatak 2 +--
  3. * Napisati program koji ucitava dva broja (A i B), te u cjelobrojnoj aritmetici ispisuje rezultat
  4. * operacija A-B, A+B, A*B, A/B, A mod B
  5. *
  6. * Primjer ispisa rjesenja za unesene brojeva 16 i 3
  7. *
  8. * 16-3=13
  9. * 16+3=19
  10. * 16*3=48
  11. * 16/3=5
  12. * 16 mod 3=1
  13. */
  14. #include <stdio.h>
  15. #include <math.h>
  16. #include <string.h>
  17. int main(){
  18.     /*Generira dva nasumicna broja */
  19.     char getusr[4];
  20.     char getopr[0];
  21.     int A = rand();
  22.     int B = rand();
  23.     int r;
  24.     
  25.     printf("\nUnesite matematicku operacij kojom zelite mjenjati ove brojeve (A%B). Dopustene operacije %,*,/,-,+.\n");
  26.     
  27.     printf("%i", A);
  28.     printf("\n & \n");
  29.     printf("%i", B);
  30.     printf("\n Unesite matematicku operaciju:");
  31.     scanf("%c", getopr);
  32.     switch(getopr[0]){
  33.     case '*':
  34.          r = A*B;
  35.          break;
  36.     case '/':
  37.          r = A/B;
  38.          break;
  39.     case '+':
  40.          r = A+B;
  41.          break;
  42.     case '-':
  43.          r = A-B;
  44.          break;
  45.     case '%':
  46.          r = A-B;
  47.          break;
  48.     default:
  49.     printf("\nNiste naveli tocnu vrijednost. Unesite %,*,/,+, ili -.");
  50.     r = 0;
  51.     }
  52.     printf("%i", r);           
  53.     scanf("%s", getusr);
  54.     return 0;
  55. }


Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
budem 3 zadatak poslje

budem 3 zadatak poslje serije 



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Ne ne, krivo si shvatio.

Ne ne, krivo si shvatio. Jednostavno je trebalo unijeti dva broja s tipkovnice i ispisati rezultate svih operacija. Isto tako i za treći vrijedi. Ovo što si ti napravio je malo prekomplicirano da bude drugi zadatak nekome ko nikad nije vidio programiranje :D

Uglavnom, vidim da ti ide, istreniraj se još malo na ovome da ti c uđe u glavu, stavit ću još koji zadačić s pokazivačima, pa da možemo krenut bar nas dvojica, a ostali će nam se pridružit kad pohvataju ovo...

A kontam, vidim da ima zainteresiranih, možda preko praznika organizirati kakvu malu školu programiranja...



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Evo zadatak br. 4 Napisati

Evo zadatak br. 4

Napisati funkciju koja generira binarnu datoteku popunjenu nasumičnim podacima. Prototip funkcije je slijedeći

int generate_keyfile(int fileSize, char *filePath)

Dakle funkcija treba primiti parametar fileSize koji predstavlja veličinu datoteke, te parametar filePath koji predstavlja putanju gdje datoteka treba biti stvorena. Funkcija vraća SUCCESS ako je sve obavljeno kako treba (datoteka je uspješno kreirana i popunjena), ili FAILURE ako postupak nije uspio.

Potrebno je na početak koda definirati slijedeće:

#define SUCCESS 0
#define FAILURE !SUCCESS

Eto, ovo je prvi zadatak koji će imati svrhu u našem projektu. Naime ovako generiranu datoteku koristit ćemo kao ključ za kriptiranje podataka koje šaljemo mrežom. Zato je bitno osigurati dobru randomizaciju. Molim funkciju lijepo napisati s dobrim formatiranjem, te iznad nje postaviti komentar o autoru, namjeni funkcije i verziji, po uzoru na rješenje prvog zadatka koji sam postavio gore.



cyboy
Postovi: 3
Registrirao se: 2008-12-16
evo sad gledam primjere i ne

evo sad gledam primjere i ne čine se teški pogotovo prva dva zadatka dok bi za treći trebao malo mozgati i prisjetiti se što sam radio...

zadatke vjerujem da bih mogao riješiti uz malo googlanja i razmišljanja ali vidim da radite u c-u, a sve što sam radio do sad iz programiranja radio sam u c++-u i neznam koliko bi to bilo korisno uopće...??



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Quote: koliko bi to bilo

Quote:
 koliko bi to bilo korisno uopće...??
Jako! Pokušaj to porješavati, C++ je sasvim prihvatljivo rješenje, a gotovo sav C kod se da kompajlirati u C++ tako da ako nešto ne bude išlo kroz C kompajler, lako ga provučemo kroz C++.Tako da, ako imaš vremena i volje, svakako si dobrodošao! 



Hacker
Hacker's picture
Postovi: 12
Registrirao se: 2007-10-27
Marko izvini.Riješio sam 1

Marko izvini.Riješio sam 1 zadatak ali ne mgou nastaviti s učenjem.Imam smrtni slučaj.Pa kada se to smiri sve pa  ću se ponovo javiti.



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Ma ne moraš se izvinjavat,

Ma ne moraš se izvinjavat, kad god da nam se vratiš dobro došao.

PS Nevezano za temu, nemam tvoj MAC na popisu, tak da javi mi ga da ti ga otvorim na TW5...



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
I ekipa, gdje je zapelo, ne

I ekipa, gdje je zapelo, ne vidim rješenje trećeg zadatka :)

Evo mali hint. Zamislite neki broj, i zapišite ga u binarnom brojevnom sustavu. Sad ga podijelite s 2 pa rezultat zapišite binarno opet. A onda ga pomnožite 2 pa ga opet zapišite binarno. Promotrite što se događa s bitovima, to vam je rješenje :)



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
/** * --+ Zadatak 3 +-- *

/** * --+ Zadatak 3 +-- * Napisati program koji ucitava POZITIVAN broj, te ga množi sa 2 i s 4, i dijeli s 2 i s 4, i ispisuje rezultat u obliku: *        X*2=Y *        X*4=Z *        X/2=Q *        X/4=R * * Primjer ispisa rjesenja za unesen broj 4 *        4*2=8 *        4*4=16 *        4/2=2 *        4/4=1 * * NAPOMENA: Zabranjeno je koristenje operatora +, -, *, /, kao i petlji ili naprednih matematičkih funkcija! */ #include <conio.h>

  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int a,b,c,e,f,g;
  6.    
  7.    printf("Unesite broj:\n");
  8.    scanf("%i", &a);
  9.     
  10.     c = a << 1;
  11.     e = a >> 1;
  12.     
  13.     f = c << 1;
  14.     g = e >> 1;
  15.     
  16.     printf("%s %i %s","\n", a ,"*2=");    
  17.     printf("%i", c);
  18.     printf("%s %i %s","\n", a ,"*4="); 
  19.     printf("%i", f);
  20.     printf("%s %i %s","\n", a ,"/2="); 
  21.     printf("%i", e);
  22.     printf("%s %i %s","\n", a ,"/4="); 
  23.     printf("%i", g);
  24.     
  25.     getch();
  26. }



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
/**
  1. /**
  2.  * Generator nasumicnih podataka
  3.  *
  4.  * @author Igor Bemko
  5.  * @version 1.0
  6.  * @fileSize oznacava kolicinu ponavljanja rand(), ne stvarnu velicinu podataka
  7.  */
  8. #include <conio.h>
  9. #include <stdio.h>
  10. #include <time.h>
  11. #define SUCCESS 0
  12. #define FAILURE !SUCCESS
  13. int generate_keyfile(int fileSize, char *filePath)
  14. {
  15.     int i;
  16.     srand ( time(NULL) ); 
  17.     FILE *fp;
  18.     
  19.     fp = fopen(filePath, "wb");
  20.     
  21.     if(fp == NULL)
  22.     {
  23.                 printf("\nNemogu otvoriti zadanu datoteku.");
  24.                 return FAILURE;
  25.     }
  26.     
  27.      for(i=1; i<(fileSize-1); i++)
  28.      {
  29.               fprintf (fp,"%i",rand());
  30.               
  31.      }
  32.          
  33.     if(fclose(fp) == EOF)
  34.     {
  35.              printf("\nNemogu pisati u datoteku.");
  36.              return FAILURE;
  37.     }
  38.     
  39. }
  40. int main(){
  41.     
  42.     int v, vm, vn;
  43.     char ime[100];
  44.     printf("Unesite velicinu podatka:\n");
  45.     scanf("%d", &v);
  46.     printf("Unesite ime podatka:\n");
  47.     scanf("%s", &ime);
  48.  
  49.     vn = v*4.1;
  50.     vm = v*4.9;
  51.     
  52.     ////////////////////////
  53.     generate_keyfile(v, ime);
  54.     ////////////////////////
  55.     
  56.     printf("%s", "\n Tjek programa izvrsen.\n");
  57.     printf("%s", "\n Kolicina upisanih podataka:");
  58.     printf("%i", vn);
  59.     printf("%s", "-");
  60.     printf("%i", vm);
  61.     printf("%s", " u ");
  62.     printf("%s", ime);
  63.     printf("%s", ".\nPritisnite Enter.");
  64.     
  65.     getch();
  66.     
  67.     return SUCCESS;
  68.    
  69. }


Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
Što se tiče trećeg

Što se tiče trećeg zadatka pošto nemogu editirati samo ću se ovdje ispraviti. Napravio sam grešku, tako da traženi broj može biti pozitivan i negativan.  Ispod   

  • scanf("%i", &a); // treba dodati: 
  • a = abs(a);

 ili cjeli zadatak: 

  1. #include <conio.h>
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.     int a,c,e,f,g;
  7.     printf("Unesite broj:\n");
  8.     scanf("%i", &a);
  9.     a = abs(a);
  10.     
  11.     c = a << 1;
  12.     e = a >> 1;
  13.     
  14.     f = c << 1;
  15.     g = e >> 1;
  16.     
  17.     printf("%s %i %s","\n", a ,"*2=");    
  18.     printf("%i", c);
  19.     printf("%s %i %s","\n", a ,"*4="); 
  20.     printf("%i", f);
  21.     printf("%s %i %s","\n", a ,"/2="); 
  22.     printf("%i", e);
  23.     printf("%s %i %s","\n", a ,"/4="); 
  24.     printf("%i", g);
  25.     
  26.     getch();

  



Marko
Marko's picture
Postovi: 619
Registrirao se: 2007-10-24
Što se tiče trećeg

Što se tiče trećeg zadatka, recimo da je ok. Malo si zakomplicirao s onim printf-ovima, ali nebitno...

Kao i uvijek imam nekoliko primjedbi: 

  1. Koristiš biblioteku conio.h. Ovo je stara DOS biblioteka i nije dio C standarda, te ne postoji na linux, i prema tome ne može se ni kompajlirati. Ovo je u biti moja greška, jer sam rekao da koristite funkciju getch() za zaustavljanje programa. Ovim putem se ispravljam, trebate koristiti funkciju getchar() koja je podržana na oba sistema.
  2. Nisi pročitao sadržaj datoteke o formatiranju, molim da ga pročitaš. Za ove vježbe me nije briga, ali za funkcije koje pišemou svrhu ovog malog projekta želim: a) da se vitičasta zagrada otvara u redu u kome započinje funkcija, npr int main() { a ne u novom redu, i b) svaku novu razinu koda uvlačimo sa dva razmaka, dakle ne tabulator, ne četiri razmaka, ne jedan razmak već dva!
  3. Ova funkcija nije dobra jer fileSize treba biti veličina datoteke u bajtovima, kao što sam već i napisao. Kad ovo korigiram objavit ću datoteku sa do sad napisanim funkcijama, da se vidi što smo do sad postigli.
  4. Uploadao sam moja rješenja 2. i 3. zadatka: http://www.udruga-teng.org/marko/zadatak2.c i http://www.udruga-teng.org/marko/zadatak3.c


A sad još jedan zadatak.

Napisati program koji putem parametara komandne linije prima dva argumenta - ulaznu datoteku i izlaznu datoteku. U slučaju greške potrebno je ispisati poruku na stderr i terminirati program statusom FAILURE.
Program treba čitati ulaznu datoteku redak po redak te svaki red koji počinje s 1 ili više razmaka, potom broj, pa točka, pa jedan razmak i potom nepoznati tekst prepisati u izlaznu datoteku bez razmaka, broja, točke i još jednog razmaka na kraju, tj. prepisati samo tekst koji se nalazi iza ovog niza znakova.

Ako se linija sastoji samo od niza razmaka, broja i točke, u izlaznu datoteku ju je potrebno prepisati kao novi red.

Primjer izvođenja:

ulazna datoteka:

  •    1. #include<stdio.h>
  •    2. int main() {
  •    3.   printf("Hello world\n");
  •    4. }

izlazna datoteka:

  • #include<stdio.h>
  • int main() {
  •   printf("Hello world\n");
  • }

Na standardnom izlazu nije potrebno ništa ispisivati.

 



Mr.X.
Postovi: 25
Registrirao se: 2008-02-26
OK budem pripazio sljedeći

OK budem pripazio sljedeći put pazio na formatiranje.Što se tiče funkcije fileSize, pokušao sam napraviti tako da se upisuje veličinu u bajtovima ali nisam uspio. Drugi puta ću se više potruditi da bude točnije.



Razarach
Razarach's picture
Postovi: 245
Registrirao se: 2007-10-29
Škola.....

E Marko nisam stigao riješiti zadatke dokraja jer sad će škola početi a ja moram ispraviti dva komada s polugodišta tako da kad to riješim za tjedan dva onda ću se moći malo bolje prihvatiti toga.

Pozz i do tipkanja.