Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по языкам.doc
Скачиваний:
14
Добавлен:
15.08.2019
Размер:
679 Кб
Скачать
☆
    1. Порядок выполнения работы

  1. С помощью VSC# создайте простейшее консольное прило­жение для решения первой задачи и выполните программи­рование логического выражения.

  2. С помощью VSC# создайте простейшее консольное прило­жение для решения второй задачи

    1. Графическим методом найдите одну из точек а пересе­чения графиков функций f и f2.

    2. Выполните табуляцию функции у вблизи точки пересе­чения заданных функций.

    1. Требования к содержанию отчета

Отчет о лабораторной работе должен содержать:

  1. формулировку задания;

  2. краткие теоретические сведения;

  3. приближенное определение точки пересечения двух графиков функций для второй задачи;

  4. листинг программ.

    1. Контрольные вопросы

  1. Перечислите операторы сравнения языка C#

  2. Перечислите логические операторы языка C#.

  3. Приведите примеры записи логических условий.

  4. Какие значения возвращают операции сравнения и логиче­ские операции?

  5. Какие инструкции выбора вы знаете?

  6. Какие циклы вы знаете?

  7. Запишите общий синтаксис цикла for.

  8. Запишите общий синтаксис цикла while.

  9. Запишите общий синтаксис цикла do-while.

  10. Дайте понятие цикла.

  11. Какие циклы носят название циклов с предусловием?

  12. Какие циклы носят название циклов с постусловием?

  1. Лабораторная работа №3. Пользовательские методы

    1. Цель работы

Целью лабораторной работы является знакомство с пользова­тельскими методами языка C#.

    1. Теоретическая часть

До сих пор мы писали программы, весь текст которых распола­гался в главном методе Main. Эта технология оказывается не эффек­тивной при написании относительно больших программ, программа становиться мало понятной, повышается вероятность возникновения ошибок. Такие программы обычно разделяют на законченные блоки, оформленные в виде пользовательских методов и расположенные вне метода Main.

Общий синтаксис описания пользовательского метода:

static тип возвращаемого значения имя метода (параметры)

В данной лабораторной работе будем использовать только ста­тические методы. Такие методы имеют атрибут static. Смысл ат­рибута static рассматривается в следующей лабораторной работе. Пользовательский метод должен иметь

тип_возвращаемого_значения, из набора, представленного в прил. 1 или тип void если метод ничего не возвращает. Имя_метода - любой допустимый идентификатор. После имени ме­тода обязательно должны присутствовать две круглые скобки, в ко­торых через запятую, перечисляются параметры метода с указанием их типа (прил. 1). Возможно написание метода, в котором параметры отсутствуют.

Аргумент - передаваемое методу значение.

Параметр - переменная, принимающая значение аргумента, расположенная внутри круглых скобок за именем метода.

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

Даны три квадратных уравнения:

ах2 + 7х + с_ О,

Ьх2 + ах + с = О сх2 + Ьх + а = О.

Найти количество уравнений, имеющих вещественные корни. Листинг 3.1. содержит решение этой задачи. В него входит пользова­тельский метод

static bool RealRadical(double a, double b, double c)

Этот метод возвращает булевский тип true, если квадратное урав­нение имеет вещественные корни или false, в противном случае. Метод принимает три параметра a, b, и с которые являются коэффи­циентами квадратного уравнения. Инструкция

D=b*b-4.0 * a * c;

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

return true; // вещественные корни имеются

приводящая к завершению работы метода и возврату значения true в вызвавший метод. Иначе, выполняется инструкция

return false; // вещественных корней нет

которая также приводит к завершению работы метода, но в этом слу­чае, возвращаемое значение - false.

Листинг 3.1. Файл Ex004.cs

class Ex004

{

// Возвращает true, если квадратное уравнение // axA2+bx+c=0 имеет вещественные корни и // false в потивном случае.

static bool RealRadical(double a, double b, double c)

{

double D; // дискриминант. D=b*b-4.0*a*c; if (D > 0.0)

return true; // вещественные корни имеются. return false; // вещественных корней нет

}

// Главная функция. static void Main()

{

double a, b, c; int Summa;

Console.Write("Kоэффициент a> ");

a = Convert.ToDouble(Console.ReadLine());

Console.Write("Kоэффициент b> ");

b = Convert.ToDouble(Console.ReadLine());

Console.Write("Kоэффициент c> ");

c = Convert.ToDouble(Console.ReadLine());

Summa = 0;

if (RealRadical(a, b, c))

Summa++; if (RealRadical(b, a, c))

Summa++; if (RealRadical(c, b, a))

Summa++;

Console.WriteLine("Kоличество уравнений имеющих " + "вещественные корни: {0}", Summa);

Console.ReadKey();

}

}

Рис. 3.1. Результаты работы программы Ex004

Дано круговое кольцо. D и d - внешний и внутренний радиус кольца. Написать функцию возвращающую площадь кольца и длину внешней укружности.

Листинг 3.2. Файл Ex005.cs

using System; class Ex005 {

// Возвращает квадрат числа x. static double Qad(double x)

{

return x * x;

}

// Возврашает площадь Area и длинну внешней окружности Long // кругового кольца с диаметрами ExternalD и InternalD. static void Ring(double ExternalD, double InternalD, ref double Area, ref double Long)

{

Area = Math.PI * (Qad(ExternalD) - Qad(InternalD)) / 4.0; Long = Math.PI * ExternalD;

}

// Главная функция. static void Main()

{

double D = 0.0, d = 0.0, A=0.0, L=0.0;

Console.Write("Bнешний диаметр кольца > ");

D = Convert.ToDouble(Console.ReadLine()); Console.Write("Bнутренний диаметр кольца> "); d = Convert.ToDouble(Console.ReadLine());

Ring(D, d, ref A, ref L);

Console.WriteLine("Плoщадь кольца: {0}", A); Console.WriteLine("Длинна внешней окружности: {0}", L); Console.ReadKey();

}

}

Р5И C:\Windows\system32\cmd.exe

CD

| 0

нешний диаметр кольца > 45,75 нутренний диаметр кольца> 23,20 лощадь кольца: 1221,15473590903 Длинна внешней окружности: 143,727863901733



□

(ГГ

Рис. 3.2. Результаты работы программы Ex005