Datum i vreme: 13.01.2018., 05.25
Dobro Došli, Gost! (Prijava — Registracija)
Ubuntu-RS forumi
  • Početna
  • Pravilnik
  • Pretraga
  • Pomoć
  • Planeta
  • Wiki
  • Sajt
  • Kalendar
  • RSS
Nove poruke Današnje poruke Spisak članova Spisak prijatelja
Važno obaveštenje
Izašao je novi LiBRE, broj 47
Ubuntu 17.10 spreman je za preuzimanje

Ubuntu-RS forumi Ubuntu opšta podrška Programiranje v
« Prethodno 1 2 3 4 5 ... 11 Sledeće »

Ubuntu Programiranje c

Odgovori 
 
Ocena Teme:
  • 0 Glasov(a) - 0 Prosečno
  • 1
  • 2
  • 3
  • 4
  • 5
Niz | Puni Prikaz
Programiranje c
Autor Poruka
Nikola Koja Nije na vezi
Član
***

Poruka: 95
Dao zahvalnica: 9
Dobio zahvalnica: 3 u 2 poruka
Pridružen: Aug 2012
Ugled: 0
Poruka: #1
Programiranje c
C je programski jezik razvijen u Bell Labs, 1972. godine pod kontrolom Denisa Ritchija i danas je jedan od najpopularnijih jezika, a od njega su nastali C++, Java, C#...
Iako ima sav konfor višeg programskog jezika, C omogućava relativno "nisko" programiranje, direktno upravljanje memorijom, registrima, manipulaciju bitovima i pristup podacima preko adrese.
Jezik je relativno mali (nema mnogo rezervisanih reči), ali je vrlo ekspresivan i prenosiv (ne zavisi od platforme). Svako ko sebe smatra hakerom, trebalo bi perfektno da poznaje C (a sa njim i C++ i X86 assembler).
C se ne preporučuje početnicima jer oni nemaju razvijeno algoritamsko mišljenje, ali ja ću se potruditi da tutorijali u ovoj sekciji budu od pomoći i onome ko nema baš nikakvo prethodno programersko iskustvo.

Šta nam je potrebno za početak:
1. gcc kompajler - imamo (ogromna većina Linux distroa dolazi sa instaliranim gcc-om)
2. text editor - imamo (gedit, kate, nano)
3. Razvojno okruženje - sudo apt-get install codeblocks
4. Debugger - sudo apt-get install ddd
5. GUI editor - sudo apt-get install glade
6. Hex editor - sudo apt-get install ghex2

Čemu nam služe ove alatke:
Kompajler - Program koji prevodi kod sa višeg programskog jezika (u ovom slučaju C) na mašinski jezik, a rezultat kompajliranja je izvršni fajl (binary, executable).
Razvojno okruženje - paket alata koji u sebi sadrži text editor sa označavanjem sintakse, debuger, alate za organizovanje projekta, linkovanje biblioteka i kompajler (Codeblocks koristi gcc i cpp za kompajliranje, nema sopstveni)
Debugger - alat koji omogućava programeru da pronalazi i popravlja greške u kodu tako što izvršava kod korak po korak i prati šta se dešava sa promenljivima. Uobičajena je zabluda programera početnika da su svi problemi gotovi kada se program iskompajlira (jupi, nema više sintaksnih grešaka), ali istina je da problemi tek onda počinju. Iako radi (nešto), program ne radi ono što bismo mi želeli. C je naročito nezgodan jer je zbog njegove ekspresivnosti relativno lako otkloniti sintaksne greške, ali posle počinje mučenje sa dinamičkom memorijom, pucanjem bafera i predstoje vam sati u debuggeru, bar za nekoliko prvih ozbiljnijih projekata.
Inače, debbuger se može koristiti i za hakovanje aplikacija, ali za to je potrebno izuzetno dobro poznavanje assemblera.
20.08.2012. 14.40
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+] 1 korisnik zahvaljuje @Nikola Koja za ovu poruku:1 korisnik zahvaljuje @Nikola Koja za ovu poruku
bojce (20-08-2012)
promis Nije na vezi
Saradnik
*****

Poruka: 10,878
Dao zahvalnica: 76
Dobio zahvalnica: 1,757 u 1,530 poruka
Pridružen: May 2010
Ugled: 68
Poruka: #2
RE: Programiranje c
Ovo je bolje da pišeš na wiki, nego ovde
http://wiki.ubuntu-rs.org/Glavna_strana
Registruj se i rokaj.

