C++

smail000

Użytkownik
Dołączył
Lipiec 10, 2010
Posty
5
Wybaczcie za tą nazwę tematu ale coś mi zwiesiło ;(((


Napisałem coś takiego

Kod:
#include <iostream>

using namespace std;

int main ()
{
   cout << "Napisz co chcesz policzyc" endl;
   cin >> l1 >> znak >> l2 ;
   //Zmienne:
   float l1
   float l2
   char znak
   float wynik
   
   cin >>l1>>znak>>l2;

if (znak == +) 
{   
   wynik = l1 + l2
   cout << "Wynik to: " << wynik endl;
}
else if (znak == -)
{
    wynik = l1 - l2
    cout << "Wynik to: " << wynik endl; 
}    
else if (znak == *)
{
    wynik = l1 * l2
    cout << "Wynik to: " << wynik endl;
}
else (znak == /)
{
     wynik = l1 /l2   
     cout << "Wynik to: " << wynik endl;   
}
else
{
char pomoc
     cout << "Jesli nie wiesz jak wpisywac polecenia wpisz pomoc, A jesli chcesz cos policzyc wpisz clean";
    cin >> pomoc;
if (pomoc == pomoc) cout >> "Np 2+4, 145-512, etc"
return 1
else (pomoc == clean)
return 1 
}

I DeV c++ nie kompiluje mi tego ;( wiem, że amator ze mnie kombinuje sobie z c++ od 2 dni :D.

Głownie chodzi o to, żeby program liczył jak kakulator :D a gdy ktoś napisze błędną kombinacje np 2 + 5 zamiast 2+5 wyświetli sie Jesli nie wiesz jak wpisywac polecenia wpisz pomoc, A jesli chcesz cos policzyc wpisz clean.

po wpisaniu clean program leci od początku nie wiem czy dałem dobre polecenie.

Wiem że to amatorszczyzna ale ktoś kiedyś zawsze musiał od czegoś zacząć~~!
 
Ostatnia edycja:

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Uuuułaaa zaszalałeś z tym kodem, z kąd się uczysz języka?
Primo: Każda instrukcja kończy się znakiem ';'
Secundo: Dwa razy ta sama instrukcja do wczytywania zmiennych - po co?
Tertio: Jeżeli porównujesz znaki (char) to musisz wziąść znak w ''. Np.:
PHP:
if(znak == '+')
Quatro:
PHP:
endl
wstawia się do strumienia, jest to sygnał przejścia do nowej linii i 'spłukania' bufora (tak - wiem, że fush 'płucze' ale brakuje mi słowa). Operator << służy do wstawiania do strumienia (nie przeładowany) tak więc:
PHP:
...<< wynik << endl;
Quinto: Tak mnie ten kod zamieszał, że nie jestem w stanie Ci pomóc. Kup sobie jakąś książkę o C++ (polecam 'Symfonię C++').
 

smail000

Użytkownik
Dołączył
Lipiec 10, 2010
Posty
5
Ucze się z youtuba ,wikipedii, i stąd szczerze mówiąc pisząc to nie miałem ani trochę nadziei że to zadziała xD ^^. << wynik << endl ; o tym wiem tylko po prostu zapomniałem. if i else próbowałem zrobić po raz pierwszy. Chciałem zrobić coś nowego niż

cout >> "..... itd czyli bez samych tekstów.

A co do tych poleceń if i else dobrze kombinowałem czy nie ;P?
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Nie, jedynie if i else bez błędów ortograficznych pisałeś. Naucz się z jakiejś literatury bo nie wiem jak mam Ci to wyjaśnić :) Nie umiem uczyć.
 

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
Kod:
#include <iostream>

using namespace std;

int main ()
{
   cout << "Napisz co chcesz policzyc" << endl;
   //Zmienne:
   float l1;
   float l2;
   char znak;
   float wynik;
    cin >> l1 >> znak >> l2 ;
   
   cin >>l1>>znak>>l2;

if (znak == '+') 
{   
   wynik = l1 + l2;
   cout << "Wynik to: " << wynik << endl;
}
else if (znak == '-')
{
    wynik = l1 - l2;
    cout << "Wynik to: " << wynik << endl; 
}    
else if (znak == '*')
{
    wynik = l1 * l2;
    cout << "Wynik to: " << wynik << endl;
}
else if (znak == '/')
{
     wynik = l1 /l2;
     cout << "Wynik to: " << wynik << endl;   
}
else
{
char pomoc[50];
     cout << "Jesli nie wiesz jak wpisywac polecenia wpisz pomoc, A jesli chcesz cos policzyc wpisz clean";
    cin >> pomoc;
if (pomoc == "pomoc") cout << "Np 2+4, 145-512, etc";
return 1;
}
}
 

discovery44

Były Moderator
Dołączył
Sierpień 14, 2007
Posty
763
Kod:
cin >> l1 >> znak >> l2 ;
   
   cin >>l1>>znak>>l2;
Kod:
cin >> l1 >> znak >> l2;
A jeszcze lepiej tak:
Kod:
cin >> l1;
if(cin.fail() ) cout << "Tylko liczby!\n";
else cin >> znak;
if(!(cin.fail()) ) cin >> l2;
if(cin.fail() ) cout << "Tylko liczby!\n";
else
{
...
 

Magnefikko

Były Moderator
Dołączył
Maj 29, 2004
Posty
709
Wogóle to c++ jest dla ciot.

Kod:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv){
    float a[2];
    char z;
    sscanf(argv[1], "%f%c%f", &a[0], &z, &a[1]);
    switch(z){
        case '+': printf("%f\n", a[0] + a[1]); break;
        case '-': printf("%f\n", a[0] - a[1]); break;
        case '*': printf("%f\n", a[0] * a[1]); break;
        case '/': printf("%f\n", a[0] / a[1]); break;
    }
}
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
eeee magne bez takich mi tu :D

Predzej powiedzialbym ze strumienie cin i cout a przynajmniej operatory >> i << sa dla ciot :D
Pozatym z nimi bardzo latwo o Buffer overflow. Ulatwiaja niby ale sa dosc niebezpieczne. Lepiej sie przestawic na bardziej bezpieczne funkcje.
 

Boobie

Użytkownik
Dołączył
Lipiec 25, 2008
Posty
195
A na końcu bez system("pause")
?
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
system("PAUSE"); to tylko opcjonalnie sie uzywa. Wiele programow odpalanych jest z konsoli a nie double-clickiem a wtedy ta funkcja jest nam niepotrzebna.
 
Do góry Bottom