Peršokti į turinį

Reikia pagalbos su uzdaviniu.


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1982 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

(redaguota)
25 minutes prieš, intrigantas parašė:

https://lt.wikipedia.org/wiki/Minutė turetu atsakyt i visus klausimus :)

Ačiū, pabandysiu. ?

10 minutes prieš, hugegoofus parašė:

Tai kaip supratau tas nukritęs laikrodis rodo 2 val. ir 15 min. anksčiau? Daugiau informacijos lyg ir nereikia.

Ten pries laikrodzio nukritima turejo but 11.04 ir jeigu as atimsiu 2.15 as negausiu 8.49. Todel as manau kad tai ne visai teisingas variantas, arba as kazko nesuprantu. Ačiū už atsakyma. ?

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

#include <iostream>

int main(int argc, char* argv[])
{
    int laipsniu_pasisuko = 90;
    int valandos_laipsnis = 360 / 12;
    int minutes_laipsnis = 360 / 60;

    int valandu_pasisuko = laipsniu_pasisuko / valandos_laipsnis;
    int minuciu_pasisuko = laipsniu_pasisuko / minutes_laipsnis;

    int valandos = 0;
    int minutes = 0;

    std::cout << "Iveskite valandas ir minutes: " << "\n";
    std::cin >> valandos >> minutes;

    if (minutes + minuciu_pasisuko > 60)
        minutes = minutes + minuciu_pasisuko - 60;
    else if (minutes + minuciu_pasisuko == 60)
        minutes = 0;
    else
        minutes = minutes + minuciu_pasisuko;
    
    if (valandos + valandu_pasisuko > 12)
        valandos = valandos + valandu_pasisuko - 12;
    else if (valandos + valandu_pasisuko == 12)
        valandos = 0;
    else
        valandos = valandos + valandu_pasisuko;

    std::cout << "Yra valandu: " << valandos << "\n";
    std::cout << "Yra minuciu: " << minutes << "\n";
    system("pause");
    return 0;
}

Kazkas panasaus nesu tikras ar visai teisingai. Jei reikia paaiskinimo mielai padesiu. :D

Redaguota , nario -amxxL-
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 13 valandas(-ų), Programmer234 parašė:

Ačiū, pabandysiu. ?

Ten pries laikrodzio nukritima turejo but 11.04 ir jeigu as atimsiu 2.15 as negausiu 8.49. Todel as manau kad tai ne visai teisingas variantas, arba as kazko nesuprantu. Ačiū už atsakyma. ?

Matyt kažko nesupranti, nes:

  • 11 val. 4 min. = 11 * 60 min. + 4 min. = 664 min.
  • 8 val. 49 min. = 8 * 60 min. + 49 min. = 529 min.
  • 2 val. 15 min. = 2 * 60 + 15 min. = 135 min.
  • 664 min. - 529 min. = 135 min.
prieš 8 valandas(-ų), -amxxL- parašė:

#include <iostream>

int main(int argc, char* argv[])
{
    int laipsniu_pasisuko = 90;
    int valandos_laipsnis = 360 / 12;
    int minutes_laipsnis = 360 / 60;

    int valandu_pasisuko = laipsniu_pasisuko / valandos_laipsnis;
    int minuciu_pasisuko = laipsniu_pasisuko / minutes_laipsnis;

    int valandos = 0;
    int minutes = 0;

    std::cout << "Iveskite valandas ir minutes: " << "\n";
    std::cin >> valandos >> minutes;

    if (minutes + minuciu_pasisuko > 60)
        minutes = minutes + minuciu_pasisuko - 60;
    else if (minutes + minuciu_pasisuko == 60)
        minutes = 0;
    else
        minutes = minutes + minuciu_pasisuko;
    
    if (valandos + valandu_pasisuko > 12)
        valandos = valandos + valandu_pasisuko - 12;
    else if (valandos + valandu_pasisuko == 12)
        valandos = 0;
    else
        valandos = valandos + valandu_pasisuko;

    std::cout << "Yra valandu: " << valandos << "\n";
    std::cout << "Yra minuciu: " << minutes << "\n";
    system("pause");
    return 0;
}

Kazkas panasaus nesu tikras ar visai teisingai. Jei reikia paaiskinimo mielai padesiu. :D

Paprastesnis variantas būtų duotą laiką konvertuot į minutes, pridėti 135 min. ir gautą rezultatą konvertuot atgal į valandas bei minutes. Nereiktų 20+ eilučių.

Redaguota , nario hugegoofus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 8 valandas(-ų), -amxxL- parašė:

#include <iostream>

int main(int argc, char* argv[])
{
    int laipsniu_pasisuko = 90;
    int valandos_laipsnis = 360 / 12;
    int minutes_laipsnis = 360 / 60;

    int valandu_pasisuko = laipsniu_pasisuko / valandos_laipsnis;
    int minuciu_pasisuko = laipsniu_pasisuko / minutes_laipsnis;

    int valandos = 0;
    int minutes = 0;

    std::cout << "Iveskite valandas ir minutes: " << "\n";
    std::cin >> valandos >> minutes;

    if (minutes + minuciu_pasisuko > 60)
        minutes = minutes + minuciu_pasisuko - 60;
    else if (minutes + minuciu_pasisuko == 60)
        minutes = 0;
    else
        minutes = minutes + minuciu_pasisuko;
    
    if (valandos + valandu_pasisuko > 12)
        valandos = valandos + valandu_pasisuko - 12;
    else if (valandos + valandu_pasisuko == 12)
        valandos = 0;
    else
        valandos = valandos + valandu_pasisuko;

    std::cout << "Yra valandu: " << valandos << "\n";
    std::cout << "Yra minuciu: " << minutes << "\n";
    system("pause");
    return 0;
}

Kazkas panasaus nesu tikras ar visai teisingai. Jei reikia paaiskinimo mielai padesiu. :D

Verskit laiką į patogiausią vienetą, šiuo atveju minutes. Ir nepripraskit naudot

system("pause")

https://stackoverflow.com/questions/1107705/systempause-why-is-it-wrong

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

prieš 4 valandas(-ų), hugegoofus parašė:

Matyt kažko nesupranti, nes:

  • 11 val. 4 min. = 11 * 60 min. + 4 min. = 664 min.
  • 8 val. 49 min. = 8 * 60 min. + 49 min. = 529 min.
  • 2 val. 15 min. = 2 * 60 + 15 min. = 135 min.
  • 664 min. - 529 min. = 135 min.

Paprastesnis variantas būtų duotą laiką konvertuot į minutes, pridėti 135 min. ir gautą rezultatą konvertuot atgal į valandas bei minutes. Nereiktų 20+ eilučių.

Nu čia viskas logiška. ištikrųjų geresnis variantas. Aš dariau turėdamas galvoje kad nežinau koks laikas turi buti.
Citata: Pagalvokite, kaip laikrodžio rodomą laiką paveikė ciferblato pasisukimas 90 laipsnių pagal laikrodžio rodyklę ir atsakykite, kokį laiką laikrodis rodė prieš kritimą.

Pamastymui tai kokia cia uzduotis jei sprendimas turi atsakymo varianta?

 

prieš 4 valandas(-ų), Tomas parašė:

Verskit laiką į patogiausią vienetą, šiuo atveju minutes. Ir nepripraskit naudot


system("pause")

https://stackoverflow.com/questions/1107705/systempause-why-is-it-wrong

Čia tai razinu subinei ieškojimas. Iš esmes koks skirtumas ką aš panaudosiu užlaikyti output.
Čia ne komercine programa. nepatinka system("pause") naudokit std::cin.get();  Ir mažiau skaitykit
stackoverflow...

#include <iostream>

int main(int argc, char* argv[])
{
    int val = 0, min = 0;
    std::cout << "Iveskite valandas ir minutes: " << "\n";
    std::cin >> val >> min;

    // Ivestas laikas minutemis.
    int minutemis = val * 60 + min;

    // Paskaciuojeme kiek pasisuko
    int val_pasisuko = 90 / (360 / 12) - 1;
    int min_pasisuko = 90 / (360 / 60);
    int laiko_pasisuko = val_pasisuko * 60 + min_pasisuko;

    minutemis += laiko_pasisuko;

    val = minutemis / 60;

    // Apsauka kad nevirsytu 24 valandu.
    val = val >= 24 ? val % 24 : val;

    min = minutemis % 60;

    std::cout << "Valandos " << val << " Minutes " << min << ".\n";

    std::cin.ignore();
    std::cin.get();
    return 0;
}

Nu jau nieko gudriau neisgalvojau. Realiai nors zinoma kad pasisuko 2 val ir 15 min. As noriu parodyti kad tai galima apskaiciuot pagal laipsnius. Vistiek nelogiska 24 valandu toks laikrodis neturi :D.

Redaguota , nario -amxxL-
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Paprasčiausias variantas būtų pasinaudoti faktu, kad pasukus rodykles 90° kampu į kairę pusę, tai laikas sutrumpėja 2 val. ir 15 min. (kitaip sakant, 135 min.), tad sprendimas atrodytų taip:

#include <iostream>

int main() {
    unsigned hour;
    unsigned minute;

    std::cin >> hour >> minute;

    minute += hour * 60 + 135;
    minute -= ( minute > 1440 ) ? 1440 : 0;

    std::cout << minute / 60 << " " << minute % 60 << std::endl;

    return 0;
}

Na, o nepaisant 90° konstantos (aka norint padaryti sprendimą dinamišku) reikia laipsnius paversti į minutes:

#include <iostream>

int main() {
    unsigned hour;
    unsigned minute;

    std::cin >> hour >> minute;

    const unsigned deg  = 90;
    minute              += hour * 60 + 13 * deg / 6 - 60;
    minute              -= ( minute > 1440 ) ? 1440 : 0;

    std::cout << minute / 60 << " " << minute % 60 << std::endl;

    return 0;
}

Minučių formulė buvo išreikšta iš minutinės ir valandinės rodyklių lygčių (išvedimą galit rasti čia).

Redaguota , nario hugegoofus
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 16 valandas(-ų), -amxxL- parašė:

#include <iostream>

int main(int argc, char* argv[])
{
    int laipsniu_pasisuko = 90;
    int valandos_laipsnis = 360 / 12;
    int minutes_laipsnis = 360 / 60;

    int valandu_pasisuko = laipsniu_pasisuko / valandos_laipsnis;
    int minuciu_pasisuko = laipsniu_pasisuko / minutes_laipsnis;

    int valandos = 0;
    int minutes = 0;

    std::cout << "Iveskite valandas ir minutes: " << "\n";
    std::cin >> valandos >> minutes;

    if (minutes + minuciu_pasisuko > 60)
        minutes = minutes + minuciu_pasisuko - 60;
    else if (minutes + minuciu_pasisuko == 60)
        minutes = 0;
    else
        minutes = minutes + minuciu_pasisuko;
    
    if (valandos + valandu_pasisuko > 12)
        valandos = valandos + valandu_pasisuko - 12;
    else if (valandos + valandu_pasisuko == 12)
        valandos = 0;
    else
        valandos = valandos + valandu_pasisuko;

    std::cout << "Yra valandu: " << valandos << "\n";
    std::cout << "Yra minuciu: " << minutes << "\n";
    system("pause");
    return 0;
}

Kazkas panasaus nesu tikras ar visai teisingai. Jei reikia paaiskinimo mielai padesiu. :D

Ačiū labai visiems už pagalba :)

Nuoroda į komentarą
Dalintis per kitą puslapį

prieš 8 valandas(-ų), hugegoofus parašė:

Paprasčiausias variantas būtų pasinaudoti faktu, kad pasukus rodykles 90° kampu į kairę pusę, tai laikas sutrumpėja 2 val. ir 15 min. (kitaip sakant, 135 min.), tad sprendimas atrodytų taip:


#include <iostream>

int main() {
    unsigned hour;
    unsigned minute;

    std::cin >> hour >> minute;

    minute += hour * 60 + 135;
    minute -= ( minute > 1440 ) ? 1440 : 0;

    std::cout << minute / 60 << " " << minute % 60 << std::endl;

    return 0;
}

Na, o nepaisant 90° konstantos (aka norint padaryti sprendimą dinamišku) reikia laipsnius paversti į minutes:


#include <iostream>

int main() {
    unsigned hour;
    unsigned minute;

    std::cin >> hour >> minute;

    const unsigned deg  = 90;
    minute              += hour * 60 + 13 * deg / 6 - 60;
    minute              -= ( minute > 1440 ) ? 1440 : 0;

    std::cout << minute / 60 << " " << minute % 60 << std::endl;

    return 0;
}

Minučių formulė buvo išreikšta iš minutinės ir valandinės rodyklių lygčių (išvedimą galit rasti čia).

Good job mate! :D

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1982 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ą...