★MOČ JE V SKUPNOSTI★
20.08.2012. 15.09
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
bojce Nije na vezi
Koordinator
*******

Poruka: 2,007
Dao zahvalnica: 146
Dobio zahvalnica: 290 u 180 poruka
Pridružen: Feb 2007
Ugled: 19
Poruka: #3
RE: Programiranje c
Da, lepo je što pišeš ovakve tekstove, ali je bolje da idu na wiki stranice, jer nisu rešavanje problema nego uputstva, a njima je mesto na wikiju.
Takođe, prebaciću temu u Programiranje.

Ash nazg durbatulûk, ash nazg gimbatul,
Ash nazg thrakatulûk agh burzum-ishi krimpatul.

Albert Einstein: “A little knowledge is a dangerous thing. So is a lot.”
Do not meddle in the affairs of sysadmins,
for they are easy to annoy and have the root password!
20.08.2012. 17.09
Poseti veb stranicu korisnika Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
Atlantic777 Nije na vezi
LUGoNS
******

Poruka: 713
Dao zahvalnica: 38
Dobio zahvalnica: 108 u 87 poruka
Pridružen: Mar 2009
Ugled: 9
Poruka: #4
RE: Programiranje c
Poseti http://ftp.ftp.lugons.org/logovi_sa_predavanja/

Besplatan časopis o slobodnom softveru LiBRE!: https://libre.lugons.org/
Linux User Group of Novi Sad (LUGoNS): https://lugons.org/
20.08.2012. 18.40
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
komarx6 Nije na vezi
Član
***

Poruka: 135
Dao zahvalnica: 3
Dobio zahvalnica: 0 u 0 poruka
Pridružen: Oct 2009
Ugled: 0
Poruka: #5
RE: Programiranje c
Могу ли да поставим питање овде у вези С-а? Зна ли неко зна, постоји ли нека функција у string.h да надовеже један char на стринг? Нпр. nadovezi(str,'z');
И нека која ради као strcat, али да је могу користити на овај начин: strcat(str,"dodatni string")?
Ја знам како бих напрвио прву и сам, али ако већ постоји зашто бих. А код ове друге ми је проблем како да напрвим да се као аргумент прима стринг у облику "string", као код функције printf.
Зна ли неко то?
Кад је С у питању почетник сам, и мало је незгодно радити са стрингом у С-у.
22.08.2012. 11.18
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
nidzo732 Nije na vezi
Član
***

Poruka: 190
Dao zahvalnica: 48
Dobio zahvalnica: 26 u 20 poruka
Pridružen: Dec 2010
Ugled: 2
Poruka: #6
RE: Programiranje c
Preporučio bih ti da staviš u odvojenu temu radi lakše pretrage.

Za ovo prvo stavi karakter u duple navodnike:

Kod:
strcat(stari_string, "K");
Ovo će dodati karakter K na stari string.

Ovaj drugi primer se radi baš tako kako si rekao:
Kod:
char c[50]="Ovo je prvi string";
strcat(c, " a ovo je drugi");
c će imati vrednost "Ovo je prvi string a ovo je drugi".

Citat:Кад је С у питању почетник сам, и мало је незгодно радити са стрингом у С-у.
C ume da bude problematičan sa stringovima, mogao bi da pređeš na C++ ako ti nije problem. Upravljanje stringovima je mnogo prostije:
Kod:
string1=string2+string3;
(Poslednja izmena: 22.08.2012. 15.28 od nidzo732.)
22.08.2012. 15.08
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
komarx6 Nije na vezi
Član
***

Poruka: 135
Dao zahvalnica: 3
Dobio zahvalnica: 0 u 0 poruka
Pridružen: Oct 2009
Ugled: 0
Poruka: #7
RE: Programiranje c
Чекај мало, могу ли ја као параметре у strcat ставити два показивача на први члан стринга?
нпр:
Kod:
char str1[]=" jedan,";
char str2[]=" dva";
strcat(str1,str2);
И ако то може да ли то значи и да када бих направио функцију са прототипом
Kod:
char *mojaF(char*,char*);
могао бих да је позовем са
Kod:
mojaF("jedan konkretan string","drugi konkretan string");
,
а не само са mojaF(str1,str2); , гдје су str1, str2 показивачи?

