Thursday, June 4, 2015

თავი 1 (1,9 - 1,10)



1.9 პროგრამის ასაშენებელი ბლოკები

        შემდგეგ თავებში ჩვენ ვისწავლით უფრო მეტს პითონის ლექსიკონის, წინადადების სტრუქტურის, პარაგრაფის სტრუქტურის და ისტორიის სტრუქტურის შესახებ. ვისწავლით პითონის მძლავრი შესაძლებლობების შესახებ და თუ როგორ დავალაგოთ ეს შესაძლებლობები ისე, რომ გავაკეთოთ სასარგებლო პროგრამა.
            არის რამდენიმე არც ისე მაღალი დონის აბსტაქტული ნიმუში, რომელსაც გამოვიყენებთ პროგრამის შესადგენად. ეს კონსტრუქციები გამოიყენება არა მარტო პითონში, არამედ  მანქანის ენიდან დაწყებული ყველა პროგრამირების ენაში.

          შეყვანა (ინფორმაციის) input : მონაცემების მიღება "გარედან". ეს შეიძლება იყოს მონაცემების წაკითხვა ფაილიდან ან რაიმე სენსორული მოწყობილობიდან, როგორიცაა მიკროფონი ან ჯი-პი-ესი. შენს საწყის პროგრამებში ინფორმაციის შეყვანა გამოიხატება მომხმარებლის მიერ კლავიატურაზე  აკრეფილი მონაცემებით.
            გამოტანა (ინფორმაციის) output:  პროგრამის შედეგის ეკრანზე  გამოტანა ან ფაილში შენახვა ან ჩაწერა მოწყობილობისთვის, მაგ: დინამიკისთვის რომ გააჟღეროს მუსიკა ან ლაპარაკი.
            თანმიმდევრული განხორციელება sequential execution : ბრძანებების რიგ-რიგობით შესრულება - ისე როგორც მითითებულია სკრიპტში.
            პირობითი განხორციელება conditional execution :  შეამოწმოს პირობები და შეასრულოს ან გამოტოვოს ბრძანებები.
            განმეორებადი განხორციელება repeated execution : ბრძანებ(ებ)ის შეასრულება არაერთხელ - როგორც წესი რამდენიმე ვარიაცია.
            განმეორებითი გამოყენება reuse : დაწერე ინსტრუქცია ერთხელ, დაარქვი სახელი და შენს პროგრამაში გამოიყენე როცა დაგჭირდება.
           
            სიმართლე გითხრა , ეს ყველაფერი ძალიან მარტივი ჩანს, მაგრამ ეს არასდროსაა ესეთი მარტივი. ესაა როგორც თქვა,  რომ სეირნობაა ერთი ფეხის გადაბიჯება მეორეს წინ.  პროგრამირების ხელოვნება იმაში მდგომარეობს, რომ ეს მთავარი ელემენტები დააწყო ისე, რომ მომხმარებლისთვის გააკეთოს რაიმე  სასარგებლო.  ზემოთ მოყვანილი სიტყვების დასათვლელი პროგრამა იყენებს ყველა ნიმუშს ერთის გარდა.

1.10 რა შეიძლება გაკეთდეს არასწორად?

        პითონთან წინა ლაპარაკის დროს როგორც  ვნახეთ , ძალიან ზუსტად უნდა დავწეროთ პითონის კოდი. მცირე გადახრა ან შეცდომაც კი პითონს დააბნევს.
დამწყები პროგრამისტები ხშირად ფიქრობენ, რომ რადგან პითონი შედომისთვის ადგილს არ ტოვებს, აშკარაა რომ ის უნამუსო ,საძულველი და სასტიკია. რომ პითონს აქვს მათდამი პირადი შუღლი და ამ შუღლის გამო, მათ მიერ შესანიშნავად დაწერილ პროგრამას ასაღებს როგორც ნაგავს მხოლოდ იმიტომ, რომ ისინი  დატანჯოს!

>>> primt 'Hello world!'
File "<stdin>", line 1
primt 'Hello world!'
ˆ
SyntaxError: invalid syntax
>>> primt 'Hello world'
File "<stdin>", line 1
primt 'Hello world'
ˆ
SyntaxError: invalid syntax
>>> I hate you Python!
File "<stdin>", line 1
I hate you Python!
ˆ
SyntaxError: invalid syntax
>>> if you come out of there, I would teach you a lesson
File "<stdin>", line 1
if you come out of there, I would teach you a lesson
ˆ
SyntaxError: invalid syntax
>>> 

            პითონთან კამათი უსარგებლოა. ის უბრალოდ უემოციო ხელსაწყოა, რომელიც ყოველთვის მზადაა გემსახუროს.  შეცდომის მესიჯები არასასიამოვნოდ კი გამოიყურება, მაგრამ ეს მესიჯები ნიშნავს რომ პითონს დახმარება სჭირდება, რომ ვერ გაიგო შენი ნაწერი და გთხოვს უკეთ დაწერო.
            პითონი ძაღლს ჰგავს. უყვარხარ უპირობოდ, იცის რამდენიმე სიტყვა, გიყურებს სასიამოვნო გამომეტყველებით (>>>) და გელოდება უთხრა ისეთი რამე, რასაც გაიგებს. როცა პითონი ამბობს SyntaxError:invalid syntax ,  ეს უბრალოდ კუდს აქიცინებს და გეუბნება, რომ  "რაღაცას ამბობდი, მაგრამ ვერ გავიგე რას გულისხმობდი. ამის მიუხედავად გთხოვ გააგრძელე ჩემთან ლაპარაკი (>>>) . "
            რაც უფრო გაიზდება შენი გამოცდილება პროგრამირებაში, შეხვდები 3 ძირითად შეცდომას:
            სინტაქსის შეცდომას Syntax errors :  ესაა პირველი შეცდომები, რომელსაც დაუშვებ ; სხვათაშორის ყველაზე ადვილად  გამოსწორებადი შეცდომა. Syntax errors ნიშნავს რომ დაარღვიე პითონის "გრამატიკის წესები“. პითონი მიგანიშნებს სტრიქონს  და ასოს, სადაც შეცდომაა დაშვებული. სინტაქსის შეცდომაში ცოტათი რთული მხოლოდ ისაა, რომ ხანდახან შეცდომა რომელსაც გამოსწორება სჭირდება დაშვებული იქნა პროგრამის წინა სტრიქონებში და არა მხოლოდ იქ სადაც  პითონმა მიგანიშნა. ასე რომ სტრიქონი და ასო რომელზეც პითონი სინტაქსის შეცდომას მიანიშნებს, შეიძლება იყოს საწყისი წერტილი შენი გამოძიების.
            ლოგიკის შეცდომა Logic errors :ლოგიკის შეცდომაა, როცა სინტაქსი გამართულია, მაგრამ შეცდომაა წესებთან დაკავშირებით ან წესების ურთიერთშეთანხმებასთან დაკავშირებით. ლოგიკის შეცდომის კარგი მაგალითია "დალიე წყალი შენი ბოთლიდან, ჩადე ზურგჩანთაში, გაისეირნე ბიბლიოთეკაში და შემდეგ წყალი უკან ბოთლში დააბრუნე."
            სემანტიკური შეცდომა Semantic errors: სემანტიკური შეცდომაა როცა ზომების მიღების აღწერა სინტაქსურად სწორია, მაგრამ პროგრამაში დაშვებულია მარტივი შეცდომა. პროგრამა სწორადაა დაწერილი მაგრამ არ აკეთებს იმას რისთვისაც იყო განზრახული.  მარტივი მაგალითია ; დავუშვათ მეგობარს  ასწავლით გზას "... როცა გზაჯვარედინთან მიხვალ, ბენზინგასამართ სადგურთან მოუხვიე მარცხნივ, გაიარე 1 მილი და წითელ რესტორანს დაინახავ შენგან მარცხნივ." მოგვიანებით მეგობარი გირეკავს და გეუბნება, რომ ისაა ფერმაში და მის უკან ბეღელია და არანაირი ნიშანი არაა, რომ აქ სადმე რესტორანია. შემდეგ შენ ეკითხები "ბენზინგასამართ სადგურთან მარჯვნივ მიუხვიე თუ მარცხნივ?" და ის გპასუხობს, რომ როგორც ასწავლე ისე წავიდა და შენ ამბობ " ძალიან ვწუხვარ, იმიტომ რომ ჩემი ინსტრუქცია სინტაქსურად სწორი იყო, მაგრამ დავუშვი პატარა სემანტიკური შეცდომა."
ყველა ტიპის შეცდომის მიუხედავად პითონი ყველანაირად ეცდება გააკეთოს რაც სთხოვეთ.