
Дефиниране, предефиниране и използване на методи
Presentation
•
Computers
•
10th Grade
•
Practice Problem
•
Medium
Plamenna Petrova
Used 7+ times
FREE Resource
32 Slides • 17 Questions
1
Методи
Дефиниране, предефиниране и
използване на методи
Пламенна Петрова
Спец. Модул за придобиване на професионална
квалификация ,,учител’’
https://github.com/plamenna-petrova/ProgrammingFundamentals10D
2
Дефиниране и извикване на
методи
2
3
o Метод е именована част от кода, която може да бъде извикана
oПримерна дефиниция на метод:
oИзвикване на метода няколко пъти поред:
Прости методи
static void PrintHeader()
{
Console.WriteLine("----------");
}
Тялото на метода се
огражда с { }
Метод, наречен
PrintHeader
PrintHeader();
PrintHeader();
3
4
Защо да използваме методи?
oПрограмирането става по-обозримо
oРазделяме големите задачи на малки части
oПо-оптимална организация на програмата
oПодобрява се четимостта на кода
oУлеснява разбирането на кода
oИзбягват се повторенията в кода
oУлеснява поддръжката на кода
oПовторно използване на код
oИзползваме методите няколко пъти
4
5
static double GetSquare(double num)
{
return num * num;
}
oМетодите се дефинират в класа
oMain() също е метод
oПроменливите в метода са локални
Дефиниране на методи
Име на метода
тип на връщания резултат
Параметри
Тяло на
метода
class Program
{
static void Main()
{
}
}
5
6
oМетодите първо се дефинират, а после извикват (многократно)
oМетодите могат да бъдат извикани чрез името им + ():
static void PrintHeader()
{
Console.WriteLine("----------");
}
Извикване на метод
static void Main()
{
PrintHeader();
}
Дефиниране
на метода
Извикване
на метода
6
7
oМетод може да бъде извикан от:
oМетодът Main – Main()
oСвоeто тяло – рекурсия
Извикване на метод (2)
static void Main()
{
PrintHeader();
}
static void PrintHeader()
{
PrintHeaderTop();
PrintHeaderBottom();
}
oНякой друг метод
static void Crash()
{ Crash(); }
7
8
oСъздайте метод, който отпечатва празна касова бележка:
Задача: Празна касова бележка
CASH RECEIPT
------------------------------
Body
------------------------------
© VTU
Charged to____________________
Received by___________________
8
Header
Footer
9
o Създайте 3 метода за печат на секциите (header + body + footer)
oКопирайте съдържанието от слайда
oЗа знака за копирайт използвайте Unicode "©"
o Създайте метод PrintReceipt(), извикващ тези 3 метода:
Решение: Празна касова бележка
private static void PrintReceipt()
{
PrintHeader();
PrintBody();
PrintFooter();
}
9
10
Методи с параметри
10
11
o Параметрите могат да са от всеки тип данни
o Извикването на метода е с конкретни стойности (аргументи)
static void Main()
{
PrintNumbers(5, 10);
}
Параметри на методите
static void PrintNumbers(int start, int end)
{
for (int i = start; i <= end; i++)
{
Console.Write("{0} ", i);
}
}
Приема параметри
start и end
от тип int
При извикване
подаваме аргументите
Няколко параметъра,
разделени със запетая
11
12
oМоже да подадете нула или повече параматъра
oМоже да подавате параметри от различен тип
oВсеки параметър има име и тип
Параметри на методите (2)
static void PrintStudent(string name, int age, double grade)
{
Console.Write("Student: {0}; Age: {1}, Grade: {2}",
name, age, grade);
}
Тип на
параметъра
Име на
параметъра
Няколко параметъра
от различен тип
12
13
oСъздайте метод, който отпечатва знака на цяло число n:
Задача: Знака на цяло число
2
The number 2 is positive.
-5
The number 0 is zero.
0
The number -5 is negative.
13
14
Решение: Знак на цяло число
static void PrintSign(int number)
{
if (number > 0)
Console.WriteLine("The number {0} is positive.", number);
else if (number < 0)
Console.WriteLine("The number {0} is negative.", number);
else
Console.WriteLine("The number {0} is zero.", number);
}
static void Main()
{ PrintSign(int.Parse(Console.ReadLine())); }
14
15
o Параметрите могат да имат стойности по подразбиране:
o Методът по-горе може да бъде извикан по множество начини:
Опционални параметри
static void PrintNumbers(int start = 0, int end = 100)
{
for (int i = start; i <= end; i++)
{
Console.Write("{0} ", i);
}
}
PrintNumbers(5, 10);
PrintNumbers(15);
PrintNumbers();
PrintNumbers(end: 40, start: 35);
Стойности по
подразбиране
Може да ги пропуснем при
извикването на метода
15
16
Задача: Отпечатване на триъгълник
oСъздайте метод за отпечатване на триъгълници по начина,
показан по-долу:
1
1 2
1 2 3
1 2
1
1
1 2
1 2 3
1 2 3 4
1 2 3
1 2
1
3
4
16
17
oСъздайте метод за печат на един ред от триъгълника,
извеждащ числата от подаден start до подаден end:
Решение: Отпечатване на триъгълник
static void PrintLine(int start, int end)
{
for (int i = start; i <= end; i++)
{
Console.Write(i + " ");
}
Console.WriteLine();
}
17
18
oСъздайте метод, печатащ първата част (1..n) и друг за
втората част (n-1…1) от триъгълника:
Решение: Отпечатване на триъгълник (2)
static void PrintTriangle(int n)
{
for (int line = 1; line <= n; line++)
PrintLine(1, line);
for (int line = n - 1; line >= 1; line--)
PrintLine(1, line);
}
Метод с
параметър n
Редове 1...n
Редове n-1…1
18
19
o Да се отпечати запълнен квадрат с размер n като в примера:
Задача: Начертайте запълнен квадрат
4
----------
-\/\/\/-
-\/\/\/-
----------
static void PrintHeaderRow(int n)
{
Console.WriteLine(new
string('-', 2 * n));
}
static void PrintMiddleRow(int n)
{
Console.Write('-');
for (int i = 1; i < n; i++)
Console.Write("\\/");
Console.WriteLine('-');
}
static void Main() {
int n = // TODO: read n
PrintHeaderRow(n);
for (int i = 0; i < n - 2; i++)
PrintMiddleRow(i);
PrintHeaderRow(n);
}
Метод с
параметър n
19
20
Връщана стойност от метод
20
21
o Тип void – не връща стойност (само изпълнява код)
o Други типове – връща стойности, от типа, връщан от метода
Типове връщана стойност
static void AddOne(int n)
{
n += 1;
Console.WriteLine(n);
}
static int PlusOne(int n)
{
return n + 1;
}
Липсва
команда return
връща стойност
от тип int
21
22
o Ключовата дума return прекъсва изпълнението на метода
o Връща указаната стойност
o Void методите могат да бъдат завършени чрез команда return
Оператор return
static string ReadFullName()
{
string firstName = Console.ReadLine();
string lastName = Console.ReadLine();
return firstName + " " + lastName;
}
return;
Връща string
22
23
o Връщаната стойност може да бъде:
oПрисвоена на променлива:
oИзползвана в израз:
oПодадена на друг метод:
Използването на връщана стойност
int max = GetMax(5, 10);
decimal total = GetPrice() * quantity * 1.20m;
int age = int.Parse(Console.ReadLine());
23
24
oКонвертира температури от Фаренхайт към Целзий:
Конвертор на температури – пример
static void Main()
{
Console.Write("Temperature in Fahrenheit: ");
double fahrenheit = double.Parse(Console.ReadLine());
double celsius = FahrenheitToCelsius(fahrenheit);
Console.Write("Temperature in Celsius: {0:F2}", celsius);
}
static double FahrenheitToCelsius(double degrees)
{
double celsius = (degrees - 32) * 5 / 9;
return celsius;
}
24
25
oСъздайте метод който пресмята и връща лицето на
триъгълник по дадени основа и височина
Задача: Пресмятане на лице на триъгълник
b = 3
hb = 4
25
A = 6
26
oСъздайте метод с два параметъра от тип double, който
връща резултат от тип double:
Решение: Пресмятане на лице на триъгълник
static double CalcTriangleArea(double width, double height)
{
return width * height / 2;
}
static void Main()
{
double width = double.Parse(Console.ReadLine());
double height = double.Parse(Console.ReadLine());
Console.WriteLine(CalcTriangleArea(width, height));
}
26
27
oСъздайте метод, който изчислява и връща стойността на
число, повдигнато на степен:
Задача: Метод за повдигане на степен
static double RaiseToPower(double number, int power)
{
double result = 1;
for (int i = 0; i < power; i++)
result *= number;
return result;
}
81
34
256
28
27
28
Предефиниране на методи
28
29
oКомбинацията от името и параметрите на метод се нарича
негова сигнатура
oСигнатурата ни помага да различим методи с еднакви имена
oКогато два метода с едно и също име имат различна
сигнатура, това се нарича „предефиниране“ на метод
static void Print(string text)
{
Console.WriteLine(text);
}
Сигнатура на метод
Method's
signature
29
30
oИзползване на едно и също име за множество методи с
различни сигнатури (име и параметри на метода)
static void Print(string text, int number)
{
Console.WriteLine(text + ' ' + number);
}
static void Print(int number)
{
Console.WriteLine(number);
}
static void Print(string text)
{
Console.WriteLine(text);
}
Предефиниране на методи
Методи с различни
сигнатури
30
31
oТипът данни, връщани от метода не е част от сигнатурата му
oРазгледайте следния пример:
oКак компилаторът да разбере кой метод да извика?
static void Print(string text)
{
Console.WriteLine(text);
}
Сигнатура и връщан тип данни
static string Print(string text)
{
return text;
}
Грешка по време
на компилиране!
31
32
33
Multiple Choice
Как се нарича конвенцията за именуване на параметрите на метод?
Pascal Case
Kebab Case
Snake Case
Camel Case
34
Multiple Choice
В кой ред имената на всички методи спазват препоръките за именуване?
Method1, FindStudent, HandleStuff, SampleMethod
LoadReport, Method1, HandleStuff, DoSomething
FindStudent, LoadReport, CalculateArea, DirtyHack
в нито един от изброените
35
Multiple Choice
Тялото на методите, циклите и if-овете и switch-овете се ограждат в къдрави скоби?
Да
Не
36
Multiple Select
Кои от твърдения спадат към добрите практики при писане на методи?
Разделете методите на няколко по-дълги метода
Избягвайте методи, по-дълги от един екран
Разделете методите на няколко по-кратки метода
Методът трябва да изпълнява една добре дефинирана задача
37
Multiple Choice
Метод е преименована част от кода, която може да бъде извикана?
Да
Не
38
Multiple Select
Кои от твърденията са грешни за нуждата от използване на методи?
Програмирането става по-обозримо
Кодът може да се използва еднократно
Увеличават се повторенията в кода
Подобрява се четимостта на кода
Малките задачи се преобразуват в по-големи
39
Open Ended
По какъв начин ще извикате метода и какъв резултат ще се принтира на конзолата?
40
Multiple Choice
Какво изключение ще бъде прихванато, ако даден метод извика собствената си дефиниция в своето тяло?
ArgumentException
StackOverflowException
InvalidOperationException
няма да бъде прихванато такова
41
Open Ended
Как се наричат конкретните стойности, които се подават при извикването на методите?
42
Multiple Select
Кои от изброените твърдения са верни за параметрите на методите?
Може да се подадат нула или повече параметъра
Може да се подадат един или повече параметъра
Всеки параметър има име и тип
Всеки параметър има име, но може да няма тип
Може да има няколко параметъра от различен тип
43
Multiple Choice
Какъв ще бъде резултатът от изпълнението на следния метод?
числата от 0 до 99 включително на един ред
числата от 0 до 100 включително на отделни редове
числата от 0 до 100 включително на един ред
нищо, защото за метода няма подадени аргументи
44
Multiple Choice
Типът void връща ли стойност?
Да
Не
45
Open Ended
Кой оператор се използва за връщане на стойности в методи
46
Multiple Choice
Сигнатура на метод наричаме:
Комбинация от името и типа на връщане
Комбинация от името, параметрите му и типа на връщане
Комбинация от името и параметрите му
Комбинация от параметрите му и типа на връщане
47
Multiple Choice
Какво е вярното определение за операцията предефиниране на методи?
Използване на едно и също име за множество методи с различни сигнатури
Използване на различни имена за множество методи с различни сигнатури
Използване на едно и също име за множество методи с еднаква сигнатура
Нито едно от изброените
48
Multiple Choice
Ще си стигне ли до грешка по време на компилация според следния пример?
Да
Не
49
Multiple Choice
Връщаната стойност от метод може ли да се използва в израз?
Да
Не
Методи
Дефиниране, предефиниране и
използване на методи
Пламенна Петрова
Спец. Модул за придобиване на професионална
квалификация ,,учител’’
https://github.com/plamenna-petrova/ProgrammingFundamentals10D
Show answer
Auto Play
Slide 1 / 49
SLIDE
Similar Resources on Wayground
45 questions
Суспільно-політичне життя на українських землях у складі Російс
Presentation
•
9th Grade
39 questions
Склад регіону та політична карта Америки.
Presentation
•
10th Grade
39 questions
Вводный меминар
Presentation
•
KG
42 questions
20 Теорія кольору. Колористика. психологія кольору
Presentation
•
11th Grade
48 questions
01 Поняття графічної культури. Дизайн і його тенденції
Presentation
•
11th Grade
40 questions
User Experience Design: The Process
Presentation
•
10th Grade
39 questions
США
Presentation
•
10th Grade
44 questions
Continents and Oceans
Presentation
•
11th Grade
Popular Resources on Wayground
20 questions
STAAR Review Quiz #3
Quiz
•
8th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
6 questions
Marshmallow Farm Quiz
Quiz
•
2nd - 5th Grade
20 questions
Main Idea and Details
Quiz
•
5th Grade
20 questions
Context Clues
Quiz
•
6th Grade
20 questions
Inferences
Quiz
•
4th Grade
19 questions
Classifying Quadrilaterals
Quiz
•
3rd Grade
12 questions
What makes Nebraska's government unique?
Quiz
•
4th - 5th Grade
Discover more resources for Computers
50 questions
STAAR English 2 Review
Quiz
•
10th Grade
20 questions
Figurative Language Review
Quiz
•
10th Grade
20 questions
Grammar
Quiz
•
9th - 12th Grade
31 questions
Easter Trivia
Quiz
•
KG - 12th Grade
16 questions
Circles - Equations, Central & Inscribed Angles
Quiz
•
9th - 12th Grade
46 questions
Unit 4 Geosphere Test Review
Quiz
•
9th - 12th Grade
10 questions
Calculating Surface Area of a Triangular Prism
Interactive video
•
6th - 10th Grade
20 questions
Central Angles and Arc Measures 2
Quiz
•
10th Grade