Тернарный оператор ?:Лекция 25

Содержание

Слайд 2

Пример:

логическое выражение ? выражение1 : выражение2

int b, c;
c = -4;
b

Пример: логическое выражение ? выражение1 : выражение2 int b, c; c =
= c >= 0 ? c : c*c;

Результат b = 16

int b, c;
c = -4;
if (c >= 0)
{b =c;}
else
{b= c*c; }

Логическое выражение

Выражение 1

Слайд 3

Пример:

логическое выражение ? выражение1 : выражение2

int b, c;
c = -4;
b

Пример: логическое выражение ? выражение1 : выражение2 int b, c; c =
= c >= 0 ? c : c*c;

int b, c;
c = -4;
if (c >= 0)
{b =c;}
else
{b= c*c; }

Логическое выражение

Выражение 2

Слайд 4

Пример:

Или

Пример: Или

Слайд 5

Оператор return

Оператор return завершает выполнение функции и возвращает управление вызывающей функции. 
Выполнение возобновляется в

Оператор return Оператор return завершает выполнение функции и возвращает управление вызывающей функции.
вызывающей функции в точке сразу после вызова. 
Оператор return может возвращать значение, передавая его вызывающей функции.

Слайд 6

Программирование на языке Си#

Функции

Программирование на языке Си# Функции

Слайд 7

В чем разница между методами и функциями?
В ООП языках, таких

В чем разница между методами и функциями? В ООП языках, таких как
как C #, Java и т.д. используется термин метод, а для не-ООП программирования, таких как консольные "C" и других – функция.

Если переменные хранят некоторые значения, то (функции) методы содержат собой набор операторов, которые выполняют определенные действия. По сути метод - это именованный блок кода, который выполняет некоторые действия.

В чем разница между процедурами и функциями?
Процедура – выполняет, а функция выполняет и возвращает в основную программу.

Слайд 8

Например, по умолчанию консольная программа на языке C# должна содержать как минимум

Например, по умолчанию консольная программа на языке C# должна содержать как минимум
один метод - метод Main, который является точкой входа в приложение:

Ключевое слово static является модификатором. Далее идет тип возвращаемого значения. В данном случае ключевое слово void указывает на то, что метод ничего не возвращает.
Далее идет название метода - Main и в скобках параметры - string[] args. И в фигурные скобки заключено тело метода - все действия, которые он выполняет. В данном случае метод Main пуст, он не cодержит никаких операторов и по сути ничего не выполняет.

Слайд 9

В данном случае определены еще два метода: SayHello и SayGoodbye.
Оба метода

В данном случае определены еще два метода: SayHello и SayGoodbye. Оба метода
определены в рамках класса Program, они имеют модификатор static, а в качестве возвращаемого типа для них определен тип void. То есть данные методы ничего не возвращают, просто производят некоторые действия. И также оба метода не имеют никаких параметров, поэтому после названия метода указаны пустые скобки.

Слайд 10

Оба метода выводят на консоль некоторую строку. Причем для вывода на консоль

Оба метода выводят на консоль некоторую строку. Причем для вывода на консоль
методы используют другой метод, который определен в .NET по умолчанию - Console.WriteLine().
Но если мы запустим данную программу, то мы не увидим никаких сообщений, которые должны выводить методы SayHello и SayGoodbye.
Потому что стартовой точкой является метод Main. При запуске программы выполняется только метод Main и все операторы, которые составляют тело этого метода. Все остальные методы не выполняются.

Слайд 11

ВЫЗОВ МЕТОДА

Чтобы использовать методы SayHello и SayGoodbye в программе, нам надо вызвать

ВЫЗОВ МЕТОДА Чтобы использовать методы SayHello и SayGoodbye в программе, нам надо
их в методе Main.
Для вызова метода указывается его имя, после которого в скобках идут значения для его параметров (если метод принимает параметры).

Слайд 12

Например, вызовем методы SayHello и SayGoodbye:

Преимуществом методов является то, что их можно

Например, вызовем методы SayHello и SayGoodbye: Преимуществом методов является то, что их
повторно и многократно вызывать в различных частях программы.

Слайд 13

Возвращение значения

Если метод имеет любой другой тип, отличный от void, то такой

Возвращение значения Если метод имеет любой другой тип, отличный от void, то
метод обязан вернуть значение этого типа. Для этого применяется оператор return, после которого идет возвращаемое значение:

Пример:

Метод GetHello имеет тип string, следовательно, он должен возвратить строку. Поэтому в теле метода используется оператор return, после которого указана возвращаемая строка.
Метод GetSum имеет тип int, следовательно, он должен возвратить значение типа int - целое число. Поэтому в теле метода используется оператор return, после которого указано возвращаемое число (в данном случае результат суммы переменных x и y).

Слайд 14

Где ошибка?

Нет return

Тип метода int , а возвращает символ

Где ошибка? Нет return Тип метода int , а возвращает символ

