ალგორითმული ენაზე ჩაწერა ამის მაგალითია. საგანმანათლებლო ალგორითმული ენა

26.11.2023

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

ცოტა ისტორია

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

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

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

პირველი ალგორითმული პროგრამირების ენის, Algol-ის შექმნით, ალგორითმების განვითარება მნიშვნელოვნად დაჩქარდა.

რა არის ალგორითმი

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

  1. ქვაბი დადგით გაზქურაზე.
  2. დაელოდეთ ადუღებას.
  3. ჩაასხით მდუღარე წყალი წყალში.
  4. ჩაის პაკეტი მოათავსეთ ჭიქაში.
  5. დაამატეთ საჭირო რაოდენობის შაქარი, რძე ან თაფლი.

ეს თანმიმდევრობა ძალიან გამარტივებულია, მაგრამ წარმოადგენს უმარტივეს ალგორითმს.

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

ალგორითმული ენის თვისებები და მახასიათებლები

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

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

ყველა კოდი აგებულია საკვანძო სიტყვებისგან, რომლებიც აღწერს მოვლენას ან ცვლადს.

განსხვავებები მანქანასა და ალგორითმულ ენებს შორის

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

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

საკვანძო სიტყვები

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

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

ამ საკვანძო სიტყვების სია ეხება ალგორითმის სათაურს და სხეულის აღნიშვნას. და ასე გამოიყურება ცვლადების ნიშნები:

  • ცელ. მთელი ცვლადის ტიპი. მათი დიაპაზონი უნდა განსხვავდებოდეს -32768-დან 32767-მდე.
  • რამ. რეალური რიცხვები. მაგალითად, მაჩვენებლით ან წილადი ნაწილით.
  • შესვლა. ეს საკვანძო სიტყვა ნიშნავს, რომ გამოყენებული იქნება ლოგიკური ცვლადი, რომელსაც შეუძლია მიიღოს მხოლოდ "დიახ" ან "არა".
  • სიმ.ეს მოიცავს მნიშვნელობებს ერთი სიმბოლოებით, როგორიცაა "a", "3".
  • განათებული. სიმებიანი ცვლადები, რომლებიც შეიძლება შეიცავდეს მთელ ტექსტურ სტრიქონებს.
  • ჩანართი. განსაზღვრავს ცხრილს გარკვეული ტიპის მონაცემებით. ეს არის სხვა პროგრამირების ენების მასივის ანალოგი.

დამატებითი ფუნქციური სიტყვები

სიტყვების შემდეგი სია გამოიყენება განშტოების და მარყუჟის მექანიზმების ორგანიზებისთვის.

  • ამისთვის. გამოიყენება გარკვეული დიაპაზონის ყველა მნიშვნელობის გასამეორებლად. გამოიყენება ციკლებისთვის, ანუ მონაცემებით ნებისმიერი პროცედურის უწყვეტი შესრულებისთვის.
  • დან და. განსაზღვრავს მნიშვნელობების რომელი დიაპაზონის განმეორებით უნდა მოხდეს "for" ციკლში.
  • ნახვამდის. ასევე გამოიყენება მრავალი მნიშვნელობის გამეორებისთვის. გამოიყენება სამუშაოდ გარკვეული პირობის დაკმაყოფილებამდე.
  • ნწ და ქც. "ნც" ალგორითმულ ენაზე ნიშნავს მარყუჟის სხეულის დასაწყისს, ხოლო "kts" ნიშნავს დასასრულს. ამ ორ საკვანძო სიტყვას შორის ჩაშენებულია გაანგარიშებისთვის საჭირო პროცედურები.
  • თუ.ეს სიტყვა ახორციელებს განშტოების სტრუქტურას. ამ გზით, პირობების გათვალისწინებით, შესაძლებელია განისაზღვროს პროგრამის მიმდინარეობა სასურველი მიმართულებით.
  • ეს, წინააღმდეგ შემთხვევაში. ორი სიტყვა, რომელიც მუშაობს „თუ“-სთან დაწყვილებისას. აგებულია განშტოების მექანიზმიც.
  • არჩევანი. მოსახერხებელი ინსტრუმენტი იმავე ტიპის რამდენიმე მნიშვნელობიდან განშტოებისთვის. მუშაობს საკვანძო სიტყვასთან "at" და "სხვაგვარად" ერთად.
  • ყველა. მიუთითებს განშტოების მექანიზმის დასასრულს.
  • შედი. ეს საკვანძო სიტყვა საშუალებას აძლევს მომხმარებელს შეიყვანოს ცვლადი მნიშვნელობები პროგრამის მუშაობის დროს შემდგომი დამუშავებისთვის.
  • დასკვნა.აჩვენებს მონაცემებს ეკრანზე.

ძირითადი ენის სტრუქტურები

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

შემდეგი სტრუქტურა

ამ ტიპის სტრუქტურის შემუშავებისას, კოდის შესრულება ხდება პირდაპირ სტრიქონში. ზოგადი მაგალითი შეიძლება ასე გამოითქვას:

alg ორი რიცხვის ჯამი (arg int a, b, res int in S)

გამომავალი "S =", S

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

ალგორითმის ძირითად ნაწილში „შეყვანის“ საკვანძო სიტყვა იღებს მომხმარებლისგან მონაცემებს და წერს მას ცვლადებში. შემდეგ ისინი უმატებენ ერთმანეთს და მათი ჯამი ენიჭება S-ს. ალგორითმის დასრულებამდე ეკრანზე გამოდის პროგრამის შედეგი საკვანძო სიტყვის „გამომავალი“ გამოყენებით. ეს ჩანაწერიალგორითმულ ენაში დამახასიათებელია მრავალი სხვა პროგრამირების გარემოსთვის.

განშტოების სტრუქტურა

პროგრამის ნაკადი ყოველთვის არ უნდა შესრულდეს სტრიქონ-სტრიქონში. ზოგჯერ საჭიროა განსაზღვროთ ან შეცვალოთ გარკვეული ცვლადის მნიშვნელობა სიტუაციიდან გამომდინარე. მაგალითად, იმის გათვალისწინებით, რომ x = 0, არ გაყოთ x-ზე.

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

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

წინააღმდეგ შემთხვევაში y = 0

ანუ იმ შემთხვევაში, როდესაც x არ არის ნულის ტოლი, y ასევე აღდგება ნულზე, მიუხედავად იმისა, თუ რა მნიშვნელობა ჰქონდა ადრე.

მრავალჯერადი არჩევანის გაკეთების უფრო მოსახერხებელი საშუალებაა „არჩევნის“ კონსტრუქცია. ეს საშუალებას გაძლევთ დაალაგოთ რამდენიმე პირობა. როდესაც ერთ-ერთი მათგანი ამოქმედდება, შესრულდება მისთვის მითითებული მოქმედება.

x = 0-ზე: y = 0

x = 1-ზე: y = 1

x = 2-ზე: y = 2

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

ციკლები

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

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

nts ნახვამდის x<= 3

ამ მაგალითში, y გაიზრდება მანამ, სანამ x არ გახდება 3-ზე მეტი. იმისათვის, რომ მარყუჟი არ იყოს უსასრულო, x უნდა შეიცვალოს ზევით ყოველ გადასასვლელში, მაგალითად 1-ით, რასაც აკეთებს კოდის მეორე ხაზი.

საკვანძო სიტყვა "for" გამოიყენება რიცხვების გარკვეულ დიაპაზონზე, რომელიც უნდა განმეორდეს თანმიმდევრულად, მათზე გარკვეული მოქმედებების შესრულება. ეს კონსტრუქცია გამოიყენება მაშინ, როდესაც ცნობილია ელემენტების სასრული რაოდენობა.

მისი სინტაქსი ასე გამოიყურება:

nc x-ისთვის 1-დან 3-მდე

მომსახურების სიტყვები "-დან" და "მდე" აჩვენებს მნიშვნელობების დიაპაზონს, რომელიც უნდა განმეორდეს. ამრიგად, პირველ გამეორებაში x = 1, გავლის შედეგად, y ასევე შეიძენს მნიშვნელობას 1. შემდეგ კონტროლი კვლავ გადავა დასაწყისში და x ახლა იქნება 2-ის ტოლი, შესაბამისად, y გახდება 3. .

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

სტანდარტული მახასიათებლები

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

  • აბსოლუტური მოდული - abs(x);
  • კვადრატული ფესვი - sqrt(x);
  • ბუნებრივი და ათობითი ლოგარითმები - ln(x) და log(x);
  • მინიმალური და მაქსიმალური ორი რიცხვი - min(x,y), max (x,y);
  • sine, cosine, tangent, cotangent - sin(x), cos(x), tan(x), ctg(x).

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

ლოგიკური გამონათქვამები

ლოგიკური გამონათქვამები ასახავს თუ არა გარკვეული ოპერაცია პირობას. მაგალითად, x > 0 შეფასდება ჭეშმარიტად, როდესაც x არის 1, 2, 25 ან ნულზე მეტი ნებისმიერი სხვა რიცხვი. ალგორითმული ენა შეიცავს ლოგიკური გამონათქვამები, რომელსაც, სტანდარტული მათემატიკური ოპერაციების გარდა, შეუძლია გამოიყენოს შემდეგი საკვანძო სიტყვები და ოპერატორები:

  • და.ნიშნავს, რომ გამონათქვამები, რომელთა შორის მდებარეობს საკვანძო სიტყვა, უნდა აკმაყოფილებდეს გარკვეულ პირობას: (x>0) და (y>0);
  • ან. ერთ-ერთი გამონათქვამი შეიძლება არ აკმაყოფილებდეს პირობას, მაგალითად, (x>0) ან (y>0);
  • არა. "აბრუნებს" გამოხატვის ლოგიკურ მნიშვნელობას. მაგალითად, ეს დიზაინი არა(x>0), ნიშნავს, რომ x მაინც არ უნდა იყოს ნულზე მეტი.

ასევე არის შედარების ოპერატორები -<, >, =, რომელიც შეიძლება გაერთიანდეს ისეთი გამონათქვამების შესაქმნელად, როგორიცაა მეტი ან ტოლი.

მცირე პროგრამა ალგორითმული ენისთვის

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

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

ალგ კვადრატი რიცხვი ()

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

ახლა მანქანა ეცოდინება, რომ მას მოუწევს ურთიერთქმედება მთელი რიცხვის ტიპის ცვლადთან და მისი მუშაობის შედეგი იქნება S.

პირველი რაც უნდა გააკეთოთ არის მონაცემების შეყვანა. ეს კეთდება "შეყვანის" საკვანძო სიტყვის გამოყენებით.

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

გამომავალი "S =", S

ალგორითმული ენა, რომლის ბრძანებები იძლევა დავალების განხორციელების საშუალებას, იწერება სახით: =. ამრიგად, ცვლადი S შეიცავს x-ისა და საკუთარი თავის ნამრავლის მნიშვნელობას. გამომავალი ხაზი აჩვენებს შედეგს ეკრანზე. კარგად, ეს ყველაფერი მთავრდება საკვანძო სიტყვით "con". სრული კოდიახლა ასე გამოიყურება:

alg რიცხვის კვადრატი (არგ მთელი x, res მთელი რიცხვი S)

გამომავალი "S =", S

ასე მარტივი გზით ხორციელდება შეყვანილი რიცხვის კვადრატის გამოთვლის ალგორითმი. პროგრამა შეიძლება გართულდეს მასში ყველა ოპერაციის ჯამის დამატებით. და შემდეგ ასე გამოიყურება:

alg კვადრატული რიცხვი და გამოთვალეთ მათი ჯამი (არგ მთელი x, რეს მთელი რიცხვი S)

მოცემული | x > 0

საჭიროება | S = 1*1 + 2*2+ … + x*x

დაიწყეთ მთლიანად

შეყვანა x; S:=0

nc a-სთვის 1-დან x-მდე

გამომავალი "S =", S

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

ალგორითმული ენების გამოყენება და განვითარება

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

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

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

ალგორითმის ნაწილი სიტყვიდან ალგსიტყვას დასაწყისისათაური ეწოდება და სიტყვებს შორის ნაწილს დასაწყისიდა კონ- ალგორითმის სხეული.

წინადადებაში ალგალგორითმის სახელის შემდეგ, ფრჩხილებში მითითებულია მახასიათებლები (arg, res) და მნიშვნელობების ტიპი (int, thing, sim, lit, log) ყველა შეყვანის (არგუმენტი) და გამომავალი (შედეგები) ცვლადი.

მასივების (ცხრილების) აღწერისას გამოიყენება სპეციალური სიტყვა ჩანართი, დამატებულია სასაზღვრო წყვილებით ყოველი მასივის ელემენტის ინდექსზე.

მაგალითი წინადადებები ალგ:

ალგ ცილინდრის მოცულობა და ფართობი (არგ რამ R, H, არსებები V, S)

alg Roots KvUr(arg რამ a, b, c, res რამ x1, x2, res lit t)

alg ელემენტის გამორიცხვა (arg int N, arg res stuff ჩანართი A)

alg დიაგონალი (arg int N, arg int tab A, res lit პასუხი)

წინადადებები სიტყვებით მოცემულიდა საჭიროარ არის საჭირო. მიზანშეწონილია ჩაწეროთ განცხადებები, რომლებიც აღწერს ალგორითმის შემსრულებელი გარემოს მდგომარეობას, მაგალითად:

Alg Replacement (arg lit Str1, Str2, arg res lit ტექსტი)მოცემულია | Str1 და Str2 ქვესტრიქონების სიგრძე უნდა იყოს იგივე | ტექსტის ხაზში ყველგან, ქვესტრიქონი Str1 იცვლება Str2-ით

