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.

[C++] Wypisywanie wyniku operacji

HeloMelo 28 Mar 2008 22:05 5561 28
  • #1 28 Mar 2008 22:05
    HeloMelo
    Użytkownik obserwowany

    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

    0 28
  • Pomocny post
    #2 28 Mar 2008 22:14
    bbxb
    Poziom 31  

    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 ;-)

    0
  • #3 28 Mar 2008 22:31
    HeloMelo
    Użytkownik obserwowany

    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?

    0
  • Pomocny post
    #4 28 Mar 2008 22:38
    bbxb
    Poziom 31  

    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!

    0
  • #5 28 Mar 2008 22:47
    HeloMelo
    Użytkownik obserwowany

    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 :)

    Code:
    #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

    0
  • Pomocny post
    #6 28 Mar 2008 22:54
    bbxb
    Poziom 31  

    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ą

    Code:
     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.

    0
  • #7 28 Mar 2008 23:00
    HeloMelo
    Użytkownik obserwowany

    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)

    0
  • #9 29 Mar 2008 02:13
    HeloMelo
    Użytkownik obserwowany

    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

    Code:
    #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++ :)

    0
  • Pomocny post
    #10 29 Mar 2008 10:40
    bbxb
    Poziom 31  

    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.

    0
  • #11 29 Mar 2008 12:44
    HeloMelo
    Użytkownik obserwowany

    Ok. Tylko jak zapisac wynik do zmiennej? Probowalem zrobic cos takiego:

    Code:
    #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 ?

    0
  • Pomocny post
    #12 29 Mar 2008 14:50
    bbxb
    Poziom 31  

    Code:
    #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

    0
  • #13 29 Mar 2008 15:53
    HeloMelo
    Użytkownik obserwowany

    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 ?

    0
  • Pomocny post
    #14 29 Mar 2008 15:53
    bbxb
    Poziom 31  

    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ć.

    0
  • #15 29 Mar 2008 16:03
    HeloMelo
    Użytkownik obserwowany

    Sorki moja pomylka... nie widzialem ze to tez zmieniles :

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


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


    Poprawilem i smiga :) zaraz zobacze czy uda mi sie zrobic if...

    0
  • Pomocny post
    #16 29 Mar 2008 16:08
    elkubaso
    Poziom 12  

    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";}

    0
  • #17 29 Mar 2008 20:23
    HeloMelo
    Użytkownik obserwowany

    Hymmm... Troche zmienilem kod zrodlowy i nameczylem sie z tym if co do 999 i lipa nie daje rady...

    Code:
    #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.

    0
  • Pomocny post
    #18 29 Mar 2008 20:29
    jones_wm
    Poziom 11  

    999 powinno być bez apostrofów, bo to integer.

    Code:
    if (wynik <= 999)

    Apostrofy piszemy przy characterach np. 'a' ,
    przy Stringach piszemy w cudzysłowie np. "Dziewięćset dziewięćdziesiąt dziewięć".

    0
  • #19 29 Mar 2008 20:43
    HeloMelo
    Użytkownik obserwowany

    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...

    0
  • Pomocny post
    #20 29 Mar 2008 21:20
    jones_wm
    Poziom 11  

    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.

    0
  • #21 29 Mar 2008 22:17
    HeloMelo
    Użytkownik obserwowany

    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...

    0
  • Pomocny post
    #22 29 Mar 2008 22:48
    Wicked
    Poziom 19  

    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ł.

    0
  • Pomocny post
    #24 29 Mar 2008 23:39
    todevor
    Poziom 11  

    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 :)

    0
  • Pomocny post
    #25 30 Mar 2008 00:43
    jones_wm
    Poziom 11  

    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

    0
  • #26 30 Mar 2008 01:24
    HeloMelo
    Użytkownik obserwowany

    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

    0
  • Pomocny post
    #27 30 Mar 2008 11:54
    bbxb
    Poziom 31  

    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ś? :)

    0
  • #28 30 Mar 2008 13:59
    HeloMelo
    Użytkownik obserwowany

    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...

    0
  • #29 30 Mar 2008 14:19
    bbxb
    Poziom 31  

    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.

    0