Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Poziom 1 Lekcja 10, operacje matematyczne

Ostatnio zmodyfikowano 2015-10-13 15:14
Autor Wiadomość
gucio6
Temat założony przez niniejszego użytkownika
Poziom 1 Lekcja 10, operacje matematyczne
» 2015-08-09 19:18:27
Siemka, mam problem z wykonaniem 1.wszego "zadania domowego" po tym temacie. Nie umiem po prsotu wstawić reszty z dzielenia. oto mój kod: (btw. 2gie zadanie zrobiłem w 30 sekund, miałem inny kod, znacznie prościej napisany ale usunąłem ;/)

C/C++
#include <iostream>
#include <math.h>


using namespace std;

int main()
{
   
    int liczba, liczba1, liczba2;
   
    cout << "Podaj 1 liczbe: ";
    cin >> liczba1;
   
   
    cout << "podaj 2 liczbe:";
    cin >> liczba2;
   
    liczba = liczba1 + liczba2;
    cout << "a + b = " << liczba << endl;
   
    liczba = liczba1 - liczba2;
    cout << "a - b = " << liczba << endl;
   
    liczba = liczba1 * liczba2;
    cout << "a * b = " << liczba << endl;
   
    liczba = liczba1 / liczba2;
    cout << "a / b = " << liczba << endl;
   
    liczba %= liczba;
    cout << "a % b = " << liczba << endl;
   
    cin.get();
    cin.get();
    return 0;
}
P-135929
carlosmay
» 2015-08-09 19:36:17
C/C++
liczba = liczba1 % liczba2
Liczba nie jest zainicjalizowana i dzielisz ją operatorem przez liczba2.
Wychodzą czary lub kompilator się burzy.
Dzielenie modulo wykonuje się jak każde inne działanie matematyczne.
P-135933
gucio6
Temat założony przez niniejszego użytkownika
» 2015-08-09 19:42:30
w sumie racja, nie pomyslałem o tym... btw. pojawia się kolejny problem ^^ jeżeli przy definiowaniu zmiennych użyje float nie mogę debugować ani skompilować kodu, jednak gdy dam np. int lub double to mogę skompilować jednak reszta wychodzi jako 1 a nie 1,25 jak w lekcji 1. Czym to się różni :v?
P-135934
Cansisti
» 2015-08-09 19:44:48
Po float musisz dodać literkę f żeby kompilator odróżnił ją od double (teoretycznie powinno mimo to przejść ale niektóre kompilatory są nieprzyjazne) np. float x = 1.25f
(Przy czym nie wiem jak to się ma do cin, możesz ewentualnie pobrać jako double i rzutować na float)
P-135935
carlosmay
» 2015-08-09 19:53:41
I jeszcze dochodzi modulo które działa tylko ze zmiennymi całkowitymi.
Zabezpieczaj program przed dzieleniem przez zero.
Edit: jak dzielisz dwie liczby float
C/C++
float c;
c = 5 / 3.0; // 3.0 to info ze chcesz wynik rzeczywisty, ew. jak kolega wyzej stosowanie sufiksow.
P-135940
gucio6
Temat założony przez niniejszego użytkownika
» 2015-08-09 20:42:16
Hmmm nie rozumiem ^^ <jestem początkującym>. Przy tym kodzie, program się nie uruchamia. Natomiast jeżeli zmienie float na np. "int" wszystko działa dobrze, jednak reszta pokazuje się błędna ;/
 
C/C++
#include <iostream>
#include <math.h>


using namespace std;

int main()
{
   
    float liczba, liczba1, liczba2;
   
   
    cout << "Podaj 1 liczbe: ";
    cin >> liczba1;
   
   
    cout << "podaj 2 liczbe:";
    cin >> liczba2;
   
    liczba = liczba1 + liczba2;
    cout << "a + b = " << liczba << endl;
   
    liczba = liczba1 - liczba2;
    cout << "a - b = " << liczba << endl;
   
    liczba = liczba1 * liczba2;
    cout << "a * b = " << liczba << endl;
   
    liczba = liczba1 / liczba2;
    cout << "a / b = " << liczba << endl;
   
    liczba = liczba1 % liczba2;
    cout << "a % b = " << liczba << endl;
   
    cin.get();
    cin.get();
    return 0;
}
P-135947
Cansisti
» 2015-08-09 20:46:42
Jak napisał kolega wyżej nie możesz użyć modulo (reszty z dzielenia - %) z float, bo nie istnieje reszta z dzielenia z przecinkiem (mija się z celem :P ).
Nie mam pojęcia dlaczego działa z double, nie powinno.
P-135948
pekfos
» 2015-08-09 20:52:34
bo nie istnieje reszta z dzielenia z przecinkiem
Ale istnieje funkcja fmod(), która ją liczy.
P-135949
« 1 » 2 3
  Strona 1 z 3 Następna strona