Слайд 15

Return раньше чем вывод

Return раньше чем вывод

Слайд 16

Синтаксис объявления функции (метода):

Модификаторы и параметры необязательны.

Синтаксис объявления функции (метода): Модификаторы и параметры необязательны.

Слайд 17

Задача:
У нас есть разные люди с данными в виде отдельных фамилии, имени,

Задача: У нас есть разные люди с данными в виде отдельных фамилии,
отчества, которые надо вывести на экран - вида Пушкин Александр Сергеевич и Пушкин А.С.
Чтобы задача была правдоподобней можно имитировать ввод данных пользователем или загрузку из внешнего источника, но все это будет пустой тратой времени - реальные приложения все равно работают с графическим и/или веб-интерфейсом.
Просто держим в уме что в реальности людей не два, а две тысячи и заранее их имена не известны.

Слайд 18

Логичнее всего вынести повторяющиеся куски кода в отдельное место, дать им имя

Логичнее всего вынести повторяющиеся куски кода в отдельное место, дать им имя
и во всех остальных местах программы вызывать их по этому имени. Иными словами сделать функции - куски кода с собственными именем, которые принимают на вход какие-то данные, что-то с ними делают и возвращают обратно какие-то данные (хотя возможен вариант когда они ничего не принимают и не возвращают, просто что-то делают!!!!!).

Слайд 19

Пример функции (метода)

string означает, что функция вернет назад строку,
CreateFio(string surname, string

Пример функции (метода) string означает, что функция вернет назад строку, CreateFio(string surname,
name, string otchestvo) - название функции и описание того, что она принимает на вход три строки.

Слайд 21

Если бы функция ничего не принимала и ничего не возвращала, ее описание

Если бы функция ничего не принимала и ничего не возвращала, ее описание
выглядело бы так:

Пример:

class Program
{
static void Func() // дополнительная функция (метод)
{
Console.Write( “x=“);
double x,y;
x=ConvertToInt32(Console.Readline());
y=x*x;
Console.Write( “y=“+y);
}
static void Main() // точка входа в программу
{
Func() ;// первый вызов функции
Func() ;// второй вызов функции
}
}

Слайд 22

Если функция принимает значения и возвращает результат, ее описание выглядело бы так:

Пример:

class

Если функция принимает значения и возвращает результат, ее описание выглядело бы так:
Program
{
static void Func() // дополнительная функция (метод)
{
return x*x;
}
static void Main() // точка входа в программу
{
double x,y;
Console.Write( “x=“);
x=ConvertToInt32(Console.Readline());
y=Func(x) ;// первый вызов функции
Console.Write( “y=“+y);
Console.Write( “x=“);
x=ConvertToInt32(Console.Readline());
y=Func(x) ;// второй вызов функции
Console.Write( “y=“+y);
}
}

Слайд 23

В чем разница?

class Program
{
static void Func() // дополнительная функция (метод)
{

В чем разница? class Program { static void Func() // дополнительная функция
Console.Write( “x=“);
double x,y;
x=ConvertToInt32(Console.Readline());
y=x*x;
Console.Write( “y=“+y);
}
static void Main() // точка входа в программу
{
Func() ;// первый вызов функции
Func() ;// второй вызов функции
}
}

class Program
{
static void Func() // дополнительная функция (метод)
{
return x*x;
}
static void Main() // точка входа в программу
{
double x,y;
Console.Write( “x=“);
x=ConvertToInt32(Console.Readline());
y=Func(x) ;// первый вызов функции
Console.Write( “y=“+y);
Console.Write( “x=“);
x=ConvertToInt32(Console.Readline());
y=Func(x) ;// второй вызов функции
Console.Write( “y=“+y);
}
}

Слайд 24

Напишите функцию  static int min (int a, int b, int c, int d),

Напишите функцию static int min (int a, int b, int c, int
находящую наибольшее из трех данных чисел.
Входные данные
Вводится три целых числа.
Выходные данные
Необходимо вывести  наибольшее из 3-х данных чисел.

Слайд 25

Пример:

Пример:

Слайд 26

1. Вводится три числа.

Console.Write( “a=“);
a=ConvertToInt32(Console.Readline());
Console.Write( “b=“);
b=ConvertToInt32(Console.Readline());
Console.Write( “c=“);
c=ConvertToInt32(Console.Readline());

1. Вводится три числа. Console.Write( “a=“); a=ConvertToInt32(Console.Readline()); Console.Write( “b=“); b=ConvertToInt32(Console.Readline()); Console.Write( “c=“); c=ConvertToInt32(Console.Readline());

Слайд 27

2. Функция нахождения большего из двух.

2. Функция нахождения большего из двух.

Слайд 28

3. Вызов функции нахождения большего из двух.

3. Вызов функции нахождения большего из двух.

Слайд 29

3. Вызов функции нахождения большего из двух два раза.

3. Вызов функции нахождения большего из двух два раза.