Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПргЯВУ_ЛК_СтефановаИА.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.41 Mб
Скачать

13.5. Области действия имен

Структура подпрограммы идентична структуре программы.

Имена, объявленные в главной программе являются глобальными. Они доступны во всех внутренних точках, в том числе и в подпрограммах.

Имена, объявленные в методе, являются локальными. Они доступны во всех внутренних точках подпрограммы.

Локальное имя во внешней программе недоступно. Память под них выделяется автоматически в момент вызова метода.

Если используются одинаковые локальное и глобальное имя, то внутри метода локальное имя блокирует глобальное.

13.6. Тело метода (процедуры и функции)

Синтаксически тело метода является блоком, который представляет собой последовательность инструкций и описание переменных заключенных в {…}.

В теле функции в блоке должен быть хотя бы один оператор, возвращающий значение функции в формате

return <выражение>

Переменные, описанные в блоке, считаются локальными в этом блоке.

13.7. Вызов метода. Синтаксис.

Функция может быть вызвана в выражении, а процедура – как оператор тела блока. Сам вызов метода, независимо от того, процедура это или функция, имеет один и тот же синтаксис:

Имя_метода([список фактических аргументов]);

Если это оператор, то вызов завершается точкой с запятой.

Если это вызов функции, то он входит в выражение.

Формальный параметр представляет собой идентификатор параметра, а фактический аргумент – «выражение», значительно более сложную синтаксическую конструкцию:

[ ref | out ] выражение

В момент вызова метода происходит:

1. вычисление фактических аргументов, которые являются выражением,

2. в точке вызова создается блок, в котором происходит замена имен параметров фактическими аргументами.

13.8. Функция

Задача1 . Написать функцию, проверяющую, является ли целое число, введенное с клавиатуры четным. Программа должна использовать эту функцию, проверять является ли число четным или нет, и выводить соответствующее сообщение.

using System;

using System.Collections.Generic;

u sing System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static bool Chet(int n) // Процедура “Четность”

{ // локальная переменная

if (n % 2 == 0) return true;

else return false;

}

static void Main(string[] args)

{

int m; // глобальная переменная

Console.WriteLine("Определение четности аргумента");

Console.WriteLine();

do

{

Console.Write("m >> ");

m = Convert.ToInt32(Console.ReadLine());

if (Chet(m)) Console.WriteLine("Число четное");

else Console.WriteLine("Число нечетное");

Console.WriteLine();

}

while (m!=0);

Console.ReadLine();

}

}

}

13.9. Процедура

З адача2. Вывести таблицу квадратных корней.

Для оформления таблицы использовать процедуру Line.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Line(int n, char c) // Процедура “Рисовать линию” с параметрами n и с

{ // n – сколько, c – вид символа

for (int k = 0; k < n; k++)

Console.Write(c);

Console.WriteLine(); // Вывод строки с символами С

}

static void Main(string[] args)

{

int m = 18;

Console.WriteLine("Таблица квадратных корней");

Console.WriteLine();

Line(m, '='); // Вызов процедуры “Рисовать линию”

Console.WriteLine(" Число | Корень");

Line(m, '='); // Вызов процедуры “Рисовать линию”

for (int i = 0; i < 10; i++)

{

double q = Math.Sqrt(i);

Console.WriteLine(" {0} | {1,3:f}",i, q);

Line(m, '-'); // Вызов процедуры “Рисовать линию”

}

Console.ReadLine();

}

}

}

: