Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 kwi 2024, o 16:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 93 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona
Autor Wiadomość
PostNapisane: 5 lut 2013, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Spoko jest :) a teraz bez gadania do roboty :)


jak mawia tu taki jeden oszołom na forum


Pax , pax miedzy chrześcijany :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:00 

Pomógł: 0

Jak już wcześniej mówiłem rzucasz się, a sam nie wiesz na co ;). Sam byłem taki narwany jak próbowałem programować w C pod AVRy ponad rok temu.

Po pierwsze, jeżeli twierdzisz, że brak ci czasu, odpuść sobie........ C to droga przez mękę trudna, usiana pułapkami i mnóstwem teorii którą trzeba przetrawić.

Chcesz prosto i szybko, zacznij od ardunio tam masz wiele gotowych rozwiązań..... prawie jak w bascomie.

Naprawdę nie dziwię się, że Mirka przysłowiowy Szlak trafia.
Od samego początku tematu masz bardzo roszczeniowy tryb i zachowujesz się jak byś co najmniej pod groźbą wymagał by ci coś wytłumaczyć od zera.

Po kolei, po kolei.
Naucz się najpierw operatorów, definicji, deklaracji, co to funkcja itd. NAUCZ się, a nie przewertuj parę kartek BO nie masz czasu!

Naprawdę cię rozumiem, sam jestem nerwowy, narwany i chce już! już! już!..... C ciężko na początek zrozumieć, ale potem już jest coraz łatwiej.

J/w zacznij mrugać diodą na kilka sposobów, napisz prostą obsługę klawisza, klikaj, migaj etc. I tak do znudzenia. Zacznij wprowadzać powoli pętle, warunki itp. do programu.

Co z tego, że piszesz w bascomie w C jak już sam zauważyłeś to inna bajka. To jak byś twierdził, że przecież znasz jeden z trudniejszych języków świata (polski) to przecież by mówić po chińsku wystarczy przeczytać (a nie sorry ty nie masz czasu), przelecieć przez rozmówki i już.
Tak się nie da, nie ma takiej opcji, albo się solidnie weźmiesz za robotę, sukcesywnie, dzień po dniu, po godzince, po pół zależnie od tego na ile ci czas pozwala...... kurde ja nawet na kiblu :P czytam Prathę, Grembosza, czy książki Mirka, a by tylko kolejny raz jakiś rozdział, jakieś zagadnienie sobie przypomnieć.

Nikt ci tu źle nie życzy, sam cie doskonale rozumiem, bo też jestem bardzo niecierpliwy i wiem jak cholernie czas jest problemem. ALE głównym problemem są chęci i SYSTEMATYCZNOŚĆ!!!! i tyle. Po tygodniu, będziesz już coś wiedział, ale ucząc się po kolei, a nie na wyrywki.

PS.
Mnie dopiero książki Mirka pomogły wkroczyć w świat C. Bo nawet Grębosz, Pratha czy King był dla mnie suchą teorią.
PS2, Mam też Borkowskiego i Francuza.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:06 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Ile razy mam pisać że przeczytałem od początku do strony 108 i akurat to czytałem normalnie bo miałem na to dzisiaj 8 godzin z małymi przerwami.

Może jednak Mirek dobrze napisał. Lepiej usunąć temat. Może kiedyś dorosnę do tego by znowu o coś na forum zapytać. Nie odbierajcie tego proszę jako ironię lub żal choć z pewnością tak wygląda.

Po prostu nudzi mnie już pisanie po raz kolejny że tylko chciałem się dowiedzieć czegoś i niczego nie wymagam a proszę.
Nie siedzę na pierwszym w swoim życiu forum. Zresztą Ty rezasurmar powinieneś to chyba wiedzieć bo zdaje się na forum elportalu siedzisz a tam mam ten sam nick co tutaj.

Usuńcie temat w diabły i po kłopocie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:10 

Pomógł: 0

Ja pierdzu, ale nie o to chodzi? nie rozumiesz..... Nie da się tego nauczyć w 1dzień.... ja w tym siedzę już ponad rok, a nie wyszedłem jeszcze nawet z "piaskownicy".

Tylko i wyłącznie od twojego zapału i samozaparcia zależy czy się nauczysz. To ci próbuję powiedzieć.
Przecież to oczywiste ;), tak samo oczywiste jak to, że ironizowałeś twierdząc, że nic nie rozumiesz z tych 108 stron.

Zacznij jeszcze raz pytać, ale po kolei od samego początku.
Zostaw bascoma za sobą, jak chcesz się nauczyć C, od tego musisz zacząć.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

cicho już ... łotry bo zaraz do lochu wtrącę i do ściany ze szkieletami przykuje ze szlabanem na ATmegi

:)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:18 

Pomógł: 0

A ja jestem krnąbrny i się tak łatwo nie dam :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sty 2013
Posty: 123
Lokalizacja: Warszawa
Pomógł: 10

Na razie jeszcze nie doszliśmy do tego, żeby można było sobie "wgrać znajomosć C" - jak to w pewnym znanym filmie było ;-) (tyle, że tam chodziło o obsługę helikoptera)
Ale kiedyś - kto wie? :-)
Ale co się wtedy będzie naprawdę liczyło, jak nie trzeba będzie zdobywać wiedzy własną ciężką pracą? :roll:

PS. A na kibelku to się zawsze różne ciekawe pozycje czyta ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:24 

Pomógł: 0

Sam się przyznaje bez bicia, że po ostatnim cyklu Mirka o wskaźnikach, strukturach itp. aż mi się pod kopułą zagotowało.
Dzięki temu, że po kolei wszystko jest fajnie opisywane, czasem trzeba cofnąć, zatrzymać, doczytać w książce....

A aktualnie mam "ferie" od pisania w C i składam sobie Golaski ATB ;).
Jak czegoś nie rozumiem, to siadam do Prathy, czytam rozdział z "trudniejszym" mi tematem po raz kolejny potem znowu BlueBook Mirka, wskaźniki to u Grębosza są genialnie opisane. Tj. prawie jak "ksiądz Kaśce na miedzy" ;) wytłumaczone!



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 sty 2013
Posty: 31
Lokalizacja: ZSW
Pomógł: 0

Ja też uważam, że jeśli nie rozumiem to Świat się na tym nie kończy. Będę drążył temat... do końca Świata :-) Mało tego Mirek będzie to musiał wytrzymać - bo rozpętał to swoimi książkami :-)



Ostatnio edytowano 5 lut 2013, o 21:42 przez Endriusza, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 21:30 

Pomógł: 0

Endriusza napisał(a):
Ja też uważam, że jeśli nie rozumiem to Świat się na tym nie kończy. Będę drążył temat... do końca Świata :-) Mało tego Mirek będzie to musiał wytrzymać - bo to rozpętał swoją książką :-)


Dokładnie, trzeba mu wiercić dziurę w brzuchu ;) on to lubi :).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 22:22 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

Endriusza napisał(a):
.....Będę drążył temat... do końca Świata :-) Mało tego Mirek będzie to musiał wytrzymać - bo rozpętał to swoimi książkami :-)



rezasurmar napisał(a):
Dokładnie, trzeba mu wiercić dziurę w brzuchu ;) on to lubi :).


Te dwie wypowiedzi bardzo dobrze to obrazują ;)

A SunRiverovi jak zwykle dziękuję za rozładowanie atmosfery, bo niestety ja w tym nie jestem najlepszy i całe szczęście, że mam do czynienia z TYLOMA fajnymi kolegami na tym forum.... to jest dla mnie nieocenione - dlatego jeśli i ja będę mógł w czymś pomóc to właśnie wierćcie dziury ;)

na szczęście z tego forum zaczął się robić złożony organizm, który sam żyje i potrafi sobie pomóc i się wyleczyć ;) nie wspominając że nauczyć ....

matrix - dokładnie zakopmy spór jeśli był - i wystartujmy od nowa jak gdyby nigdy nic - ja też przepraszam jeśli się niepotrzebnie uniosłem.

jeszcze raz powiem dobrze, że mamy SunRivera ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 23:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Ja dodam 3 grosze :) od siebie.

Matrix skoro nie rozumiesz co ktoś napisał to nie znaczy że coś źle i niezrozumiale napisał. Kiedyś miałem takiego pana od matematyki który próbował wytłumaczyć klasie co to funkcja z argumentami :) i wiesz co, dopiero po 2 godzinach jego biadolenia męczenia tematu skapowałem o co mu chodzi że chodzi mu o funkcje takie jak piszę od lat w komputerze które mają argumenty i rezultat.
I teraz pytanie kto miał problem? ja w rozumieniu, czy ten pan od matematyki? po prostu każdy jakoś inaczej to pojmuje i inaczej się to rozumie, i w tym miejscu proponowałbym Tobie Matrix notować sobie gdzieś na kartce (w przyszłości) w jaki sposób doszedłeś do zrozumienia C, następnie rozpisz to w zgrabny artykuł tzw tutorial iii pomożesz na pewno komuś w zrozumieniu C.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2013, o 23:08 

Pomógł: 0

Od siebie mogę jeszcze dodać to co już wcześniej próbowałem przekazać. Nauczanie się systematycznie i z różnych źródeł, tj. Lubię mieć wszystko rozłożone na czynniki pierwsze.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 00:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

A ja zacznę od zupełnie innej strony! haha! :roll:

Nigdy nie uczyłem się Bascoma. Od razu zacząłem od C.
Kiedyś jeszcze zajmowałem się Pascalem (odległe czasy, nic z tego nie pamiętam), trochę później zajmowałem się C++/C# ale nie o tym temat.

I tak znając te jakieś tam podstawy, że wszystko opiera się na "dwóch do potęgi" zacząłem mrugać diodą kopiując program z internetu. Później rozgryzałem ten program. Czytałem o kolejnych rzeczach. Oj dużo mi się nie udawało. Nawet się nie zastanawiałem czemu po słowie while znajduje się (1) lub coś innego w nawiasie. Później się dowiedziałem jak robić pętle skończone. Tak się dowiedziałem że tam w nawiasie siedzi warunek, później się dowiedziałem o tym że on może być tymczasowy itp itd ... książkę p. Mirka mam od niedawna, dużo mi wyjaśniła... Ale nie o tym temat.
JUŻ WRACAM ... znając już trochę język C, pomyślałem "a co mi tam, spróbuję ugryźć Bascoma aby wiedzieć o czym niektórzy piszą". No i co się okazało? Nie potrafię tam NIC. Zupełnie nic. Pętle są jakieś nie takie. Gdzie się stawia warunki??? NO DO DIASKA !! gdzie są jakieś nawiasy czy coś podobnego. Po pewnym czasie okazało się to łatwe, ale ZUPEŁNIE nieczytelne dla moich oczu.

No popatrz na coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a teraz na to samo w C:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

O wiele krócej - po pierwsze. Jakoś tak łatwiej?? Jak dla kogo :)


I tutaj jest puenta.. Zapomnij o porównywaniu C do Bascoma. Naucz się języka na nowo. Są to podobne języki, ale te podobieństwa zaczynają wypływać dopiero jak się je oba zna. Serio, na własnej skórze się przekonałem.

Jeszcze może wrócę do tego zdania o C#/C++... Wszystkie operatory są tam dokładnie takie same jak w C (w końcu z tego języka one powstały). Do tego patrząc się na inne współczesne języki programowa, włączając w to wszechobecną JAVĘ, PHP, JavaScript też zobaczysz bardzo podobną składnię do C. Nie do Basic..

Tyle ode mnie :)

---
a w sumie to może nie wszystko :P poczytaj kolejne strony, aż dojdziesz do omawiania przykładów, i jeśli na pierwszym przykładzie zupełnie nic nie będziesz rozumiał, to rozbierz go na czynniki pierwsze, wszystko jest wytłumaczone na poprzednich stronach. Wiem, że to zajmuje dużo czasu. Ale nie znam nikogo kto przesiadłby się na "nowy" język w ciągu 8 godzin :)

// no offence

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 00:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

Śliczne podsumowanie i bardzo trafne porównania szczegœlnie z tą próbą poznania basoma ...

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 09:06 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Domanoid napisał(a):
No popatrz na coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

a teraz na to samo w C:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

O wiele krócej - po pierwsze. Jakoś tak łatwiej?? Jak dla kogo :)


W tym kodzie:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A w tym kodzie jeśli miało by to być przełożone na C to zdaje się jest błąd, bo powinno być tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A tak ogólnie to na pewno nie zrezygnuję z C. Podchodzę z uporem już któryś raz i kupuję książkę Mirka z nadzieją że wreszcie mi się uda zrozumieć ten język.
Na pewno będę ją czytał wiele razy i z pewności zadam jeszcze nie jedno (być może głupie) pytanie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 09:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 gru 2012
Posty: 530
Lokalizacja: Bydgoszcz
Pomógł: 8

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Hęęęę???

