Programiranje u C-u - od svega pomalo izdvojena tema

poruka: 1.661
|
čitano: 386.775
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

C

trebam ucitati 2 skupa i izracunati njihovu uniju xD
problem mi je ako se ponavljaju dupikati, moj program ih mora ignorirati! ------and i don't know how to do that ?

npr brojeve ucitam u skup1:   1 2 3 4 4 5 4 1   mora ostati zapisano kao ...... 1 2 3 4 5 
skup 2 :   1 1 2 3     zapisano kao..... 1 2 3

unija: 1 2 3 4 5 !  

BOOO-YAHH!!! tenQ :) 

Svaki sat ranjava, zadniji ubija!
Poruka je uređivana zadnji put pon 23.12.2013 15:02 (Maxy).
 
0 0 hvala 0
17 godina
offline
Programiranje u C-u - od svega pomalo

Jedno od mogućih rješenja, sa prvim skupom nadogradimo uniju, a onda usporedimo drugi skup sa unijom i po potrebi nadogradimo.

Nisam alocirao dinamički nizove, nego samo uzeo ogledni primjer za algoritam

 

 

#include <stdio.h>


int main()
{
    int A[8] = { 1, 2, 3, 4, 4, 5, 4, 1 };
    int B[4] = { 1, 1, 2, 3};
    int C[12] = { 0 };
    int ima = 0, index = 1;
    C[0] = A[0];
    int brojA = sizeof(A) / sizeof(int);
    int brojB = sizeof(B) / sizeof(int);
    for (int i = 1; i < brojA; i++)
    {
       ima = 0;
       for (int j = 0; j < i; j++)
       {
          if (A[i] == A[j]) ima++;
       }
       if (ima == 0) C[index++] = A[i];
    }
    for (int i = 0; i < brojB; i++)
    {
       ima = 0;
       for (int j = 0; j < index; j++)
       {
          if (B[i] == C[j]) ima = 1;
       }
       if (ima == 0) C[index++] = B[i];
    }
    for (int i = 0; i < index; i++)
       printf("%d ", C[i]);
    return 0;
}

Poruka je uređivana zadnji put pon 23.12.2013 19:06 (Floki).
 
0 0 hvala 0
14 godina
offline
Programiranje u C-u - od svega pomalo

Kako bih mogao zamijeniti redoslijed prve dvije rijeci?

 

Ulaz: Dobar dan kako ste?

Izlaz: Dan dobar kako ste?

 

ovo za veliko i malo slovo sam nekako rijesio ali za zamjenu nemam uopce ideju pa bih bio zahvalan i na ideji :)

Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
yaga01 kaže...

Kako bih mogao zamijeniti redoslijed prve dvije rijeci?

 

Ulaz: Dobar dan kako ste?

Izlaz: Dan dobar kako ste?

 

ovo za veliko i malo slovo sam nekako rijesio ali za zamjenu nemam uopce ideju pa bih bio zahvalan i na ideji :)

Napravi dva privremena stringa, citaj ulaz do razmaka, onda to procitano kopiraj u prvi privremeni string, nastavi citati do drugog razmaka, pa onda to prekopiraj u drugi privremeni string i onda prepisi s tim privremenim stringovima taj glavni.

Npr. u tmp1 spremis "Dobar", a u tmp2 "dan". Nakeljis prvo "dan" (ne zaboravi razmak) preko glavnog stringa, onda ces imati: "dan r dan kako ste?" Onda nakeljis drugi privremeni string u nastavku (preko "r dan"): "dan Dobar kako ste?".

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Zdravo ljudi,

imam jedno više-manje jednostavno pitanje za vas.

Radim jedan C programčić na Raspberry Pi-u (OS:Raspbian) i trebala bi još jedna funkcija da ga dovršim.

Možete li mi reći kako da program replicira signal neke tipke tipkovnice? Tj. Ako želim da program u određenom trenutku pošalje malo 'p' i da ga OS prepozna kao da je na tipkovnici pritisnuto malo 'p'.

Unaprijed hvala.

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Nikola45 kaže...

Zdravo ljudi,

imam jedno više-manje jednostavno pitanje za vas.

Radim jedan C programčić na Raspberry Pi-u (OS:Raspbian) i trebala bi još jedna funkcija da ga dovršim.

Možete li mi reći kako da program replicira signal neke tipke tipkovnice? Tj. Ako želim da program u određenom trenutku pošalje malo 'p' i da ga OS prepozna kao da je na tipkovnici pritisnuto malo 'p'.

Unaprijed hvala.

 

Probaj ici utabanim stazama a qt je zasigurno as glede portabilnosti.

Znaci , nakon sto ga upogonis na rasPi , sky is the limit.

 

evo nekoliko linkova , nece ici lako i iz prve pretpostavljam ali uz malo truda i volje kroz par dana i preboljene djecje bolesti ovakvi trivijalni + komplexni problemi postaju rjesivi:

 

  http://qt-project.org/wiki/Qt-RaspberryPi

  http://mvclogic.com/qt/simulate-a-key-event-pressrelease-in-qt-4/

 

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
Poruka je uređivana zadnji put sub 4.1.2014 19:56 (nik_02).
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Hvala, ali ja već imam faktički gotov program u C-u i samo mi fali ta komanda. Sad da idem nanovo učit nešto zbog jedne komande mi stvarno nije previše prihvatljivo. Osim toga, čini mi se dosta kompliciranije, a ne znam radi li s WiringPi.

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Nikola45 kaže...

Hvala, ali ja već imam faktički gotov program u C-u i samo mi fali ta komanda. Sad da idem nanovo učit nešto zbog jedne komande mi stvarno nije previše prihvatljivo. Osim toga, čini mi se dosta kompliciranije, a ne znam radi li s WiringPi.

 

Ok , nisam se bavio rasPi-jem ali nema veze ( C je univerzala aka lingua franca )  tako da ajde vidi molim te moze li ti pomoci ovaj snippet da izvuces ponesto:

 

http://blog.petrockblock.com/wp-content/uploads/2013/04/main.c

http:/https://play.google.com/store/apps/details?id=org.kde.necessitas.example.SMASHHH
17 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Nikola45 kaže...

Zdravo ljudi,

imam jedno više-manje jednostavno pitanje za vas.

Radim jedan C programčić na Raspberry Pi-u (OS:Raspbian) i trebala bi još jedna funkcija da ga dovršim.

Možete li mi reći kako da program replicira signal neke tipke tipkovnice? Tj. Ako želim da program u određenom trenutku pošalje malo 'p' i da ga OS prepozna kao da je na tipkovnici pritisnuto malo 'p'.

Unaprijed hvala.

Pomalo zeznuto. Ovisi da li ti program koristi standardni I/O ili dobiva input od X servera (GUI program).

U prvom slucaju koristis nesto sto se zove "expect", a u drugom slucaju "xdotool".

 

Neki relevantni linkovi:

http://unix.stackexchange.com/questions/87831/how-to-send-keystrokes-f5-from-terminal-to-an-process

http://serverfault.com/questions/178457/can-i-send-some-text-to-the-stdin-of-an-active-process-running-in-a-screen-sessi/178470#178470

http://serverfault.com/questions/407902/write-to-the-stdin-of-a-running-process-with-the-same-effect-behaviour-of-direct?lq=1

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=60842&p=455386

xdotool: http://stackoverflow.com/questions/1262310/simulate-keypress-in-a-linux-c-console-application

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
Poruka je uređivana zadnji put ned 5.1.2014 13:03 (1domagoj1).
15 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo
Pozdrav ljudi, može pomoć sa jednim zadatkom


Imam rješenje, koje je podosta dugo, zanima me koji bi bio najkraci najjednostavniji način za riješiti ovo ali da se koristi sve što je u zadatku (funckijama) zadano




Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Hvala na linkovima, možda sam trebao biti malo detaljniji u opisu programa. Program će pri paljenju pokretati skripta u background-u i nakon njega pokrenuti program kojem će prvi slati komande, koje su igrom slučaja samo pritisci na tipkovnici. Sve tu bez GUI-a.

Poruka je uređivana zadnji put ned 5.1.2014 16:08 (Nikola45).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Evo, uspio sam pronaći, stavljam za slučaj da još netko ima sličan problem.

