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

Problem 'z dzieleniem' i zmiennymi.

Ostatnio zmodyfikowano 2009-01-13 07:43
Autor Wiadomość
malan
Temat założony przez niniejszego użytkownika
Problem 'z dzieleniem' i zmiennymi.
» 2009-01-01 20:30:34
Witam. Zacząłem dopiero przygodę z C++. Postanowiłem poćwiczyć i napisać kilka prostych programów. Tylko mam mały problem może i błachy, ale nie mam pojęcia jak go rozwiązać. Chodzi o dzielenie... Znak " / " = dzielenie całkowite, np. 21 / 2 = 10 (tak podaje 'program')

Napisałem taki sobie programik, aby poćwiczyć:

C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    cout << "Program obliczajacy pole trojkata (ze wzoru 0.5a*h)." << endl << endl;
    int a;
    int b;
    cout << "Dlugosc podstawy wynosi: ";
    cin >> a;
    cout << "Dlugosc wysokosci wynosi: ";
    cin >> b;
    cout << "Pole trojkota wynosi: " <<( a / 2 ) * b << endl;
    getch();
    return( 0 );
}

Podstawiając za a 21, a za b 4 program podaje iż pole trójkąta wynosi 40 (gdyż 'a/2'= 10; 10*4= 40), a powinno być 42.
... i nie mam pojęcia co zrobić, ale dzielenia wykonywało się tu normalnie. Proszę o pomoc.
P-3172
lynx
» 2009-01-01 20:35:18
Problem tkwi w tym że typ int zawiera tylko liczbę całkowitą. Aby program dzilił 21/2 i wyszło 10.5 musisz użyć typu obsługującego liczbę z przecinkiem. Takim typem jest np. double. Napisz:
double a;
zamiast:
int a;

Pozdrawiam, Piotrek. :)

/edit:
Jeżeli widzisz jakieś zmienne w których powinien być obsługiwany przecinek, to też zamień ich typ.
P-3174
DeBugger
» 2009-01-01 20:40:16
Ja stosuję floata:
float liczba;
P-3175
zori
» 2009-01-01 20:40:20
Lub tez mozesz zastosuj zmienna typu "float" i tez bedzie wszystko ok. Bo tak jak "double" i "float" przyjmuja wartosci po przecinku co juz napisał piotrek.
P-3176
malan
Temat założony przez niniejszego użytkownika
» 2009-01-01 20:52:28
Teraz już będę wiedział. Poprawiłem i już działa - dzięki wielkie ;).
Swoją drogą przydał by się opis tych typów w kursie, bo chyba takowego dokładnego opisu nie ma.
pzdr.
P-3178
setless
» 2009-01-01 21:20:59
O ile interesuje Cie sam wynik, a nie jego zapisanie do zmiennej, to można to zrobić i w ten sposób:
C/C++
cout << "Pole trojkota wynosi: " <<( a * 0.5 ) * b << endl;
Mnożymy przez liczbę zmiennoprzecinkową, wynik automatycznie będzie wypisywany jako typ ułamkowy, chyba że przypiszemy go do zmiennej typu całkowitego. W owym wypadku część ułamkowa liczby, po wykonaniu operacji arytmetycznych, zostanie utracona.
P-3180
pekfos
» 2009-01-01 22:42:28
odnoszę wrażenie że wzór na pole trójkąta w c++ piszę się tak:
a*b/2
P-3184
zori
» 2009-01-01 22:58:31
Wzór ja pole trójka można napisac na kilka sposobów np.:
C/C++
P = a * b / 2
P = a / 2 * b
P = 0.5 * a * b
P = 1 / 2 * a * b
P = a * b * 0.5
itp

Jak widac jest kilka sposobów i tak po podstawieniu każdego z tych wzorów wyjdzie jedno i to samo :P

/edit

Tak teraz patrze do kursu i sa opisanie zmienne tylko trzeba umiec czytać :P
[url href="http://kursy.ddt.pl/?LessonId=4" nazwa="http://kursy.ddt.pl/?LessonId=4"/]
P-3185
« 1 » 2 3
  Strona 1 z 3 Następna strona