Nigdy 2 = Z, nigdy wartość = zmienna.
Jak już z = 2;

= -> operator przypisania
== -> operator porównania (wykorzystywany w ifach itd)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 10:00 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

kila napisał(a):
Hęęęę???

Nigdy 2 = Z, nigdy wartość = zmienna.
Jak już z = 2;

= -> operator przypisania
== -> operator porównania (wykorzystywany w ifach itd)

Przepraszam, pomyłka nastąpiła bo edytowałem cytowany post i się wkradł błąd. Oczywiście Z=2. O takiej sytuacji wspomina Mirek w swojej książce na stronie 94. Jest to dokładnie sam koniec rozdziału 4.4.2.1

Chciałem przełożyć to z bascoma:
Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Na to w C
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2013, o 12:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

Bardzo dobrze! Pisanie wprost na forum bez eclipse (który już by mnie upominał, czy tak na pewno chciałem zrobić) prawie o 2 w nocy i takie baboki wychodzą :)

Dokładnie po if (Z == Q) powinno być Z=2 a nie Z==2. Masz całkowitą rację! I teraz już chyba każdy widzi, że to co piszemy nie jest czytane po łepkach, tylko ze zrozumieniem, a kod wertowany jest co do jednego znaku. I za to brawo, takim sposobem osiągniesz dużo w stosunkowo krótkim czasie.
Zauważ jeszcze, jak sam dodałeś, że powinno być dwa razy end if. A w C jeśli po if() występuje tylko jedna linijka nie musi być nawet klamerek. Dlatego nawet się nie zorientowałem, że czegoś brakuje w przełożeniu na Bascom.

matrix napisał(a):
A tak ogólnie to na pewno nie zrezygnuję z C. Podchodzę z uporem już któryś raz i kupuję książkę Mirka z nadzieją że wreszcie mi się uda zrozumieć ten język.
Na pewno będę ją czytał wiele razy i z pewności zadam jeszcze nie jedno (być może głupie) pytanie.
Oj, to jest bardzo zrozumiałe, głupie pytania zawsze się pojawią. Albo problemy nie do przeskoczenia, które inni uważają za brak problemu. Na forum pomoc znajdziesz zawsze. Sam na początku trochę zdębiałem "tonem" odpowiedzi. Ale co prawda później uzmysłowiłem sobie, że ona była bardzo merytoryczna i dużo wyjaśniająca. Mimo to i tak było przepraszanie (jak wszędzie? heh).
Książkę pierwszą "przeczytałem"(*1) kilka razy ze zrozumieniem, ale czasami zdarza się, że rozwiązując dla mnie nowy problem, okazuje się, że można zastosować coś już opisanego, o czym czytałem i stosowałem wcześniej, ale w tym kontekście nawet o tym nie pomyślałem.

*1 - przeczytałem, przykłady przepisałem, próba ich zrozumienia, napisanie po swojemu od nowa, testy w układach itp itd...

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 10:22 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Pytań "głupich" ciąg dalszy.

Przykład z książki str 76, rozdział 4.3.1.2
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak mam to zrozumieć?
Rozumiem że to funkcja max ale jaką przyjmie wartość? Zmiennej a czy zmiennej b? Nawet w bascomie nigdy tego nie używałem więc kompletnie nie mam pojęcia do czego to służy.

No i ten sam przykład odnośnie tych nieszczęsnych definicji i deklaracji.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na czym w tym przykładzie polega różnica między deklaracją a definicją? Dla mnie oba te wyrażenia są jednakowa poza faktem że jedno stoi na początku całego programu, jakby to nazwał zdaje się Mirek, przez ciałem a drugie wyrażenie wewnątrz.
Czyli co? Oznaczało by że jeśli coś stoi na początku przed int main(void); to jest to definicja a jeśli coś stoi wewnątrz to jest to deklaracja??


Return (chyba) rozumiem bo jest prosty. Jeżeli po obliczeniach działania (a>b) wyrażenie będzie prawdziwe to zwrócona będzie wartość działania (a*z)+w w przeciwnym razie zwrócona będzie wartość działania (b*z)+w, tak?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 11:00 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

matrix napisał(a):
Pytań "głupich" ciąg dalszy.

Przykład z książki str 76, rozdział 4.3.1.2
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak mam to zrozumieć?
Rozumiem że to funkcja max ale jaką przyjmie wartość? Zmiennej a czy zmiennej b? Nawet w bascomie nigdy tego nie używałem więc kompletnie nie mam pojęcia do czego to służy.


no przecież tu masz odpowiedź:

return (a>b) ? (a*z)+w : (b*z)+w;

to jest rozpisana jakaś tam przykładowa funkcja, która jak widać jeszcze mnoży argumenty *10, i zwraca ten który jest większy .... słówko return właśnie zwraca rezultat funkcji, masz tu wyrażenie warunkowe w C:

(warunek) ? (wyrażenie1) : (wyrażenie2);

czyli jeśli warunek jest PRAWDZIWY to zwrócone zostanie wyrażenie1 a jeśli nieprawdziwy to wyrażenie2

więc zastanów się - jeśli a > b jest prawdą to funkcja zwróci (a*z)+w i nie wnikaj dlaczego akurat (a*z)+w bo to jakiś wymysł autora - równie dobrze mogłaby zwrócić po prostu a, czyli np tak: (a>b)?a:b; rozumiesz ? teraz? czyli gdyby a było większe od b to zwróci a , jeśli zaś nie jest większe to zwróci b.



matrix napisał(a):
No i ten sam przykład odnośnie tych nieszczęsnych definicji i deklaracji.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Na czym w tym przykładzie polega różnica między deklaracją a definicją? Dla mnie oba te wyrażenia są jednakowa poza faktem że jedno stoi na początku całego programu, jakby to nazwał zdaje się Mirek, przez ciałem a drugie wyrażenie wewnątrz.
Czyli co? Oznaczało by że jeśli coś stoi na początku przed int main(void); to jest to definicja a jeśli coś stoi wewnątrz to jest to deklaracja??


no tu trochę pokrębasiłeś ;) ale tak - spróbuj sobie zakomentować tą DEKLARACJĘ przed main(), i zobacz co się stanie po kompilacji - dostaniesz WARNINGA! .... ponieważ kompilator pierwszy przebieg robi oczami od góry do dołu i w funkcji main() trafia na nazwę max() .... i skąd ma wiedzieć co to jest ????? No to niektórzy "mądrzy" dawaj BACH przenoszą całą DEFINICJĘ funkcji przed main() i znikają warningi ..... ale tak się NIE ROBI. Dlatego przed main() dajemy samą DEKLARACJĘ, (sorki że pytam o to z uporem maniaka ale przeczytałeś najpierw raz całą ksiażkę?) .... bo BYŁO NA 100% napisane, że .... to na górze ta DEKLARACJA funkcji nie rezerwuje PAMIĘCI programu (flash) - ona TYLKO mówi kompilatorowi aby się OSWOIŁ z nazwą max() .... i żeby nie brzęczał warningami gdy niżej np w main zobaczy nazwę max() .... bo na pewno w kolejnym etapie linkowania będzie gdzieś dostępna DEFINICJA tej funkcji ..... i nie mów że nie widzisz czym różni się DEFINICJA, bo DEFINICJA panie - to posiada swoje ciało w nawiasach klamrowych { } a to oznacza, że w trakcie kompilacji - kompilator od razu rezerwuje na to ciało pamięć programu (flash) na jej kod - rozumiesz teraz? TO JEST TA RÓŻNICA - to jest TA PODSTAWA - którą trzeba ZAPMIĘTAĆ raz na zawsze ;)


matrix napisał(a):
Return (chyba) rozumiem bo jest prosty. Jeżeli po obliczeniach działania (a>b) wyrażenie będzie prawdziwe to zwrócona będzie wartość działania (a*z)+w w przeciwnym razie zwrócona będzie wartość działania (b*z)+w, tak?

no właśnie - a wyżej napisałeś tak jakbyś nie zrozumiał

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 11:31 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Nie dziw się Mirku i inni szanowni użytkownicy że pytam o takie rzeczy, ale naprawdę jeszcze tego nie rozumiem.

matrix napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jak mam to zrozumieć?
Rozumiem że to funkcja max ale jaką przyjmie wartość?

mirekk36 napisał(a):
no przecież tu masz odpowiedź:

return (a>b) ? (a*z)+w : (b*z)+w;

No tak tylko że ja sobie to wytłumaczyłem że zostanie zwrócona prawda lub fałsz czyli wziąłem pod uwagę tylko początek. Nie potrafię jeszcze myśleć w C.

mirekk36 napisał(a):
(sorki że pytam o to z uporem maniaka ale przeczytałeś najpierw raz całą ksiażkę?)

Nie, nie przeczytałem ponieważ uważam, że jeśli czegoś po drodze nie rozumiem to nie ma sensu przechodzić dalej bo będzie tylko gorzej. Jedyne co wtedy może się dziać to wszystko poplącze mi się jeszcze bardziej, a tak mam dużą szansę w tej chwili na zrozumienie tego języka. A uwierz mi że powoli tak się dzieje.

mirekk36 napisał(a):
no tu trochę pokrębasiłeś ;) (...) BYŁO NA 100% napisane, że .... to na górze ta DEKLARACJA funkcji nie rezerwuje PAMIĘCI programu (flash) - ona TYLKO mówi kompilatorowi aby się OSWOIŁ z nazwą max() .... i żeby nie brzęczał warningami gdy niżej np w main zobaczy nazwę max() .... bo na pewno w kolejnym etapie linkowania będzie gdzieś dostępna DEFINICJA tej funkcji ..... i nie mów że nie widzisz czym różni się DEFINICJA, bo DEFINICJA panie - to posiada swoje ciało w nawiasach klamrowych { } a to oznacza, że w trakcie kompilacji - kompilator od razu rezerwuje na to ciało pamięć programu (flash) na jej kod - rozumiesz teraz?

Pewnie że rozumiem (chyba). Sorki że znów odniosę się do bascoma, ale deklaracja w C to w bascomie declare sub, natomiast definicja w C to w bascomie podprogram docelowy.
Mówiłem że porównanie C do bascoma pozwoli mi łatwiej zrozumieć C.

matrix napisał(a):
Return (chyba) rozumiem bo jest prosty. Jeżeli po obliczeniach działania (a>b) wyrażenie będzie prawdziwe to zwrócona będzie wartość działania (a*z)+w w przeciwnym razie zwrócona będzie wartość działania (b*z)+w, tak?

mirekk36 napisał(a):
no właśnie - a wyżej napisałeś tak jakbyś nie zrozumiał

Jak pisałem wyżej, jeszcze słabo się odnajduję w C.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 12:00 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zacznij od czegoś prostszego znanego ze szkoły np. y=x^2=x*x to inaczej y=funkcja_kwadratowa(x), która w C wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czyli najpierw jest typ zwracany potem nazwa funkcji, następnie typ i argument funkcji. Do takiej funkcji możesz przekazać różne liczby np. 2, 3, a funkcja pokazuje co zostanie zrobione jak masz funkcja_kwadratowa(2) to zwróci 2*2, czyli 4 jak przekażesz 3 to zwróci 3*3 czyli 9.

Natomiast prototyp funkcji to zapowiedź funkcji. Coś jak spis treści w książce, gdzie najpierw patrzysz co tam jest a jak cię interesuje to dalej w środku szukasz szczegółów. Prototyp/deklaracja to funkcja bez tych właśnie szczegółów zakończona średnikiem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 12:04 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Krauser napisał(a):
Zacznij od czegoś prostszego znanego ze szkoły np. y=x^2=x*x to inaczej y=funkcja_kwadratowa(x), która w C wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


czyli najpierw jest typ zwracany potem nazwa funkcji, następnie typ i argument funkcji. Do takiej funkcji możesz przekazać różne liczby np. 2, 3, a funkcja pokazuje co zostanie zrobione jak masz funkcja_kwadratowa(2) to zwróci 2*2, czyli 4 jak przekażesz 3 to zwróci 3*3 czyli 9.

Natomiast prototyp funkcji to zapowiedź funkcji. Coś jak spis treści w książce, gdzie najpierw patrzysz co tam jest a jak cię interesuje to dalej w środku szukasz szczegółów. Prototyp/deklaracja to funkcja bez tych właśnie szczegółów zakończona średnikiem:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz to poleciałeś. Nic nie zrozumiałem. Po szkole jestem 15 lat i skończyłem tylko technikum.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 12:20 

Pomógł: 0

Zdecydowanie proponuję ci przysiąść do "Szkoły Programowania" Prathy, albo "Język C nowoczesne Programowanie" K. N King

PS. Pratę znajdziesz po ciemnej stronie internetu....... jak ci się spodoba kup.

