Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Obliczanie liczby krzeseł przy stole

Ilmen 28 Paź 2014 13:25 2757 16
  • #1 28 Paź 2014 13:25
    Ilmen
    Poziom 8  

    Hejka, to znowu ja! :D
    Mam kolejny problem z pewnym zadaniem dotyczącym obliczenia liczby krzeseł przy stole. Przedstawię wam najpierw kod:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Czy mógłby mi ktoś wytłumaczyć [niekoniecznie zrobić, chciałbym się tego nauczyć] jak to zrobić?

    Cytat:

    Stół ma prostokątny blat o wymiarach
    A
    ×
    B
    centymetrów. Z kolei siedzisko krzesła, patrząc z góry, to
    kwadrat o wymiarach
    K
    ×
    K
    centymetrów. Dalej będziemy traktować stół jako prostokąt, a krzesła – j
    ako
    kwadraty.
    Nad jednym z brzegów siedziska (kwadratu) znajduje się oparcie. Każde krzesło należy usta
    wić oparciem
    przy stole, tzn. brzeg z oparciem powinien pokrywać się z pewnym brzegiem stołu. Po
    nadto siedzisko powinno
    w całości
    znajdować się pod blatem. Oczywiście żadne dwa krzesła nie mogą na siebie nachodzić. W nas
    zych
    rozważaniach pomijamy nogi od stołu (możemy założyć, że są nieskończenie cienkie i
    znajdują się w rogach
    blatu). Ile krzeseł zmieści się pod stołem?


    Ma być jeden wiersz wejścia z trzema liczbami całkowitymi [zrobione] jako wymiar blatu stołu i krzeseł [zrobione].

    Niestety ten programik działa tylko po części [dla niektórych wymiarów stołu i krzeseł nie pokazuje liczby krzeseł].

    0 16
  • #2 28 Paź 2014 15:44
    rufek90
    Poziom 24  

    Nie sprawdzałem całości, ale nie wiem, czy: if (b >=(2*a)) nie powinno być if (b >=(2*c))

    jeżeli c to szerokość krzesła. Pamiętaj, że nikt z nas (na stan mojej wiedzy) nie ma szklanej kuli i nie wie, co oznaczają zmienne a, b, c, a1, b1, c1. Szczególnie, że w treści zadania nie ma zmiennej c, jest za to K, której nie użyłeś w kodzie. Na przyszłość przydatne będą komentarze - nawet jeżeli Ty ich nie potrzebujesz, to pewnie będzie ich potrzebował ktoś, kto będzie czytał kod.

    0
  • #3 28 Paź 2014 17:09
    Ilmen
    Poziom 8  

    Jest coraz lepiej - tylko 2 błędy na 33 próby. :)

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0
  • #4 30 Paź 2014 17:07
    klaudia98
    Poziom 1  

    mi wyszły teraz 2 błędy. Także coś jeszcze tu trzeba poprawić

    Kod: cpp
    Zaloguj się, aby zobaczyć kod



    #include <iostream>

    using namespace std;
    unsigned int a, b, k, a1, b1, k1;
    int main()
    {
    cin >> a >> b >> k;

    if (b >=(2 * k))
    {
    a = a / k;
    b = b / k;

    a1 = a * 2;
    b1 = b * 2;
    k1 = (a1 + b1) - 4;
    cout << k1;
    }
    else if (b >= k)
    {
    a1 = a / k;
    b1 = b / k;
    k1 = a1 * b1;
    cout << k1;
    }
    else {
    cout << 0;
    }
    }
    Kod: cpp
    Zaloguj się, aby zobaczyć kod
    [/code]

    0
  • #5 30 Paź 2014 21:26
    IXOF
    Poziom 18  

    Kod: cpp
    Zaloguj się, aby zobaczyć kod



    Wydaje mi się, że działa aczkolwiek za późno się zorientowałem, że pisze to tylko pod a > b , wiec trochę na siłę to przerobiłem, bo już mi się nie chciało od nowa myśleć.

    Prosze o ocene, czy działa bo jestem ciekawy, czy o to chodziło.

    1
  • #6 31 Paź 2014 18:37
    soja98
    Poziom 2  

    Ktoś ma może pełne rozwiązanie tego programu? Bo siedzimy z kumplem na skype już kilka godzin i rozkminiamy różne sposoby i nic -_-

    0
  • #7 31 Paź 2014 23:20
    IXOF
    Poziom 18  

    A moje rozwiązanie nie jest pełne ?

    0
  • #8 31 Paź 2014 23:37
    xzwidek
    Poziom 2  

    Niestety nie wywala 2 błędy na 33 próby

    0
  • #9 31 Paź 2014 23:47
    IXOF
    Poziom 18  

    Możesz powiedzieć jak to testujecie ? to będę wiedział gdzie szukać błędu.

    0
  • #10 31 Paź 2014 23:57
    xzwidek
    Poziom 2  

    Testujem w ten sposób że wrzucamy kod źródłowy na serwis i jest on tam automatycznie sprawdzany

    0
  • Pomocny post
    #11 31 Paź 2014 23:59
    IXOF
    Poziom 18  

    A może ten serwis sprawdza, czy program przyjmuje poprawne dane ? Np czy przepuszcza coś takiego jak k= 0.

    Wg mnie algorytm albo działa dobrze, albo wcale, a ja podając liczby na chybił trafił cały czas dostaje dobre wyniki.



    Odszczekuje to, już mam błąd, zaraz dopicuje i zobaczycie, czy działa.


    Zobacz to

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    2
  • #14 01 Lis 2014 15:22
    soja98
    Poziom 2  

    Dzięki pomogłeś xD,
    ...Tylko gdzie jest ten przycisk :D

    0
  • Pomocny post
    #15 01 Lis 2014 17:11
    IXOF
    Poziom 18  

    Myślałem, że konto założyciela tematu też jest Twoje, bo zauważyłem, że co odpowiedź, to inne konto. Ale cóż.. tylko autor tematu może podziękować przyciskiem za pomoc w temacie ;)

    0
  • #16 01 Lis 2014 18:49
    soja98
    Poziom 2  

    Jestem nowy na tym forum, przydatne info ^^ :)

    0
  • #17 27 Cze 2015 13:44
    Ilmen
    Poziom 8  

    Zamykam, problem został rozwiązany. [zaległe]

    0