
- •13.0. Введение в классы, объекты и методы
- •13.1. Синтаксис класса
- •14.0. Подпрограммы
- •14.1. Основные понятия
- •14.2. Сравнение вариантов
- •14.3. Описание методов (процедур и функций)
- •14.4. Аргументы и параметры
- •14.5. Области действия имен
- •14.6. Тело метода (процедуры и функции)
- •14.7. Вызов метода. Синтаксис.
- •14.8. Функция
- •14.9. Процедура
14.5. Области действия имен
Структура подпрограммы идентична структуре программы.
Имена, объявленные в главной программе являются глобальными. Они доступны во всех внутренних точках, в том числе и в подпрограммах.
Имена, объявленные в методе, являются локальными. Они доступны во всех внутренних точках подпрограммы.
Локальноеимя вовнешнейпрограмменедоступно. Память под них выделяетсяавтоматическив момент вызова метода.
Если используются одинаковыелокальное и глобальное имя, то внутри метода локальное имяблокируетглобальное.
14.6. Тело метода (процедуры и функции)
Синтаксически тело метода является блоком, который представляет собой последовательность инструкций и описание переменных заключенных в {…}.
В теле функции в блоке должен быть хотя бы один оператор, возвращающий значение функции в формате
return <выражение>
Переменные, описанные в блоке, считаются локальными в этом блоке.
14.7. Вызов метода. Синтаксис.
Функция может быть вызвана в выражении, а процедура – как оператор тела блока. Сам вызов метода, независимо от того, процедура это или функция, имеет один и тот же синтаксис:
Имя_метода([список фактических аргументов]);
Если это оператор, то вызов завершается точкой с запятой.
Формальный параметр представляет собой идентификатор параметра, а фактический аргумент – «выражение», значительно более сложную синтаксическую конструкцию:
[ ref | out ] выражение
В момент вызова метода происходит:
1. вычисление фактических аргументов, которые являются выражением,
2. в точке вызова создается блок, в котором происходит замена имен параметров фактическими аргументами.
14.8. Функция
Задача1. Написать функцию, проверяющую, является ли целое число, введенное с клавиатуры четным. Программа должна использовать эту функцию, проверять является ли число четным или нет, и выводить соответствующее сообщение.
using System;
using System.Collections.Generic;
using
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)
{
intm;
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();
}
}
}
14.9. Процедура
Задача2.
Вывести таблицу квадратных корней.
Для оформления таблицы использовать процедуру Line.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
staticvoidLine(intn,charc) // Процедура “Рисовать линию” с параметрамиnи с
{
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();
}
}
}
: