Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кусовая работа.docx
Скачиваний:
5
Добавлен:
21.09.2019
Размер:
619.11 Кб
Скачать
    1. Контрольные примеры

Контрольный пример 1:

Пример 1 представлен на рисунке 9.

Ввод: мама ушла в магазин

Вывод: магазин в ушла мама

Рисунок 9 – пример работы по задаче 4.

Пример 2:

Пример 2 представлен на рисунке 10.

Ввод: казнить нельзя, помиловать

Вывод: помиловать нельзя казнить.

Рисунок 10 – пример работы по задаче 4.

Пример 3:

Пример 3 представлен на рисунке 11.

Ввод: шла саша по шоссе и сосала сушку

Вывод: сушку сосала и шоссе по саша шла

Рисунок 11 – пример работы по задаче 4.

  1. ЗАДАЧА 5

    1. Задание

Дано предложение, написать его в обратном порядке слов.

    1. Входные данные

Предложение тип string.

    1. Выходные данные

Предложение в обратном порядке слов.

    1. Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab5_v6

{

class Program

{

static void Main(string[] args)

{

Console.Write("Введите предложение: ");

StringBuilder input = new StringBuilder(Console.ReadLine());

int i = input.Length - 1;

int lastSpace = i;

while (i >= 0)

{

while (i >= 0 && input[i] != ' ') i--;

{

char[] buf = new char[lastSpace - i];

input.CopyTo(i + 1, buf, 0, lastSpace - i);

Console.Write(buf);

if (i > 0) Console.Write(' ');

};

lastSpace = i;

i--;

}

Console.WriteLine();

Console.ReadKey();

}

}

}

    1. Контрольные примеры

Контрольный пример 1:

Пример 1 представлен на рисунке 12.

Ввод: мама ушла в магазин

Вывод: магазин в ушла мама

Рисунок 12 – пример работы по задаче 5.

Пример 2:

Пример 2 представлен на рисунке 13.

Ввод: казнить нельзя, помиловать

Вывод: помиловать нельзя казнить.

Рисунок 13 – пример работы по задаче 5.

Пример 3:

Пример 3 представлен на рисунке 14.

Ввод: шла саша по шоссе и сосала сушку

Вывод: сушку сосала и шоссе по саша шла

Рисунок 14 – пример работы по задаче 5.

  1. Задача 6

    1. Задание

Класс «Окружность». В классе определить поля с координатами центра окружности и радиусом окружности, автовычисляемые поля, хранящие значения длины окружности и площади круга, ограниченного окружностью, непараметризированный метод, определяющий пересекает ли заданная окружность оси координат, параметризированный метод, определяющий длину отрезка, отсекаемого окружностью от заданной прямой (прямая задается как y=kx+b, то есть задаются только параметры k и b, если прямая не пересекает окружность, то метод возвращает 0).

    1. Входные данные

Координаты центра окружности, радиус окружности, параметры прямой a b тип double.

    1. Выходные данные

Площадь и длина окружности, длина отрезка пересекающею окружность.

    1. Листинг программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab6

{

class Round

{

public double Xc, Yc;

public double R;

public double S, L;

public Round(double _Xc, double _Yc, double _R)

{

Xc = _Xc;

Yc = _Yc;

R = _R;

S = Math.PI * R * R;

L = 2 * Math.PI * R;

}

public bool checkOxy()

{

return (Xc * Xc + Yc * Yc) < (R * R);

}

public double getModule(double k, double b)

{

double d = Math.Pow((2 * Xc - 2 * k * b - 2 * Yc * k), 2) + 4 * (k * k + 1) * (R * R - Yc * Yc - 2 * Yc * b - Xc * Xc);

if (d <= 0) return 0;

else

{

double x1 = ((2 * Xc - 2 * k * b - 2 * Yc * k) + Math.Pow(d, 0.5)) / 2 / (k * k + 1);

double x2 = ((2 * Xc - 2 * k * b - 2 * Yc * k) - Math.Pow(d, 0.5)) / 2 / (k * k + 1);

double y1 = k * x1 + b;

double y2 = k * x2 + b;

return Math.Pow(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2), 0.5);

}

}

}

class Program

{

static void Main(string[] args)

{

Console.Write("Введите Xc: ");

double Xc = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите Yc: ");

double Yc = Convert.ToDouble(Console.ReadLine());

Console.Write("Введите R: ");

double R = Convert.ToDouble(Console.ReadLine());

Round round = new Round(Xc, Yc, R);

Console.WriteLine("S = {0}", round.S);

Console.WriteLine("L = {0}", round.L);

if (round.checkOxy()) Console.WriteLine("Окружность пересекает оси координат");

else Console.WriteLine("Окружность не пересекает оси координат");

Console.WriteLine("\nВведите параметры линии: ");

Console.Write("k = ");

double k = Convert.ToDouble(Console.ReadLine());

Console.Write("b = ");

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

double m = round.getModule(k, b);

if (m == 0) Console.WriteLine("Линия не пересекает окружность");

else Console.WriteLine("Длина отрезка пересекающего линию: {0}", m);

Console.ReadKey();

}

}

}