Ovo je dio koda koji šalje emulirani keypress + potrebni library

 

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/ioctl.h>


int tipka(){
   int hTTY=open("/dev/tty1", O_WRONLY|O_NONBLOCK);
   ioctl(hTTY, TIOCSTI, "p"); //p je slovo koje će se ispisati, TIOSTI znači da se lažira INPUT (insert byte)

   close(hTTY);}

Poruka je uređivana zadnji put uto 7.1.2014 0:10 (Nikola45).
Moj PC  
0 0 hvala 0
13 godina
offline
Programiranje u C-u - od svega pomalo

Razumije li se netko u LZW kompresiju podataka ili/i CRC kordiranje te njihovu implementaciju u C-u ?

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
BorgMater kaže...

Razumije li se netko u LZW kompresiju podataka ili/i CRC kordiranje te njihovu implementaciju u C-u ?

LZW u C-u

 

CRC

 

Iako, umjesto CRC-a preporučujem nešto ozbiljnije poput MD5, SHA1 (ili najbolje - SHA2).

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
17 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Nekako me ovo podsjeca TInf? :D

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
11 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Pozdrav. Trebala bi mi pomoc oko ovoga zadatka ako itko zna bilo kakava pomoc oko postavke bi mi dobro dosla :( :)
Napisati funkciju u C-u koja realizuje Counting algoritam sortiranja. Funkcija kao ulazne parametre prima nazive 2 fajla i logičku vrijednost true ili false. Prvi fajl je tekstuelni, predstavlja ulaz i sadrži spisak stavki koji nije sortiran. Drugi fajl je tekstuelni fajl koji je razultat sortiranja spiska, a treci parametar nosi informaciju o tome da li treba spisak da bude sortiran u rastucem ili opadajucem redosledu. Primjer:
Dafaf 1
dadAfafaf 8
Gsaad 2
Nakon poziva funkcije dobijamo fajl:
Dafaf 1
Gsaad 2
dadAfafaf 8
ako je treci parametar bio true ili:
dadAfafaf 8
Gsaad 2
Dafaf 1
ako je treci parametar bio false.

 
0 0 hvala 0
11 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

pozdrav, imam problem u c-u i trebalo bi mi rjesenje brzo.

 

moje pitanje je kako izmjeriti vrijeme izvrsavanja pojedinih funkcija ili dijelova koda? npr da odredim pocetnu tocku i zavrsnu tocku, i da mi se mjeri vrijeme izvrsavanja između te dvije tocke.

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Cartman93 kaže...

pozdrav, imam problem u c-u i trebalo bi mi rjesenje brzo.

 

moje pitanje je kako izmjeriti vrijeme izvrsavanja pojedinih funkcija ili dijelova koda? npr da odredim pocetnu tocku i zavrsnu tocku, i da mi se mjeri vrijeme izvrsavanja između te dvije tocke.

Postoji više načina ali niti jedan nije savršeno precizan, niti portabilan, stoga ću se ovdje ograničiti na windows i x86 procesore.

Najlakše je sa GetTickCount mjeriti vrijeme, problem je što ta funkcija vraća vrijeme u milisekundama a za jedan moderan procesor milisekunde su čitava vječnost. Da stvar bude još gora defaultni sistemski timer ide u koracima od oko 15 milisekundi što znači da ne možeš mjeriti išta kraće od toga. Ta je funkcija dakle korisna samo za grublja mjerenja nečega što će trajati najmanje par stotina milisekundi (logično, što je  operacija koju mjeriš dulja to će preciznost biti veća jer će ova granularnost od 15ms igrati manju ulogu).

Druga stvar koju možeš koristiti je high precision timer, odnosno QueryPerformanceFrequency i QueryPerformanceCounter par funkcija, što bi te bez problema trebalo dovesti na razinu mikrosekundi pa i nešto niže. Nažalost, preciznost nije strogo definirana nego ovisi o procesoru i verziji windowsa, ali možeš računati da je puno, puno bolja od GetTickCount i zapravo ovo je put kojim trebaš ići ako trebaš mjerenja visoke preciznosti jer OS za tebe rješava probleme koji nastaju zbog dinamičkog mijenjanja frekvencije procesora i više jezgri.

I još ti ostaje čitanje task countera pomoću RDTSC instrukcije. To je vjerojatno najpreciznije moguće mjerenje koje možeš postići bez previše gnjavaže jer čitaš izravno broj ciklusa procesora koji su protekli. No problemi nastaju kod dinamičkog mijenjanja frekvencije procesora i više jezgri. Također ti i svaki context switch brlja računicu. Tako da ti je u biti jedini način da izbjegneš sve te probleme koristiti DOS ili neki sličan operacijski sustav za RDTSC mjerenja. Izbjegavaj ovo ako možeš.

To understand what recursion is, you must first understand recursion.
13 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Eto ti primjer za Windows, Linux, MacOS.

http://stackoverflow.com/questions/2150291/how-do-i-measure-a-time-interval-in-c

 

Što se WinAPI-a tiče, za detaljnije o tim funkcijama možeš čitati ovdje:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644905%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

 

EDIT: Majstor u ovom području me pretekao, na svu sreću. :D

Crk'o Marshall!
Poruka je uređivana zadnji put pet 24.1.2014 16:52 (royalhero).
15 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

Ma kakav majstor, samo se potrefilo da sam i ja radio te stvari već prije pa sam imao ponešto za napisati. Ne možeš tu puno fulati, što sam ja napisao već je posvuda rečeno. ;)

To understand what recursion is, you must first understand recursion.
14 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

jedna nedoumica oko fscanf-a aa nigdje na netu ne mogu pronaći specifikaciju, uglavnom, citam iz .txt datoteke zapis u obliku 952 19:05 22:06, i uglavnom  kad zapišem na ovaj način (s dvotočkama izmedju %d)  fscanf(ftxt, "%5d %2d:%2d %2d:%2d", ....) program radi savršeno, no kad ih maknem ništa pa ako bi mi netko mogao objasniti što on zapravo radi s njima(dvotočkama i ostalim znakovima koji nisu brojevi), mislim kad maknem razmake isto radi normalno

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
DoolinDalton kaže...

jedna nedoumica oko fscanf-a aa nigdje na netu ne mogu pronaći specifikaciju, uglavnom, citam iz .txt datoteke zapis u obliku 952 19:05 22:06, i uglavnom  kad zapišem na ovaj način (s dvotočkama izmedju %d)  fscanf(ftxt, "%5d %2d:%2d %2d:%2d", ....) program radi savršeno, no kad ih maknem ništa pa ako bi mi netko mogao objasniti što on zapravo radi s njima(dvotočkama i ostalim znakovima koji nisu brojevi), mislim kad maknem razmake isto radi normalno

http://www.cplusplus.com/reference/cstdio/fscanf/

Konkretno:

Whitespace character: the function will read and ignore any whitespace characters encountered before the next non-whitespace character (whitespace characters include spaces, newline and tab characters -- see isspace). A single whitespace in the format string validates any quantity of whitespace characters extracted from the stream (including none).
Non-whitespace character, except format specifier (%): Any character that is not either a whitespace character (blank, newline or tab) or part of a format specifier (which begin with a % character) causes the function to read the next character from the stream, compare it to this non-whitespace character and if it matches, it is discarded and the function continues with the next character of format. If the character does not match, the function fails, returning and leaving subsequent characters of the stream unread.

 

Sto ti nije tocno jasno?

Prva tocka kaze da funkcija ignorira sve razmake u format dijelu (to je ovaj pod navodnicima). To ti odgovara na drugo pitanje.

Druga tocka kaze da sve znakove koji nisu format specifieri (znaci %d, %f itd.) i koji nisu razmaci (jer njih ignorira) funkcija usporeduje s onim znakom u streamu, prvi koji nema podudaranje uzrokuje failanje funkcije.

 

Dakle npr. imas fscanf(ftxt, "%5d %2d:%2d %2d:%2d", ....). Funkcija cita, aha %5d, znaci sad treba ucitati broj. Ucita broj. Sljedeci znak je razmak. Aha, to ignoriram, sljedeci je %2d, ucita broj, zatim dolazi znak ":", ucita i dvotocku, onda opet %2d, ucita broj itd.

