Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Co najlepsze do nauki programowania

25 Wrz 2008 21:31 9450 48
  • #31 25 Wrz 2008 21:31
    Dr.Vee
    VIP Zasłużony dla elektroda

    Zabierz się za co chcesz, ale najpierw powiedz, co chcesz robić. Jak na razie to pytałeś o biblioteki do robienia grafiki które nie wymagają C++ i w efekcie różne rzeczy ludzie Ci sugerowali.

    Pamiętaj też, że programowanie to nie tylko pisanie kodu, to także uczenie się z cudzego kodu :)

    Pozdrawiam,
    Dr.Vee

  • #32 26 Wrz 2008 12:16
    jackpop
    Poziom 15  

    Aaaa właśnie czegoś takiego szukam! Szukam gdzieś cudzego kodu w C. Tylko co z tego, że na sourceforge.net znajdę jakiś kod na milion linijek (choć znalezienie coś w C a nie CPP jest już nie lada osiągnięciem) skoro te projekty są za wielkie żeby je pojąć?

  • #33 26 Wrz 2008 13:01
    Dr.Vee
    VIP Zasłużony dla elektroda

    Niestety taka jest prawda - programy (zwłaszcza z gui) napisane w C mają dość dużo linijek :) Najprostsze, sensowne programy które coś robią to minimum 200 linii. Dobre komentarze do kodu jeszcze bardziej podnoszą objętość kodu.

    Prostym, przenośnym i użytecznym programem jest jhead - dość dużo komentarzy, pomimo tego w sumie poniżej 5000 linii dobrze zorganizowanego kodu źródłowego w ANSI C. Dla początkującego programisty w sam raz. Niestety nie ma gui ;)

    Pozdrawiam,
    Dr.Vee

  • #34 27 Wrz 2008 14:04
    jackpop
    Poziom 15  

    Oj duży ten program. Chyba zbyt duży :-)

    W sumie tak na prawdę nie wiem do czego wykorzystać ten C... Między innymi można pobawić się w Linuksie

    Właśnie na Helionie pojawiła się pozycja chyba ku temu zagadnieniu: http://helion.pl/ksiazki/linups.htm

    Mogłoby to być pożyteczne? Odpowiednie dla kogoś z podstawową znajomością języka?

  • #35 27 Wrz 2008 20:37
    lord_dagoth
    Poziom 25  

    jackpop napisał:
    W sumie tak na prawdę nie wiem do czego wykorzystać ten C...

    Heh... jak to do czego? Do wszystkiego! Dosłownie, i nawet w przenośni ;) Zależy co byś chciał zrobić. Ja na Twoim miejscu nauczyłbym się C++ a potem napisał prostą konsolową gierkę.

  • #36 27 Wrz 2008 21:02
    jackpop
    Poziom 15  

    Co innego C -> C++ (tutaj może gierki) -> Java, C# itp
    a co innego C -> C (mikrokontrolery)

    Chyba w obie strony muszę zacząć się kształcić...

  • #37 27 Wrz 2008 23:56
    Dr.Vee
    VIP Zasłużony dla elektroda

    W C można napisać wszystko to, co można napisać w C++ - tylko czasem jest troche "niewygodnie" :) C jest jednocześnie "wysokopoziomowym asemblerem", ale też "wspólnym mianownikiem" dla wszystkich platform - jeśli jakaś architektura ma kompilator języka wysokiego poziomu, to na pewno ma też kompilator C.

    Widzę, że jesteś fanem książek - niestety chyba nie tędy droga, choć każdy ma swoją. IMHO dużo czytania (książek) + mało pisania i czytania (kodu) = brak praktyki :)

    Przestań się głowić, tylko coś w końcu napisz - w końcu po coś uczysz się programować, nie? Bazę płyt CD, książek (:P), kalkulator, cokolwiek czego Ci brakuje a chciałbyś mieć - tylko mierz siły na zamiary. Grafiką (GUI) się nie przejmuj - i tak dużo ważniejsze jest to, co pod maską.

    Pozdrawiam,
    Dr.Vee

  • #38 29 Wrz 2008 22:50
    wrych
    Poziom 20  

    Ja zaczynałem od Basic'a, potem było Logo i Pascal (to wszystko na komputerach ośmiobitowych). Najważniejsze jest to, by zrozumieć podstawowe algorytmy i nauczyć się je stosować oraz modyfikować dla swoich potrzeb.
    Program nauki w technikum informatycznym (przedmiot: "Programowanie strukturalne i obiektowe" w klasie 2, 3 i 4) zakłada umiejętność programowania w Pascalu, C/C++ i w małym zakresie Java.
    Już Turbo Pascal 5.5 (Borland) umożliwiał programowanie obiektowe. Bez Pascala trudno programować w Delphi (też występuje w programie technikum - np. aplikacje SDI i MDI) - stworzymy przy pomocy myszki interfejs i niestety trzeba umieć napisać kod do obsługi zdarzeń... (w Pascalu).
    Jeśli np. rozumiem działanie instrukcji cyklu typu "for", to jest mi zupełnie obojętne czy to zapiszę w stylu:
    for i=1 to 10: ... : next i: - Basic,
    for i:= 1 to 10 do begin ... end; - Pascal,
    for (i=1, i<=10, i++){...} - C/C++, Java...

  • #39 29 Wrz 2008 23:32
    Dr.Vee
    VIP Zasłużony dla elektroda

    wrych napisał:
    ... stworzymy przy pomocy myszki interfejs i niestety trzeba umieć napisać kod do obsługi zdarzeń... (w Pascalu).


    Niestety... ;) ale jak ktoś lubi programować tylko myszką i na dodatek dopiero zaczyna zabawę z programowaniem, to do nauki polecam scratch.

    Pół żartem, pół serio, ale w sumie post bardzo na temat :)

    Pozdrawiam,
    Dr.Vee

  • #40 30 Wrz 2008 00:15
    190175
    Użytkownik usunął konto  
  • #41 30 Wrz 2008 07:06
    Fyszo
    Spec od GSM

    A robił ktoś coś w Turbo vision - pełna obiektowość niczym nie ustępująca aplikacjom windowsa, a to przecież biblioteka VCL dla dosa.

  • #42 30 Wrz 2008 19:10
    wrych
    Poziom 20  

    Oloam napisał:

    Cytat:
    Moze troche off topic ale czy Turbo pascal byl jezykiem obiektowym? programowanie obiektowe chyba zaczelo sie od delphi 1 (wprowadzona w 1995r) a pakiet skladal sie z object pascal 1.0 i borland pascal 7.0 . Pamietam w szkole mialem turbo pascala 7.0 i tam nie byl to jezyk obiektowy(chociazby dlatego ,ze nie bylo obiektu do opisywania a co za tym idzie dziedzicznosci i polimorfizmu)...

    Polecam książkę: Andrzej Marciniak, Turbo Pascal 5.5, Wydanie 2. Wydawnictwo Nakom, Poznań 1993. Rozdział 14. Programowanie zorientowane obiektowo (str. 349-370).
    Aby pokazać różne style programowania wziąłem algorytm obliczania pierwiastka kwadratowego i zakodowałem go w różnych językach. Oto wybrane przykłady:
    1. Basic:
    Code:

    10 INPUT n
    20 LET a = 1
    30 LET b = n
    40 LET a = (a + b) / 2
    50LET b = n / a
    60 IF ABS(a-b) >=0.0001 THEN GOTO 40
    70 PRINT a

    2. Pascal (kod podstawowy):
    Code:

    program pierwiastek;
    var n: integer; a,b: real;
    begin
        readln(n);
        a:=1;
        b:=n;
        repeat
        a:=(a+b)/2;
        b:=n/a;
        until abs(a-b)<0.0001
        writeln(a);
        write('Naciśnij Enter...'); readln;
    end.

    3. Pascal w stylu strukturalnym (z funkcjami, trochę na siłę, bo przykład banalny):
    Code:

    program pierwiastek2;
    var n: integer; a,b: real;
    function srednia(x,y:real):real;
      begin
        srednia:=(x+y)/2
      end;
    function DrugiBok(bok, pole:real):real;
      begin
        DrugiBok:=pole/bok
      end;
    begin
        readln(n);
        a:=1;
        b:=n;
        repeat
           a:=srednia(a,b);
           b:=DrugiBok(a,n);
        until abs(a-b)<0.0001;
        writeln(a:8:3);
        write('Naciśnij Enter...');  readln;
    end.

    4. Pascal w stylu obiektowym:
    Code:

    program pierwiastek7;
    type prostokat = object
         a, b, p: real;
         procedure Init(x, y: real);
         function kwadratura():real;
         end;
    procedure prostokat.Init(x, y:real);
    begin
    a:=x; b:=y; p:= a*b;
    end;

    function prostokat.kwadratura():real;
    begin
    repeat
    a:=(a+b)/2; b:=p/a;
    until abs(a-b)<0.0001;
    kwadratura:=a;
    end;

    var n: integer;
    var abcd: prostokat;

    begin
        readln(n);
        abcd.Init(1,n);
        writeln(abcd.kwadratura);
        write('Naciśnij Enter...');
        readln;
    end.

    Jeśli będzie zainteresowanie, to umieszczę kompletny referat (pdf) do pobrania (jeszcze nad nim pracuję. Kody sprawdzone w TP5.5 (darmowy).

  • #43 30 Wrz 2008 20:00
    190175
    Użytkownik usunął konto  
  • #44 30 Wrz 2008 22:07
    wrych
    Poziom 20  

    Problem w tym, że przykłady dotyczące programowania obiektowego w podręcznikach były mało strawne (mnie np. zupełnie nie zachęcały by się tym zajmować). Do TP 6.0 dołączono bibliotekę (obiektową) Turbo Vision - stworzono przy jej pomocy nowe IDE Pascala (z obsługą myszki). "Starszy brat" Turbo Pascala 7.0, czyli Borland Pascal 7.0 miał biblioteki obiektowe i specjalny kompilator do programowania dla Windows.

  • #45 29 Gru 2008 15:43
    jackpop
    Poziom 15  

    Jeżeli ktoś ma problem typu: "znam trochę podstaw programowania a nie wiem jak się sprawdzić, nie wiem co napisać", czyli mój niedawny problem to mam coś dla niego.

    Wpisz człowieku w googlach "spoj" albo "opss". Setki zadanek do przerobienia, które zostaną przetestowane i dostaniesz punkty albo nie. Wszystko fajnie, czasem tester zawodzi ale nie przejmuj się i weź następne zadanko.

  • #46 31 Gru 2008 21:38
    primalbeast
    Poziom 9  

    Ufff, powracając do tematu... co programista to co innego powie. Ja proponuje C#. Możliwościami,składnią i szybkością nie ustępuje innym językom, ale środowisko (VS Express) skutecznie ułatwia pisanie wszelakich programów.

  • #47 01 Sty 2009 19:29
    jackpop
    Poziom 15  

    primalbeast napisał:
    Ufff, powracając do tematu... co programista to co innego powie. Ja proponuje C#. Możliwościami,składnią i szybkością nie ustępuje innym językom, ale środowisko (VS Express) skutecznie ułatwia pisanie wszelakich programów.

    Ja tam za "si szarpem" nie przepadam. Widziałem nie raz w życiu, próbowałem coś napisać i ogólnie przeraża mnie praca na kilku, kilkunastu plikach, żeby coś małego sklecić. To jest język do konkretnych zastosowań.

  • #48 01 Sty 2009 20:35
    lord_dagoth
    Poziom 25  

    Po pierwsze, to C# napewno nie jest przeznaczony do nauki programowania ;) Najłatwiej jest się na niego przesiąść już po opanowaniu C++ (jak tak właśnie robię).

    A co do pracy na kilku plikach to nie do końca rozumiem... bo jeżeli masz na myśli rozbijanie kodu na pliki, gdzie np. każda klasa jest w dwóch (w cpp będzie to plik .h i plik .cpp) to jest to niezwykle wygodne, i bardzo zwiększa czytelność całego kodu.

  • #49 02 Sty 2009 01:59
    Remeknapr
    Poziom 33  

    Dr.Vee napisał:
    że są definicje "nauki programowania...


    To ważne aby zdefiniować co rozumiemy przez pojęcie programowania. W przeciwnym razie każdy piszący może mieć coś innego na myśli. Jeśli przyjąć, że chodzi o cały proces tworzenia programu/aplikacji działającej w systemie operacyjnym, to nie jest nim z całą pewnością pisanie skryptów.

    Pozdrawiam w Nowym Roku