Friday, January 22, 2016

პოსტის მანქანა


პოსტის მანქანა არის ჰიპოტეტური მანქანა. ის შესდგება უსასრულო ლენტისაგან, რომელიც გაყოფილია სექციებად. ყოველ მომენტში სექცია შეიძლება იყოს ცარიელი __ან შევსებული _1_. ლენტის შევსებული და ცარიელი სექციების ერთობლიობას უწოდებენ ლენტის მდგომარეობას. მანქანას გააჩნია თავაკი, რომელიც აღინიშნება M ასოთი, ის ყოველთვის იმყოფება ზუსტად რომელიმე სექციის ქვეშ.
მანქანას შეუძლია შეასრულოს შემდეგი მოქმედებები:
1.      თავაკი გადაადგილდეს ერთი სექციით მარჯვნივ ან მარცხნივ;
2.      ჩაწეროს ცარიელ სექციაში ერთიანი, ან წაშალოს შევსებული სექციიდან ერთიანი;
3.      "გაარკვიოს" სექციაში, რომლის ქვეშაც თავაკი დგას, შევსებულია თუ არა (წერია თუ არა 1);
4.      დაამთავროს მუშაობა - გაჩერდეს;

პოსტის მანქანის ბრძანებები:
1.    თავაკის მარცხნივ გადაადგილება: ბრძანების სახელია L(Left)
მაგ,: 02: L-03
ეს ნიშნავს თავაკის ერთი სექციით მარცხნივ გადაადგილებას, შემდეგი შესასრულებელი ბრძანება კი იქნება ბრძანება ნომრით 03.

2.    თავაკის მარჯვნივ გადაადგილება: ბრძანების სახელია R(Right)
მაგ,: 04: L-06
ეს ნიშნავს თავაკის ერთი სექციით მარჯვნივ გადაადგილებას, შემდეგი შესასრულებელი ბრძანება კი იქნება ბრძანება ნომრით 06.

3.    სექციის შევსება, ბრძანების სახელია 1
მაგ.: 05: 1-06
ამ ბრძანების შესრულებისას თუ სექცია ცარიელია, ჩაიწერება 1, შემდეგი შესასრულებელი ბრძანებაა 06. თუ სექცია შევსებულია მოხდება ავარიული გაჩერება. ბრძანების შესრულების შემდეგ თავაკი მდებარეობას არ იცვლის.

4.    სექციის გასუფთავება, ბრძანების სახელია 0
მაგ.: 05: 0-06
ამ ბრძანების შესრულებისას თუ სექცია შევსებულია ჩაიწერება 0, შემდეგი შესასრულებელი ბრძანებაა 06. თუ სექცია ცარიელია, მოხდება ავარიული გაჩერება. ბრძანების შესრულების შემდეგ თავაკი მდებარეობას არ იცვლის.

5.    გაჩერება, ბრძანების სახელია Q(Quit).
09: Q
ამ ბრძანების შესრულების შემდეგ პროგრამა ამთავრებს მუშაობას, თავაკი ინარჩუნებს საბოლოო მდებარეობას, ამ შემთხვევაში ამბობენ რომ ადგილი აქვს შედეგიან გაჩერებას.

6.      განშტოების ბრძანება, ბრძანების სახელია I (if)
მაგ.:  03: I-04-05
ეს ნიშნავს თუ სექცია , რომლის ქვეშაც დგას თავაკი, ცარიელია- მართვა გადაეცემა 04 ბრძანებას(ანუ შემდეგი შესასრულებელი ბრძანებაა 04 ნომრიანი ბრძანება), ხოლო თუ სექცია შევსებულია-მართვა გადაეცემა 05 ბრძანებას

˜ პროგრამაში ბრძანებები ინომრება მიმდევრობით 01 - დან დაწყებული( 01, 02, 03, ...). პროგრამა იწყება 01 ნომრიანი ბრძანებით. არ შეიძლება გადასვლა ისეთ ნომრიან ბრძანებაზე რომელიც პროგრამაში არ გვაქვს.

მაგალითი:
პოსტის მანქანის საწყისი მდებარეობაა:


1



1
1



               M
შევადგინოთ პროგრამა, რომელიც მარჯვნივ პირველ ერთიანამდე ცარიელ სექციებს შეავსებს(ჩაწერს 1-იანებს).

01: R-02
02: 1-03
03: R-04
04: 1-05
05: R-06
06: 1-07
07: Q

ან ზოგადად (როცა ცარიელი სექციების რაოდენობა უცნობია)
01: R-02
02: I-03-04
03: 1-01
     04: Q

1
1
1
1
1
1



                                                  M



 პრეზენტაციის ლინკი: https://www.dropbox.com/s/tnt78yet25zcn5x/99772%20%281%29.pptx?dl=0

No comments:

Post a Comment