Ako pozoves funkciju bez ":", dakle fscanf(ftxt, "%5d %2d %2d %2d %2d", ....), funkcija cita, %5d, ucita broj, sve pet. Razmak opet ignorira. %2d, opet ucita broj, sve pet. Sljedeci znak je opet %2d, tj. broj, ali u datoteci smo trenutno na znaku ":". Broj %2d i znak ":" nisu nikako ista stvar, funkcija faila i vraca broj uspjesno ucitanih znakova (koji je manji od broja svih koje je trebala ucitati).

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
13 godina
neaktivan
offline
Programiranje u C-u - od svega pomalo

Pozdrav, imam dva zadatka iz programiranja za riješiti, radi se o jeziku C-u i to bi trebalo napraviti u programu Code blocks, a zadaci glase:


1.Napišite program koji učitava prirodne brojeve a i b, te u rastućem poretku ispisuje sve cijele brojeve oblika 5⋅3^i-54 (5*(3na i)minus 54) koji se nalaze između a i b (bez a i b). Ispisane brojeve odvojite razmacima. Ako takvih brojeva nema, program ispisuje poruku "Nema takvih brojeva.". Pazite da tekst bude naveden točno kako piše (bez navodnika)! Oprez: može biti a<b ili a>b ili a=b!

2. Napišite program koji učitava prirodni broj n<71, te niz od n cijelih brojeva. Program treba u originalnom poretku ispisati sve elemente x[i] niza takve da je ostatak pri dijeljenju apsolutne vrijednosti x[i] s 17 jednak ostatku koji pri istom takvom dijeljenju daje najmanji od učitanih brojeva. Ispisane brojeve odvojite razmakom. 

Ako ima ko da zna to riješiti pa da napiše kod u odgovoru bio bih zahvalan, inace radi se o predmetu sa faksa.  

Moj PC  
0 2 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
mrCrazy kaže...

Ako ima ko da zna to riješiti pa da napiše kod u odgovoru bio bih zahvalan, inace radi se o predmetu sa faksa.  

Ti si super primjer budućeg inženjera - tražiš da netko drugi napravi tvoj posao. Sjedi i uči.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
mrCrazy kaže...

Ako ima ko da zna to riješiti pa da napiše kod u odgovoru bio bih zahvalan, inace radi se o predmetu sa faksa.  

Mozda se radije prebaci na filozofski, tamo ti nema programiranja Namigiva

All problems in computer science can be solved by another level of indirection
Poruka je uređivana zadnji put pet 31.1.2014 11:34 (drnde).
15 godina
offline
Programiranje u C-u - od svega pomalo

hi,

 

dali bi mi itko mogao preporučit dobru početničku literaturu za C, C++ i C#

 

jezik nije bitan, HR ili amazon.com

 

 

hvala!

HD Portal - pogled u svijet visoke rezolucije www.hdportal.eu
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
Robert_84 kaže...

hi,

 

dali bi mi itko mogao preporučit dobru početničku literaturu za C, C++ i C#

 

jezik nije bitan, HR ili amazon.com

 

 

hvala!

Osobno bih ti za početak C-a preporučio neki tutorial, da ti sjednu koncepti i osnove jezika ako nisi nikada programirao

Tu je naravno i legendarni reference

B.W.Kernighan, D.M.Ritchie: The C Programming Language

u kojem ćeš naći sve o jeziku, ali možda čak i predetaljno.

Za C++ zanimljiva knjiga domaćih autora, na vrlo pristupačan način objašnjava jezik uz primjere i prolazi svim konceptima.

Now the only thing a rambler needs is a suitcase and a gun. The only time he’s satisfied is when he’s on the run.
15 godina
offline
Re: Programiranje u C-u - od svega pomalo

hvala!

 

mislim da ću počet polako ali sa C#, to su mi savjetovali svi koji se već neko vrijeme vrte u C vodama, knjige ću pogledat. no koliko vidim kod nas su njige dosta skupe.

Amazon.com je puno jeftiniji. no internet tuturiali će mi dobro doć.... kao što kažeš da se skuži koncept kako i šta.

 

hvala u svakom slučaju.