Alg მაქსიმალური რაოდენობა (არგ int N, არგ რამის ჩანართი A, რეზ int K)მოცემული | N>0 საჭიროა | K - A ცხრილში ელემენტების მაქსიმალური რაოდენობა

Alg Resistance (args რამ R1, R2, args int N, res რამ R) მოცემულია | N>5, R1>0, R2>0 საჭიროა | R - მიკროსქემის წინააღმდეგობა

აქ წინადადებებში მოცემულიდა საჭირო"|" ნიშნის შემდეგ კომენტარები ჩაწერილია. კომენტარები შეიძლება განთავსდეს ნებისმიერი ხაზის ბოლოს. ისინი არ მუშავდება კომპიუტერის თარჯიმანის მიერ, მაგრამ ალგორითმის გაგებას ბევრად აადვილებს.

სკოლის პროგრამირების ენის ბრძანებები AJ

დავალების ოპერატორი. გამოიყენება გამონათქვამების შესაფასებლად და მათი მნიშვნელობების ცვლადებისთვის მინიჭებისთვის. ოპერატორის ზოგადი ფორმა: A:= B, სადაც ნიშანი „:=" ნიშნავს მინიჭების ოპერაციას, ე.ი. ბრძანება შეცვალოს A ცვლადის წინა მნიშვნელობა, რომელიც მდებარეობს მარცხენა მხარეს, გამოთვლებით B გამოხატვის მნიშვნელობით, რომელიც მდებარეობს მარჯვენა მხარეს.


მაგალითად, a:=(b+c)*sin(Pi/4);

i:=i+1 .

ამისთვის შეყვანა და გამომავალი მონაცემთა გამოყენების ბრძანებები

· შეყვანა ცვლადის სახელები

· დასკვნა ცვლადის სახელები, გამონათქვამები, ტექსტები.

ამისთვის განშტოება ალგორითმი იყენებს ბრძანებებს - თუდა არჩევანი.

ორგანიზაციისთვის ციკლები - ბრძანებებს ამისთვისდა ნახვამდის, აღწერილია ქვემოთ.

ალგორითმის დაწერის მაგალითი სასკოლო ენაზე ASL.

ალგ კვადრატების ჯამი (არგ მთელი რიცხვი , დაჭრილი ხელუხლებელია )მოცემული | n > 0საჭიროება | S = 1*1 + 2*2 + 3*3 + ... + n*nდაწყება int მეშეყვანა ; ს : =0 nc i-სთვის 1-დან n S-მდე : =S+i*i ქცგამომავალი "S =", Skon

ალგორითმული ენა -ეს არის ნოტაციისა და წესების სისტემა ალგორითმების ერთგვაროვანი და ზუსტად ჩაწერისა და მათი შესრულებისთვის. ალგორითმული ენა არის ალგორითმის ანალიტიკური ფორმით დაწერის საშუალება, შუალედური ალგორითმის ბუნებრივ (ადამიანურ) ენაზე დაწერასა და კომპიუტერულ ენაზე (პროგრამირების ენა) დაწერას შორის.

არსებობს განსხვავება "ალგორითმული ენის" და "პროგრამირების ენების" ცნებებს შორის. პირველ რიგში, ალგორითმულ ენაზე დაწერილი პროგრამა სულაც არ არის განკუთვნილი კომპიუტერისთვის. ალგორითმული ენის პრაქტიკული განხორციელება ცალკე საკითხია თითოეულ კონკრეტულ შემთხვევაში.

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

ალგორითმულ ენაზე დაწერილ ალგორითმს უნდა ჰქონდეს სახელი. მიზანშეწონილია აირჩიოთ სახელი ისე, რომ გასაგები იყოს, თუ რა პრობლემას აღწერს ეს ალგორითმი. ალგორითმის სახელის ხაზგასასმელად, მის წინ ჩაწერეთ სერვისული სიტყვა ALG (ALGORITHM). ალგორითმის სახელის უკან (ჩვეულებრივ ახალი ხაზი) ჩაწერეთ მისი ბრძანებები. ალგორითმის დასაწყისისა და დასასრულის მითითებისთვის, მისი ბრძანებები მოთავსებულია წყვილ სერვისულ სიტყვაში START (START) და CON (END). ბრძანებები იწერება თანმიმდევრობით.

ALG - ალგორითმის სახელი

ალგორითმის ბრძანებების სერია

მაგალითად, ალგორითმი, რომელიც განსაზღვრავს რობოტის შემსრულებლის მოძრაობას, შეიძლება გამოიყურებოდეს:

ALG – to_საწყობი

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

ძალიან ხშირად, ალგორითმების შედგენისას, საჭირო ხდება იგივე ალგორითმის გამოყენება, როგორც დამხმარე, რომელიც, უფრო მეტიც, შეიძლება იყოს ძალიან რთული და შრომატევადი. მუშაობის დაწყებისას ირაციონალური იქნებოდა ასეთი ალგორითმის ყოველ ჯერზე შედგენა და დამახსოვრება მისი შემდგომი გამოყენებისთვის. ამიტომ პრაქტიკაში ფართოდ გამოიყენება ე.წ ჩაშენებული (ან სტანდარტული) დამხმარე ალგორითმები, ე.ი. ისეთი ალგორითმები, რომლებიც მუდმივად ხელმისაწვდომია შემსრულებლისთვის. ასეთ ალგორითმებზე წვდომა ხდება ისევე, როგორც "რეგულარული" დამხმარე ალგორითმები. რობოტის შემსრულებელს აქვს ჩაშენებული დამხმარე ალგორითმი, რომელსაც შეუძლია სამუშაო ველის ნებისმიერი წერტილიდან გადაადგილება საწყობში; BASIC პროგრამირების ენის შემსრულებელში, ეს არის, მაგალითად, ჩაშენებული "SIN" ალგორითმი.

ალგორითმი შეიძლება შეიცავდეს მითითებას თავის შესახებ, როგორც დამხმარე, ამ შემთხვევაში მას უწოდებენ რეკურსიული.თუ ალგორითმის მიმართ ბრძანება თავისთავად არის ალგორითმში, მაშინ ასეთ რეკურსიას ე.წ. პირდაპირი.შეიძლება იყოს შემთხვევები, როდესაც ამ ალგორითმზე რეკურსიული ზარი ხდება დამხმარე ალგორითმი, რომელსაც ამ ალგორითმსარის მიმართვა. ამ რეკურსიას ე.წ არაპირდაპირი. პირდაპირი რეკურსიის მაგალითი:

ALG - მოძრაობა

მოძრაობა

ალგორითმები, რომელთა შესრულებისას გარკვეული პირობების შემოწმების შედეგების მიხედვით განისაზღვრება ბრძანებების თანმიმდევრობა, ე.წ. განშტოება.მათი ალგორითმული ენის აღწერისთვის გამოიყენება სპეციალური შედგენილი ბრძანება - ბრძანება განშტოება.რობოტის შემსრულებელთან მიმართებაში შეიძლება იყოს პირობა, რომ შეამოწმოს რობოტი სამუშაო ველის კიდეზე (ზღვარი/არა_კიდე); მიმდინარე უჯრედში ობიექტის არსებობის შემოწმება (დიახ/არა) და სხვა:

IF მდგომარეობა IF მდგომარეობა IF ზღვარი

TO სერია 1 TO სერია TO მარჯვნივ

სხვა შემთხვევაში ეპიზოდი 2 ყველაფერი დანარჩენი წინ

შემდეგი არის ალგორითმული ენის ჩანაწერი select ბრძანებისთვის, რომელიც არის ფილიალის ბრძანების განვითარება:

პირობით 1: სერია 1

მე-2 პირობით: სერია 2

პირობით N: სერია N

ELSE სერია N+1

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

BYE მდგომარეობა NC

სერია ადრე მდგომარეობა

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

მაგალითები

ალგორითმი ალგორითმულ ენაზე ძირითადად იწერება შემდეგნაირად:

ალგალგორითმის სახელი (არგუმენტები და შედეგები) მოცემულიალგორითმის გამოყენებადობის პირობები საჭიროალგორითმის მიზანი დასაწყისიშუალედური რაოდენობების აღწერა | ბრძანებების თანმიმდევრობა (ალგორითმის სხეული) კონ

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

კვადრატების ჯამის გამოთვლის მაგალითი:

ალგკვადრატების ჯამი ( არგ ხელუხლებელი n, რეზ ხელუხლებელის) მოცემული| n > 0 საჭირო| S = 1*1 + 2*2 + 3*3 + … + n*n დასაწყისი ხელუხლებელიმე | შეყვანა n; S:=0 | ncმე 1-დან n-მდე | | S:= S + i * i | ქც | დასკვნა"S =", ს კონ

ელექტრონული სახელოსნო

ალგორითმულ ენაზე პროგრამირების თეორიული შესწავლის მხარდასაჭერად, მოსკოვის სახელმწიფო უნივერსიტეტის მექანიკა-მათემატიკის ფაკულტეტის სპეციალისტებმა 1985 წელს შექმნეს რედაქტორ-შემდგენელი. "ელექტრონული სახელოსნო"("E" - ერშოვის საპატივცემულოდ), რომელიც საშუალებას გაძლევთ შეიყვანოთ, დაარედაქტიროთ და განახორციელოთ პროგრამები ალგორითმულ ენაზე.

1986 წელს გამოვიდა საგანმანათლებლო სამყაროების (შემსრულებლების) ნაკრები "ელექტრონული სახელოსნოსთვის": "რობოტი", "დრაფტმენი", "ბიპოდი", "ყველა რელიეფის მანქანა", რომელიც საშუალებას გაძლევთ უბრალოდ გააცნოთ ცნებები. ალგორითმი. „ელექტრონული სახელოსნო“ განხორციელდა კომპიუტერებზე: Yamaha, Corvette, UKNC და ფართოდ გავრცელდა.

ეს პროგრამირების ენა მუდმივად იხვეწებოდა და 1990 წელს სახელმძღვანელოში გამოჩნდა „ელექტრონული სახელოსნოს“ შემდგომი ვერსიის აღწერა. პროგრამირების სისტემა "KuMir" ("საგანმანათლებლო სამყაროების ნაკრები"), რომელიც მხარს უჭერს ამ სახელმძღვანელოს, გამოუშვა InfoMir საწარმომ 1990 წელს. ამ სისტემის ენას ასევე უწოდებენ "კერპს".

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

.

კრიტიკა

ამასთან, უნდა აღინიშნოს, რომ ალგორითმული ენა, დეტალების არარსებობის შემთხვევაში, რომელიც მას პირდაპირ აკავშირებს კომპიუტერულ არქიტექტურასთან, მიუხედავად ამისა, მიუთითებს ალგოლოს მსგავს ენებზე, ნათლად ასწავლის სკოლის მოსწავლეებს დაეყრდნონ მანქანების ფონ ნეუმანის არქიტექტურას. (ფონ ნეუმანის არქიტექტურა არის ადრინდელი იდეის პრაქტიკული განხორციელება, სახელწოდებით ტურინგ მანქანა. ტურინგის იდეის გარდა, არსებობს სხვა იდეები. მათგან ყველაზე პოპულარულს ჰქვია ლამბდას გამოთვლა: მასზე მუშაობდა ალონცოს ეკლესია. Lisp მანქანა არის არქიტექტურა, რომელიც ემყარება ლამბდა-კალკულუსს.)

  • ბმულები
  • A. P. Ershov. ალგორითმული ენა სასკოლო კურსში კომპიუტერული მეცნიერებისა და კომპიუტერული ტექნოლოგიების საფუძვლების შესახებ. 05/07/1985 წ

ფორუმი რუსული პროგრამირების ენებისა და განვითარების ინსტრუმენტების შესახებ

ფონდი ვიკიმედია.

    2010 წელი.

    ნახეთ, რა არის „რუსული ალგორითმული ენა“ სხვა ლექსიკონებში:

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

    ამ ტერმინს სხვა მნიშვნელობა აქვს, იხილეთ დრაკონი (მნიშვნელობები). ალგორითმის ბლოკ-სქემის მაგალითი DRAGON ენაში დრაკონის დიაგრამა DRAGON (მეგობრული რუსული ალგორითმული ენა, რომელიც უზრუნველყოფს ხილვადობას) ვიზუალური... ... ვიკიპედია

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

    ალგორითმის ბლოკ-სქემის მაგალითი DRAGON ენის დრაკონის დიაგრამაში DRAGON (მეგობრული რუსული ალგორითმული ენა, რომელიც უზრუნველყოფს ხილვადობას) არის ვიზუალური ალგორითმული ენა, რომელიც შექმნილია Buran კოსმოსური პროგრამის ფარგლებში. განვითარება ამ ენის... ვიკიპედია

განათლების სამინისტრო რუსეთის ფედერაციაპერმის სახელმწიფო ტექნიკური უნივერსიტეტი

საინფორმაციო ტექნოლოგიებისა და ავტომატური სისტემების დეპარტამენტი

ვიკენტიევა O.L.

სალექციო ჩანაწერები კურსისთვის "ალგორითმული ენები და პროგრამირება" (C++ ენის საფუძვლები, I სემესტრი)

შესავალი

პირველი სემესტრი მოიცავს C ენის საბაზისო კონსტრუქტებს და საბაზისო პროგრამირების ტექნოლოგიას (სტრუქტურირებული პროგრამირება).

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

1.1. ალგორითმი და პროგრამა