P.S. Овај мој пост нема смисла без претходна два, па ако би адмиснистратор или ко већ има таква овлаштења, премјестио сва 3 поста у нову тему, ја не бих имао ништа против.
22.08.2012. 17.50
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
nidzo732 Nije na vezi
Član
***

Poruka: 190
Dao zahvalnica: 48
Dobio zahvalnica: 26 u 20 poruka
Pridružen: Dec 2010
Ugled: 2
Poruka: #8
RE: Programiranje c
1) Da, ime niza je ustvari pokazivač na prvi član niza, na primer a[0] je isto što i a oba su pokazivači na prvi član, strcat je i dizajniran da prima pokazivače, prototip strcat-a možeš naći u fajlu /usr/include/string.h
Kod:
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
kao što vidiš strcat prima pokazivače.

2) Pazi, ako se parametri proslede kao što si naveo, funkcija ne bi smela da upisuje u njih. Evo primera
Kod:
void funk(char *p1, char *p2)
{
        strcat(p1, p2);
}
Ovo bi pokušalo da doda stvari u p1 ali ako je p1 prenet kao "jedan konkretan string" on je ograničen na 22 karaktera i svako dodavanje bi počelo da upisuje u neki drugi deo memorije u kom ne znamo šta je. U ovom slučaju samo bi drugi parametar smeo da bude konkretan string (inače pravi naziv je string literal).
(Poslednja izmena: 22.08.2012. 20.18 od nidzo732.)
22.08.2012. 20.18
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
komarx6 Nije na vezi
Član
***

Poruka: 135
Dao zahvalnica: 3
Dobio zahvalnica: 0 u 0 poruka
Pridružen: Oct 2009
Ugled: 0
Poruka: #9
RE: Programiranje c
pitanje se odnosilo samo na to da li se literal string moze proslijediti kao argument u funkciju koja trazi pokazivac na char.
Hvala na pomoci.
22.08.2012. 21.51
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
rocky21 Nije na vezi
Početnik
**

Poruka: 2
Dao zahvalnica: 0
Dobio zahvalnica: 1 u 1 poruka
Pridružen: Aug 2012
Ugled: 0
Poruka: #10
RE: Programiranje c
uh,sve nesto napredno na ovom forumu,

ja radim samo u C#
07.10.2012. 14.40
Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
Goran Nije na vezi
sr.libreoffice.org
*****

Poruka: 774
Dao zahvalnica: 84
Dobio zahvalnica: 166 u 111 poruka
Pridružen: May 2006
Ugled: 10
Poruka: #11
RE: Programiranje c
Lepo što si nas obavestio, tome danas obično služe statusi na Fejsbuku i Tviteru, ali poslužiće i ovde. :D

String literal je tipa const char*, ne možeš da ga menjaš. Svuda gde možeš da pošalješ const char* (na primer, printf, strlen, drugi argument u strcat,...) možeš koristiti literal (kao strlen("Hej");) ili pokazivač na literal (kao char* hej="Hej"; strlen(hej);).

Ako ga ipak provučeš (npr. uz kastovanje) pa ta funkcija pokuša da ga izmeni ili ti pokušaš da ga izmeniš direktno, dobijaš segmentation fault i program puca.

Kod:
$ cat test.c
#include <stdio.h>
int main(int argc, char *argv[])
{
   char *hello = "Zdravo svete";
   printf("%s\n", hello);
   hello[0] = 'K';
   printf("%s\n", hello);
   return 0;
}

A kada pokrenemo:
Kod:
$ gcc -Wall test.c
$ ./a.out
Zdravo svete
Segmentation fault

Либреофис канцеларијски пакет на српском.
(Poslednja izmena: 07.10.2012. 16.25 od Goran.)
07.10.2012. 16.23
Poseti veb stranicu korisnika Pronađi sve korisnikove poruke Zahvali Citiraj ovu poruku u odgovoru
[+]
« Starije Teme | Novije Teme »
Odgovori 


  • Verzija Za Štampu
  • Pošalji ovu Temu Prijatelju
  • Prati ovu temu


Kontakt Ubuntu LoZa Srbije Povratak na Vrh Povratak na Sadržaj Mobile Version RSS Prijava greške
© 2005-2018 Ubuntu LoCo Serbia. Ubuntu and Canonical are registered trademarks of Canonical Ltd.
Powered_by MyBB, © 2002-2018 MyBB Group.
Designed by : ZeRQ and Ubuntu LoCo Serbia
Hosted by mCloud