Peršokti į turinį

C++ uždavinys apie dėžučių matmenis


NaxHQ`

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3047 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, reikia išspręst uždavinį su C++, bet niekaip negaliu išmąstyti, ku pasinaudoti, kad parašyčiau programą.

Jūsų rankose dvi dėžutės, kurių išoriniai matmenys yra a1, b1, c1 ir a2, b2, c2. Matmenys yra sveikieji skaičiai, neviršijantys 100. Viena dėžutė telpa į kitą, jeigu jos matmenys nors vienu vienetu yra mažesni už kitos dėžutės atitinkamus matmenis. Dėžutes galima vartyti. Galimos kelios situacijos: pirmoji telpa antrojoje, antroji telpa pirmojoje, abi vienodų matmenų, dėžutės nepalyginamos. Parašykite programą dviem dėžutėms palyginti.

Kontroliniai duomenys

Duomenys a1, b1, c1, a2, b2, c2 Rezultatas 5 6 7 7 5 6 Abi vienodų matmenų 3 4 10 8 2 3 Antroji telpa pirmojoje

 

Nuoroda į komentarą
Dalintis per kitą puslapį

    public static void main (String[] arg) {


        ArrayList<Integer> list1 = new ArrayList<Integer>();
        list1.add(8);
        list1.add(11);
        list1.add(9);

        ArrayList<Integer> list2 = new ArrayList<Integer>();
        list2.add(10);
        list2.add(14);
        list2.add(10);

        ArrayList<Integer> answers = new ArrayList<Integer>();
        /*
        1 reiškia jog pirmosios dėžės matmuo yra didesnis
        2 jog antrosios
        0 jog lygus
         */

        int count = list1.size();
        while(count != 0) {
            int l1 = extractHighest(list1);
            int l2 = extractHighest(list2);
            if (l1 > l2) {
                answers.add(1);
            } else if (l1 < l2) {
                answers.add(2);
            } else {
                answers.add(0);
            }
            count--;
        }

        for(int i : answers){
            System.out.println(i);
        }

        int first = answers.get(0);
        boolean same = true;
        for(int i : answers){
            if(i != first){
                same = false;
            }
        }
        if(same == false){
            System.out.println("Dezes skirtingo dydzio ir netelpa viena i kita");
        }
        else if(first == 0){
            System.out.println("Abi dezes tokio pat dydzio");
        }
        else if(first == 1){
            System.out.println("I pirmaja deze telpa antroji");
        }
        else{
            System.out.println("I antraja deze telpa pirmoji");
        }
    }

    public static int extractHighest(ArrayList<Integer> array){
        int highest = 0;
        int last_index = 0;
        for(int a : array){
            //System.out.println(a);
            if(a > highest){
                highest = a;
                last_index = array.indexOf(a);
            }
        }
        array.remove(last_index);
        return highest;
    }

Štai tavo programa, tik parašyta su Java. Jei kažkiek gaudaisi tai suprasi kas čia ir kaip bei persirašysi savo norima kalba, jei nesigaudai, tai tau net nėra prasmės atlikti šį uždavinį... Tai pat šią programą gali naudoti ir su kitomis fugūromis (turinčiomis daugiau ar mažiau nei 3 matmenis).

Redaguota , nario b0ss
  • Teigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

http://pastebin.com/epnhv5db

 

 

 

public static void main (String[] arg) {


ArrayList<Integer> list1 = new ArrayList<Integer>();
list1.add(8);
list1.add(11);
list1.add(9);

ArrayList<Integer> list2 = new ArrayList<Integer>();
list2.add(10);
list2.add(14);
list2.add(10);

ArrayList<Integer> answers = new ArrayList<Integer>();
/*
1 reiškia jog pirmosios dėžės matmuo yra didesnis
2 jog antrosios
0 jog lygus
*/

int count = list1.size();
while(count != 0) {
int l1 = extractHighest(list1);
int l2 = extractHighest(list2);
if (l1 > l2) {
answers.add(1);
} else if (l1 < l2) {
answers.add(2);
} else {
answers.add(0);
}
count--;
}

for(int i : answers){
System.out.println(i);
}

int first = answers.get(0);
boolean same = true;
for(int i : answers){
if(i != first){
same = false;
}
}
if(same == false){
System.out.println("Dezes skirtingo dydzio ir netelpa viena i kita");
}
else if(first == 0){
System.out.println("Abi dezes tokio pat dydzio");
}
else if(first == 1){
System.out.println("I pirmaja deze telpa antroji");
}
else{
System.out.println("I antraja deze telpa pirmoji");
}
}

public static int extractHighest(ArrayList<Integer> array){
int highest = 0;
int last_index = 0;
for(int a : array){
//System.out.println(a);
if(a > highest){
highest = a;
last_index = array.indexOf(a);
}
}
array.remove(last_index);
return highest;
}

Štai tavo programa, tik parašyta su Java. Jei kažkiek gaudaisi tai suprasi kas čia ir kaip bei persirašysi savo norima kalba, jei nesigaudai, tai tau net nėra prasmės atlikti šį uždavinį... Tai pat šią programą gali naudoti ir su kitomis fugūromis (turinčiomis daugiau ar mažiau nei 3 matmenis).

 

 

Jei čia yra trumpiausias būdas parašyti šitą programą... Tai užuojauta Java programuotojams...

Redaguota , nario - Giedrius R.
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

http://pastebin.com/epnhv5db

 

 
 

 

Jei čia yra trumpiausias būdas parašyti šitą programą... Tai užuojauta Java programuotojams...

Lol, aš į viską žiūrėjau labiau iš dinaminės pusės ir praktiškai netaikiau matematikos. Tai va, dėl to, kaip ir sakiau, mano programa gali palyginti figūras turinčias tiek kampų/matmenų, kiek tik užsinorės vartotojas. Neretai lanksčiau atlikti programas nei būtina - nėra reikalo, tačiau, kai dirbi su didelesnėmis sistemomis, tai nereikia daug ko iš naujo perrašyti, nes viskas jau padaryta taip, jog būtų paprasta ką nors pakeisti. Dėl to tiesiog manau jog mano būdas geresnis.

Redaguota , nario b0ss
Nuoroda į komentarą
Dalintis per kitą puslapį

Lol, aš į viską žiūrėjau labiau iš dinaminės pusės ir praktiškai netaikiau matematikos. Tai va, dėl to, kaip ir sakiau, mano programa gali palyginti figūras turinčias tiek kampų/matmenų, kiek tik užsinorės vartotojas. 

Programuotojas turi daryti programą, kad ji veiktų kuo greičiau ir pagal reikalavimus, o ne "dinamiškai"... Bent mano nuomonė tokia. 

 

Lol, aš į viską žiūrėjau labiau iš dinaminės pusės ir praktiškai netaikiau matematikos. Tai va, dėl to, kaip ir sakiau, mano programa gali palyginti figūras turinčias tiek kampų/matmenų, kiek tik užsinorės vartotojas. Neretai lanksčiau atlikti programas nei būtina - nėra reikalo, tačiau, kai dirbi su didelesnėmis sistemomis, tai nereikia daug ko iš naujo perrašyti, nes viskas jau padaryta taip, jog būtų paprasta ką nors pakeisti. Dėl to tiesiog manau jog mano būdas geresnis.

 

 

Dabar reikėjo daryti tikrai "didelę sistemą". Žodžiu, nežinau kaip tau atrodo, bet man atrodo jog ne ten pataikei... Yra vietos kur reikia dirbti su didelėm sistemom, tada viską suprantu. O dabar - reikėjo padaryti paprastą programą. Taip, kad nežinau ką čia bandei parodyti...

Redaguota , nario - Giedrius R.
Nuoroda į komentarą
Dalintis per kitą puslapį

Programuotojas turi daryti programą, kad ji veiktų kuo greičiau ir pagal reikalavimus, o ne "dinamiškai"... Bent mano nuomonė tokia. 

Išdėsčiau savo nuomonę tuo klausimu dar prieš pamatęs šį komentarą, paredaguodamas senąjį. Taipogi, nemanau jog tokiame basic lygije greitis yra labai svarbus, nes jis nelabai ir pakinta. Tai pat yra keli pagrindiniai programavimo būdai, vienas iš jų yra tiesiog senarijaus (tai turėtų vadintis scriptu, bet dauguma tą žodį naudoja kaip tik nori) rašymas programai, kuri atliks tik tą vieną funkciją ir nieko daugiau, kitas būdas yra programuojant atsižvelgti į kelias funkcijas toje pačioje vietoje, ko pasekoje programoje nereikia rašyti galybės šlamšto, kuris iš esmės atlieka tą patį. Manau supranti apie ką aš... Anyway, gerbiu tavo greitą sprendimą, tai kai kuriose situacijose yra geresnė išeitis.

Redaguota , nario b0ss
  • Teigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

Išdėsčiau savo nuomonę tuo klausimu dar prieš pamatęs šį komentarą, paredaguodamas senąjį. Taipogi, nemanau jog tokiame basic lygije greitis yra labai svarbus, nes jis nelabai ir pakinta. Tai pat yra keli pagrindiniai programavimo būdai, vienas iš jų yra tiesiog senarijaus (tai turėtų vadintis scriptu, bet dauguma tą žodį naudoja kaip tik nori) rašymas programai, kuri atliks tik tą vieną funkciją ir nieko daugiau, kitas būdas yra programuojant atsižvelgti į kelias funkcijas toje pačioje vietoje. Manau supranti apie ką aš... Anyway, gerbiu tavo greitą sprendimą, tai kai kuriose situacijose yra geresnė išeitis.

Supratau ką turi galvoje, bet vis tiek pasilieku prie savo minties, kad ne šitoje vietoje reikėjo tavo lankstaus būdo, nes žmogus prašė pagalbos. O šiaip tai galiu tik pagirti, jog programuoji, ir dar taip protingai. Gražu :)

  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3047 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...