HD Portal - pogled u svijet visoke rezolucije www.hdportal.eu
11 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo
TracerCPP kaže...
g12356 kaže...
Probao sam malo C++ i mislim da je loš jezik.Za objekte je Java zakon. 

"Malo probao C++" a donosiš takve neke zaključke? Nije mi to baš nešto argumentirano {#}.

 

Eto, primjerice, meni je Java potpuno neupotrebljiva. Razvoj aplikacija prespor (u 90% slučajeva sve samo hard-codiranje), dok i same Java aplikacije se presporo izvršavaju. Čak smo na TVZ-u uspoređivali prof. Radovan i ja kad sam bio na spec. studiju. Ta glupost od Swing-a u kojemu se ljudi muče 4 sata da slože osnovnu aplikaciju za rad s derbi bazom je čisti gubitak vremena u usporedbi s C++om (C++ Builder), gdje je meni za tu istu vježbu trebalo svega 11 minuta.

 

Prednost Jave je jako puno vremena bila jednostavna portabilnost na različite platforme, garbage collector itd., no danas niti ostali programski jezici tu ne zaostaju. C++ ima smart pointere koji se sami dealociraju (što iz gornjeg posta vidim da nisi znao), a C++ Builder već ima direktnu podršku za Mac i IOS, a Android i Linux su tu za godinu dana. A i o samoj brzini izvršavanja C++ aplikacija vs. Java aplikacija neću trošiti previše riječi. Usto, tu je .NET koji svakim danom postaje sve popularniji i baca Javu u drugi plan.

 

g12356 kaže...
 

A prvi korak za to sam već napravio(evo vam objekt u C-u :P):

  #include <stdio.h>
#include<stdlib.h>
typedef struct stringStruct
{
char* internalRep;
void (*set) (void* ,char* newString);
char* (*get) (void* );
} String;
void set(void* obj,char* newString)
{
String* self=(String*) obj;
self->internalRep=newString;
}
char* get(void* obj)
{
String* self=(String*) obj;
return self->internalRep;
}
String* new_String()
{
String* newInstance=malloc(sizeof(String));
newInstance->set=&set;
newInstance->get=&get;
return newInstance;
}
int main (int argc, char** argv[a])
{
String* ourString=new_String();
ourString->set(ourString,"MyString");
printf(ourString->get(ourString));
free(ourString);
return 0;
}

 

Možda tvoje (ne)znanje najviše i govori {#}. C nema objekte (tek primitivne tipove podataka i strukture). Ovo je tek pokušaj da se simulira objekt funkcijskim pointerima koji se naknadno trebaju inicijalizirati. Baš me zanima kako bi onda napravio polimorfizam ili neko drugo OO svojstvo i koje bi to karafeke bile.

 

Od učenja C-a nećeš ništa previše dobiti jer C je proceduralni jezik. Zato i postoji C++ kao nadogradnja C-a sa mnoštvom GUI biblioteka (VCL, MFC, Wx..) da bi preko OO pristupa olakšao izradu GUI aplikacija. Slobodno pogledaj C++ Builder pa sam prosudi koliko je to "loše". Imaš hrpu videa u repozitoriju predmeta ili na mom youtube kanalu: link

e malo sam od dosade citao, i naišao na ovu rečenicu... moje mišljenje kao relativnom početniku da je C idealan jezik za početak i nez kako necu nista previse dobiti to mi je zapravo kao idealan uvod za C++ i OO jezike  samim tim sto sam naucio alokaciju u C u C++ je bio mačji kašalj , sto sam naucio pointere dalje je u c++ lakše shvatiti i reference i sve ostalo, naucim structove vamo , klasu isto brzo upijam.... Moje je mišljenje kao budućem programeru (jesam  jak ahahah) ovaj redosljed C -> C++ -> Java ->C# ... 

14 godina
neaktivan
offline
Re: Programiranje u C-u - od svega pomalo

U potpunosti se slažem {#}. No u ovom slučaju mislim da je bilo riječ da dotični želi isključivo učiti samo C tj. ne prelaziti uopće na C++. Zato sam i naglašavao C++ prednosti.

Nova poruka
E-mail:
Lozinka:
 
vrh stranice