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

Zadanie: malowanie ścian w pokoju

Object Storage Arubacloud
0 głosów
1,365 wizyt
pytanie zadane 5 października 2018 w C i C++ przez Vitall Początkujący (400 p.)
edycja 5 października 2018 przez Vitall
Cześć wszystkim!

Jestem początkujący, stawiam pierwsze kroki, nie tylko na tym forum, ale również w samym programowaniu.

Mam zadanie następującej treści:

Napisać program pobierający od użytkownika wysokość, długość i szerokość
pomieszczenia, liczbę okien, wymiary okna (zakładamy, że wszystkie okna są
prostokątne i jednakowe), liczbę drzwi i wymiary drzwi (zakładamy, że wszystkie
drzwi są jednakowe). Program ma obliczać ilość farby potrzebnej do pomalowania
tego pomieszczenia. Zakłamy, że 1 litr farby wystarcza do pomalowania 5 m kw;
malujemy ściany i sufit.

 

Zastanawiam się jak powienien wyglądać tu algorytm.

Przecież okien na ścianie może być kilka i nie muszą być w jednakowej odległości od siebie.

Zadanie jest jednym z zadań wstepnych, po pierwszym wykładzie, jeszcze przed if-ami i pętlami, stąd zastanawiam się jaki powinien być tu odpowiedni pomysł.

Czy ktoś z Was, mógłby mi coś zasugerować/podpowiedzieć?

Będę wdzięczny, pozdrawiam.

 

----------------------------------------------------------------------------------
Po skorzystaniu z Waszych podpowiedzi, napisałem taki program:

#include<iostream>
using namespace std;

int main()
{
    const int jeden_litr = 5;
    double dlugosc, szerokosc, wysokosc;
    double pole_scian_calk, pole_scian, a, b, c, d, litry;
    int liczba_okien, liczba_drzwi;
    
    cout << "Szerokosc: ";
    cin >> szerokosc;
    cout << "Dlugosc: ";
    cin >> dlugosc;
    cout << "Wysokosc: ";
    cin >> wysokosc;
    
    pole_scian_calk = 2 * wysokosc *  (szerokosc + dlugosc);
    
    cout << "Liczba okien w pokoju: ";
    cin >> liczba_okien;
    cout << "Wymiary okna: ";
    cin >> a >> b;
    cout << "Liczba drzwi: ";
    cin >> liczba_drzwi;
    cout << "Wymiary drzwi: ";
    cin >> c >> d;
    
    pole_scian = pole_scian_calk - liczba_okien * a * b - liczba_drzwi * c * d + szerokosc * dlugosc;
    litry = pole_scian / jeden_litr;
    
    cout << "Na pomalowanie tego pomieszczenia, potrzeba: " << litry << "l. farby";
    
    return 0;
}

Działa, wg mnie, poprawnie. Czy wg Was to jest optymalne?

2 odpowiedzi

+1 głos
odpowiedź 5 października 2018 przez PanRik Gaduła (4,510 p.)

A czy ilość farby zmienia się odnośnie tego w jakiej odległości od siebie są okna? Moim zdaniem zmienia tylko wtedy gdy:

  • Okna będą nachodzić na siebie( co mało prawdopodobne )
  • Szerokość okna będzie większa niż szerokość sćiany.
  • Wysokość okna będzie większa niż wysokość okna
  • Szerokość N okien będzie większa niż szerokość ściany

W pozostałych przypadkach okna nie mają praktycznie żadnego znaczenia tylko tyle, że ich nie trzeba malować( czyt. odejmuje powierzchnie ściany do pomalowania. ) wszystko to samo tyczy się drzwi.

Co do tego zadania to ja bym widział:
 

Pole_do_pomalowania = pole_sciany - ilość_okien*pole_okna - ilość_drzwi*pole_drzwi 

 

komentarz 5 października 2018 przez Vitall Początkujący (400 p.)
Dzięki wielkie :D ja niepotrzebnie zacząłem rozbijać pole ściany na mniejsze, żeby każdy jej kawałek policzyć, tj. pole tego kawałka i stąd niepotrzebnie skomplikowałem sprawę, która jest w sumie prosta. Dzięki jeszcze raz!
1
komentarz 5 października 2018 przez Tomek Sochacki Ekspert (227,510 p.)

@PanRik,

  • Szerokość okna będzie większa niż szerokość sćiany.
  • Wysokość okna będzie większa niż wysokość okna
  • Szerokość N okien będzie większa niż szerokość ściany

Szczerze mówiąc to takie rzeczy wg mnie powinny być wykryte jeszcze przed odpaleniem algorytmu obliczającego... to jest faza wstępnej walidacji danych wejściowych, co jest jednym z ważniejszych punktów każdej aplikacji bazującej na danych inputowanych.

komentarz 5 października 2018 przez PanRik Gaduła (4,510 p.)
Całkowicie się zgadzam :)
0 głosów
odpowiedź 5 października 2018 przez k222 Nałogowiec (30,150 p.)

Żadnych if'ów ani pętli nie potrzebujesz bo po co.

Przecież okien na ścianie może być kilka i nie muszą być w jednakowej odległości od siebie.

A czy odległość pomiędzy oknami wpływa na ilość zużytej farby?? A ich ilość masz przecież podaną tak samo jak drzwi.

Podejdź najpierw do tego jak do zadania z matmy: "Jasiu ma pomalować cztery ściany i sufit. Jest na nich O okien i K drzwi wszystko o wymiarach... Ile farby zużyje?"

Podobne pytania

0 głosów
1 odpowiedź 539 wizyt
0 głosów
2 odpowiedzi 358 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez pokrywa1 Użytkownik (990 p.)
+2 głosów
1 odpowiedź 314 wizyt
pytanie zadane 11 lutego 2022 w JavaScript przez Jakub3kk Nowicjusz (170 p.)

92,572 zapytań

141,422 odpowiedzi

319,644 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...