...
matt: Jak rozrysować schemat blokowy takiego zadania :
Sprawdź czy wszystkie liczby całkowite z wybranego przedziału <a,b> spełniają nierówność
n3+20n2<3n2+370. Wypisz liczby dla ktorych nierówność jest nieprawdziwa.
18 paź 21:12
PW: Najpierw bym przekształcił do postaci
n3+17n2<370
n2(n+17)<370,
a ponieważ 42(4+17)=336 i 52(5+17)=550 − wiemy jakie narzucić ograniczenia dla n dodatnich.
Dla n ≤−17 nierówność jest prawdziwa (lewa strona ujemna lub 0).
Dla n=−16 mamy
(−16)2(−16+17)<370 − zdanie prawdziwe
Dla n=−15
(−15)2•2<370 − zdanie fałszywe
Dla n=−14
(−14)2•3<370 − zdanie fałszywe
Dla n=−13
(−13)2•4<370 − zdanie fałszywe
Dla n=−12
144•5<370 − zdanie fałszywe
Dla n=−11, −10, −9, −8, −7, −6 − zdania fałszywe
Dopiero dla n= −5, −4, −3, −2, −1 zdania prawdziwe.
W ten sposób wiemy dla jakich n nierówność jest prawdziwa, dopiero teraz tworzymy schemat
blokowy − jeśli podamy komputerowi ograniczenia dla n, to się nie zasapie licząc dla każdej
liczby z przedziału <a,b> z osobna n3+17n2 i sprawdzając za każdym razem, czy jest to
mniejsze od 370.
18 paź 21:57
matt: ja juz kombinuje na miliony sposobów i zawsze mi cos nie wychodzi

Na początku dałem tylko przedział <a,b> pozniej zadeklarowałem tablice i niestety coś zawsze
nie jest do końca dobre.
18 paź 22:02
18 paź 22:26
PW: A tu proste sprawdzenie − nierówność jest prawdziwa dla n∊(−∞,−16]∪[−5,4], dla pozostałych n
jest fałszywa.
18 paź 22:28
matt: Bo wiesz to byly pierwsze zajęcia z algorytmów, mówil że mamy zrobić takim sposobem jak
próbowalem, ale nie do konca jeszcze to rozumiem i tak sie pytam właśnie.
18 paź 22:31
PW: Powiem tak: uczyłem się prostego programowania 40 lat temu i nie miałem potem już z tym do
czynienia. Myślę jednak, że nie może to polegać na bezmyślnym wykonywaniu milionów jednakowych
operacji. Co będzie, jeśli komputer dostanie przedział [−2 000000, 12 0000] ? Programista ma
rozwiązać problem. Naszym zadaniem jest sprowadzić problem do jak najmniejszej liczby
operacji, dlatego proponuję, żeby komputer sprawdzał najpierw liczby a i b.
Jeżeli liczba a jest większa od 4 lub b jest mniejsza od −15, to koniec zadania − w pierwszym
wypadku żadna liczba z [a,b] nie jest rozwiązaniem (piszemy komunikat "dla wszystkich liczb z
podanego przedziału nierówność jest fałszywa"), w drugim − wszystkie. Myśl dalej.
18 paź 22:47