Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт С# 1 вар 4.doc
Скачиваний:
3
Добавлен:
29.08.2019
Размер:
772.61 Кб
Скачать

4.5 Тестовый пример

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

Задание 1

На участке от -10 до 0 функция задана прямой y = -0.5*x-3.

На участке от 0 до 3 функция задана уравнением окружности y=-√r2- x2

На участке от 3 до 6 функция задана уравнением окружности y=√r2- x2

Y = -0,5*(-10,00)-3=5-3=2

Y = -0,5*(-8,70)-3=4,35-3=1,35

Y = -0,5*(-7,40)-3=3,7-3=0,70

Y = -0,5*(-6,10)-3=3,05-3=0,05

Y = -0,5*(-4,80)-3=2,4-3=-0,60

Y = -0,5*(-3,50)-3=1,75-3=-1,25

Y = -0,5*(-2,20)-3=1,1-3=-1,90

Y = -0,5*(-0,90)-3=0,05-3=-2,55

y=√32- 0,42=-2,97

y=√32- 1,72=-2,47

y=√32- 32 =0,00

y=√32- 4,32=2,47

y=√32- 5,62=2,97

Задание 2

Пусть R=3, точка А с координатами x=3, y=4. При таких значениях точка лежит выше оси Х и вне окружности, следовательно результатом работы программы должно быть значение «Ne popal»

Пусть R= 3, точка А с координатами x=1, y=1. При таких значениях точка лежит выше оси Х в окружности, следовательно результатом работы программы должно быть значение «Popal !!!»

Задание 3

Для проверки правильности вычислений значения функции, заданной с помощью ряда Тейлора, используется математический пакет Matlab 7. Для вычисления значения натурального логарифма необходимо ввести команду log(x), вместо x подставить тестовые значения. Возьмем интервал от 0 до 1, шаг равный 0,3 и посчитаем соответствующие значения логарифма:

log(1,00)=0;

log(1,30)= 0.26236426446749

log(1,60)= 0.47000362924574

log(1,90)= 0.64155388617239

Если результаты работы программы совпали с контрольными, это значит что программа работает верно, и техническое задание выполнено в полном объёме.

Вывод

В соответствии с полученными данными работы программы и результатами тестового примера, можно сделать вывод, что разработанная программа работает верно.

ЛИСТИНГ ПРОГРАММЫ

ПРИЛОЖЕНИЕ А

(обязательное)

using System;

using System.Collections.Generic;

using System.Text;

namespace Laba1var4

{

class Programm

{

//----------------Задание 1. Таблица значений функции

public void graph()

{

double r = 3, y, s;

bool err;

do

{

Console.Clear();

do

{

err = false;

//Console.Clear();

Console.WriteLine("Zadaite velichinu shaga:");

try

{

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

}

catch (Exception e)

{

Console.WriteLine(e.Message);

s = 0;

err = true;

}

}

while (err);

Console.WriteLine("\nx\ty");

Console.WriteLine("_______\t_______");

for (double i = -10; i <= 6; i += s)

{

Console.Write("{0:N}\t", i);

if (i < 0)

Console.WriteLine("{0:N}", y = -0.5*i-3);

if (i >= 0 && i < 3)

Console.WriteLine("{0:N}", Math.Round(y =-Math.Sqrt(Math.Pow(r, 2) - Math.Pow(i , 2)), 2));

if (i >= 3 && i <= 6)

Console.WriteLine("{0:N}", Math.Round(y = Math.Sqrt(Math.Pow(r, 2) - Math.Pow(i-6, 2)), 2));

}

Console.WriteLine("\nNagmite ESC dla vixoda ili lubuu klavishu dla prodolgenia");

}

while (Console.ReadKey().Key != ConsoleKey.Escape);

}

//Задание 2. Серия выстрелов по мишени

public void mish()

{

double x=0, y=0, r=0;

bool err;

ConsoleKeyInfo k;

Console.Clear();

do

{

Console.Write("Vvedite radius mesheni: ");

err = false;

try

{

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

}

catch (Exception e)

{

Console.WriteLine(e.Message);

err = true;

}

}

while (err);

do

{

Console.WriteLine("Vvedite koordinati vistrela:");

do

{

err = false;

try

{

Console.Write("x: ");

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

Console.Write("y: ");

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

}

catch (Exception e)

{

Console.WriteLine(e.Message);

err = true;

}

}

while (err);

if ((y<=x)&&(y>=-r)&&(y<0)&&(x>=-r)&&(x<0) ||

(x >= -r)&&(x<=r)&&(y >= 0)&&(y <= Math.Sqrt(Math.Pow(r, 2) - Math.Pow(x, 2))))

{

Console.WriteLine("\nPopal !!!");

}

else

{

Console.WriteLine("\nNe popal");

}

Console.WriteLine();

do

{

Console.WriteLine("\nVixod - ESC,novii radius - R, prodolgit' - lubaya klavisha");

k = Console.ReadKey();

if (k.Key == ConsoleKey.R)

{

Console.WriteLine();

Console.Write("Novii R: ");

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

}

}

while (k.Key == ConsoleKey.R);

Console.Clear();

}

while (k.Key != ConsoleKey.Escape);

}

//Задание 3. Ряды Тэйлора

public void telor()

{

double xn = 0, xk = 0, dx = 0, e = 0, ln = 0;

bool err;

int p=1,j,i=0, s = 0;

do

{

//ввод данных

do

{

Console.Clear();

Console.WriteLine("Vvedite:");

err = false;

try

{

Console.Write("Xn>-1: ");

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

Console.Write("Xk<=1: ");

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

Console.Write("Dx: ");

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

Console.Write("E: ");

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

if ((xn < -1) || (xk > 1) || (xk < xn) || (dx>(xk-xn)))

{

Console.WriteLine("\nNeverno ykazani znachenia. Nagmite lubuu klavishu dlay povtora");

err = true;

Console.ReadLine();

}

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

err = true;

Console.ReadLine();

}

}

while (err);

//----------вычисления--------------

Console.WriteLine("x\ty");

Console.WriteLine("____\t____");

double x=xn;

double ln1,ln2,delta;

while (xk>=x)

{

j = 1;

ln = x;

do

{

ln1 = Math.Pow(x, j) / j;

j++;

ln2 = Math.Pow(x, j) / (j);

delta = ln1 - ln2;

if ((j % 2) == 0) p = -1;

else p = 1;

ln = ln + ln2 * p;

}

while (e < delta);

Console.Write("{0:N}\t", x);

Console.Write("{0:f8}",ln );

Console.WriteLine("\nBilo prossumirovano " + j + " elementa riada");

x=x+dx;

}

Console.WriteLine("\nNagmite ESC dla vixoda ili lubuu klavishu dla prodolgenia");

}

while (Console.ReadKey().Key != ConsoleKey.Escape);

}

// главная функция

static void Main(string[] args)

{

string s;

do

{

Console.Clear();

Console.WriteLine("Viberite:\n" +

"--Zadanie 1 (1)\n" +

"--Zadanie 2 (2)\n" +

"--Zadanie 3 (3)\n" +

"--Vixod (4)");

s = Console.ReadLine();

Programm op = new Programm();

switch (s)

{

case "1":

{

op.graph();

break;

}

case "2":

{

op.mish();

break;

}

case "3":

{

op.telor();

break;

}

case "4":

{

return;

}

}

}

while (true);

}

}

}

БЛОК-СХЕМА АЛГОРИТМА ПРОГРАММЫ

ПРИЛОЖЕНИЕ Б

(обязательное)

Метод Main

Метод Graph

Метод Mish

Метод Telor

ЭКРАННЫЕ ФОРМЫ

ПРИЛОЖЕНИЕ В

Рисунок В.1 – Стартовое меню

Рисунок В.2 – Результат выполнения задания 1

Рисунок В.3 – Результат выполнения задания 2

Рисунок В.4 – Результат выполнения задания 3