
მოცემულ კურსში, პირველი გაკვეთლიდან ჩვენ შეხება მოგვიწია main ფუნქციასთან, რომელიც C-ში მთავარ ფუნქციას წარმოადგენს, ამ გაკვეთილში დეტალურად გავივლით, თუ რა არის ფუნქცია და როგორ გამოიყენება ის პრაქტიკაში.
გაკვეთილის თემები:
ფუნქცია C-ში წარმოადგენს კოდის ბლოკს, რომელიც ასრულებს კონკრეტულ ამოცანას. თითოეული ფუნქცია შეგვიძლია აღვიქვათ როგორც დამოუკიდებელი პატარა პროგრამა, რომელიც გვეხმარება მთავარი პროგრამა დავყოთ მცირე, მართვად ნაწილებად.
ფუნქცია შეიძლება იღებდეს პარამეტრებს (შეყვანილ მონაცემებს), ამუშავებდეს მათ და აბრუნებდეს შედეგს.
ფუნქციების გამოყენება ზრდის კოდის კითხვადობას, ამარტივებს ლოგიკის გარჩევას, საშუალებას გვაძლევს თავიდან გამოვიყენოთ უკვე დაწერილი კოდი და დავმალოთ რთული დეტალები.
ფუნქციის გასააზრებლად აუცილებელია მისი პრაქტიკული მაგალითი, მოდი დავწეროთ ფუნქცია, რომელიც გამოთვლის ორი რიცხვის საშუალოს და მის მაგალითზე გავარჩიოთ, თუ როგორ მუშაობს ის.
double average(double a, double b) {
return (a + b) / 2;
}
მოცემულ ფუნქციაში სიტყვა double რომელიც წერია average-ის წინ აღნიშნავს ტიპს, რომელსაც დააბრუნებს ფუნქცია მას შემდეგ რაც ის დაასრულებს მუშაობას.
ანუ, როდესაც ფუნქცია შესრულდება დააბრუნებს მოძრავ მძიმიან რიცხვს.
თავად სიტყვა average წარმოადგენს ფუნქციის დასახელებას, რომელიც ჩვენს მიერაა დარქმეული, ანუ ის არაა ე.წ. რეზერვირებული სიტყვა C-ში, ასევე საგულისხმოა გვახსოვდეს, რომ ფუნქციის სახელები მაქსიმალურად უნდა აღწერდეს იმას თუ რას ასრულებს ის.
ვინაიდან ჩვენი ფუნქცია ითვლის ორი რიცხვის საშუალოს, სახელი average-იც მისი ლოგიკური აღმნიშვნელია.
რაც შეეხება ფრჩხილებში მოქცეულ ჩანაწერებს (double a, double b) ეწოდებათ პარამეტრები, ამ შემთხვევაში ფუნქციას აქვს ორი პარამეტრი, a და b, რომლებიც ერთმანეთისგან გამოყოფილია მძიმით ,.
ასევე პარამეტრებს მითითებული აქვთ ტიპი, რომელიც ჩვენს შემთხვევაში წარმოადგენს double-ს.
ფუნქციის პარამეტრები დაახლოვებით იგივე რამაა, რაც ცვლადი, უბრალოდ მათი მნიშვნელობის მინიჭება ხდება ფუნქციის გამოძახებს დროს.
ყველა ფუნქციას აქვს ე.წ. ტანი, რომელშიც ხდება ლოგიკის შესრულება.
ფუნქციის ტანი აღწერილია { } სიმბოლოებს შიგნით, ჩვენი მაგალითდიან გამომდინარე return საკვანძო სიტყვა აბრუნებს (a + b) / 2 ფორმულას, რომელიც თავისთავად იქნება double-ის ტიპი.
ფუნქციის შესრულებისთვის საკამარისი არაა მისი დეფინიცია და ლოგიკურად გამართვა, იმისთვის რომ, ფუნქციამ იმუშაოს აუცილებელია მისი გამოძახება.
double average(double a, double b) {
return (a + b) / 2;
}
average(5, 10); // ფუნქციის გამოძახება
მოცემული მაგალითიდან ჩანს, რომ ფუნქციის გამოძახებისთვის, საჭიროა მისი დეფინიციის შემდეგ დავწეროთ ფუნქციის სახელი და ფრჩხილებში გადავცეთ გამოსათვლელი რიცხვები, მაგალითის შემთხვევაში 5 და 10.
ფუნქციის გამოძახებისას გადაცემულ მნიშვნელობებს ეწოდებათ არგუმენტები, ანუ 5 და 10 წარმოადგენენ არგუმენტებს.
განვიხილოთ ქვემოთ მოყვანილი მაგალითი.
#include <stdio.h>
double average(double a, double b) {
return (a + b) / 2;
}
int main() {
double x, y;
printf("Enter two numbers: ");
scanf("%lf %lf", &x, &y);
printf("Average of %g and %g: %g\n", x, y, average(x, y));
return 0;
}
ზემოთ მოყვანილ მაგალითში, გვაქვს average ფუნქცია, რომელიც main ფუნქციის ზემოთაა, რაც შეეხება main ფუნქციას, აქ მომხმარებელს ვთხოვთ შეიყვანოს ორი რიცხვი, scanf-ის გამოყენებით.
ხოლო შემდეგ ვბეჭდავთ printf-ით გამოთვლილ მნიშვნელობას.
ასევე მოცემულ ფუნქციაში გამოყენებული გვაქვს ე.წ. ფორმატის მიმთითებლები, როგორც scanf-ის ასევე printf-ის
ფუნქციის დეფინიცია არის პროგრამაში ფუნქციის სრული აღწერა, რომელიც მოიცავს მის დაბრუნების ტიპს, სახელს, პარამეტრებს და ფუნქციის სხეულს — ანუ იმ კოდის ბლოკს, რომელიც განსაზღვრავს რა მოქმედებებს შეასრულებს ფუნქცია.
დეფინიციის დროს ვწერთ ფუნქციის რეალურ იმპლემენტაციას { } ბრჭყალებში, რის შედეგადაც ფუნქცია მზად არის გამოსაძახებლად პროგრამის სხვა ნაწილებიდან.
ზემოთ მოცემული მაგალითი წარმოადგენს ფუნქციის დეფინიციის მაგალითს.
აუცილებელია გვახსოვდეს, რომ ფუნქციის გამოძახება მოხდეს ფუნქციის დეფინიციის შემდეგ.
ფუნქციის დეკლარაცია (პროტოტიპი) არის ფუნქციის წინასწარი გამოცხადება, რომელიც განსაზღვრავს მის დაბრუნების ტიპს, სახელს და პარამეტრებს, მაგრამ არ შეიცავს ფუნქციის სხეულს. მისი მიზანია კომპილატორს აცნობოს, რომ ასეთი ფუნქცია პროგრამაში არსებობს, რათა შესაძლებელი იყოს მისი გამოძახება მანამ, სანამ რეალური დეფინიცია მოგვიანებით კოდში იქნება მოცემული.
მოვიყვანოთ მაგალითი:
#include <stdio.h>
double average(double a, double b); /* ფუნქციის დეკლარაცია */
int main() {
double x, y;
printf("Enter two numbers: ");
scanf("%lf %lf", &x, &y);
printf("Average of %g and %g: %g\n", x, y, average(x, y));
return 0;
}
double average(double a, double b) { /* ფუნქციის დეფინიცია */
return (a + b) / 2;
}
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა











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