ალგორითმი არის ზუსტი რეცეპტი, რომელიც განსაზღვრავს გამოთვლით პროცესს, რომელიც გადადის ცვლადი საწყისი მონაცემებიდან საბოლოო შედეგამდე, ანუ ეს არის მიზნის მიღწევის რეცეპტი.

კომპიუტერის მიერ შესასრულებლად შესაფერის ფორმაში ალგორითმის წარმოდგენის ინსტრუმენტებისა და წესების ერთობლიობას ამ ენაზე დაწერილ ალგორითმს ეწოდება პროგრამა;

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

1.2.ალგორითმის თვისებები

1. მასობრივი მასშტაბი: ალგორითმი უნდა იქნას გამოყენებული არა ერთ პრობლემაზე, არამედ მსგავსი ამოცანების მთელ კლასზე (კვადრატული განტოლების ამოხსნის ალგორითმი უნდა გადაჭრას არა მხოლოდ ერთი განტოლება, არამედ ყველა კვადრატული განტოლება).

2. ეფექტურობა: ალგორითმმა უნდა გამოიწვიოს შედეგის მიღებამდე საფეხურების გარკვეული რაოდენობა (1-ის 3-ზე გაყოფისას მიიღება პერიოდული ფრაქცია 0.3333(3); საბოლოო შედეგის მისაღწევად საჭიროა განისაზღვროს ამ წილადის მიღების სიზუსტე. მაგალითად, 4 ათწილადამდე).

3. სიზუსტე (დეტერმინიზმი) - ალგორითმის თითოეული მოქმედება გასაგები უნდა იყოს მისი შემსრულებლისთვის (ინსტრუქციები საყოფაცხოვრებო ტექნიკის შესახებ იაპონურად იმ პირისთვის, ვინც იაპონურად არ საუბრობს, არ არის ალგორითმი, რადგან მათ არ აქვთ დეტერმინიზმის თვისება).

4. დისკრეტულობა - პროცესი უნდა იყოს აღწერილი განუყოფლის გამოყენებით

თითოეულ საფეხურზე შესრულებული ოპერაციები (ანუ ნაბიჯები არ შეიძლება დაიყოს პატარა ნაბიჯებად).

ალგორითმები შეიძლება წარმოდგენილი იყოს შემდეგი ფორმებით:

1) ალგორითმის სიტყვიერი აღწერა.

2) ალგორითმის გრაფიკული აღწერა.

3) ალგორითმული პროგრამირების ენის გამოყენებით

1.2. შემდგენელები და თარჯიმნები

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

სამუშაოს პროგრესი, თითოეული განცხადების თარგმნა მანქანა ენაზე.

1.3.პროგრამირების ენები

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

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

მაღალი დონის ენებია:

1. Fortran იყო პირველი კომპილირებული ენა, რომელიც შეიქმნამე-20 საუკუნის 50-იანი წლები. მან განახორციელა არაერთი მნიშვნელოვანი პროგრამირების კონცეფცია. ამ ენისთვის შეიქმნა უამრავი ბიბლიოთეკა, დაწყებული სტატისტიკური კომპლექსებიდან დაწყებული სატელიტური კონტროლით დამთავრებული, ამიტომ იგი კვლავაც გამოიყენება მრავალ ორგანიზაციაში.

2. COBOL არის შედგენილი ენა ეკონომიკური გამოთვლებისა და გადაწყვეტილებებისთვის. 60-იანი წლების დასაწყისში განვითარებული ბიზნეს პრობლემები. Cobol-მა დანერგა ძალიან მძლავრი ინსტრუმენტები გარე მედიაზე შენახული დიდი რაოდენობით მონაცემებთან მუშაობისთვის.

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

4. BASIC - შექმნილია ქ 60-იანი წლები ასევე პროგრამირების სწავლებისთვის. მას აქვს როგორც შემდგენელი, ასევე თარჯიმანი და ის არის ერთ-ერთი ყველაზე პოპულარული პროგრამირების ენა.

5. C შეიქმნა 70-იან წლებში და თავდაპირველად არ განიხილებოდა, როგორც მასობრივი პროგრამირების ენა. იგეგმებოდა ასამბლერის შეცვლა, რომ შეგვეძლო თანაბრად ეფექტური და მოკლე პროგრამების შექმნა, მაგრამ არა კონკრეტულ პროცესორზე დამოკიდებული. ის ბევრ რამეში ჰგავს პასკალს და აქვს დამატებითი ფუნქციებიმეხსიერებასთან მუშაობისთვის. მასზე დაწერილია მრავალი აპლიკაციის და სისტემური პროგრამა, ასევე ოპერაციული სისტემა Unix.

6. C++ არის C ენის ობიექტზე ორიენტირებული გაფართოება, რომელიც შეიქმნა Bjarne Stroustrup-ის მიერ 1980 წელს.

7. Java არის ენა, რომელიც შეიქმნა Sun-ის მიერ ადრეულ პერიოდში C++-ზე დაფუძნებული 90-იანი წლები. იგი შექმნილია C++ აპლიკაციების განვითარების გასამარტივებლად დაბალი დონის ფუნქციების აღმოფხვრის გზით. ენის მთავარი მახასიათებელია ის, რომ ის კომპილირებულია არა მანქანის კოდში, არამედ პლატფორმისგან დამოუკიდებელ ბაიტეკოდში (თითოეული ბრძანება იკავებს ერთ ბაიტს). ეს კოდი შეიძლება შესრულდეს თარჯიმნის გამოყენებით − ჯავის ვირტუალური მანქანა(JVM).

2.C++ პროგრამის სტრუქტურა

C პროგრამას აქვს შემდეგი სტრუქტურა: #preprocessor დირექტივები

. . . . . . . . .

#პრეპროცესორული დირექტივების ფუნქცია a()

ოპერატორები ფუნქციონირებენ ()

ოპერატორები

void main () //ფუნქცია, რომლითაც პროგრამის შესრულება იწყება ოპერატორები

აღწერილობები

დავალებები

ფუნქცია ცარიელი განცხადება

კომპოზიტური

გარდამავალი

წინაპროცესორული დირექტივები - აკონტროლებს პროგრამის ტექსტის ტრანსფორმაციას მის კომპილაციამდე. ორიგინალური პროგრამა, მომზადებული SI-ში ტექსტური ფაილის სახით, გადის დამუშავების 3 ეტაპს:

1) წინაპროცესორული ტექსტის კონვერტაცია;

2) შედგენა;

3) განლაგება (ბმულების რედაქტირება ან შეკრება).

ამ სამი ეტაპის შემდეგ გენერირდება პროგრამის შესრულებადი კოდი. წინასწარი ამოცანა

პროცესორი - პროგრამის ტექსტის კონვერტაცია შედგენამდე. წინასწარი დამუშავების წესებს განსაზღვრავს პროგრამისტი წინასწარი პროცესორის დირექტივების გამოყენებით. დირექტივა იწყება #-ით. მაგალითად,

1) #define - განსაზღვრავს ტექსტში ჩანაცვლების წესებს. #define ZERO 0.0

ნიშნავს, რომ პროგრამაში სახელის ZERO ყოველი გამოყენება შეიცვლება

2) #შეიცავს< имя заголовочного файла>- შექმნილია იმისათვის, რომ პროგრამაში შეიტანოს ტექსტის ტექსტი მოწოდებული „Header files“ დირექტორიადან სტანდარტული ბიბლიოთეკები. C ბიბლიოთეკის თითოეულ ფუნქციას აქვს შესაბამისი აღწერა სათაურის ერთ-ერთ ფაილში. სათაურის ფაილების სია განისაზღვრება ენის სტანდარტით. ჩათვლით დირექტივის გამოყენება არ შეიცავს შესაბამის სტანდარტულ ბიბს

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

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

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

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

განმარტებები - ობიექტების შემოტანა (ობიექტი არის დასახელებული მეხსიერების არე, ობიექტის განსაკუთრებული შემთხვევა არის ცვლადი), რომელიც აუცილებელია პროგრამაში დამუშავებული მონაცემების წარმოსაჩენად. მაგალითებია

int y = 10; //დასახელებული მუდმივი float x; //ცვლადი

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

ოპერატორები - განსაზღვრავს პროგრამის მოქმედებებს მისი შესრულების ყოველ საფეხურზე.

C პროგრამის მაგალითი:

#შეიცავს //პრეპროცესორის დირექტივა

უსაფრთხოების კითხვები

1. რა ნაწილებისგან შედგება C++ პროგრამა?

2. რით განსხვავდება განმარტება რეკლამისგან?

3. ჩამოთვალეთ C++-ში შესრულებადი პროგრამის შექმნის ეტაპები.

4. რა არის წინასწარი პროცესორი?

5. რა არის წინასწარი პროცესორის დირექტივა? მიეცით წინასწარი პროცესორის დირექტივების მაგალითები.

6. დაწერეთ პროგრამა, რომელიც დაბეჭდავს ტექსტს „ჩემი პირველი C++ პროგრამა“

2. SI++ ენის ძირითადი საშუალებები 2.1

ნებისმიერ ბუნებრივ ენაზე ტექსტში ოთხი ძირითადი ელემენტია: სიმბოლოები, სიტყვები, ფრაზები და წინადადებები. ალგორითმული ენაც შეიცავს ასეთ ელემენტებს, მხოლოდ სიტყვებს უწოდებენ ლექსემებს (ელემენტარული კონსტრუქციები), ფრაზებს - გამონათქვამებს, ხოლო წინადადებებს - ოპერატორებს. ჟეტონები წარმოიქმნება სიმბოლოებიდან, გამონათქვამები ნიშნებიდან და სიმბოლოებიდან, ოპერატორები გამონათქვამებისა და ნიშნებიდან (ნახ. 1.1).

ბრინჯი. 1.1. ალგორითმული ენის შემადგენლობა ამრიგად, ალგორითმული ენის ელემენტებია:

იდენტიფიკატორები არის SI პროგრამის ობიექტების სახელები. იდენტიფიკატორს შეუძლია გამოიყენოს ლათინური ასოები, რიცხვები და ქვედა ხაზები. დიდი და პატარა ასოებიგანსხვავდება, მაგალითად PROG1, prog1 და Prog1 - სამი განსხვავებული იდენტიფიკატორი. პირველი სიმბოლო უნდა იყოს ასო ან ხაზგასმული (არა რიცხვი). იდენტიფიკატორებში ადგილები დაუშვებელია.

საკვანძო სიტყვები (რეზერვირებული) სიტყვები არის სიტყვები, რომლებსაც განსაკუთრებული მნიშვნელობა აქვთ შემდგენლისთვის. ისინი არ შეიძლება გამოყენებულ იქნას როგორც იდენტიფიკატორი.

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

მუდმივები უცვლელი რაოდენობებია. არსებობს მთელი, რეალური, სიმბოლო და სიმებიანი მუდმივები. შემდგენელი განსაზღვრავს მუდმივას, როგორც ლექსემას (ელემენტარული კონსტრუქცია) და ანიჭებს მას ერთ-ერთ ტიპს მისი გარეგნობის მიხედვით.

გამყოფები - ფრჩხილები, წერტილი, მძიმები, ინტერვალის სიმბოლოები.

2.1.1. მუდმივები C++-ში

მუდმივი არის ნიშანი, რომელიც წარმოადგენს ფიქსირებულ ციფრულ, სტრიქონს ან სიმბოლოს მნიშვნელობას.

მუდმივები იყოფა 5 ჯგუფად:

მთლიანი;

- რეალური (მცურავი წერტილი);

აღრიცხვადი;

პერსონაჟი;

სიმებიანი.

შემდგენელი ირჩევს ჟეტონს და ანიჭებს მას ამა თუ იმ ჯგუფს, შემდეგ კი შინაგანად

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

მთელი რიცხვის მუდმივები შეიძლება იყოს ათობითი, რვადიული ან თექვსმეტობითი. ათობითი მუდმივი განისაზღვრება, როგორც ათობითი ციფრების თანმიმდევრობა, რომელიც იწყება 0-ის გარდა, თუ ეს რიცხვი არ არის 0 (მაგალითები: 8, 0, 192345). რვადი მუდმივი არის მუდმივი, რომელიც ყოველთვის იწყება 0-ით. 0-ს მოსდევს რვა რიცხვები (მაგალითები: 016 - ათობითი მნიშვნელობა 14, 01). თექვსმეტობითი მუდმივები არის თექვსმეტობითი ციფრების თანმიმდევრობა, რომელსაც წინ უძღვის სიმბოლოები 0x ან 0X (მაგალითები: 0xA, 0X00F).

IN შემდგენელის მთელი მუდმივის მნიშვნელობიდან გამომდინარესხვაგვარად წარმოაჩენს

კომპიუტერის მეხსიერება (ანუ შემდგენელი მუდმივს მიანიჭებს მონაცემთა შესაბამის ტიპს).

რეალურ მუდმივებს აქვთ შიდა წარმოდგენის განსხვავებული ფორმა კომპიუტერის მეხსიერებაში. შემდგენელი ცნობს ასეთ მუდმივებს მათი ტიპის მიხედვით. რეალურ მუდმივებს შეიძლება ჰქონდეთ წარმოდგენის ორი ფორმა: ფიქსირებული წერტილი და მცურავი წერტილი. ფიქსირებული წერტილის მუდმივი ტიპი: [ციფრები].[ციფრები] (მაგალითები: 5.7, . 0001, 41.). მაგალითები: 0.5e5, .11e-5, 5E3). რეალური მუდმივების ჩაწერისას შეიძლება გამოტოვოთ ან მთელი რიცხვი ან წილადი ნაწილები, ან ათობითი წერტილი, ან მაჩვენებლის ნიშანი მაჩვენებლით.

რიცხობრივი მუდმივები შემოტანილია enum საკვანძო სიტყვის გამოყენებით. ეს არის ჩვეულებრივი მთელი რიცხვის მუდმივები, რომლებსაც ენიჭებათ უნიკალური და ადვილად გამოსაყენებელი აღნიშვნები. მაგალითები: enum (ერთი=1, ორი=2, სამი=3, ოთხი=4);

enum (ნული, ერთი, ორი, სამი) – თუ გამოტოვებთ = და ნიშნებს ჩამოთვლილი მუდმივების განსაზღვრაში რიცხვითი მნიშვნელობები, მაშინ მნიშვნელობები მიენიჭება ნაგულისხმევად. ამ შემთხვევაში, ყველაზე მარცხენა იდენტიფიკატორი მიიღებს მნიშვნელობას 0, ხოლო ყოველი მომდევნო გაიზრდება 1-ით.

enum ( ათი=10, სამი=3, ოთხი, ხუთი, ექვსი);

enum (კვირა, ორშაბათი, სამშაბათი, ოთხშაბათი, ხუთშაბათი, პარასკევი, სატურ-

სიმბოლოების მუდმივები არის აპოსტროფებში ჩასმული ერთი ან ორი სიმბოლო. ერთი სიმბოლოსგან შემდგარი სიმბოლოების მუდმივები არის char ტიპის და მეხსიერებაში იკავებს ერთ ბაიტს, ორი სიმბოლოსგან შემდგარი სიმბოლოების მუდმივები არის int ტიპის და იკავებს ორ ბაიტს. \-ით დაწყებულ მიმდევრობებს ეწოდება საკონტროლო თანმიმდევრობა და გამოიყენება:

- სიმბოლოების წარმოსაჩენად, რომლებსაც არ აქვთ გრაფიკული გამოსახულება, მაგალითად:

\a - ხმოვანი სიგნალი,

\b - ერთი ნაბიჯის დაბრუნება, \n - ხაზის მიწოდება,

\t – ჰორიზონტალური ჩანართი.

- სიმბოლოების წარმოსადგენად: \ , ' , ? , ”(\\, \’ ,\? ,\”).

- სიმბოლოების წარმოდგენა თექვსმეტობითი ან რვადი კოდების გამოყენებით (\073, \0xF5).

სიმებიანი მუდმივი არის ბრჭყალებში ჩასმული სიმბოლოების თანმიმდევრობა.

საკონტროლო სიმბოლოები ასევე შეიძლება გამოყენებულ იქნას სტრიქონებში. მაგალითად: "\nახალი ხაზი",

“\n\”ალგორითმული მაღალი დონის პროგრამირების ენები\”” .

2.2. მონაცემთა ტიპები C++-ში

მონაცემები აჩვენებს მიმდებარე სამყაროს პროგრამაში. პროგრამის მიზანია მონაცემების დამუშავება. მონაცემები სხვადასხვა სახისინახება და მუშავდება სხვაგვარად. მონაცემთა ტიპი განსაზღვრავს:

1) მონაცემთა შიდა წარმოდგენა კომპიუტერის მეხსიერებაში;

2) მნიშვნელობების ნაკრები, რომელიც შეიძლება მიიღოს ამ ტიპის რაოდენობებმა;

3) ოპერაციები და ფუნქციები, რომლებიც შეიძლება გამოყენებულ იქნას ამ ტიპის მონაცემებზე.

IN დავალების მოთხოვნებიდან გამომდინარე, პროგრამისტი ირჩევს ტიპს პროგრამის ობიექტებისთვის. C++ ტიპები შეიძლება დაიყოს მარტივ და რთულად. მარტივი ტიპები მოიცავს ტიპებს, რომლებიც ხასიათდება ერთიანი მნიშვნელობით. C++ განსაზღვრავს მონაცემთა 6 მარტივ ტიპს:

int (მთელი რიცხვი)

char (პერსონაჟი)

wchar_t (ფართო სიმბოლო) bool (ლოგიკური) float (რეალური)

ორმაგი (ორმაგი სიზუსტით რეალური)

არსებობს 4 ტიპის დამახასიათებელი, რომელიც განსაზღვრავს სტანდარტული ტიპების შიდა წარმომადგენლობას და დიაპაზონს

მოკლე (მოკლე) გრძელი (გრძელი) ხელმოწერილი (ხელმოწერილი)

ხელმოუწერელი

2.2.1. ჩაწერეთ int

ამ ტიპის მნიშვნელობები არის მთელი რიცხვები.

int ტიპის ზომა არ არის განსაზღვრული სტანდარტით, მაგრამ დამოკიდებულია კომპიუტერზე და შემდგენელზე. 16-ბიტიანი პროცესორისთვის გამოყოფილია 2 ბაიტი, 32-ბიტიანი პროცესორისთვის - 4 ბაიტი.

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

short int - იღებს 2 ბაიტს, შესაბამისად, აქვს დიაპაზონი –32768 ..+32767;

long int – იკავებს 4 ბაიტს, შესაბამისად აქვს დიაპაზონი –2,147,483,648..+2,147,483,647

int ტიპი იგივეა, რაც მოკლე int ტიპი 16-ბიტიან კომპიუტერებზე და გრძელი int ტიპი 32-ბიტიან კომპიუტერებზე.

ხელმოწერილი და ხელმოუწერელი მოდიფიკატორები ასევე გავლენას ახდენენ მოქმედი მნიშვნელობების სიმრავლეზე, რომელიც შეიძლება მიიღოს ობიექტმა:

unsigned short int - იღებს 2 ბაიტს, შესაბამისად, აქვს დიაპაზონი 0 ..65536; unsigned long int – იკავებს 4 ბაიტს, შესაბამისად აქვს დიაპაზონი 0..+4 294 967

2.2.2. აკრიფეთ char

ამ ტიპის მნიშვნელობები არის სიმბოლოების სასრული მოწესრიგებული ნაკრების ელემენტები. თითოეულ სიმბოლოს ენიჭება რიცხვი, რომელსაც სიმბოლოს კოდი ეწოდება. სიმბოლოს ტიპის მნიშვნელობისთვის გამოყოფილია 1 ბაიტი. სიმბოლოს ტიპი შეიძლება გამოყენებულ იქნას ხელმოწერილი და ხელმოუწერელი სპეციფიკატორებით. ხელმოწერილი სიმბოლოების მონაცემებს შეუძლია შეინახოს მნიშვნელობები დიაპაზონში -128-დან 127-მდე. ხელმოუწერელი char მონაცემების გამოყენებისას მნიშვნელობები შეიძლება იყოს 0-დან 255-მდე დიაპაზონში. კოდირება არის ASCII (American Standard Code foe International Interchange). 0-დან 31-მდე კოდების მქონე სიმბოლოები არის სერვისის სიმბოლოები და აქვთ დამოუკიდებელი მნიშვნელობა მხოლოდ I/O განცხადებებში.

char ტიპის მნიშვნელობები ასევე გამოიყენება ნომრების შესანახად მითითებული დიაპაზონებიდან.

2.2.3. wchar_t ტიპის

შექმნილია სიმბოლოების კომპლექტთან მუშაობისთვის, რომლებისთვისაც 1 ბაიტი საკმარისი არ არის კოდირებისთვის, მაგალითად უნიკოდ. ამ ტიპის ზომა ზოგადად შეესაბამება მოკლე ტიპს. ამ ტიპის სიმებიანი მუდმივები იწერება L პრეფიქსით: L“სტრიქონი #1”.

2.2.4. აკრიფეთ bool

Bool-ის ტიპს ლოგიკური ეწოდება. მის მნიშვნელობებს შეუძლიათ მიიღონ მნიშვნელობები ჭეშმარიტი და მცდარი. false-ის შიდა ფორმა არის 0, ნებისმიერი სხვა მნიშვნელობა ინტერპრეტირებულია როგორც true.

2.2.5. მცურავი წერტილის ტიპები.

შიდა წარმომადგენლობა რეალური რიცხვიშედგება 2 ნაწილისაგან: მანტისა და წესრიგი. IBM-თან თავსებად კომპიუტერებზე float მნიშვნელობები იკავებს 4 ბაიტს, საიდანაც ერთი ბიტი გამოყოფილია მანტისისთვის, 8 ბიტი ექსპონენტისთვის და 24 მანტისისთვის.

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

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

2.2.6. აკრიფეთ void

TO ძირითადი ტიპები ასევე მოიცავს ბათილ ტიპს ამ ტიპის მნიშვნელობების ნაკრები არის p-.

2.3. ცვლადები

ცვლადი SI++-ში არის დასახელებული მეხსიერების არე, რომელშიც ინახება მონაცემები. გარკვეული ტიპის. ცვლადს აქვს სახელი და მნიშვნელობა. სახელი გამოიყენება მეხსიერების არეალის მითითებისთვის, რომელშიც ინახება მნიშვნელობა. გამოყენებამდე ნებისმიერი ცვლადი უნდა გამოცხადდეს. მაგალითები:

აღწერილობის ოპერატორის ზოგადი ხედი:

[მეხსიერების კლასი]ტიპის სახელი [ინიციალატორი];

მეხსიერების კლასს შეუძლია მიიღოს შემდეგი მნიშვნელობები: auto, extern, static, register. მეხსიერების კლასი განსაზღვრავს ცვლადის სიცოცხლეს და მოცულობას. თუ მეხსიერების კლასი ცალსახად არ არის მითითებული, შემდგენელი განსაზღვრავს მას დეკლარაციის კონტექსტის საფუძველზე. სიცოცხლის ხანგრძლივობა შეიძლება იყოს მუდმივი - პროგრამის შესრულებისას ან დროებითი - ბლოკის დროს. Scope არის პროგრამის ტექსტის ნაწილი, საიდანაც დაშვებულია ნორმალური წვდომა ცვლადზე. როგორც წესი, ფარგლები იგივეა, რაც ფარგლები. გარდა იმ შემთხვევისა, როცა შიდა ერთეულიარის ცვლადი იგივე სახელით.

Const - მიუთითებს, რომ ამ ცვლადის შეცვლა შეუძლებელია (დასახელებული მუდმივი). აღწერისას შეგიძლიათ ცვლადს მიანიჭოთ საწყისი მნიშვნელობა (ინიციალიზაცია). მეხსიერების კლასები:

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

extern არის გლობალური ცვლადი, ის მდებარეობს პროგრამის სხვა ადგილას (სხვა ფაილში ან ტექსტის ქვემოთ). გამოიყენება ცვლადების შესაქმნელად, რომლებიც ხელმისაწვდომია პროგრამის ყველა ფაილში.

static არის სტატიკური ცვლადი, ის არსებობს მხოლოდ ფაილში, სადაც ცვლადია განსაზღვრული.

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

int a; //გლობალური ცვლადი void main())(

int b;//local ცვლადი

extern int x;//ცვლადი x განისაზღვრება სხვაგან static int c;//ლოკალური სტატიკური ცვლადი a=1;// მინიჭება გლობალურ ცვლადზე

int a;//ლოკალური ცვლადი a

a=2;// მინიჭება ლოკალურ ცვლადზე::a=3;// მინიჭება გლობალურ ცვლადზე

int x=4;//x-ის განმარტება და ინიციალიზაცია

მაგალითში ცვლადი a განისაზღვრება ყველა ბლოკის გარეთ. a ცვლადის ფარგლები არის მთელი პროგრამა, გარდა იმ ხაზებისა, სადაც გამოიყენება ადგილობრივი ცვლადი a. b და c ცვლადები ლოკალურია, მათი ფარგლები ბლოკია. სიცოცხლის ხანგრძლივობა განსხვავებულია: b-სთვის მეხსიერება გამოიყოფა ბლოკში შესვლისას (რადგან ნაგულისხმევი მეხსიერების კლასი არის ავტო) და თავისუფლდება მისგან გასვლისას. პროგრამის გაშვებისას არსებობს ცვლადი (სტატიკური).

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

ცვლადის სახელი უნდა იყოს უნიკალური მისი მოქმედების ფარგლებში.

ცვლადის დეკლარაცია შეიძლება გაკეთდეს როგორც დეკლარაცია, ასევე განმარტება. დეკლარაცია შეიცავს ინფორმაციას მეხსიერების კლასისა და ცვლადის ტიპის შესახებ. მაგალითში extern int x; - დეკლარაცია და დანარჩენი - განმარტებები.

2.4 ოპერაციების ნიშნები C++-ში

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

ერთიანი ოპერაციები

& ოპერანდის მისამართის მიღება

* მისამართის მითითება (მიმართვის გაუქმება)

- unary minus, ცვლის არითმეტიკული ოპერანდის ნიშანს

++ გაზარდეთ ერთით:

პრეფიქსის ოპერაცია - ზრდის ოპერანდს მის გამოყენებამდე

პოსტფიქსის ოპერაცია ზრდის ოპერანდს მისი გამოყენების შემდეგ.

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3,m=1,n=3

შემცირდეს ერთით:

პრეფიქსის ოპერაცია - ამცირებს ოპერანდს მის გამოყენებამდე

პოსტფიქსის ოპერაცია ამცირებს ოპერანდს მისი გამოყენების შემდეგ

გამოთვალეთ იმ ტიპის ობიექტის ზომა (ბაიტები), რომელიც

აქვს ოპერანდი

აქვს ორი ფორმა

გამოხატვის ზომა

sizeof(float)//4

sizeof(1.0)//8, რადგან რეალური მუდმივები ნაგულისხმევად არის