Sprawdzenie przedziałów za pomocą switch

0

Nauczycielka od infy zadala nam do napisania program, ktory mamy zrobic TYLKO uzywajac instrukcji switch case. Nasz program ma powiedziec czy podana przez nas liczba 'x'
nalezy do (1,2)
nalezy do (2,3)
nalezy do (3,5)
jest mniejsza od 1
jest wieksza niz 5
Z kolegami probowalismy wieloma sposobami ale nic nam wychodzilo :-/
Prosze o pomoc, z gory wielkie dzieki :d

0

Samym switchem nie da się. Tzn. da się ale trzeba byłoby je zagnieżdżać co jest bezsensem. Bez instrukcji warunkowych się nie obejdzie.

0
jagi napisał(a)

Samym switchem nie da się. Tzn. da się ale trzeba było je zagnieżdżać co jest bezsensem. Bez instrukcji warunkowych się nie obejdzie.

No ja tez tak mysle ale po co dawala by nam takie zadanie...
Jakbym nie mial co robic w domu xd

0

dziwne zadanie, gdyż z tego co wiem to za pomcą switch możemy zmienną przyrównywać tylko do liczb całkowitych... nie można wykorzystać przedziałów. Myślę, że trzeba tę liczbę x odpowiednio rzutować na inny typ i wtedy pobawić się ze switchem.

0

Żeby nie być gołosłownym, oto kod:

#include <iostream.h>

int main(int argc, char* argv[])
{
        double x = 3.5;

        switch(x < 1) {
        case true:
                cout << "Liczba jest mniejsza od 1";
                break;
        case false:
                switch(x < 2) {
                case true:
                        cout << "Liczba nalezy do przedzialu <1; 2)";
                        break;
                case false:
                        switch(x < 3) {
                        case true:
                                cout << "Liczba nalezy do przedzialu <2; 3)";
                                break;
                        case false:
                                switch(x <= 5) {
                                case true:
                                        cout << "Liczba nalezy do przedzialu <3; 5>";
                                        break;
                                case false:
                                        cout << "Liczba jest wieksza od 5";
                                        break;
                                }
                                break;
                        }
                        break;
                }
                break;
        }
        cout << endl;
        system("PAUSE");
        return 0;
}
0

No tak rzeczywiscie troche dziwne...
Po lekcji postaram sie podac to o co chodzilo, bo pewno powie nam na lekcji jak to "wyczarowac" xd
Dziekuje za pomoc^^

0

O lol, nie wierzę, że takie głupie zadanie dostaliście ;)
Aż mi się śmiać zachciało, macie coś takiego, a żeby się w dupę baba ugryzła:

#define If(condition) switch(condition) {
#define Then case true:
#define Else break; } case false:
#define Begin {
#define End }
#define WriteLn(value) std::cout << value << std::endl;
#define ReadLn(value) std::cin >> value;

#include <iostream>

int main() {

    double number;
    ReadLn(number);

    If(number<1) Then Begin
        WriteLn("(-;1)");
    Else
        If(number<2) Then Begin
            WriteLn("[1;2)");
        Else
            If(number<3) Then Begin
                WriteLn("[2;3)");
            Else
                If(number<5) Then Begin
                    WriteLn("[3;5)");
                Else
                    WriteLn("[5;+)");
                End;
            End;
        End;
    End;

    return 0;
    }

Nie ma if'ów - sami je sobie zrobiliście na piechotę - używając switcha ;]

</i>//q: leżę, leżę :)))</i>

0

Zastanawiam się czemu ta baba dała Wam w ogóle takie zadanie. Z punktu programistycznego nie ma to żadnego praktycznego zastosowania, bo takie rzeczy robi się na instrukcjach warunkowych if, else. Jedynie może być to ciekawostką zmuszającą do logicznego myślenia. Może to nie było zadanie obowiązkowe tylko dla chętnych? :P
Możecie jej zadać takie zadanie: "Napisz kalkulator nie używając znaków +, -, *, /". Ciekawe czy będzie taka sprytna i napisze :P. W sumie można użyć asemblera :). O a może chodziło w Waszym zadaniu o to, żeby napisać ten program w asemblerze. Wtedy programujecie bezpośrednio na rejestrach gdzie nie używacie instrukcji if, else :P. Ale dobra starczy tej dywagacji.
Daj znać co ona tam wymyśliła, bo aż jestem ciekaw czy chodziło o takie rozwiązanie.

0
jagi napisał(a)

Zastanawiam się czemu ta baba dała Wam w ogóle takie zadanie.

A ja wiem, dlatego, że ona zna się na tym tak jak i uczniowie, wiem coś na temat co niektórych nauczycieli "informatyki" w liceum, znają się wordzie, excelu, trochę na bazach danych i obsłudze systemu, nawet sieciach, ale nie duży procent z nich zna się na programowaniu, ich lekcja programowania opiera się na przepisaniu przykładu z książki, nie rzadko z błędami i omówieniu tego co mają w tej książce, widocznie baba to zadanie wymyśliła sama :>

0
crayze napisał(a)

A ja wiem, dlatego, że ona zna się na tym tak jak i uczniowie, wiem coś na temat co niektórych nauczycieli "informatyki" w liceum, znają się wordzie, excelu, trochę na bazach danych i obsłudze systemu, nawet sieciach, ale nie duży procent z nich zna się na programowaniu, ich lekcja programowania opiera się na przepisaniu przykładu z książki, nie rzadko z błędami i omówieniu tego co mają w tej książce, widocznie baba to zadanie wymyśliła sama :>
sorry ale jak ktoś umie programować, to raczej nie będzie pracował jako nauczyciel w publicznej szkole.

0
MarekR22 napisał(a)

sorry ale jak ktoś umie programować, to raczej nie będzie pracował jako nauczyciel w publicznej szkole.

Fakt jakby taki nauczyciel umiał dobrze programować to by w szkole nie uczył (może jest po jakimś kursie tylko). Nie mniej uważam, że nauka programowania już w liceach czy wcześniej nie jest głupim pomysłem, oczywiście tylko dla chętnych bo nie na zajęciach obowiązkowych. No ale jak widać nie każdy może tego dobrze nauczyć :).

Pamiętam mojego nauczyciela... porażka :P. Uważał, że pozjadał wszystkie rozumy, tymczasem niejeden z grupy był od niego lepszy. Oj strasznie zaszedł mi za skórę :P. Obym go nigdy już nie spotkał :P. Ale dobra bo odbiegłem od tematu :).

0

Nie wydaje mi sie zeby ona nalezala do takich nauczycielek. I dzisiaj na lekcji nam powiedziala ze tego sie nie da zrobic na poziomie wiedzy ktora posiadamy bez "ifa", mowila to co wiekszosc osob tutaj i przyznala ze to był wredne z jej strony-.-

0
tasaq napisał(a)

Nie wydaje mi sie zeby ona nalezala do takich nauczycielek. I dzisiaj na lekcji nam powiedziala ze tego sie nie da zrobic na poziomie wiedzy ktora posiadamy bez "ifa", mowila to co wiekszosc osob tutaj i przyznala ze to był wredne z jej strony-.-

Ja obstawiam trochę inną wersję :P. Zadała zadanie, które gdzieś znalazła, a później dopiero się kapnęła, że sama tego zrobić nie potrafi i dlatego taka gadka :P. Przynajmniej się przyznała do tego, że jest wredna :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1