Sam mam Pratę do C i do C++, jak również język C nowocz...., Proramowanie .......C++ Stroustrup, oraz Grębosza. Wszystko w wersji drukowanej
I bez tych książek, szczególnie Szkoły Programowania i Język C, nie wyobrażam sobie zaczynania nauki C.......
Brakuje ci naprawdę podstaw, a cały czas porównując do bascoma, robisz sobie kuku i nie potrzebnie mieszasz sobie w głowie.
Naprawdę, łatwiej jest nauczyć się składni, w oderwaniu od "Systemu" czy platformy. Czyli zacząć od Hello World na sucho, czyli totalne podstawy składni.
Łatwiej będzie ci "zaskoczyć" i zrozumieć.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 12:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

Dokładnie - nie można porównywać DEKLARACJI w C do czegoś takiego jak DECLARE SUB w Bascomie bo to totalnie nieporozumienie i rzeczywiście widzę że jeszcze gorzej będzie ci zrozumieć język C :(

W bascomie nie ma w ogóle wielu konstrukcji jakie są w C - więc do czego będziesz to porównywał. Owszem są zmienne też się jakoś pisze program. Ale ciekaw jestem jak za chwilę wytłumaczysz sobie czym różni się DEKLARACJA od DEFINICJI zmiennej w C ????? bo to jest jakby nieco trudniejsze dla początkującego a w BASCOMIE nigdy w życiu nie znajdziesz do tego żadnego porównania - nigdy :(

Dlatego postaraj się na razie odłączyć myślenie bascomowe .... chociaż na chwilę. Bo to czego nie rozumiesz to przede wszystkim fakt że sam kompilator w C działa wieloetapowo a nie tak jak w bascomie w jednym przebiegu - i stąd od razu różnice.

jeszcze raz - zobacz na taki uproszczony przykład:



Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


wg ciebie to skompiluje się poprawnie ??? no nie - bo kompilator będzie sprawdzał linijka po linijce od góry w pierwszym przebiegu czy zgadzają mu się nazwy:

1. main() - ok nazwę tej funkcji musi znać - jest ok
2. z - no widzi że po lewej podany jest typ uint8_t więc jest to zmienna o nazwie z
3. funkcja() ..... ooooops !.... a co to jest - wcześniej nikt mi o tym nie mówił - i BACH Warning !

a teraz to samo ale z Deklaracją


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


1. aha funkcja() ... ale nie ma tu jej ciała, więc to jest tylko DEKLARACJA funkcji i zapamiętam sobie tą nazwę na pewno później gdzieś będzie jej ciało

2. main() - to znam

3. zmienna z - typu uint8_t - j.w.

4. funkcja() ..... aha no tą nazwę już znam bo wyżej widziałem ją przecież więc lecę dalej ten pierwszy etap kompilacji

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 13:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 13:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

Krauser napisał(a):
Zacznij od czegoś prostszego znanego ze szkoły np. y=x^2=x*x to inaczej y=funkcja_kwadratowa(x), która w C wygląda tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Po pierwsze nie funkcja kwadratowa, bo ona wygląda tak: y=ax2 + bx + c
To jest kwadrat liczby, lub po prostu podnoszenie liczby do potęgi drugiej.
Swoją drogą masz błąd, bo jak widzisz funkcja powinna zwracać typ, który pomieści 2x większą liczbę od uint8 ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 13:54 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27225
Lokalizacja: Szczecin
Pomógł: 1041

Domanoid --> hmm ciekawą funkcję napisałeś ;) void Offtop(void) ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lut 2013, o 14:05 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

Szczerze dziękuję wszystkim za odpowiedzi i podpowiedzi. dziękuję za cenne rady, ale chyba znowu odstawię C na kilka lat. Może kiedyś jeszcze do niego dorosnę. Niestety nie potrafię tego zrozumieć za skarby świata.

Poniższy przykład kolegi Mirka czyli:

mirekk36 napisał(a):
jeszcze raz - zobacz na taki uproszczony przykład:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ów przykład namieszał mi w głowie i znowu kompletnie nic nie rozumiem. A już myślałem że Twoja książka Mirku wiele mi wyjaśniła i myślałem że zacząłem rozumieć C, ale jak widać niestety myliłem się.

Tak więc zmuszony jestem po raz kolejny wrócić do tego w czym jakoś się odnajduję.
Oczywiście nie odbierajcie proszę tego za jakąś moją złośliwość czy żal, naprawdę nie, tylko na serio nie potrafię tego zrozumieć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 93 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO