Moji projekti
Moderator: Urednik
- Posts: 81
- Joined: 03 Apr 2012, 19:18
Ovaj post sam pokrenuo iz dva razloga. Prvi razlog je taj da mi programeri ne bi lutali i pisali sve i svašta, nego da se fokusiramo na konkretne probleme koji se dešavaju u praksi i da ih rešavmo. Drugi razlog je taj što i kada nešto napišemo uvek se pojavi neka grupica ljudi koji imaju nameru da kritikuju ono što je napisano i da se prepucavaju sa ostatkom fruma. To nam ne treba. Cilj ovog posta je prvo da se okupe na jednom mestu svi programeri i korisnici računara, gde će da korisnici računara daju konkretne stvari koje su problem, a da programeri sa duge strane sednu i reše programski taj problem. Drugo da programeri kada reše određeni problem mogu da pored objavljivanja izvornog koda, objave i dokumentaciju kojoj će da piše šta taj program konkretno radi. Treće mogu u svojoj bigrafiji za posao da napišu da su rešli programski problem i da je to što je napisao podržano od korisnia ovog foruma.
Naravno treba da se i programeri medjusobno pomažu time što će neki programer napisati neku odredjenu strkturu, fnkciju, klasu, biblioteku ili već šta je potrebno tom nekom programeru. Kako to izgleda u praksi. Primer 1. javi se korisnik x koji kaže da mu ne radai asunder. Radi šta mu se ćefne. Onda ja sa interneta uzmem tu verziju asundera sednem napišem skriptu koja će kada se instalira da ispravi sve greške kod te verzije asundera i to objavim ovde na forumu. Primer 2. javi se korisnik y koji kaže da bi hteo da sa slackware-om pronalazi šifre za zaključane nečije wireless mreže, onda programer Pera seden i napiše sve skripte koji su potrebni kako bi se razbile sve vrste zaštita i došlo do šifre koja bi se prikazala u nekom text box-u.
P.S. Zahvaljujem se Bcketu što mi je dao linkove za libeoffice.
Naravno treba da se i programeri medjusobno pomažu time što će neki programer napisati neku odredjenu strkturu, fnkciju, klasu, biblioteku ili već šta je potrebno tom nekom programeru. Kako to izgleda u praksi. Primer 1. javi se korisnik x koji kaže da mu ne radai asunder. Radi šta mu se ćefne. Onda ja sa interneta uzmem tu verziju asundera sednem napišem skriptu koja će kada se instalira da ispravi sve greške kod te verzije asundera i to objavim ovde na forumu. Primer 2. javi se korisnik y koji kaže da bi hteo da sa slackware-om pronalazi šifre za zaključane nečije wireless mreže, onda programer Pera seden i napiše sve skripte koji su potrebni kako bi se razbile sve vrste zaštita i došlo do šifre koja bi se prikazala u nekom text box-u.
P.S. Zahvaljujem se Bcketu što mi je dao linkove za libeoffice.
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Marjan je postavio temu u dogovoru sa mnom. Koliko sam shvatio želi da utvrdi i praktično potkova svoje znanje i programersko umeće na konkretnim problemima.
Samo mala napomena: ovo sa razbijanjem šifara je u suprotnosti sa pravilnikom. Takve stvari nećemo moći da dopustimo.
Samo mala napomena: ovo sa razbijanjem šifara je u suprotnosti sa pravilnikom. Takve stvari nećemo moći da dopustimo.
- Posts: 877
- Joined: 25 May 2008, 10:44
- Location: Valjevo, Srbija
Samo mala sugestija. Marjane, potrudite se da sve što radite u ovom delu foruma bude u skladu sa važećim zakonskim normama i da se ne može podvesti pod bilo koji oblik cyber kriminala. Razbijanje šifara na tuđim wi-fi mrežama upravo predstavlja klasičan primer nečega što administracija ovog foruma (i trenutno zakonodavstvo države u kojoj živimo) ne smatra legalnim i strogo zabranjuje. Takođe, ono što si izneo ne smatra se programiranjem u pravom smislu, više je u pitanju pravljenje/izmena skripti za rešavanje određenog problema.
nije važno samo raditi ono što voliš...važnije je voleti ono što radiš
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Juče nisu pominjani primeri. Ja sam nekako stekao utisak da se radi o malim projektima u C-u na kome bi čovek naučio osnove Unix/POSiX programiranja kroz praktične probleme.
Pitao me je da li postoji neki konkretan problem koji je potrebno rešiti. E sad. Na ovakav način objašnjeno (ako se izuzme nezakoniti primer), to je više neka vrsta tech supporta, nego stvarno programiranje.
Recimo, ja sam to zamislio malo drugačije. Napr: jedan od dobrih projekata/vežbi po meni bi bilo napisati svoj shell.
Pitao me je da li postoji neki konkretan problem koji je potrebno rešiti. E sad. Na ovakav način objašnjeno (ako se izuzme nezakoniti primer), to je više neka vrsta tech supporta, nego stvarno programiranje.
Recimo, ja sam to zamislio malo drugačije. Napr: jedan od dobrih projekata/vežbi po meni bi bilo napisati svoj shell.
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Evo ti jedna malo jednostavnija ideja za projekat.
Napiši program koji invertuje veličinu slova naziva svih datoteka u trenutnom direktorijumu, sa mogućnošću da preimenuje sve datoteke u nazive sa svim malim slovima, odnosno svim velikim slovima. Takođe bi bilo dobro da ima mogućnost da promeni naziv tako da je samo prvo slovo veliko.
Ulaz:
Datoteka
Izlaz
dATOTEKA
Ulaz
Datoteka
Izlaz
DATOTEKA
Ulaz
Datoteka
Izlaz
datoteka
Ulaz
DATOTEKA
Izlaz
Datoteka
Napiši program koji invertuje veličinu slova naziva svih datoteka u trenutnom direktorijumu, sa mogućnošću da preimenuje sve datoteke u nazive sa svim malim slovima, odnosno svim velikim slovima. Takođe bi bilo dobro da ima mogućnost da promeni naziv tako da je samo prvo slovo veliko.
Ulaz:
Datoteka
Izlaz
dATOTEKA
Ulaz
Datoteka
Izlaz
DATOTEKA
Ulaz
Datoteka
Izlaz
datoteka
Ulaz
DATOTEKA
Izlaz
Datoteka
- Posts: 81
- Joined: 03 Apr 2012, 19:18
evo rešenja problema
Code: Select all
#include<stdio.h>
int main ()
{
char c;
int b, d, i;
fprintf(stdout,"Unesite datoteku:");
fscanf(stdout, "%c", &c);
printf("Unesite broj (1-samo mala slova, 2-samo velika slova, 3-prvo veliko sve ostalo malo, 4-prvo malo sva ostalo veliko):");
scanf("%d", &b);
d=strlen(s);
swich(b)
{
case b==1:
if(s!='' && s!='_' && s!='-' && s!=',' && s!='.')
{
for(i=0; i<=d; i++)
{
if(s<=97 && s<=122)
s=s-32;
else
if(s<=65 && s<=90)
s=s
}
}
break;
case b==2:
if(s!='' && s!='_' && s!='-' && s!=',' && s!='.')
{
for(i=0; i<=d; i++)
{
if(s<=65 && s<=90)
s=s+32;
else
if(s<=65 && s<=90)
s=s
}
}
break;
case b==3:
if(s!='' && s!='_' && s!='-' && s!=',' && s!='.')
{
for(i=0; i<=d; i++)
{
if(i==0)
{
if(s<=65 && s<=90)
s=s+65;
}
else
s=s;
if(s<=97 && s<=122)
s=s-32;
else
if(s<=65 && s<=90)
s=s
}
}
break;
case b==4:
if(s!='' && s!='_' && s!='-' && s!=',' && s!='.')
{
for(i=0; i<=d; i++)
{
if(i==0)
{
if(s<=97 && s<=122)
s=s-32;
}
else
s=s;
if(s<=97 && s<=122)
s=s;
else
if(s<=65 && s<=90)
s=s+32;
}
}
break;
}
}
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Tek sad sam stigao da bacim pogled na ovo što si postavio. Marjane, ovaj kod sadrži nekoliko upozorenja i grešaka.
Upozorenja
1. marjan.c:10:7: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
Strlen se nalazi u string.h, tako da je potrebno uključiti i njega.
Greške
1. marjan.c:10:14: error: ‘s’ undeclared (first use in this function)
Promenljiva s nije definisana.
2. marjan.c:12:5: error: expected ‘;’ before ‘{’ token
Ovo je vrlo verovatno vezano za neispravno napisanu komandu switch (fali ti "t").
3. Ostale greške su vezane za grešku broj 1.
Dodatne napomene
1. Ne vršiš proveru unosa. Da li je unesen broj, specijalni karakter ili slovo?
2. Možda ne bi bilo loše da program bude neinteraktivan.
napr:
Ovde postoje dve novosti: obrada komandnih opcija i ekspanzija izraza (*). I jedno i drugo je moguće postići sa funkcijama koji su deo GNU C biblioteke. Za jedno bi bilo potrebno da baciš pogled na getopt funkciju, a za drugo glob funkciju.
Na Sleku su dostupne i man strane za ove dve funkcije:
Upozorenja
1. marjan.c:10:7: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default]
Strlen se nalazi u string.h, tako da je potrebno uključiti i njega.
Greške
1. marjan.c:10:14: error: ‘s’ undeclared (first use in this function)
Promenljiva s nije definisana.
2. marjan.c:12:5: error: expected ‘;’ before ‘{’ token
Ovo je vrlo verovatno vezano za neispravno napisanu komandu switch (fali ti "t").
3. Ostale greške su vezane za grešku broj 1.
Dodatne napomene
1. Ne vršiš proveru unosa. Da li je unesen broj, specijalni karakter ili slovo?
2. Možda ne bi bilo loše da program bude neinteraktivan.
napr:
Code: Select all
program -v *
Na Sleku su dostupne i man strane za ove dve funkcije:
Code: Select all
man 3 glob
man 3 getopt
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Igrao sam se malo s ovim i nije preterano komplikovano. Možeš jedino da izbaciš glob (ekspanzija izraza), pošto ovo ipak malo komplikuje kod. Recimo:
Ideja sa oduzimanjem ASCII kodova nije baš najbolja ideja. Možda je bolje umesto toga koristi tolower i toupper. Na ovaj način otvaraš mogućnost da u budućnost prebaciš kod da koristi wide char varijante: towupper i towlower kako bi program radio i za imena datoteka koje ne koriste ASCII (latin2 latinica, ćirilica). tolower i toupper se nalaze u ctype.h. towlower i towupper se nalaze u wctype.h.
Code: Select all
program -m filename1
- Posts: 4591
- Joined: 04 Feb 2011, 20:32
- Location: Beograd
- Contact:
Evo ti i primer cele implementacije. Ovo ne podržava unicode i napisano je jedne hladne oktobarske noći. Daleko da smatram kod savršenim, ali mislim da je dobar primer.
chcase-0.1.0.tar.gz
Ovde je i spisak svih datoteka u arhivi:
Edit Sad sam setio da nisam stavio GPL zaglavlje u komentar .c i .h datoteka. Ako se budem još nekad igrao s ovim (recimo dodavanje multibyte/wide funkcija), ispraviću to.
chcase-0.1.0.tar.gz
Ovde je i spisak svih datoteka u arhivi:
Code: Select all
-rw-r--r-- 1 bocke users 115 Oct 16 14:57 AUTHORS
-rw-r--r-- 1 bocke users 18093 Oct 16 14:53 COPYING
-rw-r--r-- 1 bocke users 186 Oct 16 14:56 INSTALL
-rw-r--r-- 1 bocke users 464 Nov 16 13:18 Makefile
-rw-r--r-- 1 bocke users 544 Oct 16 14:54 README
-rw-r--r-- 1 bocke users 1400 Nov 16 13:05 case.c
-rw-r--r-- 1 bocke users 346 Oct 16 03:30 case.h
-rw-r--r-- 1 bocke users 727 Oct 16 13:06 main.c
drwxr-xr-x 2 bocke users 4096 Nov 16 13:15 man
-rw-r--r-- 1 bocke users 666 Oct 16 13:11 misc.c
-rw-r--r-- 1 bocke users 174 Oct 16 14:58 misc.h
drwxr-xr-x 2 bocke users 4096 Nov 16 13:18 slackware
man:
-rw-r--r-- 1 bocke users 706 Nov 16 13:15 chcase.1
slackware:
-rw-r--r-- 1 bocke users 83 Oct 16 17:32 README
-rw-r--r-- 1 bocke users 2716 Nov 16 13:18 chcase.SlackBuild
-rw-r--r-- 1 bocke users 220 Oct 16 17:27 slack-desc
Who is online
Users browsing this forum: No registered users and 16 guests