Kamis, 29 Desember 2011

Algoritma Sistem Kontrol Lift (Elevator)


keadaan awal: 
 
   arah bendera ON = atas 
 
   (elevator ada di lantai pertama) 
 
     pada lantai pertama bendera ON 
 
     pada lantai-lantai tengah bendera OFF 
 
     pada lantai terakhir bendera OFF 
 
     tampilan lantai adalah 1 
 
   (lantai pertama) 
 
     lampu tombol naik OFF 
 
(lantai tengah [hal ini merupakan semua lantai-lantai yang  bukan pertama dan terakhir, jika  Anda memiliki lebih dari 2 lantai]) 
 
     lampu tombol naik OFF 
 
     lampu tombol turun OFF 
 
   (lantai terakhir) 
 
     lampu tombol turun OFF 
 
   (setiap lantai) 
 
     semua tombol lantai tujuan OFF 
 
     (jumlah tombol harus sesuai dengan jumlah lantai) 
 
 
 
 program utama loop 
 
 { ( 
 
   jika tidak ada tombol ke atas atau bawah yang ditekan 
 
   { ( 
 
     (bagian ini tidak begitu dibutuhkan tetapi saya menulis ini untuk memberi tahu Anda  apa yang harus dilakukan jika anda menekan ini) 
 
 
     lift berhenti 
 
   } ) 
 
 
   (terus memeriksa lampu tombol naik dan tombol turun) 
 
   jika lampu penunjuk ON (atas) 
 
   { ( 
 
periksa semua lampu tombol naik "lantai atas" 
 
     jika ada yang ditemukan 
 
     { ( 
 
       naik satu lantai pada waktu bersamaan, periksa setiap lampu tombol naik (ini memastikan bahwa ketika lift sedang bergerak ke atas dan tombol naik pada lantai lain ditekan maka lift akan berhenti disana.
 
 
         [misalnya, jika lift berada di lantai 1 dan tombol naik ditekan di lantai 4-ketika lift sedang bergerak ke atas dan tombol naik lantai 3 ditekan, kita masih ingin lift berhenti di lantai 3 bukannya langsung tepat ke lantai 4.]
 
         
       melakukan rutinitas lantai tersebut kembali ke atas loop untuk mengulang siklus program 
 
     }

 
       hal lain (apakah lantai atas ditemukan?) 
 
     { ( 
 
      (Jika di sini maka itu berarti bahwa tidak ada lantai atas tombol naik ON sehingga kita perlu turun dan menemukan lantai yang tombol atasnya ditekan) 
 
 
 
       bergerak turun satu lantai pada waktu bersamaan, memeriksa setiap bendera tombol atas (ini memastikan bahwa ketika lift sedang bergerak ke bawah dan tombol naik lantai lain ditekan maka lift akan berhenti disana.
 
 
         [misalnya, jika lift berada di lantai 4 dan tombol naik ditekan di lantai 1 – ketika lift sedang bergerak turun dan tombol naik lantai 2 ditekan, kita masih ingin agar lift berhenti di lantai 2 tidak bergerak terus ke tujuan awal. ya, lantai 1 akan diabaikan.] 
 
         lift akan kembali naik bahkan jika ada permintaan naik di lantai yang lebih rendah dari lantai yang sedang dilalui.
 
melakukan rutinitas lantai tersebut kembali ke atas loop untuk mengulang siklus program
 
      }
 
 
       hal lain (apakah “lantai atas” ditemukan?) 
 
      { (
 
   } (apakah bendera penunjuk ON?)) 
 
 
 
   jika bendera penunjuk OFF (turun) 
 
   ((anda dapat membuat ini adalah yang "lain") 
 
        pernyataan - tetapi pernyataan "jika" di sini adalah untuk kejelasan))
 
 
 
     periksa semua penunjuk  tombol turun  "lantai bawah"     jika ada yang ditemukan 
 
     { ( 
 
       bergerak turun satu lantai pada waktu berasamaan, periksa setiap lampu tombol turun 
 
       melakukan rutinitas lantai tersebut 
 
       kembali ke atas loop untuk memulai awal siklus program  
 
     } ) 
 
       hal lain (apakah "lantai bawah" ditemukan?) 
 
     { ( 
 
       (Jika di sini maka itu berarti bahwa tidak ada lantai atas tombol naik hidup maka kita perlu naik dan menemukan lantai yang tombol naiknya ditekan)
 
       turun satu lantai pada waktu bersamaan, periksa setiap penunjuk tombol naik
 
         
       melakukan rutinitas lantai 
kembali naik ke atas loop untuk memulai awal siklus program
 
     } (Apakah "lantai bawah" ditemukan?)) 
 
 
 
   } (Apakah arah lampu OFF?) )
 
 
 
 } (Program utama loop))
 
 
 rutinitas lantai 
 
 { ( 
 
   jika arah lampu ON (atas) 
 
   { ( 
 
     periksa lantai yang tombol naik ON
     (jelas jika tidak ada lampu tombol naik yang ON maka kita berada di lantai terakhir)
 
     Jika lampu tombol naik ON 
 
     { ( 
 
       (Ada seseorang di luar lift yang ingin masuk) 
 
       buka pintu 
 
       tunggu beberapa siklus 
 
       tutup pintu 
 
     } ) 
 
 
 
     (lain) 
 
     periksa untuk melihat jika ada tombol lantai tujuan yang ditekan ON
 
     jika lantai tujuan sama dengan nomor lantai saat dimana lift berada
 
     { ( 
 
       buka pintu 
 
       tunggu beberapa siklus 
 
       tutup pintu 
 
     } ) 
 
 
 
   } (Apakah arah bendera ON?))
 
 
 
   jika arah bendera OFF (turun) 
 
   ((Anda bisa membuat ini sebuah hal "lain" 
 
        pernyataan - tetapi pernyataan "jika" di sini adalah untuk kejelasan) 
 
      periksa tombol turun lantai-lantai 
 
     (jelas jika tidak ada tombol turun yang ditekan bendera downbutton ada maka kita berada di lantai pertama) 
 
     Jika lampu tombol turun ON 
 
     { ( 
 
       (Ada seseorang di luar lift yang ingin masuk)
 
       buka pintu 
 
       tunggu beberapa siklus 
 
       tutup pintu 
 
     } ) 
 
 
 
     (lain) 
 
     periksa untuk melihat jika ada tombol lantai tujuan yang ditekan ON
 
     jika lantai tujuan sama dengan nomor lantai dimana lift berada 
 
     { ( 
 
       buka pintu 
 
       tunggu beberapa siklus 
 
       tutup pintu 
 
     } ) 
 
 
 
   } (Apakah arah bendera OFF?))
 
 
 } (rutinitas lantai)) 

Untuk Iklan dan Donasi di Sini 


1 komentar:

Unknown mengatakan...

analisisnya lengkap

Posting Komentar