Презентация по основам алгоритмизации на тему
Читать

Презентация по основам алгоритмизации на тему "Функции"

Cкачать презентацию: Презентация по основам алгоритмизации на тему "Функции"

    Ничего не найдено.
Click here to cancel reply.

Презентация по слайдам:


Слайд #1

Ленинск-Кузнецкий, 2023
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
Основы алгоритмизации
и программирования
Функции и процедуры

Слайд #2

С# — объектно-ориентированный язык, поэтому написанная на нем программа представляет собой совокупность взаимодействующих между собой классов.
Основные понятия

Слайд #3

using System;
 

namespace HelloApp
{



       class Program
    {
        static void Main(string[] args)
        {
             
        }
    }
}
Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleApplication1.
Директива using System разрешает использовать имена стандартных классов из пространства имен System
Функция Мain является главной функцией приложения и точкой входа программы – точнее она является методом класса Program
Общая структура программы

Слайд #4

Функция в С# может быть объявлена только в рамках класса
using System;
 namespace HelloApp
{
       class Program
    {
        static void Main(string[] args)
        {
             
        }
    }
}
Общая структура программы

Слайд #5

Функция - подпрограмма.
Программа - это решение прикладной задачи
Функция – это решение в рамках программы.
Функция позволяет уменьшить размер программы за счет того, что не нужно повторно писать какой-то фрагмент кода, достаточно вызвать объявленную функцию.
Функции, которые не возвращают значение, называют процедурами
Функции в С# называют методами.
Функции и процедуры

Слайд #6

Первая строка в объявлении функции называется заголовком
[модификатор доступа] [тип возвращаемого значения] [имя функции] ([аргументы])
{
// тело функции
}


public int max(int f, int s)
{    
if ( f > s )        
return f;    
else        
return s;
}
Структура

Слайд #7

Модификатор доступа (области видимости) может быть
private —ограниченный доступ к методу только из содержащего его класса или структуры
public — доступ из любого фрагмента кода в рамках приложения



Структура

Слайд #8

private double A()
{ }

public int B()
{ }

public string Stepen(int a, int b)
{ }
Назовите открытые и закрытые методы
Задание

Слайд #9

Тип возвращаемого значения используется для указания типа возвращаемого значения
Если функция, возвращает целое число, то нужно указать тип int
Если функция не возвращает никакого значения, то для этого используется ключевое слово void (ghjwtlehf)
[тип возвращаемого значения]
public int max(int f, int s)
{    
}
public void max(int f, int s)
{    
}
Структура

Слайд #10

Имя функции должно отражать суть метода.
[имя функции]
Структура

Слайд #11

Аргументы – это данные, которые необходимы для выполнения функции.
Аргументы записываются в формате
[тип] [идентификатор]
Если аргументов несколько, они отделяются запятой. Аргументы могут отсутствовать.
([аргументы])

public int max(int f, int s)
{    
}
public void max(int f)
{    
}
public void max()
{    
}
Структура

Слайд #12

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
Задание

Слайд #13




Назовите:
модификатор доступа,
тип возвращаемого значения,
идентификатор (имя),
параметр (аргумент).

Задание

Слайд #14

Функция 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);

Слайд #15

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

Слайд #16

Назовите имя метода
Это процедура или функция?
Что выполняет тело метода?
Какие параметры содержит метод?

public void SayHello()
{
    Console.WriteLine("Hello");
}
Задание

Слайд #17

В функции в качестве типа возвращаемого значения вместо void используется любой другой тип. В данном случае тип int.
В функциях обязательно должен использоваться оператор return, после которого ставится возвращаемое значение.
Оператор return возвращает значение и производит выход из метода.
Возвращаемое значение должно иметь тот же тип, что значится в определении функции, т.к. функция возвращает значение типа int, после оператора return стоит число 1 - которое неявно является объектом типа int.
int Factorial()
{    return 1;}
Различия функции от процедуры

Слайд #18

Назовите:
Возвращаемый тип
Функция это или процедура?
Какое значение возвращает оператор return?
 string Hello()
{    return "Hell to World"; }
Различия функции от процедуры

Слайд #19

После оператора 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

Слайд #20

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

Слайд #21

Ленинск-Кузнецкий, 2023
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
Основы алгоритмизации
и программирования
Вызов функций и процедур

Слайд #22

Для функции
Тип Имя_переменной1=
= new Имя_класса().Имя_метода(Имя_переменной2);

или
new Имя_класса().Имя_метода(Имя_переменной2);

Имя_переменной1 – это имя переменной, которая вызывает метод для получения значения из него, при заданном параметре (Имя_переменной2)
Имя_переменной2 – значение переменной передается в метод.
При передаче аргументов параметрам по значению параметр метода получает не саму переменную, а ее копию и работает с этой копией
Передача значений по параметрам

Слайд #23

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 и увеличивает значение этой копии.
Передача значений по параметрам

Слайд #24

Метод
[модификатор доступа] [тип возвращаемого значения] [имя функции] (ref тип параметр1, ref тип параметр2, … )
Вызов
Тип Имя_переменной1=
= new Имя_класса().Имя_метода(ref Имя_переменной2, ref Имя_переменной3, …);
Имя_переменной1 – это имя переменной, которая вызывает метод для получения значения из него, при заданном параметре (Имя_переменной2, Имя_переменной3, …)
Имя_переменной2 – значение переменной передается в метод.

Передача значений по параметрам
При передаче значений параметрам по ссылке метод получает адрес переменной в памяти. Если в методе изменяется значение параметра, передаваемого по ссылке, то изменяется и значение переменной, которая передается на его место

Слайд #25

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}");
}
Передача значений по параметрам

Слайд #26

Вместо оператора return для возвращения значений используется out
Метод
[модификатор доступа] [тип возвращаемого значения] [имя функции] (тип параметр1, out тип параметр2)
Вызов
new Имя_класса().Имя_метода(Имя_переменной2, out Имя_переменной3);
Выходные параметры

Слайд #27

Выходные параметры
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

Слайд #28

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
Выходные параметры

Слайд #29

если неизвестен тип значений, которые будут присвоены параметрам, то можно для их определения использовать оператор 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);
}
Выходные параметры

Слайд #30

Модификатор 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);
}

Слайд #31



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);  // ! Ошибка
Задание

Слайд #32

При вызове методов значения для параметров можно передавать не по порядку
void PrintPerson(string name, int age = 1)
{ Console.WriteLine($"Name: {name}  Age: {age}"); }
Вызов
PrintPerson("Tom", age: 37); 
PrintPerson(age:41, name: "Bob");         
PrintPerson(name:"Sam");}
Именованные параметры