• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie domowe z odcinka 17. Funkcje matematyczna. Krążownik.

VPS Starter Arubacloud
+1 głos
1,464 wizyt
pytanie zadane 25 czerwca 2015 w C i C++ przez WojciechJot Gaduła (3,410 p.)

Witam mam problem z zadaniem dot. obliczenia "Ile krążowników jestem w stanie kupić posiadając daną ilośc metalu, kryształu oraz deuteru?".

W chwilii wciśnięcia przycisku F9 *start programu* wyrzuca mnie na zakładkę stl_algobase.h i informuje o błędzie: "__comp cannot be used as a function".

Nie wiem w czym jest problem, program wydaje się być prawidłowy no chyba, że poknociłem coś z instrukcja "min". Wstawiam tutaj kod programu i proszę o pomoc lub nakierowanie mnie na właściwy tor myślenia. Dziekuję, pozdrawiam serdecznie.

 

#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    ile_metal = trunc(metal/20000);
    ile_krycha = trunc(krysztal/7000);
    ile_deu = trunc(deuter/2000);
    krazownik = min(ile_metal, ile_krycha, ile_deu);
    cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;

    return 0;

}

 

2 odpowiedzi

+1 głos
odpowiedź 25 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
wybrane 25 czerwca 2015 przez WojciechJot
 
Najlepsza
#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    ile_metal = trunc(metal/20000);
    ile_krycha = trunc(krysztal/7000);
    ile_deu = trunc(deuter/2000);
    krazownik = min(ile_metal, min(ile_krycha, ile_deu));
    cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;

    return 0;

}

Poprawny kod. Funkcja min() przyjmuje 2 lub 3 argumenty. Znajduje ona mniejszą z dwóch wartości. Trzeci argument to predykat porównujący.

komentarz 25 czerwca 2015 przez WojciechJot Gaduła (3,410 p.)
Ach, jednak działa dzięki bardzo. Nie wiedziałem, że tą funkcje się w taki sposób stosuje dla 3 argumentów.
komentarz 25 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
Dodam, że podobnie stosuje się również funkcję NWD() z algorytmu Euklidesa dla n liczb gdzie n > 2. Tylko tutaj już działamy w pętli, żeby nie pisać 1000 wywołań.
0 głosów
odpowiedź 25 czerwca 2015 przez WojciechJot Gaduła (3,410 p.)

Przysiadłem i jeszcze go troche przerobiłem aby w pełni pasował do odcinka pana Mirosława. Może komuś się przyda łapcie.

A temat do zamknięcia. ;)

 

#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    if(metal<0 || krysztal<0 || deuter<0)
        cout<<"nieprawidlowe dane!!!"
    else
    {
        ile_metal = trunc(metal/20000);
        ile_krycha = trunc(krysztal/7000);
        ile_deu = trunc(deuter/2000);
        krazownik = min(ile_metal, min(ile_krycha, ile_deu));

        cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;
    }




    return 0;

}

 

Podobne pytania

0 głosów
2 odpowiedzi 1,009 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
0 głosów
4 odpowiedzi 402 wizyt
0 głosów
3 odpowiedzi 500 wizyt
pytanie zadane 2 września 2015 w C i C++ przez Irek Placek Nowicjusz (120 p.)

93,008 zapytań

141,975 odpowiedzi

321,256 komentarzy

62,350 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...