პროგრამირების საფუძვლები › დამწყები › პატარა პროგრამები
პროგრამის დაგეგმვა
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- ხუთი ნაბიჯი ამოცანიდან მზა პროგრამამდე
- როგორ დაწერო ფსევდოკოდი (pseudocode)
- რატომ ჯობს პატარა ნაბიჯებით წერა და ყოველი ნაბიჯის შემოწმება
ჯერ ფიქრი, მერე კოდი
დამწყები პროგრამისტის ყველაზე ხშირი შეცდომაა, რომ ამოცანის წაკითხვისთანავე კოდის წერას იწყებს. ნახევარ საათში კი აღმოაჩენს, რომ სხვა ამოცანას ხსნიდა, ან ჩიხში შევიდა. გამოცდილი პროგრამისტი ჯერ გეგმავს. გეგმა ხუთი ნაბიჯისგან შედგება.
ავიღოთ ამოცანა: „წიგნში 240 გვერდია. დღეში 18 გვერდს ვკითხულობ. რამდენ დღეში დავამთავრებ და რამდენი გვერდი დამრჩება ბოლო დღეს?“
1. გაიგე ამოცანა
ჩამოწერე, რა არის შესატანი (input), ანუ რა მონაცემები მაქვს, და რა არის გამოსატანი (output), ანუ რა პასუხი მინდა:
- შესატანი: გვერდების რაოდენობა, დღეში წასაკითხი გვერდები.
- გამოსატანი: დღეების რაოდენობა, ბოლო დღის გვერდები.
2. მოიფიქრე მაგალითები
პატარა მაგალითები ხელით ამოხსენი. ისინი ამოცანას ნათელს ხდის და მერე ტესტებადაც გამოგადგება:
| გვერდები | დღეში | დღეები | ბოლო დღეს |
|---|---|---|---|
| 20 | 10 | 2 | 10 |
| 25 | 10 | 3 | 5 |
| 240 | 18 | 14 | 6 |
მეორე მაგალითმა მნიშვნელოვანი რამ გამოაჩინა: 25 / 10 არის 2.5, მაგრამ „ორნახევარი დღე“ არ არსებობს, ეს 3 დღეა. თუ მაგალითს არ ამოხსნიდი, ამას ალბათ მერე, შეცდომის სახით აღმოაჩენდი.
3. დაწერე ფსევდოკოდი
ფსევდოკოდი (pseudocode) ალგორითმის აღწერაა ჩვეულებრივი ენით, მაგრამ პროგრამის ფორმით: ნაბიჯებად. ის არცერთ პროგრამირების ენაზე არ არის, ამიტომ ფიქრისას სინტაქსზე არ ნერვიულობ:
გვერდები = 240, დღეში = 18
დღეები = გვერდები / დღეში, დამრგვალებული ზემოთ
ბოლო დღეს = ნაშთი გვერდები / დღეში-ზე
თუ ნაშთი 0-ია, ბოლო დღეს = დღეში
დაბეჭდე დღეები და ბოლო დღე4. ააწყე კოდი პატარა ნაბიჯებით
ფსევდოკოდის ყოველ ხაზს კოდის ხაზი შეესაბამება. დამრგვალება ზემოთ JavaScript-ში Math.ceil-ით კეთდება: Math.ceil(13.3) არის 14. ქვემოთ დამრგვალება Math.floor-ია.
ერთბაშად ყველაფერს ნუ დაწერ: ჯერ მხოლოდ დღეები დაითვალე და დაბეჭდე. იმუშავა? მერე ბოლო დღე დაამატე. ყოველი პატარა ნაბიჯის შემდეგ გაშვება ნიშნავს, რომ შეცდომის შემთხვევაში ზუსტად იცი, სად ეძებო: ბოლოს დამატებულ ხაზებში.
5. შეამოწმე მაგალითებით
მეორე ნაბიჯის ცხრილი ახლა ტესტებია. გაუშვი პროგრამა თითოეულ მაგალითზე და შეადარე პასუხები. თუ ყველა ემთხვევა, პროგრამას ენდობი.
სცადე თავად
გაუშვი, მერე შეამოწმე სამივე მაგალითი ცხრილიდან: შეცვალე pages და perDay.
ხშირი შეცდომები
- კოდი ამოცანის გაგებამდე. ხუთი წუთი დაგეგმვაზე ხშირად საათს გიზოგავს.
- მაგალითების გამოტოვება. ზღვრული შემთხვევები, როგორიც „ზუსტად იყოფა“ ან „ნახევარი დღე“, მხოლოდ მაგალითებში ჩანს.
- ყველაფრის ერთად დაწერა. ორმოცი ხაზი პირველ გაშვებამდე ნიშნავს ორმოც ადგილს, სადაც შეცდომა შეიძლება იყოს.
სავარჯიშო
დაგეგმე და დაწერე პროგრამა: კლასში 27 მოსწავლეა, ავტობუსში 12 ადგილია. რამდენი ავტობუსი სჭირდება ექსკურსიას და რამდენი ადგილი დარჩება თავისუფალი ბოლო ავტობუსში? უნდა მიიღო ავტობუსი: 3 და თავისუფალი: 9.
💡 მინიშნება
ავტობუსები: Math.ceil(students / seats). სულ ადგილია buses * seats, თავისუფალი კი ამას გამოკლებული მოსწავლეები.
✅ ამოხსნის ნახვა
let students = 27;
let seats = 12;
let buses = Math.ceil(students / seats);
let free = buses * seats - students;
console.log("ავტობუსი:", buses);
console.log("თავისუფალი:", free);მინი-ქვიზი
1რა არის ფსევდოკოდი?
ფსევდოკოდი ფიქრის ინსტრუმენტია: სინტაქსი მას არ აქვს.
2რას დააბრუნებს Math.ceil(7 / 2)?
7 / 2 არის 3.5, ზემოთ დამრგვალება 4-ს იძლევა.
3რატომ ღირს პროგრამის პატარა ნაბიჯებით წერა?
ყოველი ნაბიჯის შემდეგ გაშვება ძებნის არეს პატარას ხდის.
შეჯამება
- გაიგე ამოცანა: რა შედის და რა უნდა გამოვიდეს.
- ამოხსენი მაგალითები ხელით: ისინი ზღვრულ შემთხვევებს აჩენს და მერე ტესტებად გამოდგება.
- დაწერე ფსევდოკოდი, მერე კოდი, პატარა ნაბიჯებით და ყოველი ნაბიჯის გაშვებით.
Math.ceilზემოთ ამრგვალებს,Math.floorქვემოთ.