RTV forum PL | NewsGroups PL

Nauka programowania w C: Jakie materiały i porady dla początkującego?

C i mikroprocesory

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Nauka programowania w C: Jakie materiały i porady dla początkującego?

Goto page 1, 2, 3, 4  Next

ogi
Guest

Fri May 14, 2004 4:42 pm   



W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

Krzysztof Madziar
Guest

Fri May 14, 2004 7:06 pm   



Quote:
W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie
nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś
trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te
umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

C nie polecam, miałem z nim straszne przygody, ale jak musisz to
zajrzyj tu:

http://galaxy.uci.agh.edu.pl/~chwastek/lectures/C/spis.html

Pozdrawiam

Krzysiek

Max
Guest

Fri May 14, 2004 7:49 pm   



Użytkownik ogi napisał:

Quote:
W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość). Język C ma jedynie sens w "układach"
opartych na systemie operacyjnym. Pozatym według mnie lepiej się uczyć C
jak sie zna asembler. C jest "dziwnym" ale i najlepszym jezykiem
programowania wysokiego poziomu. Dziwnym, chodź to może złe określenie
ponieważ pozwala programiście prawie na wszystko (co ma pewne plusy
jeżeli się wie co robi) przez co powstają czesto bardzo trudno
wykrywalne błedy, w przeciwieństwie do pascla itp.

Pozdrawiam
Maksymilian Dutka
#GG: 1493163

B
Guest

Fri May 14, 2004 8:25 pm   



ogi wrote:

Quote:
W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

No przede wszystkim zalatw sobie jakis kompilator C.
Dla poczatkujacego najlepszy IMHO jest i pozostanie
(mimo swych ograniczen) dosowy kompilator Borland C++ 3.1

B.

B
Guest

Fri May 14, 2004 8:44 pm   



Max wrote:

Quote:
Użytkownik ogi napisał:

W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość).

To stwierdzenie ma sens tylko dla bardzo malych mikrokontrolerow gdzie
ograniczone zasoby nie pozwalaja na wygodne zaimplementowanie C.
Duzych mikrokontrolerow nie programuje sie w assemblerze z zalozenia.
Assembler ma tylko role pomocnicza.

Quote:
Język C ma jedynie sens w "układach" opartych na systemie operacyjnym.

Co ty nie powiesz.
Przy programowaniu sprzetu jezyk C zawsze ma sens (choc istnieja nieliczne
wyjatki).

Quote:
Pozatym według mnie lepiej się uczyć C
jak sie zna asembler. C jest "dziwnym" ale i najlepszym jezykiem
programowania wysokiego poziomu. Dziwnym, chodź to może złe określenie
ponieważ pozwala programiście prawie na wszystko (co ma pewne plusy
jeżeli się wie co robi) przez co powstają czesto bardzo trudno
wykrywalne błedy, w przeciwieństwie do pascla itp.

Mow co chcesz, ale najwazniejszy k..., jest debugger.

B.

badworm
Guest

Fri May 14, 2004 9:32 pm   



Wysyłając taki oto zestaw znaków dnia 2004-05-14 23:25 B nakarmił(a)
stado głodnych newsserwerów:

Quote:
No przede wszystkim zalatw sobie jakis kompilator C.
Dla poczatkujacego najlepszy IMHO jest i pozostanie
(mimo swych ograniczen) dosowy kompilator Borland C++ 3.1

Hmm... Pisać w Borlandzie C++ na mikrokontrolery??? To jak strzelać z

armaty do muchy ;-)

--
Pozdrawiam Bad Worm badworm{"a" w kolku}post[punkt]pl
http://www.gusnet.prv.pl (nieczynne do odwolania) GG# 2400455
"Dziwny jest ten świat..."
Tnijcie cytaty i sygnaturki!

Jan Dubiec
Guest

Fri May 14, 2004 11:08 pm   



On Fri, 14 May 2004 22:49:45 +0200, Max <max@dioda.sytes.net> wrote:
[.....]
Quote:
Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość). Język C ma jedynie sens w "układach"
opartych na systemie operacyjnym. Pozatym według mnie lepiej się uczyć
C jak sie zna asembler. C jest "dziwnym" ale i najlepszym jezykiem
programowania wysokiego poziomu. Dziwnym, chodź to może złe określenie
ponieważ pozwala programiście prawie na wszystko (co ma pewne plusy
jeżeli się wie co robi) przez co powstają czesto bardzo trudno
wykrywalne błedy, w przeciwieństwie do pascla itp.
Może lepiej nie pisz takich rzeczy bo ktoś przez przypadek weźmie to

na poważnie.

BTW. Ja tam słyszałem że "prawdziwe" programy (lotnictwo, wojsko)
pisze się w ADA. To taki język wysokiego poziomu troszeczkę podobny do
Pascala.

Regards,
/J.D.
--
Jan Dubiec, jdx@slackware.pl, mobile: +48 506 790442

Głęboka wiara wymaga płytkiego rozumu i nikłej wiedzy.

Krzysztof Rudnik
Guest

Sat May 15, 2004 5:18 am   



Max wrote:

Quote:
Użytkownik ogi napisał:

W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość). Język C ma jedynie sens w "układach"
opartych na systemie operacyjnym. Pozatym według mnie lepiej się uczyć C
jak sie zna asembler. C jest "dziwnym" ale i najlepszym jezykiem
programowania wysokiego poziomu. Dziwnym, chodź to może złe określenie

Nazywanie C jezykiem wysokiego poziomu jest kontrowersyjne -
jest to raczej taki 'przenosny assembler' - wiekszosc konstrukcji
C jest tlumaczona na pojedyncze lub kilka instrukcji assemblera.

Niedawno byl watek o niezgodnosci jezyka C z architektura
niektorych prockow, tych z rozdzielona przestrzenia danych i
programu. No i musi byc dostepny sensownej wielkosci stos.
Ale i tak zwykle jakies wstawki a assemblerze sa niezbedne -
inaczej nie da sie skonfigurowac procka (przerwania,
jakies tryby, flagi w CPU itp).


Krzysiek Rudnik

jqc
Guest

Sat May 15, 2004 6:38 am   



Quote:
W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie
nauczyć
programowania w C? Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w Bascomie, czy te
umiejętności
pomogą mi opanować C? Czy składnia jest podobna?

No przede wszystkim zalatw sobie jakis kompilator C.
Dla poczatkujacego najlepszy IMHO jest i pozostanie
(mimo swych ograniczen) dosowy kompilator Borland C++ 3.1

A ponadto książkę - w tym przypadku najlepiej omawiającą standard ANSI C.
Wszystkie nowe skupiają się głównie na programowaniu obiektowym, więc sa
mniej pomocne.
A najlepiej opanować najpierw asembler, żeby przechodzić z programowania z
asemblera na C (a nie odwrotnie).

Marek

J.F.
Guest

Sat May 15, 2004 7:57 am   



On 15 May 2004 02:08:03 +0200, Jan Dubiec wrote:
Quote:
BTW. Ja tam słyszałem że "prawdziwe" programy (lotnictwo, wojsko)
pisze się w ADA.

Dawno dawno temu Pentagon powiedzial ze nie kupi innego programu niz w
Adzie. Od tego czasu minelo juz sporo lat .. i wykladowcy emigrujacy
do ameryki narzekaja ze jak usiluja wprowadzic Ade jako jezyk
cwiczeniowy, to studenci przynosza gazete i prosza o wskazanie jednego
ogloszenia o prace "znajomosc Ady pozadana".

Quote:
To taki język wysokiego poziomu troszeczkę podobny do Pascala.

I w sumie niewiele rozny od C, PL/1, Fortranu czy innych.
Mial dwie zalety:
- programista specyfikuje zmienne dokladnie - podajac zakres
i dokladnosc, wiec nie ma problemu przy przenoszeniu "a na nowej
maszynce int nie ma 32 bity, program mi nie dziala, buuu",

- mial oficjalnie wbudowane mechanizmy mielozadaniowosci, choc
mowiac szczerze takie sobie..

J.

Paweł Kurzawa
Guest

Sat May 15, 2004 8:09 am   



Quote:
W jaki sposób (tzn. z jakich źródeł) mogę się w rozsądnym czasie nauczyć
programowania w C?

analizuj proste programiki dostarczone z dolaczonymi bibliotekami. Ja
nauczylem sie tylko i wylacznie na przykladach i jakims malym leksykonie z
ksiegarni.
Moze nie opanowalem wszystkiego, ale cos tam potrafie

Quote:
Programować w C to wogóle nie umiem, kiedyś trochę
programowałem w Pascalu, a obecnie nieco w >Bascomie, czy te umiejętności
pomogą mi opanować C? Czy składnia jest podobna?
Ja przesiadlem sie a Bascoma i jestem b. zadowolony.

Moze i C jest trudniejszy, ale duzo wygodniejszy jak juz sie pojmie conieco.
Bascom ma duzo bledow i niedociagniec (AVRGCC takze!).
Jednak jak nie zamierzasz pisac powaznych programow to pozostan przy
Bascomie !!


--

--
Best regards
K@pW from Poland

kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------

Max
Guest

Sat May 15, 2004 9:21 am   



Użytkownik B napisał:

Quote:
Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość).
To stwierdzenie ma sens tylko dla bardzo malych mikrokontrolerow gdzie
ograniczone zasoby nie pozwalaja na wygodne zaimplementowanie C.
Duzych mikrokontrolerow nie programuje sie w assemblerze z zalozenia.
Assembler ma tylko role pomocnicza.


Zgadzam się z tym ze w C jest wygodniej ale znacznie sie traci na
szybkości programu. Po co pisać coś w C i kupować droższy mikrokontroler
jak można napisać to samo w asm i zaoszczędzić pieniędzy.


Quote:

Język C ma jedynie sens w "układach" opartych na systemie operacyjnym.


Co ty nie powiesz.
Przy programowaniu sprzetu jezyk C zawsze ma sens (choc istnieja nieliczne
wyjatki).


To dlaczego Microsoft swoje sterowniki robi w asm. ? (zobacz sobie do
DDK dla win98, dla win2000 juz są w C Sad ), jądro linux-a też jest
częściowo w asm.
Dlatego pisze że podsystem operacyjny jest lepiej w C gdyż jest wtedy
większa przenośność kodu (na inne systemy), poza tym jeżeli się zmienia
system operacyjny (typ sprzętu) to nie trzeba się bawić w naukę odwołań
do systemu/sprzętu. Jeżeli się pisze w C pod mikro. to i tak trzeba
wiedzieć wszystko o sprzęcie, bo nie ma niczego (systemu operacyjnego)
co by "oddaliło" programistę od sprzętu (no może gdyby był jakiś dobry
kompilator C na mikro. to zapewniał by cos takiego w jakimś tam stopniu).


Quote:
Mow co chcesz, ale najwazniejszy k..., jest debugger.

Tu się kłania znajomość asemblera, zapewne powiesz że przecież
debugowanie odbywa sie w C, ale niestety to nie zawsze wystarcza czasem
trzeba "dłubać" w asm.

Pozdrowienia
Maksymilian Dutka

Krzysztof Rudnik
Guest

Sat May 15, 2004 12:36 pm   



Max wrote:

Quote:
Użytkownik B napisał:

Lepiej zainteresuj sie asemblerem, pod mikrokontrolery "prawdziwych"
programów nie pisze sie w językach wysokiego poziomu
(szybkość,stabilność,wielkość).
To stwierdzenie ma sens tylko dla bardzo malych mikrokontrolerow gdzie
ograniczone zasoby nie pozwalaja na wygodne zaimplementowanie C.
Duzych mikrokontrolerow nie programuje sie w assemblerze z zalozenia.
Assembler ma tylko role pomocnicza.


Zgadzam się z tym ze w C jest wygodniej ale znacznie sie traci na
szybkości programu. Po co pisać coś w C i kupować droższy mikrokontroler
jak można napisać to samo w asm i zaoszczędzić pieniędzy.


To z wieksza szybkoscia asma to zaszlosci - kiedys uruchamiajac
program startowy na MCF5407, zeby sprawdzic czy program dochodzi
do danego miejsca wstawilem tam prosciutka petle wysylajaca
sygnal prostokatny na jedno wyjscie. Jak robilem to czesci,
napisanej w asmie, petelka byla w asmie, jak juz ta czesc uruchomilem,
pisalem w C. Troche mnie zaskoczylo, ze w tym drugim wypadku
na oscyloskopie dostalem wieksza czestotliwosc.
Zeby w asmie napisac tak efektywny kod jak daje dobry kompilator
trzeba sie niezle naglowkowac. Nie ma to sensu, jesli tego asma
jest wiecej niz kilkadziesiat linii.


Quote:

To dlaczego Microsoft swoje sterowniki robi w asm. ? (zobacz sobie do
DDK dla win98, dla win2000 juz są w C Sad ), jądro linux-a też jest
częściowo w asm.

Bo tam trzeba uzyc pewnych elementow, ktorych nie ma w C -
przerwania, IO, zarzadzanie cache'em, i inne specyficzne
dla procesorow instrukcje.

Krzysiek Rudnik

Jan Dubiec
Guest

Sat May 15, 2004 1:55 pm   



On Sat, 15 May 2004 12:21:44 +0200, Max <max@dioda.sytes.net> wrote:
[.....]
Quote:
Zgadzam się z tym ze w C jest wygodniej ale znacznie sie traci na
szybkości programu.
To nie jest zawsze prawdą. W szczególności w przypadku bardziej zaawansowanych

procesorów/kontrolerów. Np. takich wyposażonych w cache.

Quote:
Po co pisać coś w C i kupować droższy mikrokontroler jak można
napisać to samo w asm i zaoszczędzić pieniędzy.
Dłuższy czas poświęcony na rzeźbienie w assemblerze też kosztuje.

Późniejsze utrzymanie oprogramowania również. A i końcowy efekt
niekoniecznie musi być lepszy.

Quote:
To dlaczego Microsoft swoje sterowniki robi w asm. ? (zobacz sobie do
DDK dla win98, dla win2000 juz są w C Sad ),
Jak sam zauważyłeś już nie pisze. Win98? To ktoś jeszcze tego używa? Smile


Quote:
jądro linux-a też jest częściowo w asm.
Formalnie masz rację, ale ta część napisana w assemblerze to jest dla

i386 jakieś 0.5% (około 25 plików .S na 5000 plików .c). No bo przecież
w każdym systemie operacyjnym jest jakaś część zależna od sprzętu.

Quote:
Dlatego pisze że podsystem operacyjny jest lepiej w C gdyż jest wtedy
większa przenośność kodu (na inne systemy), poza tym jeżeli się
zmienia system operacyjny (typ sprzętu) to nie trzeba się bawić w
naukę odwołań do systemu/sprzętu.

Jeżeli się pisze w C pod mikro. to i tak trzeba wiedzieć wszystko
o sprzęcie, bo nie ma niczego (systemu operacyjnego) co by "oddaliło"
Jak to nie ma jak jest. Przecież są do kupienia/ściągnięcia komercyjne/darmowe

OS-y na różne uC. Chyba tylko na PIC12 i jakieś czerobitowce nic nie ma. :-)

Regards,
/J.D.
--
Jan Dubiec, jdx@slackware.pl, mobile: +48 506 790442

Głęboka wiara wymaga płytkiego rozumu i nikłej wiedzy.

Jan Dubiec
Guest

Sat May 15, 2004 2:09 pm   



On Sat, 15 May 2004 15:36:45 +0200, Krzysztof Rudnik <rudnik@kki.net.pl> wrote:
[.....]
Quote:
To z wieksza szybkoscia asma to zaszlosci - kiedys uruchamiajac
program startowy na MCF5407, zeby sprawdzic czy program dochodzi
Ja kiedyś z nudów napisałem (a w zasadzie przetłumaczyłem z C na

assemblera) naiwną implementację RC4 taka jak np. ta:
ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/rc4/rc4.c
Okazało się że mój kod w asm na PIII chodzi prawie 8 razy wolniej niż
w/w kod w C skompilowany gcc -O3. Już nawet nie porównywałem tego z dobrą
implementacją RC4 w C, np. taką jak w OpenSSL. :-)

Regards,
/J.D.
--
Jan Dubiec, jdx@slackware.pl, mobile: +48 506 790442

Głęboka wiara wymaga płytkiego rozumu i nikłej wiedzy.

Goto page 1, 2, 3, 4  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Nauka programowania w C: Jakie materiały i porady dla początkującego?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map