kategoria: ANSI C
[#31] Re: Wziąłem się za C# i potrzebuje pomocy

@selur, post #28

"Język ANSI C" Brain W. Kerninghan itd. ma około 360 stron, ale nie polecam ;)

Ciężkawo z niej idzie, chaciaż jak się wie co chce się zrobić to można wykumać.
[#32] Re: Wziąłem się za C# i potrzebuje pomocy

@simple, post #27

@simple


fajnie to wytłumaczyłeś....
zrozumie to ktoś kto już w C programował.

a teraz wytłumacz Benkowi różnicę pomiędzy * i &
podpowiedź.:
jak ktoś wie co robi rozkaz lea w assemblerze to może będzie łatwiej...

powodzenia!
[#33] Re: Wziąłem się za C# i potrzebuje pomocy

@carrion, post #29

No widzisz. Zmierzamy do setna sprawy. Ty tez kiedyś zaczynałeś od zera i muisałes jakoś ten temat ugryźć. Ja również tego chcę. Póki co działam po omacku może i trochę na ślepo. pewnie jeszcze trochę wody w Nacynie upłynie zanim zajarzę co i jak.

Analogi do Twojego postemplowania jest wiele. Ja zdaję sobie sprawę, że właściwie każdy ma prąd w gniazdu i umie obsługiwać czajnik ale poza elektrykami mało kto wie, czym się rożni kabel od przewodu czy maszyna od urządzenia.
@ Stachu

Tekst typu "ręce opadają" nie jest konstruktywną krytyką.

Benedykt Dziubałtowski
[#34] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #33

@ Stachu

Tekst typu "ręce opadają" nie jest konstruktywną krytyką.


Na studiach miałem profesora który stosował następującą skalę ocen: 5, 4, 3, 2, b.p. .
b.p. oznaczało "bez pojęcia" bo jak mawiał "żeby mieć dwóję to też trzeba coś umieć".
Ja naukę programowania przerwałem po 2 dniach z czego 1,5 dnia zajęło mi czytanie dokumentacji opisującej podstawy o co w programowaniu chodzi, co to jest linker i kompiler i takie tam.
Drugi raz nawet nie zaczynałem. Nie każdy ma talent do programowania.
[#35] Re: Wziąłem się za C# i potrzebuje pomocy

@stachu100, post #34

true, true. Ja na chwilę obecną na bak mam b.p ale do egzaminu mam jeszcze trochę czasu ;)

Benedykt Dziubałtowski
[#36] Re: Wziąłem się za C# i potrzebuje pomocy

@stachu100, post #34

Nie każdy ma talent do programowania.


Nie przeceniałbym roli tego taletnu w programowaniu. Programowanie zwyczajnie nie jest proste i wymaga dużo czasu. Sam pamiętam ile czasu spędziłem na samym początku, żeby ogarnąć podstawy. Sporo tego czasu wbrew pozorom właśnie zajmują rzeczy typu obsługa kompilatora, próby domyślenia się co znaczy dany błąd kompilatora (powstały np. w wyniku braku średnika). A później błędy w wyniku nieprawidłowego używania wskaźników. Zwyczajnie trzeba być upartym aby przez to przebrnąć .

Inna sprawa jest taka, że dzisiejsze "nowoczesne" systemy operacyjne zwykle nie ułatwiają zrozumienia tego, co faktycznie dzieje się w wyniku działania naszego prostego programu. Jak wpiszę printf to jakaś magia, że pojawia się string na ekranie? Etc. Z drugiej strony mamy ochronę pamięci (nie na Amidze oczywiście), która pozwala łatwiej wykryć typowe błędy w zarządzaniu pamięcią w programie.

Ostatnio dochodzę do wniosku, że programowania powinno się uczyć na mikrokontrolerach. Tam pewne rzeczy są trywianie oczywiste, np. to że jak gdy w kodzie programu zrobię
PORTX = 0x1;
To linia zero (bit 0) danego portu przejdzie w stan wysoki i dioda podłączona do niego się zaświeci. Efekt bardzo obrazowy, że tak powiem.


Ostatnia aktualizacja: 17.10.2012 17:25:50 przez strim
[#37] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #21

Drugie pytanie czy cubic IDE dla klasyka to jest dobry pomysł?
Lepszy niż CED zapewne, ale masz jeszcze jedną ciekawą alternatywę, mianowicie używać Scribble na MorphOS-ie. Scribble ma kolorowanie składni i odpowiednik IntelliSense. Pod MorphOS-em masz też kroskompilator kompilujący dla klasyka. Z drugiej strony masz tam nowoczesny GCC 4, czyli możesz poznawać C++ i programowanie obiektowe. Program skompilowany na 68k możesz od razu odpalić. Nie zastąpi to co prawda testów na prawdziwym klasyku, ale od razu wyłapujesz wiele błędów.
[#38] Re: Wziąłem się za C# i potrzebuje pomocy

@strim, post #36

Ten przykład to taki nie do końca ok ;) W MCU nie steruje się bezpośrednio portami, a rejestrami portów (które nie muszą być przepisywane na GPIO co cykl zegara - szczególnie w szybszych i bardziej zaawansowanych mcu). Dodatkowo w ARM i AVR jest kilka rejestrów i dopiero odpowiednie kombinacje oznaczają "stan wysoki", inne to np. stan wysoki z silnym pull-up (led -source) stan wysoki ze słabym pull-up, stan wysokiej impedancji (bez pull-up), stan niski (sink) - ale to jest tylko operowanie czystym C na definicjach rejestrów więc zasadniczo nie ma różnicy. Programowanie C na MCU ma dla nauki tę jedną zaletę, że nie szafuje się niepotrzebnie intami i floatami, a dodatkowo oszczędza się pamięć RAM (bo po co stałe łańcuchowe np. komunikaty LCD w pamięci RAM procesora? : )

Talent to się przydaje przy konkretnych dużych projektach, przy małych (i nie mowa wcale o "heloł łorld" wcale tego "talentu" tak nie potrzeba. Trzeba mieć tylko odrobinę samodyscypliny i nauczyć się zasad składni języka i jak algorytm w głowie "przetłumaczyć" na kolejne linie w wybranym języku. To jest właśnie istota programowania - jak jakiś problem zapisać w formie zrozumiałej przez komputer.
[#39] Re: Wziąłem się za C# i potrzebuje pomocy

@krashan_, post #37

Ciekawa sprawa. Nie mam niestety maszyny z MorphOs ani miejsca a nią.

Benedykt Dziubałtowski
[#40] Re: Wziąłem się za C# i potrzebuje pomocy

@selur, post #28

Łetam "troche" przesadziłeś, kisążka "Język ANSI C" (przez wielu uważana za biblię tegoż języka) ma "tylko"
328 stron. Myślę że jeśli ktoś chce zacząć naukę języka C, i tylko języka bez zbędnych rzeczy, to właśnie ta
książka, jakiś edytor - może być CED, i jakiś najprostszy kompilator - bez fajerwerków. To pozwoli szybko
zacząć i przekonać się na własnej skórze czy nam to podpasi, nie ma sensu wydawać kupę kasy albo męczyć
się z instalacją kombajnów żeby potem stwierdzić: błee to nie dla mnie.
Życzę wytrwałości i dużo przyjemności z nauki.
Ja, gdy dawno dawno temu zaczynałem naukę C, tego drugiego miałem pod dostatkiem, gorzej z pierwszym ;p.
[#41] Re: Wziąłem się za C# i potrzebuje pomocy

@abcdef, post #38

W MCU...


Wszystko co piszesz to prawda, ale w tym przykładzie chodziło mi coś zupełnie innego - o to, że wykonanie jakiejś operacji na poziomie rejestrów skutkuje czymś, co jest widoczne dla programisty w wyjątkowo jasny sposób. A to ma niewątpliwe znacznie edukacyjne - widać co się dzieje "pod spodem". Ja z MCU mam styczność dopiero od niedawna, a z programowaniem w systemach UNIXowych od jakiś 10 lat i widzę różnicę w stopniu skomplikowania...

Poza tym chyba nie ma sensu ciągnąć tego off topa :P.

Ostatnia aktualizacja: 17.10.2012 18:23:45 przez strim
[#42] Re: Wziąłem się za C# i potrzebuje pomocy

@stachu100, post #34

Ja naukę programowania przerwałem po 2 dniach z czego 1,5 dnia zajęło mi czytanie dokumentacji opisującej podstawy o co w programowaniu chodzi, co to jest linker i kompiler i takie tam.


A zdawało mi się, że pewnej nocy na AmiParty, coś w basicu klikałeś na swoim spektrumie jakieś 3 lata temu. :)
[#43] Re: Wziąłem się za C# i potrzebuje pomocy

@sand, post #42

No tak. Przygodę z Basic-em na ZX Spectrum wspominam całkiem miło. Wtedy jeszcze nie wiedziałem że istnieje coś takiego jak kompiler czy linker.
[#44] Re: Wziąłem się za C# i potrzebuje pomocy

@stachu100, post #43

Ano dlatego, że do programowania nie musisz znać zasady działania kompilera czy linkera, jak kompiler tworzy pliki relokowalne, jak potem są konsolidowane itp. itd. Po co? To już jest wyższa szkoła jazdy.
Jak umiesz naskrobać w basicu
IF warunek THEN działanie1 ELSE działanie2
GOSUB xx
...
RETURN
...
PRINT "xxxx"
GET ...
to znaczy, że potrafisz przenieść algorytm do języka programowania. To, że akurat do BASICa nie oznacza, że na C nagle tej umiejętności brakuje. Brakuje podstaw języka, ale to akurat da się nadrobić. Ale wracając do tematu - przygotowanie środowiska pod windą:
http://www.doctort.org/adam/nerd-notes/cross-compile-for-68000-in-c-under-windows.html
Może się przydać, nie wiem czy tak spreparowany gcc pozwala pisać bez większych problemów w CodeBlocks, ale jeśli tak to polecam to środowisko, bo jest względnie małe więc szybkie, a dość funkcjonalne. Jeśli nie to można by się zastanowić nad Linuksem i Eclipse (jakoś na linuksie lepiej mi działa zarówno GCC jak i Eclipse, tak samo SDCC z 8051 MCU IDE). Pod AOS prawdę mówiąc nic w C oprócz baaardzo prostych przykładów baaaaardzo dawno temu nie robiłem więc trudno mi mówić o środowisku czy szybkości kompilowania.
[#45] wziąłem

@strim, post #36

Konstruktywna krytyka swoją drogą, ale jeżeli Benedykt chce się uczyć, niech się uczy. Ja programistą nie jestem i nie będę, kilka rzeczy w życiu skrobnąłem jednak, a ostatnio myślę o tym, żeby pobawić się łącząc proste programy i GPS (może przyjdzie na to pora). Każdy ma swoje potrzeby i na swoje potrzeby może się nauczyć programować od zera, jeśli ma "wyobraźnię do algorytmów". Nie zaprzeczycie, że jest to zrozumienie idei i pewien sposób myślenia. Talent może mniej tu potrzebny, natomiast z pewnością godziny przed ekranem trzeba odsiedzieć.
Fakt, że Benedykt mógł sprawdzić przed zadaniem pytania, czy C# i C to jedno i to samo, ale nie sprawdził. Ja bym się bardziej czepił tego, że w temacie napisał "wziąłem", zamiast "wziąłem" :).
[#46] Re: wziąłem

@Leander, post #45

OT
Ty się śmiej, zawsze z dyktand miale 4 i 5. A ostatnio złapałem się na zastanawianiu jak napisać "każe" - od kazać coś zrobić, nie karać ;)
[#47] Re: wziąłem

@abcdef, post #46

Też pozwolę sobie na OT. Moim zdaniem Rada Języka Polskiego powinna ujednolicić pisownie ó,u,rz,ż,h,ch i całą resztę gdzie się tylko da. W przypadkach, które wymagają różnej pisowni wprowadzić wyjątek od tej reguły i spokój np. może i morze. Ja radzę sobie z naszą pisownią, ale w sumie to szkoda mi dzieciaków. Wiem skąd wzięły się te różnice w pisowni, ale na litość boską, jeżeli można ułatwić ludziom życie to dlaczego tego nie zrobić. Niestety ten numer chyba nie przejdzie.
[#48] Re: Wziąłem się za C# i potrzebuje pomocy

@carrion, post #29

..System.out.println.... to raczej w Javie :)

@Benek - powiem tak, ostatnio do mojej firmy przyszedl czlowiek ktory uparcie twierdzil ze do programowania jest stworzony - po 3 tygodniach rozwiazywania podstawowego zadania, z ktorym studenci, ktorzy u mnie pracuja radza sobie w 2 godziny, w koncu przekonalem go, ze nie kazdy moze byc programista :) Zostal testerem - i sprawuje sie bardzo dobrze...

Ale jesli nadal chcesz probowac - niedlugo Helion wypusci fajna ksiazke: "C - Rusz głową" - aktualnie kończę jej korektę, a więc można się jej spodziewać za ok 1-1,5 miesiąca.
To jest książka z serii która bardzo dobrze tłumaczy dla nowicjuszy zasady czegokolwiek się tam chcą nauczyć (w serii jest wiele książek do różnych języków programowania) - zatem jeśli zapoznasz się z nią i dalej nic nie będziesz kumał - to niestety programowanie nie jest dla Ciebie :)


(Ja programuję już prawie 20 lat - zaczynałem na C64 - i wiem, że to nie jest proste :P W sumie jest, ale nie każdy jest do tego stworzony)
[#49] Re: wziąłem

@Leander, post #45

Co ciekawe kolejne osoby, które odpowiadały tego tematu nie poprawiły już w swoich postach (tylko powielały błąd) a przecież taką możliwość posiadały ;)

Co do tematu to najlepiej będzie zacząć od kursów na PPA albo np. C++ bez holesterolu.
[#50] Re: Wziąłem się za C# i potrzebuje pomocy

@strim, post #41

Kurcze same problemy z tym C. Siedze na drógiej lekcji kursu C na ppa i.....

#include 
main()
{
   printf("Pierwszy program napisany w C, pod VBCC\n");
   return(0);
}



Visual studio expres 2010 sypie błędami
Error	1	Preprocessor directive expected	C:\Users\Benedykt\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs	1	2	ConsoleApplication1
Error	2	Single-line comment or end-of-line expected	C:\Users\Benedykt\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs	1	10	ConsoleApplication1
Error	3	A namespace cannot directly contain members such as fields or methods	C:\Users\Benedykt\AppData\Local\Temporary Projects\ConsoleApplication1\Program.cs	2	1	ConsoleApplication1



Co robię źle?


Benedykt Dziubałtowski

.
Edit.


nie wiem czemu ale zajda mi

#include
main()
{
printf("Pierwszy program napisany w C, pod VBCC\n");
return(0);
}

Ostatnia aktualizacja: 17.10.2012 23:56:45 przez Benedykt Dziubałtowski
[#51] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #50

Zjada bo filtr do wycinania tagów html działa (błędnie) też wewnątrz tagu code.
[#52] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #50

W pierwszej linii ma być pewnie:
#include <>(może być też <> lub <>, zależy od kompilatora i wersji C)


Benek, powiem tak zerknij pod ten adres: http://xion.org.pl/productions/texts/coding/megatutorial/ jest tam przyzwoity kurs programowania C++, olej C. Poszukaj edytora Ann (nie wiem czy jest na klasyka, na pewno jest na arosa - polecam, aros świetnie chodzi pod VirtualBox pod windows i ma gcc w wersji 4.6.x) ma jakieś szczątkowe kolorowanie składni i inne pomocne opcje przy pisaniu programów. Po paru przykładach poczytaj o pliku makefile, na początek wystarczy samo g++ lub gcc by skompilować jednoplikowe programy, ale potem to już makefile się przydaje ;)

Nie słuchaj tekstów, że kolorowanie składni i jakakolwiek pomoc od strony programu - edytora jest be, ja uważam, że jest niezastąpiona i bardzo pomocna - również dla początkujących.

Takie smutne gadanie, by wszystko robić ręcznie, że tylko C itd. skutkuje tym, że na ami nie ma praktycznie sensownego IDE (no może jedno jakieś jest pod OS4 i MOS, inne było), a tworzenie prostego softu powoduje, że większość kodu to obsługa systemu: typu otwarcie-zamknięcie okna itd. co zajmuje określony czas i energię ;), gdzie tymczasem dobra biblioteka obiektowa (którą MUI nie jest), sprowadziła by to np. do czterech linijek eleganckiego kodu ;)

PS
Widzę, że mi też zjada, to lepiej podaj linka na kod programu.

Ostatnia aktualizacja: 18.10.2012 00:42:37 przez tygrysekHD
[#53] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #50

Jak na moje niewprawne w Windowsie oko, to próbujesz kompilować kod C za pomocą kompilatora C#.

Kolega post wyżej pogadał se, pogadał, a tego problemu nie zauważył. A ten problem, nawiasem mówiąc, by nie wystąpił gdyby Benek się nie uparł by Viżual Studio używać.
[wyróżniony] [#54] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #50

Stworzyłeś projekt C# zamiast C/C++, VS próbuje kompilować kod C kompilatorem C#. Stwórz nowy projekt.

Co do samej nauki, musisz mieć b. dużo czasu. W papierowym ppa znajduje się artykuł asman'a, postępuj dokładnie wg niego. Ja miałem mały problem ze znalezieniem najnowszych binarek ale w tym też asman może pomóc. :)
[#55] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #50

Oj Benek, Benek OK

sciagnij sobie to http://mequa.dragotech.net/AMOS%20for%20Windows.exe

i napisz:

print "Mu!j nie pierwszy program w AMOS, ale pierwszy pod UAE"
wait 100
end

nastepnie F2, i F1 :)

i wszystko robisz dobrze
[#56] Re: Wziąłem się za C# i potrzebuje pomocy

@Mir3k, post #54

No ok. Tylko, że w nowych projektach do wyboru jest tylko C# albo C++. Nie ma samego C. Pod C++ też są jaja i nie kompiluj kodu.


Benedykt Dziubałtowski
[#57] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #56

Benek wybierz C++ (np. Win32 Project), zasadniczo każdy prosty przykład z C powinien się skompilować bez żadnego ale w projekcie C++.

C# jak już tu było wspomniane, to całkiem inny język programowania, który na Amidze nie jest dostępny.

Pod linkiem, który podałem wcześniej są przykłady dla Visual C++ z obrazkami, jak będziesz miał problem śmiało pytaj ;)
[#58] Re: Wziąłem się za C# i potrzebuje pomocy

@tygrysekHD, post #57

No neistety pod C++ tez komplitor nie działa :(

1------ Build started: Project: aaaa, Configuration: Debug Win32 ------
1  aaaa.cpp
1c:\users\benedykt\documents\visual studio 2010\projects\aaaa\aaaa\aaaa.cpp(4): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Kod jest taki sam jak wyżej. Amos to jednak potęga :)



Benedykt Dziubałtowski
[#59] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #58

Jak nie widać kodu to lipa, zrób jakiś zrzut ekranu i załącz, by było coś widoczne.

Może sprawdź to co jest w punkcie "pierwszy program" pod tym adresem: http://xion.org.pl/files/texts/mgt/html/1_2.html

Ostatnia aktualizacja: 18.10.2012 09:26:24 przez tygrysekHD
[#60] Re: Wziąłem się za C# i potrzebuje pomocy

@Benedykt Dziubałtowski, post #58

Błędy masz w pliku źródłowym. Wpisz oprócz include, którego nie podam bo wyżera znaki

int main(void)
{
printf("halo\n");
return 0;
}

Ostatnia aktualizacja: 18.10.2012 09:20:36 przez asman

Ostatnia aktualizacja: 18.10.2012 09:22:23 przez asman
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem