Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Mój programik


Rekomendowane odpowiedzi

Opublikowano

Witam was wszystkich serdecznie.

Programuję w C++ jakieś 2 dni :)

I zdołałem napisać mały programik, który sprawdza czy podana pierwsza wartość jest większa lub równa od podanej drugiej wartości :)

Tak wiem wiem każdy wie, że np 2.1 jest wieksze od 1.9 ale tym programem można sprawdzić czy :

714365423612.765237653712 jest większe lub równe z 1982317254382.12736198263 ;)

Macie tam ładnie wszytko opisane jak włączycie program :)

Program nie sprawdzi czy dana liczba jest większa jeśli podacie wartość z literą np. 1123a

wyskoczy wam jakiś błąd .

 

 

To na tyle gadania .

 

Program:

 

 

 

zawartość kodu:

 

 


#include <iostream>
using namespace std;
int main()
{
cout<<" Program sprawdzi czy podana pierwsza liczba jest wieksza od podanej drugiej"<<endl;
float a;
float b;
float c;
cout<<"Podaj pierwsza liczbe:";
cin>> a;
cout<<"Podaj druga liczbe:";
cin>> b;
cout<<"Program wyswietli wartosc 1 jeśli pierwsza liczba będzie większa"<<endl;
cout<<"Jesli wyswietli wartosc 0 oznacza to ze druga liczba jest wieksza"<<endl;
cout<<endl;
cout<<endl;
cout<<"Wartosc: "<<(a>=<<endl;
cout<<endl;
cout<<endl;
cout<<"Wartosc : 1 - Pierwsza liczba większa lub rowna drugiej liczbie"<<endl;
cout<<"Wartosc : 0 - Pierwsza liczba mniejsza od drugiej"<<endl;
cout<<endl;
cout<<"wpisz end i kliknij enter"<<endl;
cin>> c;
return 0;
}

 

 

 

Skan:

 

 

 

P.S

Te dwie końcowe linijki

cout<<"wpisz end i kliknij enter"<<endl;
cin>> c;

dodałem po to aby program nie wyłączył się po otrzymaniu wyniku , oczywiście nie trzeba wpisywać end wystarczy kliknąć eter.

Skan dodam za 2 minuty !

2utq9g5.png b6u4qg.png
Opublikowano

ojejku...

Po co to wrzuciłes?

 

btw.

Tak wiem wiem każdy wie, że np 2.1 jest wieksze od 1.9 ale tym programem można sprawdzić czy :

714365423612.765237653712 jest większe lub równe z 1982317254382.12736198263 ;)

nie sprawdzisz takich dużych liczb na floacie, czasem wyjdzie czasem nie.

Opublikowano

A na jakiej zmiennej mógłbym sprawdzić działania ?

Program dodałem po ty bo nie wiem czy jak na 2 dni nauki to to dobrze :)

Mógłbym napisać coś lepszego ale wolę się uczyć niż pisać denne programy ;PP

Ten wrzuciłem tylko po to aby się pochwalić że coś robię i że tak powiem żyję xD

2utq9g5.png b6u4qg.png
Opublikowano

Nie wrzucajcie byle gówna co zrobicie.

Pokaż coś interesującego co może się przydać, a nie komparator dwóch liczb.

BTW. Po co Ci zmienna "c" to po pierwsze, a po drugie float nie przyjmuje string'a (w tym wypadku "end").

Opublikowano

@up

Czytaj stary czytaj uważnie napisałem na końcu mojego postu wyraźnie !

P.S

Te dwie końcowe linijki

 

cout<<"wpisz end i kliknij enter"<<endl;

cin>> c;

dodałem po to aby program nie wyłączył się po otrzymaniu wyniku , oczywiście nie trzeba wpisywać end wystarczy kliknąć eter.

 

@ Sopelek997

Dowód na to że jednak float pociągnie takie dane :) Za pierwszym razem bez problemu i sprawdziłem takie wielkości z 10 razy conajmniej :PP

http://www.tinypic.pl/iphueg153tzq

2utq9g5.png b6u4qg.png
Opublikowano

@up

Jesteś idiotą ?

Chyba napisałem wyraźnie że napisałem to po to aby program się nie zamkną automatycznie po wykonaniu obliczeń.

Po to mi zmienna "c" abym mógł zrobić to żeby program się nie wyłączał automatycznie .

Jesteś gorzej nieogarnięty niż moja Babcia której już nie ma !

I nie zadawaj głupich pytań bo się tylko ośmieszasz ;)

2utq9g5.png b6u4qg.png
Opublikowano
Dowód na to że jednak float pociągnie takie dane

oj, chyba jednak nie ;/. Traci się zbyt dużo na precyzji

 

#include <iostream>
int main()
{
 float a;
 std::cin >> a;
 std::cout << '\n' << std::fixed << a;
}

 

@up

Jesteś idiotą ?

Chyba napisałem wyraźnie że napisałem to po to aby program się nie zamkną automatycznie po wykonaniu obliczeń.

Po to mi zmienna "c" abym mógł zrobić to żeby program się nie wyłączał automatycznie .

Jesteś gorzej nieogarnięty niż moja Babcia której już nie ma !

I nie zadawaj głupich pytań bo się tylko ośmieszasz ;)

takich rzeczy się albo nie robi, albo jak już koniecznie musisz to się robi inaczej. I to ty się ośmieszasz

 

 

btw.

Ten wrzuciłem tylko po to aby się pochwalić że coś robię i że tak powiem żyję xD

Ale to jest internet. Tutaj wszyscy mają to w dupie. Nie jesteś jedyny, który zaczyna programować.

Nie chcę cię jakoś hejtować czy coś, bo rozumiem, że każdy kiedyś zaczynał, ale przemyśl następnym razem zanim coś wrzucisz, cy to będzie miało sens

Opublikowano

http://ideone.com/tl3rUs

 

Mozna bardzo latwo sprawdzic jakie wartosci "obsluzy" nam float. Jak widac do 24 cyfr. Wielkosc przeznaczona na zmienna 4 bajty. Ze wzgledu na sposob zapisu moze pomiescic wiecej danych niz int ktory tez zajmuje 4 bajty. Poczytaj sobie o mantysie i precyzji liczb zmiennoprzecinkowych. To jest zalezne od tego jak sa interpretowane dane przez procesor, a nie od testow jednostkowych przeprowadzonych jakims niby programikiem.

Opublikowano

Ehhh... Prosze prosta, ale "funkcjonalna" przerobka:

#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
   float a;
   float b;
   cout << "Program sprawdzi czy podana pierwsza liczba jest wieksza od podanej drugiej" << endl;
   cout << "Podaj pierwsza liczbe:" << endl;
   cin >> a;
   cout << "Podaj druga liczbe:" << endl;
   cin >> b;
   if (a <  cout << "1 liczba jest mniejsza o " << (int)(b-a) << endl;
   if (a >  cout << "2 liczba jest mniejsza o " << (int)(a- << endl;
   if (a ==  cout << "1 i 2 liczba sa sobie rowne" << endl;
   system("pause");
   return 0;
}

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

Wyczuwam błąd w Twoim kodzie, a mianowicie tu :

       if (a <  cout << "1 liczba jest mniejsza o " << (int)(b-a) << endl;
       if (a >  cout << "2 liczba jest mniejsza o " << (int)(a- << endl;
       if (a ==  cout << "1 i 2 liczba sa sobie rowne" << endl;

 

Raz używasz "B", a raz "b". Zmienna "B" nie jest zadeklarowana więc nie możesz jej użyć.

Kocham mame

Opublikowano

ten błąd się zrobił się przez "czyszczenie kodu"

/ GA-970A-UD3 / FX-6300 / Sapphire Xtreme 5830 / OCZ ZS 550W / Brutus M23 /

| MPC Coders Team | MPC Gold Member | C#, C++, PHP, (N)ASM, AutoIT, Python, Java |

Opublikowano

P.S

Te dwie końcowe linijki

cout<<"wpisz end i kliknij enter"<<endl;

cin>> c;

dodałem po to aby program nie wyłączył się po otrzymaniu wyniku , oczywiście nie trzeba wpisywać end wystarczy kliknąć eter.

Skan dodam za 2 minuty !

 

Do tego służy:

getchar();

lub

system ("pause");

lub

cin.ignore();

 

:)

Opublikowano

ten błąd się zrobił się przez "czyszczenie kodu"

 

Do tego trzeba uwazac z takimi rzutowaniami, bo o ile float pomiesci wartosci wieksze niz 2^32 to juz signed int ma max 2^31-1 a nawet sama konwersja tej wartosci z float do int nie daje nam dobrej wartosci. Tutaj jest to po czesci zalezne od kompilatora.

Opublikowano

Zmień typ zmiennych na double float, będzie podwójna dokładność, bo faktycznie przy dłuższych się może mylić :P To są liczby zmiennoprzecinkowe i są zapisywane tylko z przybliżoną dokładnością.

 

@Heniut

Polecam rzutowanie przez static_cast, to, które ty stosujesz jest czasami kiepskie jak się nazbiera nawiasów :D

userbar.png
  • 2 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...