Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Programowanie windy (problem) w C++

#1
Programowanie windy (problem) w C++
Witam. Mam za zadanie napisać program do windy. 3 dni nie śpię bo jestem początkująca i muszę go oddać na studia (stresik) i wiadomo, że nie chce zawalić Lol2 . Dlatego proszę was o pomoc. Program niby działa, ale zauważyłam, że co jakiś czas łapie mi błąd np. piszę że jestem na 4 piętrze, przyjeżdża winda nr 2 (mimo że winda nr 1 jest bliżej) i jak daję, że jadę na piętro nr 2 to pisze mi komunikat UP Boję się . Proszę pomóżcie mi wychwycić błąd w kodzie bo ja już na oczy nie widzę :D ewentualnie nie pogardzę paroma radami jak usprawnić (mój w sumie pierwszy prawdziwy, napisany własnymi ręcoma kod) lub poprawić jak wyłapiecie jakieś błędy.

Link do kodu:
https://pastebin.com/mbiyRGg8
 System operacyjny: windows_ten Przeglądarka: chrome
#2
RE: Programowanie windy (problem) w C++
Cześć, czy masz dokładną treść zadania? Zwróć uwagę na warunek
Kod:
if (b.twoje_pietro > w1.aktualne_pietro)
Podając piętro niższe zawsze przyjedzie winda nr 2. Powinnaś raczej badać różnicę piętra użytkownika i piętra, na której znajduje się winda, np.
Kod:
#include <iostream>
#include <cstdlib>
using namespace std;
enum kierunek
{
   DOWN, UP
};

struct winda
{
   int pietro;
   int przebieg;
   kierunek kierunek_jazdy;
   winda(int pietro=0, int przebieg=0, kierunek kierunek_jazdy=DOWN)
       : pietro(pietro), przebieg(przebieg), kierunek_jazdy(kierunek_jazdy)
   {
   }
};

struct budynek
{
   const int liczba_pieter;
   winda w1, w2;
   budynek() : liczba_pieter(5), w1(1, 14), w2(1, 17)
   {
   }
};

int main()
{
    return 0;
    budynek b;
    int twoje_pietro, nowe_pietro;
    while (true)
    {
        cout << "Podaj, na ktorym pietrze jestes: ";
        cin >> twoje_pietro;
        // faworyzowana winda z mniejszym przebiegiem
        const int w1_roznica = abs(b.w1.pietro-twoje_pietro) + b.w1.przebieg,
            w2_roznica = abs(b.w2.pietro-twoje_pietro) + b.w2.przebieg;
        if (w1_roznica <= w2_roznica)
        {
            // winda pierwsza pojedzie
            cin >> nowe_pietro;
            b.w1.przebieg += abs(nowe_pietro-b.w1.pietro);
            b.w1.pietro = nowe_pietro;
        }
        else
        {
            // winda druga pojedzie
            cin >> nowe_pietro;
            b.w2.przebieg += abs(nowe_pietro-b.w2.pietro);
            b.w2.pietro = nowe_pietro;
        }
    }
    return 0;
}
Co do reszty kodu: czy obiektowość jest dozwolona (bo dodałem konstruktor)?

 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: Programowanie windy (problem) w C++
Wydaje mi się, że nie. Jestem dopiero na I roku studiów i tego jeszcze nie przerabialiśmy. Mieliśmy się raczej opierać na pętlach, warunkach
 System operacyjny: windows_ten Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (Programowanie windy (problem) w C++)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak daleko dojdę, jeśli programowanie nie jest „palącą pasją”? YekinKebo 1 985 26.09.2021, 17:29
Ostatni post: NvidiaIntel93
  Programowanie dla laika - od czego zaczac? adiq1033 10 9517 28.05.2021, 12:58
Ostatni post: crmdesigner
  Pytanie - programowanie batch [cmd] Max23 0 13225 20.03.2020, 01:03
Ostatni post: Max23

Skocz do: