Презентация по основам алгоритмизации на тему "Функции"
- Рубрика: Презентации / Другие презентации
- Просмотров: 0
Презентация для классов "Презентация по основам алгоритмизации на тему "Функции"" онлайн бесплатно на сайте электронных школьных презентаций uchebniki.org.ua
Ленинск-Кузнецкий, 2023
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
Основы алгоритмизации
и программирования
Функции и процедуры
С# — объектно-ориентированный язык, поэтому написанная на нем программа представляет собой совокупность взаимодействующих между собой классов.
Основные понятия
using System;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
}
}
}
Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleApplication1.
Директива using System разрешает использовать имена стандартных классов из пространства имен System
Функция Мain является главной функцией приложения и точкой входа программы – точнее она является методом класса Program
Общая структура программы
Функция в С# может быть объявлена только в рамках класса
using System;
namespace HelloApp
{
class Program
{
static void Main(string[] args)
{
}
}
}
Общая структура программы
Функция - подпрограмма.
Программа - это решение прикладной задачи
Функция – это решение в рамках программы.
Функция позволяет уменьшить размер программы за счет того, что не нужно повторно писать какой-то фрагмент кода, достаточно вызвать объявленную функцию.
Функции, которые не возвращают значение, называют процедурами
Функции в С# называют методами.
Функции и процедуры
Первая строка в объявлении функции называется заголовком
[модификатор доступа] [тип возвращаемого значения] [имя функции] ([аргументы])
{
// тело функции
}
public int max(int f, int s)
{
if ( f > s )
return f;
else
return s;
}
Структура
Модификатор доступа (области видимости) может быть
private —ограниченный доступ к методу только из содержащего его класса или структуры
public — доступ из любого фрагмента кода в рамках приложения
Структура
private double A()
{ }
public int B()
{ }
public string Stepen(int a, int b)
{ }
Назовите открытые и закрытые методы
Задание
Тип возвращаемого значения используется для указания типа возвращаемого значения
Если функция, возвращает целое число, то нужно указать тип int
Если функция не возвращает никакого значения, то для этого используется ключевое слово void (ghjwtlehf)
[тип возвращаемого значения]
public int max(int f, int s)
{
}
public void max(int f, int s)
{
}
Структура
Аргументы – это данные, которые необходимы для выполнения функции.
Аргументы записываются в формате
[тип] [идентификатор]
Если аргументов несколько, они отделяются запятой. Аргументы могут отсутствовать.
([аргументы])
public int max(int f, int s)
{
}
public void max(int f)
{
}
public void max()
{
}
Структура
private void A()
{}
public int B()
{}
public double Stepen(int a, int b)
{
double r;
r = (double)Math.Pow(a, b);
return (r);
}
Метод A, В и С являются закрытыми или открытыми процедурами или функцией?
Назовите параметры
Назовите имена методов
Назовите типы возвращаемых значений
Тело функции Stepen
Задание
Назовите:
модификатор доступа,
тип возвращаемого значения,
идентификатор (имя),
параметр (аргумент).
Задание
Функция Main является главной функцией приложения и точкой входа программы
static void Main(string[] args)
{ }
Функция Main
static - cтатическое поле, свойства относятся ко всему классу/ всей структуре, для обращения к подобным членам необяза-тельно создавать экземпляр класса / структуры
class Foo {
public int S1(int a, int b)
{ return a + b; }
public static int S2(int a, int b)
{ return a + b; }
}
Вызов
int res = new Foo().S1(1,2);
int res = Foo.S2(10, 20);
static void Main(string[] args)
{
private void A() {}
public int B() {}
public double Stepen(int a, int b)
{
double r;
r = (double)Math.Pow(a, b);
return (r); }
}
ошибка
static void Main(string[] args)
{ }
private void A() {}
public int B() {}
private void A() {
public int B() {}}
ошибка
Найти ошибки, объяснить их, исправить
Проверка
Функция Main
Назовите имя метода
Это процедура или функция?
Что выполняет тело метода?
Какие параметры содержит метод?
public void SayHello()
{
Console.WriteLine("Hello");
}
Задание
В функции в качестве типа возвращаемого значения вместо void используется любой другой тип. В данном случае тип int.
В функциях обязательно должен использоваться оператор return, после которого ставится возвращаемое значение.
Оператор return возвращает значение и производит выход из метода.
Возвращаемое значение должно иметь тот же тип, что значится в определении функции, т.к. функция возвращает значение типа int, после оператора return стоит число 1 - которое неявно является объектом типа int.
int Factorial()
{ return 1;}
Различия функции от процедуры
Назовите:
Возвращаемый тип
Функция это или процедура?
Какое значение возвращает оператор return?
string Hello()
{ return "Hell to World"; }
Различия функции от процедуры
После оператора return можно указывать выражения, которые возвращают результат вычисления.
static int GetSum()
{ int x = 2;
int y = 3;
return x + y; }
Между возвращаемым типом метода и возвращаемым значением после оператора return должно быть соответствие/ Найти ошибку
static string GetHello()
{ Console.WriteLine("Hello");}
static int GetSum()
{ int x = 2;
int y = 3;
return "5";
return
2)
static string GetHello()
{
return "Hello";
Console.WriteLine("After return");//эта строка никогда не выполнится, почему?
}
Оператор return используется и в процедурах, для того чтобы произвести выход из метода в зависимости от условий
1)
static void SayHello()
{ int hour = 23;
if(hour > 22)
{ return; }
else
{ Console.WriteLine("Hello"); }}
return
Ленинск-Кузнецкий, 2023
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
Основы алгоритмизации
и программирования
Вызов функций и процедур
Для функции
Тип Имя_переменной1=
= new Имя_класса().Имя_метода(Имя_переменной2);
или
new Имя_класса().Имя_метода(Имя_переменной2);
Имя_переменной1 – это имя переменной, которая вызывает метод для получения значения из него, при заданном параметре (Имя_переменной2)
Имя_переменной2 – значение переменной передается в метод.
При передаче аргументов параметрам по значению параметр метода получает не саму переменную, а ее копию и работает с этой копией
Передача значений по параметрам
public int T1(int n)
{ n++;
Console.WriteLine($"Число в методе Т: {n}");
return n; }
static void Main(string[] args)
{ int number = 5;
Console.WriteLine($"Число в методе Т: {number}");
int res = new Program().T1(number);
Console.WriteLine($"Число в методе Т: {number}");
}
При вызове метод T1 получает копию переменной number и увеличивает значение этой копии.
Передача значений по параметрам
Метод
[модификатор доступа] [тип возвращаемого значения] [имя функции] (ref тип параметр1, ref тип параметр2, … )
Вызов
Тип Имя_переменной1=
= new Имя_класса().Имя_метода(ref Имя_переменной2, ref Имя_переменной3, …);
Имя_переменной1 – это имя переменной, которая вызывает метод для получения значения из него, при заданном параметре (Имя_переменной2, Имя_переменной3, …)
Имя_переменной2 – значение переменной передается в метод.
Передача значений по параметрам
При передаче значений параметрам по ссылке метод получает адрес переменной в памяти. Если в методе изменяется значение параметра, передаваемого по ссылке, то изменяется и значение переменной, которая передается на его место
public int T1(ref int n, ref int a)
{
n++;
Console.WriteLine($"Число в методе Т: {n}");
return n;
}
static void Main(string[] args)
{
int number = 5;
Console.WriteLine($"Число в методе Т: {number}");
int res = new Program().T1(ref number, ref number);
Console.WriteLine($"Число в методе Т: {number}");
}
Передача значений по параметрам
Вместо оператора return для возвращения значений используется out
Метод
[модификатор доступа] [тип возвращаемого значения] [имя функции] (тип параметр1, out тип параметр2)
Вызов
new Имя_класса().Имя_метода(Имя_переменной2, out Имя_переменной3);
Выходные параметры
Выходные параметры
public void T1(int x, int y, out int result)
{
result = x+y;
}
static void Main(string[] args)
{
int number1;
new Program().T1( 1, 5, out number1);
Console.WriteLine(number1); }
// результат 6
out позволяет вернуть из метода не одно значение, а несколько
public void T1(int x, int y, out int result, out int proizv)
{
result = x + y;
proizv = x * y;
}
static void Main(string[] args)
{
int sum;
int pr;
new Program().T1(1, 5, out sum, out pr);
Console.WriteLine(sum+ " "+ pr);
}
// 6 5
Выходные параметры
если неизвестен тип значений, которые будут присвоены параметрам, то можно для их определения использовать оператор var
public void T1(int x, int y, out int result)
{
result = x + y;
}
static void Main(string[] args)
{
new Program().T1(1, 5, out var sum);
Console.WriteLine(sum);
}
Выходные параметры
Модификатор in указывает, что данный параметр будет передаваться в метод по ссылке, внутри метода его значение параметра нельзя будет изменить.
Входные параметры
public void T1(in int x,in int y, out int result)
{
result = x + y;
}
static void Main(string[] args)
{
new Program().T1(1, 5, out var sum);
Console.WriteLine(sum);
}
void Sum(int x, int y)
{
int result = x + y;
Console.WriteLine($"{x} + {y} = {result}");
}
Sum(10, 15);
void Sum(int x, int y)
{ Console.WriteLine($"{x} + {y} = { x + y }");}
int a = 10, b = 15, c = 6;
Sum(a, b);
Sum(3, c);
Sum(14, 4 + c);
void Sum(int x, int y)
{ Console.WriteLine($"{x} + {y} = { x + y }");}
int a,
int b = 15;
Sum(a, b); // ! Ошибка
Задание