logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[C++] Czy kurs C++ pomoże w programowaniu prostych układów i wyświetlaczy?

HeloMelo 28 Mar 2008 22:05 6455 28
REKLAMA
  • #1 4967049
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Witam!

    Ostatnio postanowilem zainteresowc sie programowaniem. Wybralem jezyk C++ i robie kurs na tej stronie http://www.ithelpdesk.pl/ Idzie calkiem niezle lecz zaczelem zastanawiac sie czy to jest odpowiedni kurs bo wiedze ktora uda mi sie zdobyc ma zostac potem wykorzystywana do programowania prostych ukladow Niezabardzo wiem co bede mogl programowac tym jezykiem C++. Dajmy ze chcialbym napisac program do jakiegos prostego wyswietlacza na ktorym by sie wyswietlaly pokolei slowa ktore bym poprezdnio wpisal w kodzie zrodlowym programu... Czy za pomoca tego kursu i jezyka C++ to mozliwe?

    Oczywiscie nie boje sie uzywac przycisku pomogl za wszelka pomoc.

    Dziekuje za podpowiedzi i pozdrawaim

    P.S. Poprzedni moj temat usunieto najprawdobodobniej przez tytul i wydaje mi sie ze nie trzeba bylo odrazu usuwac lecz mozna bylo poprosic o zmiane tytulu poniewaz poza tytulem temat nie lamal zadnych innych zasad panujacych w tym dziale (chyba ze sie myle) No i takl pozatym:

    Programowanie ogólne
    Pytania i odpowiedzi dotyczące programowania w różnych językach (Assembler, C, C++, Java, Pascal, PHP, Basic, Visual Basic, Symbian, Delphi). Wyślij tutaj swoje programy!

    Innego dzialu nie znalazlem zeby zamiescic temat z moim problemem...

    Moderowany przez krzychoocpp:

    Temat poprawiłem

  • REKLAMA
  • Pomocny post
    #2 4967088
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Więc tak:
    1. Doskonale, że wybrałeś naukę C++. Ten język ma ogromne możliwości.
    2. Napisz nam co już umiesz i na jakim etapie jesteś. Prosty kalkulator w C++ to jeszcze nie jest szczyt wiedzy :-)
    3. Ja uważam, że każda chwila nauki jest bezcenna jednak żadnym, nawet najlepszym kursem z internetu nie da się zastąpić książki. Polecam tą: http://helion.pl/ksiazki/cpprim.htm
    4. C++ ma tak wielkie możliwości, że teoretycznie jedynym ograniczeniem jest Twoja fantazja i umiejętności.
    Cytat:

    program do jakiegos prostego wyswietlacza

    Napiszesz to w C++. Jednak do takich zastosowań lepszy jest C ale na tym poziomie możesz pisać w C++.

    Wiele zależy od tego co już umiesz i jakie programy już napisałeś, jak długo już piszesz itp. Samo przeczytanie nawet najlepszego kursu nie warunkuje jego zrozumienia.


    Pozdrawiam.
    P.S Mam bardzo dużo e-booków informatyczno - matematycznych ;-) Ale w tej kwestii zapraszam na PM ;-)
  • #3 4967193
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Jestem na etapie bardzo poczatkujacym. Wlasciwie to sie ucze co to jest w ogole jezyk C++ :) Piszac tutaj chcialem sie poprostu upewnic czy nie zmarnuje czasu :)

    Czy moglby mi jakos w 3 zdaniach szybko mniej wiecej opisac jak taki gotowy program przeniesc do ukladu?
  • Pomocny post
    #4 4967237
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    A wiesz już co to kompilator? ;-)
    Na razie nie zawracaj sobie tym głowy [jak przenieść program]. Wszystko po kolei, wszystko w swoim czasie. Jak za dużo weźmiesz na raz to się zniechęcisz. Wiedza powali Cię na deski :)

    Na razie pisz sobie proste programiki w C++. Jak już napiszesz coś co ma z 500 linii porządnego kodu daj znać.

    Jest taka zasada w programowaniu:
    ,,Żeby pisać trzeba pisać".


    Pozdro!
  • #5 4967275
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Tak oczywiscie wiem co to kopilator :) I mam nawet juz na komputerze taki jeden :) Przepisalem juz pare programow skopilowalem i smigaja... czasami nawet cos od siebie dopisze :)

    Napisalem cos takiego narazie za pomoca tej strony :)

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        string imie;
        cout <<"Podaj imie: " ;
        cin >>imie;
        cin. ignore();
        cout <<'\n'<<"Witaj "<<imie<<"!\n";
        cout <<"Zapraszam do odpowiedzenia na kilka pytan. "<<'\n';
        
        int wiek;
        cout <<"Podaj swoj wiek: ";
        cin >>wiek;
        cin. ignore();
            
        double wzrost;
        cout <<"Podaj swoj wzrost(w metrach): ";
        cin >>wzrost;
        cout <<'\n'<<"Podsumowujac masz "<<wiek<< " lat, nazywasz sie "<<imie<<" i masz "<<wzrost<<"m wzrostu.\n";
        cout <<'\n'<<"Twoj wiek zajmuje "<<sizeoff(wiek)<<" bajt(y/ow) w pamieci komputera.\n";
        
        cout <<"Wcisnij ENTER aby zakonczyc prace programu"<<'\n';
        getchar();
        getchar();
        return 0;
    }


    Programik dziala i mozna powiedzic ze wiem co gdzie po co jest :)

    Dodano po 4 [minuty]:

    Tylko cos sizeoff nie dziala :P
  • Pomocny post
    #6 4967320
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Nie kompilowałem ale tak na pierwszy rzut oka to:
    - nie znam czegoś takiego jak sizeoff :-) Za to znam sizeof.
    - chyba brakuje jeszcze jednego getchar(); pod linią
     cout <<"Wcisnij ENTER aby zakonczyc prace programu"<<'\n'; 


    Dodano po 51 [sekundy]:

    Acha - pamiętaj, aby następnym razem kod źródłowy programu umieszczać w znacznikach CODE.
  • #7 4967348
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Zmienilem na sizeof :) i dziala :) co do getchar()-u to chyba jest ok bo program nam nie "miga" przed oczami. Czy moglbys mi bardziej wyjasnic o co chodzi z tymi znacznikami CODE? gdzie to jest bo w kursie nic nie bylo o tym (jak narazie)
  • Pomocny post
    #8 4967365
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Chodzi mi o to:
    Załączniki:
    • [C++] Czy kurs C++ pomoże w programowaniu prostych układów i wyświetlaczy? znacznikicode.JPG (32.57 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #9 4967493
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Ok juz poprawilem :) Co do ksiazki wspomnianej juz wczesniej to w piatek najprawdopodobniej bede mial lecz jaka to niewiem :) Jak narazie w temacie raczej nie bede nic pisac... Jak zdobede wiecej wiedzy i bede gotowy napisac program to napisze tutaj o ewentualna pomoc :)

    Dodano po 2 [godziny] 37 [minuty]:

    No dobra. Powiedzmy ze zachcialo mi sie zrobic sobie kalkulator przenosny :D

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      char c;
      int a;
      int b;
        
      
      
      cin >>a;
      cin.ignore();
      cin >>c;
      cin.ignore();
      cin >>b;
      cin.ignore();
      if (c=='+')
      {
           cout <<a+b<<'\n';
      }
      else if (c=='-')
      {
           cout <<a-b<<'\n';
      }
      else if (c=='*')
      {
           cout <<a*b<<'\n';
      }
      else if (c=='/')  
      {
           cout <<a/b<<'\n';
      }
     cout <<"Nacisnij ENTER aby zakonczyc program ";//Kalkulator bez tej opcji.
     getchar();
     return 0;
    }


    Dajmy ze kalkulator mialby obliczac wyniki ktor by nie przekroczyly 999 czyli wyswietlacz na 3 liczby... I co dajej? Jakie uklady dobrac?

    Dodano po 4 [minuty]:

    Juz zaczynam pomalutku lapac C++ :)
  • REKLAMA
  • Pomocny post
    #10 4968261
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Najprościej będzie chyba wynik z jakiegokolwiek działania zapisać do zmiennej i na końcu napisać if... else i tam sprawdzić czy jest ten wynik większy lub równy 999. Jak spełnia warunek to ma wyświetlić, jak nie spełni to wywala błąd, komunikat czy co tam sobie chcesz.
  • #11 4968670
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Ok. Tylko jak zapisac wynik do zmiennej? Probowalem zrobic cos takiego:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      char c;
      int a;
      int b;
      int d;
      
      
      cin >>a;
      cin.ignore();
      cin >>c;
      cin.ignore();
      cin >>b;
      cin.ignore();
      if (c=='+')
      {
           cout <<a+b=d<<'\n';       
      }...

    ale wynik a+b nie zostal zapisywany w zmiennej d bo wyskoczyl problem przy kompilacji w tej lini.


    a z tego co wyczytalem to = jest operatorem przypisania wiec a+b powinno sie zapisywac w d czy nie tak ?


    Hymmm wydaje mi sie ze odp znajde w dalszej czesci kursu :) bo a+b ma sie pojawiac na ekranie bo to jest cout i =d nie am zadnego sensu tam...


    Czyli jedyne co potrzebowalbym wiedziec aby dokonczyc program to jak zapisac w zmiennej ta liczbe ktora program nam da po poprednio wybranej operacji(+ * / -)

    Wie ktos moze jak to zrobic ?
  • Pomocny post
    #12 4969208
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      char c;
      int a;
      int b;
      int wynik;  //bledem jest nadawanie zmiennym nazw nic nie mowiacych programiscie!
                  //doczytaj informacje o przypisywaniu poczatkowych wartosci do zmiennych
                  //bledem jest pozostawienie zmiennej z losowa wartoscia!
                  //nalezy ,,zerowac" zmienne ale ja to celowo pozostawiam Tobie
    
      cin >>a;
      cin.ignore();
      cin >>c;
      cin.ignore();
      cin >>b;
      cin.ignore();
      if (c=='+')
      {
           wynik = a+b;
           cout << wynik <<'\n';
      }
      else if (c=='-')
      {
           wynik = a-b;
           cout << wynik <<'\n';
      }
      else if (c=='*')
      {
           wynik = a*b;
           cout << wynik <<'\n';
      }
      else if (c=='/')
      {
           wynik = a/b;
           cout << wynik <<'\n';
      }
     cout <<"Nacisnij ENTER aby zakonczyc program "; //Kalkulator bez tej opcji.
     getchar();
     return 0;
    }
    //caly program mozna napisac prosciej jednak ja nie chce zagmatwac Ci kodu
    //wazne jest abys wiedzial co sie ,,dzieje" w kazdym momencie
    //dla Ciebie takze pozostawiam napisanie IF'a sprawdzajacego zmienna wynik
    //jesli bedzie mniejsza lub rowna 999 to ma wyswietlac wynik w kazdym innym
    //przypadku program ma sie zatrzymywac i wywalac jakis komunikat
    
    //Pozdrawiam
    //bbxb
  • #13 4969430
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Dodalem: cout << wynik <<'\n';

    Lecz gdy uruchamiam program wyskakuje dodatkowa linia gdzie jest ciagle 0 i nie wazne jakie liczby i jakie dzialanie wybiore...

    Dodano po 11 [minuty]:

    A zamiast tego zera powienien chyba wyskakiwac wynik operacji czy nie tak ?
  • Pomocny post
    #14 4969468
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Nie wiem o czym mówisz...

    U mnie wszystko jest ok. Kompiluję pod Dev-C++ 4.9.9.2.
    Skopiuj ten kod co podałem w poprzednim poście tak na ,,pałę" do swojego środowiska i spróbuj skompilować.
  • #15 4969517
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Sorki moja pomylka... nie widzialem ze to tez zmieniles :

    if (c=='+') 
      { 
           wynik = a+b; 


    u mnie bylo:
    if (c=='+')
      {
           cout <<a+b<<'\n';
           cout <<wynik<<;


    Poprawilem i smiga :) zaraz zobacze czy uda mi sie zrobic if...
  • Pomocny post
    #16 4969540
    elkubaso
    Poziom 13  
    Posty: 58
    Pomógł: 3
    Ocena: 23
    cout <<a+b=d<<'\n';

    Powinienes miec d=a+b przypisujesz do zmiennej d sume a+b.

    Wystarczy napisac i pod debagerem bedziesz widziec co i jak.
    { d=a+b; cout<<d <<"\n";}
  • #17 4970586
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Hymmm... Troche zmienilem kod zrodlowy i nameczylem sie z tym if co do 999 i lipa nie daje rady...

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      char znak;
      double a;
      double b;
      double wynik;
      
      
      cin >>a;
      cin.ignore();
      cin >>znak;
      cin.ignore();
      cin >>b;
      cin.ignore();
    
      if      (znak=='+')
               wynik=a+b;
      else if (znak=='-')
               wynik=a-b;
      else if (znak=='*')
               wynik=a*b;
      else if (znak=='/')
               wynik=a/b;
     
      if (wynik <='999')
             cout <<wynik<<'\n';
      else if (wynik >'999')
             cout <<"00\n";//Maja wyskoczyc dwa zera jesli wynik bedzie wiekszy od 999
     cout <<"Nacisnij ENTER aby zakonczyc program ";//Kalkulator bez tej opcji.
     getchar();
     return 0;
    }


    Co trzeba wpisac aby wyskoczyly dwa zera jesli wynik bedzie wiekszy od 999?

    Dodano po 4 [minuty]:

    Aha i gdy kompiluje nie wyskakuje okienko z Done i sam nie musze zamknac bo samo sie zamyka i na dole pisze [Warning] multi-character character constant.

    P.S. Uzywam Dev-C++ 4.9.9.2 do kompilowania.
  • Pomocny post
    #18 4970632
    jones_wm
    Poziom 12  
    Posty: 16
    Pomógł: 4
    Ocena: 2
    999 powinno być bez apostrofów, bo to integer.
    if (wynik <= 999)

    Apostrofy piszemy przy characterach np. 'a' ,
    przy Stringach piszemy w cudzysłowie np. "Dziewięćset dziewięćdziesiąt dziewięć".
  • #19 4970643
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Wielkie dzieki :) Juz dziala po usunieciu apostrofow :)

    Dodano po 1 [minuty]:

    Czyli 1 Poziom kursu zaliczony :) Mission ukonczona :P Czas na 2 poziom kursu :)

    Dodano po 8 [minuty]:

    Aha no to teraz powiedzcie mi jak za pomoca takiego programu moglbym zrobic taki kalkulator z tym programem :) Co bym potrzebowal poza wyswietlaczemi, PCB...
  • REKLAMA
  • Pomocny post
    #20 4970841
    jones_wm
    Poziom 12  
    Posty: 16
    Pomógł: 4
    Ocena: 2
    Płyty głównej, procesorka, klawiaturki, mile widziana myszka.
    Przykro mi HeloMelo.
    Taki programik działa tylko na komputerku i to nie na każdym.
  • #21 4971052
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    To w taki razie co trzeba zmienic aby mogl taki program na jakims ukladzie pracowac i na zwyklym wyswietlaczu? Przecie sa kalkulatory przenosne ktore nie maja myszki procka klawaiturki plyty glownej... tzn maja ale dostosowane do potzreb liczenia.

    Chyba ze piszac to co napisales miales zamiar napisac ze uczac sie tego wszystkiego marnuje czas... Bo ja sie ucze tego jezyka tylko po to aby programowac potem uklady...
  • Pomocny post
    #22 4971193
    Wicked
    Poziom 18  
    Posty: 174
    Pomógł: 11
    Ocena: 6
    HeloMelo napisał:

    Chyba ze piszac to co napisales miales zamiar napisac ze uczac sie tego wszystkiego marnuje czas... Bo ja sie ucze tego jezyka tylko po to aby programowac potem uklady...

    Hmm, no to w takim razie trochę chybiłeś z językiem. Do programowania układów używa się czystego C, albo asemblera na dany uP.
    Tam cała koncepcja programowania jest inna, bo piszesz program pod dany moduł.
  • Pomocny post
    #24 4971414
    todevor
    Poziom 12  
    Posty: 15
    Pomógł: 3
    Kolega wyżej ma racje. C++ nie jest odpowiedni do programowania układów mikroprocesorowych. Oczywiście da się, ale są tego pewnie minusy. Po za tym specyfika programowania uM a tworzenia programów na PC jest zupełnie inna. Być może uda Ci się anulować zamówienie, lub odesłać książkę. Pozdrawiam :)
  • Pomocny post
    #25 4971591
    jones_wm
    Poziom 12  
    Posty: 16
    Pomógł: 4
    Ocena: 2
    Po primo - nie pękaj!
    Nauczyłeś się właśnie podstaw potężnego języka programowania!
    Jak już napisałem wcześniej, raczej układów nim nie zaprogramujesz, ale wierz mi, to nie była strata czasu. Prędzej, czy później przyda Ci się ta wiedza, znając C++ dużo szybciej nauczysz się np. Asemblera i będziesz mógł programować mikroprocki.

    Nawiasem, lepiej, że teraz Cię oświeciliśmy w sprawie zastosowań i braków zastosowań, niż żebyś myślał, że uczysz się odpowiedniego języka aż byś się dowiedział tego przypadkiem i załamał :D
  • #26 4971620
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Dokladnie :) Nie zalamuje sie i ksiazek nie wycofam... Z pewnoscia je przeczytam bo moze i nie zaprogramuje tym jezykiem czegos ale jest to jak dla mnie bardzo interesujace to wszystko nie tylko dlatego ze jest to bardzo "popularne" lecz lubie tego typu rzeczy :) Wielkie dzieki za wszelka popmoc :) Ja cos nowego zyskalem i wy tez cos nowego zyskaliscie ;)

    Dodano po 13 [minuty]:

    P.S. Szczegole podziekowania kieruje uzytnikowi bbxb, poniewaz pomogl mi on niesamowicie :) mozna powiedziec nawet ze to on mi kursy dawal :D
  • Pomocny post
    #27 4972193
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Słuchaj - ja uważam, że powinieneś dalej uczyć się C++. C do uP jest lepszy niezaprzeczalnie ale znając C++ masz wielkie pole popisu. Jeszcze nie wiesz co Cię w życiu czeka :) Najpierw musisz dowiedzieć się co to pętla, instrukcja itp. Jak już będziesz myślał jak programista to język opisu Twoich myśli będzie dowolny.
    Kolejny aspekt to taki, że na każdej uczelni na pewno będzie C++.
    Kolejny to taki, że chyba do C++ jest najwięcej materiałów do nauki.

    A jak już poznasz C++ i dojdziesz do wniosku, że będziesz pisał na układy, to wtedy będziesz się specjalizował TYLKO w C i asmie.

    Jak już zacząłeś C++ to to dokończ. Nie pożałujesz na pewno!


    Pozdrawiam.
    P.S Dziękuję za podziękowania i powiedz jaką książkę zamówiłeś? :)
  • #28 4972693
    HeloMelo
    Użytkownik obserwowany
    Posty: 359
    Pomógł: 12
    Ocena: 53
    Hymmm. Co do ksiazki to juz naprawde nie pamietam bo to nie ja zamawialem... Tzn ja tylko wyslalem smsa do polski jakie ksiazki by mnie interesowaly a tam mieli juz mi kupic i w piatek bede ja najprawdopodobniej miec u siebie :) Wim ze moj ojciec dokupil mi do tego jeszcze jakies cwiczenia i moj wujek (skonczyl wlasnie studia informatyczne) ma tez mi cos od sibie dac :) wiec materialow troche bedzie :) Bede musial jescze sie zapytac czy ma cos o asemblerzem C lub tym uP...
  • #29 4972778
    bbxb
    Poziom 31  
    Posty: 2271
    Pomógł: 147
    Ocena: 94
    Cytat:
    Bede musial jescze sie zapytac czy ma cos o asemblerzem C lub tym uP...

    O rany.... uP to nie jest żaden język!!!
    uP to skrót od ,,mikroprocesor". Prawidłowy zapis jest taki:
    µP

    Panie Kolego podstawowe jednostki przydałoby się znać - tak samo jak język techniczny [bardziej lub mniej potoczny] :-)


    Pozdrawiam.
    P.S Kiedyś na PM wysłałem Ci kilka linków - tam masz książki do asma od podstaw.

    Moderowany przez Marek_Skalski:

    Temat archiwalny. Zamykam.

Podsumowanie tematu

✨ Dyskusja dotyczyła pytania, czy kurs języka C++ jest odpowiedni do programowania prostych układów elektronicznych i wyświetlaczy. Uczestnicy wyjaśnili, że choć C++ jest potężnym językiem programowania, do programowania mikrokontrolerów i prostych układów lepiej nadaje się język C lub asembler, ze względu na specyfikę i ograniczenia sprzętowe. Autor kursu jest początkującym i otrzymał wskazówki dotyczące podstaw programowania w C++, w tym poprawnego przypisywania wartości do zmiennych, używania operatorów oraz formatowania kodu. Omówiono także kwestie przenoszenia programów na układy, podkreślając, że programy napisane w C++ działają głównie na komputerach PC, a do układów wbudowanych potrzebne są inne narzędzia i języki. Uczestnicy zachęcali do kontynuowania nauki C++ jako solidnej bazy, która ułatwi późniejsze poznanie języka C i asemblera potrzebnych do programowania mikrokontrolerów. Wskazano również na potrzebę posiadania odpowiednich komponentów sprzętowych, takich jak procesor, płytka PCB i wyświetlacz, aby zrealizować projekt kalkulatora przenośnego. Autor otrzymał pomoc w poprawianiu kodu kalkulatora, w tym w zapisywaniu wyników operacji do zmiennych i warunkowym wyświetlaniu wyników. Podkreślono, że nauka C++ nie jest stratą czasu, nawet jeśli docelowo programowanie układów wymaga innych języków. W dyskusji pojawiły się także uwagi dotyczące poprawnego użycia znaków w kodzie (np. apostrofów przy liczbach) oraz formatowania postów (znaczniki CODE).
Wygenerowane przez model językowy.
REKLAMA