Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 15.11.2008 o 18:30, Jan Czarny napisał:

> Rzuć okiem na przykład pod tym linkiem i ew. wklej problematyczny fragment kodu,
jeśli
> nadal będzie krzyczeć:
> http://www.cplusplus.com/reference/clibrary/cmath/pow.html


Jak zrobię
/include <cmath> /* pluje się o pow
ale jak zrobię tak
/include <math.h> /* nie pluje się ^^

@sry za double posta

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Cóż, pytanie dotyczy .NET, ale może ktoś mi odpowie.
Otóż, rysuję sobie coś na System.Drawing.Graphics, ale chciałbym to potem zapisać do pliku bitmapowego. Tylko nie mogę znaleźć nigdzie jak przepisać dane z Graphics na System.Drawing.Bitmap.
Pomoże ktoś?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wie ktoś jak zrobić programik, który dzieli liczby rzeczywiste i posiada zabezpieczenie przed dzieleniem przez 0. Program musi posiadać funkcję, że jak użytkownik podzieli przez 0, wynik ma wyjść 1000. Z tą funkcją mi coś nie wychodzi...

EDIT:
Oczywiście chodzi o język C++.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 03.01.2009 o 17:26, Carlton napisał:

Wie ktoś jak zrobić programik, który dzieli liczby rzeczywiste i posiada zabezpieczenie
przed dzieleniem przez 0. Program musi posiadać funkcję, że jak użytkownik podzieli przez
0, wynik ma wyjść 1000. Z tą funkcją mi coś nie wychodzi...

EDIT:
Oczywiście chodzi o język C++.


chyba jakoś tak, nie zapuszczałem tego w kompilatorze więc mogą być drobne błędy składniowe, oczywiście to jest tylko funkcja całą resztę programu jak pobieranie danych z wejścia i wypisanie wyniku na wyjście musisz napisać sam

real dzielenie (rael a, real b)
{
real c;
if (b==0)
return 1000;
else c=a/b;
return c;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 03.01.2009 o 17:41, Nufiko napisał:

real dzielenie (rael a, real b)
{
real c;
if (b==0)
return 1000;
else c=a/b;
return c;
}


Napisałem program z użyciem twojej funkcji. Program się skompilował i działa, ale jak chcę podzielić przez 0 to mi wywala błąd, że program przestał działać. Masz na to jakąś rade?

O to kod programu:
#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;
int dzielenie (int a, int b);

int main(int argc, char *argv[])
{
int a, b, c;
cout << "Podaj a\n";
cin >> a;
cout << "Podaj b\n";
cin >> b;
c = a / b;
cout << "Wynik dzialania to: " << (c) << endl;

system("PAUSE");
return EXIT_SUCCESS;
}

int dzielenie (int a, int b)
{
int c;
if (b==0)
return 1000;
else c=a/b;
return c;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Napisałeś funkcję dzielenia tylko nigdzie jej nie używasz.
Zamień w main:
c = a / b;
na:
c = dzielenie(a,b);
i wywal resztę operacji poza wyświetleniem wyniku :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.01.2009 o 19:37, Jarys napisał:

Napisałeś funkcję dzielenia tylko nigdzie jej nie używasz.
Zamień w main:
c = a / b;
na:
c = dzielenie(a,b);
i wywal resztę operacji poza wyświetleniem wyniku :)


No tak moje niedopatrzenie. :/ Dzięki już wszystko działa. :]

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 04.01.2009 o 19:42, Carlton napisał:

No tak moje niedopatrzenie. :/ Dzięki już wszystko działa. :]

Funkcja podana przez Jarysa zawiera ryzykowny zapis, który przez lepsze kompilatory zostanie uznany za błąd (użycie zmiennej c z warunkową inicjacją). Tu masz wersję, która nie tworzy niepotrzebnych zmiennych:

int dzielenie (int a, int b)
{
return b != 0 ? a/b : 1000;
}

Równie dobrze można zrobić makro, które będzie działać identycznie, ale dla wszystkich możliwych typów arytmetycznych jednocześnie lub każdych klas, które przedefiniowały sobie operator dzielenia:

#define dzielenie(a,b) ( (b != 0) ? (a) / (b) : 1000 )

Równie dobrze można też użyć funkcji szablonowej:
template <T> T dzielenie(T a, T b)
{
return return b != 0 ? a / b : 1000;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To jak juz pokazujemy inne wersje funkcji, ja zaproponuje nieco czytelniejsza, choc odrobine dluzsza, od tego co pokazal Olamagato ;)

double dzielenie(double a, double b)
{
if (b)
return a/b;
return 1000;
}

Wyjasnienie: jesli b jest rozne od zera, wtedy funkcja zwroci a/b, jesli b bedzie rowne 0, pierwszy return sie nie wykona i zwrocone zostanie 1000.

Edit: Proby formatowania nie maja jednak sensu ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.02.2009 o 01:02, T.Boczek napisał:

Jakby ktoś chciał to mam coś w stylu C++ w 24h dla zainteresowanych pisać to wstawię
na Rapida :)


Mam nadzieję, że pamiętasz o prawach autorskich itp.?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować