Izpitno vprašanje RAČ2PRA 5100

Iz MaFiRaWiki

GFDL Avtor tega članka je študent/ka BarbaraNovak.

Pripravil/a ga je pri predmetu Računalništvo 2 (FMF PRA).


Kljub temu ste vsi vabljeni k urejanju in popravkom, saj je bistvo wikija ravno v sodelovalnem delu.


Vprašanje

|Vpr. 5100| Metka je vodja izmene v robotsko vodenem skladišču. Njeno delo je, da nadzira programerje, ki upravljajo robote-viličarje, ki skladajo zaboje v skladovnice. Janko jo je dolgo prosil, naj mu preskrbi delo programerja v tem skladišču. Končno je Metka le popustila in mu pri direktorju izposlovala zaposlitev. A že takoj prvi dan ga je Janko polomil. Robota je narobe sprogramiral. Tako so zabojniki v skladovnicah, ki jih nadzira Janko, zloženi (levo je naveden ZGORNJI zaboj skladovnice, v TEJ skladovnici so 4 zaboji) 1, 2, 3, 4; namesto 2, 1, 4, 3; ali pa (za 7 zabojev) 1, 2, 3, 4, 5, 6, 7 namesto 2, 1, 4, 3, 6, 5, 7 (po dva in dva zaboja sta torej v napačnem vrstnem redu). Metka mora hitro ukrepati in napisati ustrezen program, ki bo vodil robota, da preložil zaboje v vseh skladovnicah. Robot zna izvajati osnovne operacije nad skladom. Pomagaj Metki in napiši ALGORITEM za vodenje robota, ki v danem skladu preloži elemente tako, da zamenja po dva in dva elementa.

Odgovor

V algoritmu imamo podan sklad s!

Algoritem:

  1. pomozna = pripravi();
  2. while (!s.prazen()) {
  3. x = s.vrh();
  4. s.odstrani();
  5. if (!s.prazen()) { // ce imamo se elemente – zaradi mozne lihosti stevila
  6. y = s.vrh(); // se drugi element para
  7. s.odstrani();
  8. pom.vstavi(y);
  9. pom.vstavi(x); // obrnemo par
  10. }
  11. else { // to bo le pri zadnjem elementu v primeru lihosti
  12. pom.vstavi(x);
  13. }
  14. }
  15. // le se prelozimo nazaj
  16. while (!pom.prazen()) {
  17. s.vstavi(pom.vrh());
  18. pom.odstrani();
  19. }

Glej tudi

Osebna orodja