Архив 400руб
Содержимое архива
учеб. Павловская Т.А.
Программирование на языке высокого уровня С#
Л.Р. № 2 ; 3. страница 372
Вариант по журналу 1-1, 2-2, 20-20, 21-1, 22-2.
Выполнить лабораторные работы №2, 3 из учебника Павловской Т. А. «Программирование на языке высокого уровня C#». Номер варианта номер студента по журналу. В ЗЭВ-22у студенты с номерами 21 и 22 делают варианты 1 и 2 соответственно.
Вариант 10 готовый
Лабораторная работа №2
Разветвляющиеся вычислительные процессы
Задание 1. Вычисление значения функции
Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика. Параметр R вводится с клавиатуры.
Рисунок 1 – График функции
Ход выполнения работы:
1. Разбиваем функцию на отрезки:
при -10<=X<-6 Y = 2-sqrt(R*R – (X+8)*(X+8))
при -6<=X<-4 Y = 2;
при -4<=X<2 Y = X / 2;
при 2<=X<=4 Y = 3 – X ;
2. Запускаем Microsoft Visual C# 2010 Express, создаем проект «Консольное Приложение»
3. Листинг приложения на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace z1
{
class Program
{
static double f(double x,double R)
{
if (x >= -10 && x < -6) return (2-Math.Sqrt(R * R - Math.Pow((x + 8), 2)));
else if (x >= -6 && x < -4) return 2;
else if (x >= -4 && x < 2) return -1.0 / 2.0 * x;
else if (x >= 2 && x <= 4) return x-3.0;
else return 0;
}
static void Main(string[] args)
{
Console.Write("Введите R(по чертежу радиус равен 2):");
double R = Double.Parse(Console.ReadLine());
Console.Write("Введите X:");
double x = Double.Parse(Console.ReadLine());
Console.WriteLine("X={0:f2}\tF(x)={1:f2}",x,f(x,R));
Console.ReadLine();
}
}
}
4. После написания кода приложения, проводим отладку.
Рисунок 2 – Результат работы приложения
Задание 2. Попадание точки в заштрихованную область.
Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную на рисунке серым цветом. Результат работы программы вывести в виде текстового сообщения.
Рисунок 3 – Область функции
Ход выполнения работы:
1. Запускаем Microsoft Visual C# 2010 Express, создаем проект «Консольное Приложение».
2. Листинг приложения на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace z2
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите R(радиус окружности):");
double r = Double.Parse(Console.ReadLine());
Console.Write("Введите A(половина ширины прямоугольника):");
double a = Double.Parse(Console.ReadLine());
Console.Write("Введите B(половина высоты прямоугольника):");
double b = Double.Parse(Console.ReadLine());
Console.Write("Введите координату X выстрела:");
double x = Double.Parse(Console.ReadLine());
Console.Write("Введите координату Y выстрела:");
double y = Double.Parse(Console.ReadLine());
if (y <= 0 && Math.Pow(x, 2) + Math.Pow(y, 2) <= r * r && x <= 0 && y >= -b && x >= -a) Console.WriteLine("Выстрел попал в область окружности ниже оси абсцисс левее оси ординат, в прямоугольнике");
else if (y >= 0 && Math.Pow(x, 2) + Math.Pow(y, 2) >= r * r && x >= 0 && y <= b && x <= a) Console.WriteLine("Выстрел попал в область вне окружности выше оси абсцисс правее оси ординат, в прямоугольнике.");
else Console.WriteLine("Выстрел не попал не в одну из заданных областей.");
Console.WriteLine();
Console.ReadLine();
}
}
}
3. После написания кода приложения, проводим отладку.
Рисунок 4 – Результат работы приложения
Лабораторная работа №3
Организация циклов
Задание 1. Таблица значений функции.
Вычислить и вывести на экран в виде таблицы значения функции, заданной графически (см. задание 1 лабораторной работы 2), на интервале от хнач до хкон с шагом dх. Интервал и шаг задать таким образом, чтобы проверить все ветви программы. Таблицу снабдить заголовком и шапкой.
Ход выполнения работы:
1. Запускаем Microsoft Visual C# 2010 Express, создаем проект Консольное приложение.
2. Листинг приложения на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace z1
{
class Program
{
static double f(double x, double R)
{
if (x >= -10 && x < -6) return (2 - Math.Sqrt(R * R - Math.Pow((x + 8), 2)));
else if (x >= -6 && x < -4) return 2;
else if (x >= -4 && x < 2) return -1.0 / 2.0 * x;
else if (x >= 2 && x <= 4) return x - 3.0;
else return 0;
}
static void Main(string[] args)
{
Console.Write("Введите R(по чертежу радиус равен 2):");
double R = Double.Parse(Console.ReadLine());
Console.Write("Введите X0(Левая граница):");
double x0 = Double.Parse(Console.ReadLine());
Console.Write("Введите X1(Правая граница):");
double x1 = Double.Parse(Console.ReadLine());
Console.Write("Введите шаг:");
double dx = Double.Parse(Console.ReadLine());
Console.WriteLine("X\tY\t");
for (double x = x0; x <= x1; x += dx)
{
Console.WriteLine("{0:f2}\t{1:f2}",x,f(x,R));
}
Console.ReadLine();
}
}
}
3. После написания кода приложения, проводим отладку.
Рисунок 5 – Результат работы приложения
Задание 2. Серия выстрелов по мишени.
Для десяти выстрелов, координаты которых задаются с клавиатуры, вывести текстовые сообщения о попадании в мишень из задания 2 лабораторной работы 2.
Ход выполнения работы:
1. Запускаем Microsoft Visual C# 2010 Express, создаем проект Консольное приложение.
2. Листинг приложения на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace z2
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите R(радиус окружности):");
double r = Double.Parse(Console.ReadLine());
Console.Write("Введите A(половина ширины прямоугольника):");
double a = Double.Parse(Console.ReadLine());
Console.Write("Введите B(половина высоты прямоугольника):");
double b = Double.Parse(Console.ReadLine());
Console.WriteLine("Производим выстрелы:");
for (int i = 1; i <= 10; i++)
{
Console.Write("Введите координату X выстрела №" + i + ":");
double x = Double.Parse(Console.ReadLine());
Console.Write("Введите координату Y выстрела №" + i + ":");
double y = Double.Parse(Console.ReadLine());
if (y <= 0 && Math.Pow(x, 2) + Math.Pow(y, 2) <= r * r && x <= 0 && y >= -b && x>= -a) Console.WriteLine("Выстрел попал в область окружности ниже оси абсцисс левее оси ординат, в прямоугольнике");
else if (y >= 0 && Math.Pow(x, 2) + Math.Pow(y, 2) >= r * r && x >= 0 && y <= b && x <= a) Console.WriteLine("Выстрел попал в область вне окружности выше оси абсцисс правее оси ординат, в прямоугольнике.");
else Console.WriteLine("Выстрел не попал не в одну из заданных областей.");
Console.WriteLine();
}
Console.ReadLine();
}
}
}
3. После написания кода приложения, проводим отладку.
Рисунок 6 – Результат работы приложения
Задание 3. Ряды Тейлора.
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от хнач, до хкон с шагом dх с точностью е. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Рисунок 7 – Ряд Тейлора
Ход выполнения работы:
1. Запускаем Microsoft Visual C# 2010 Express, создаем проект Консольное приложение.
2. Листинг приложения на C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace z3
{
class Program
{
static double f(double x, double eps)
{
double chisl = x;
int n = 0;
double elem = chisl / (2 * n + 1);
double sum = elem;
while (Math.Abs(elem) >= eps)
{
n = n + 1;
chisl = chisl *x * x;
elem = chisl / (2.0 * n + 1);
sum = sum + elem;
}
return sum;
}
static void Main(string[] args)
{
double x0, x1;
do{
Console.Write("Введите X0(Левая граница):");
x0 = Double.Parse(Console.ReadLine());
Console.Write("Введите X1(Правая граница):");
x1 = Double.Parse(Console.ReadLine());
} while (Math.Abs(x1) >= 1 || Math.Abs(x0) >= 1);
Console.Write("Введите шаг:");
double dx = Double.Parse(Console.ReadLine());
Console.Write("Введите точность(напр. 0.0001):");
double eps = Double.Parse(Console.ReadLine());
Console.WriteLine("Табулирование функции в интервале от {0:f2} до {1:f2}", x0, x1);
Console.WriteLine("X\t\tY\t\tArth(x)");
for (double x = x0; x <= x1; x += dx)
{
Console.WriteLine("{0:f4}\t\t{1:f6}\t{2:f6}", x, f(x, eps), Arth(x));
}
Console.ReadLine();
}
static double Arth(double x) { return f(x, 1E-10); }
}
}
3. После написания кода приложения, проводим отладку.
Рисунок 8 – Результат работы приложения
Список использованной литературы
1. Павловская Т.А., C#. Программирование на языке высокого уровня. Учебник для вузов, СПб.: Питер, 2009. – 432с.:ил.
Технология программирования
3 курс 1 семестр
- Артём Мамзиков
- Admin
- Сообщения: 853
- Стаж: 5 лет 7 месяцев
- Откуда: Вологодская область
- Поблагодарили: 37 раз
- Контактная информация:
Артём Мамзиков
Вернуться в «Технология программирования»
Перейти
- Информационные технологии
- ↳ Заббикс Zabbix
- ↳ Навигация по разделам Zabbix
- ↳ Установка Debian
- ↳ Установка Заббикс и Дополнений
- ↳ Windows
- ↳ Шаблоны Заббикс
- ↳ Windows, Server
- ↳ Active Directory
- ↳ Аппаратное обеспечение Общее для всех систем
- ↳ СЕРВЕРА
- ↳ HP
- ↳ IBM
- ↳ INTEL
- ↳ DELL
- ↳ Kraftway
- ↳ Supermicro
- ↳ OS Операционные системы
- ↳ Virtual Machine Виртуальные Машины
- ↳ Proxmox
- ↳ Hyper-V
- ↳ KVM - Виртуальная машина
- ↳ VMware
- ↳ DNS Service
- ↳ JMX
- ↳ Мониторинг Сессий Пользователей в OS
- ↳ ВКС видеоконференцсвязь
- ↳ Zimbra
- ↳ Коммутаторы Маршрутизаторы Роутеры
- ↳ Питание: Измерение распределение блоки питания; ИБП
- ↳ Веб Проверки
- ↳ Файлы и Папки
- ↳ Файловые Хранилища NAS
- ↳ Базы Данных/Databases
- ↳ VipNet
- ↳ Офис OFFICE
- ↳ SNMP
- ↳ Прочие различные шаблоны
- ↳ Zabbix Прикладная программа
- ↳ Templates/Modules
- ↳ Преобразования в Zabbix
- ↳ API Zabbix
- ↳ Тестирование
- ↳ Вопросы по Zabbix
- ↳ Linux
- ↳ MySql
- ↳ Windows
- ↳ OCS INVENTORY
- ↳ Keenetic
- ↳ Скрипты
- ↳ Сканирование сети получение Логина пользователя
- ↳ Потоковое цифровое аудио и видеовещание
- ↳ PROXY Прокси
- ↳ Moodle
- ↳ PHPBB - Форумный Движок
- ↳ Расширения для PHPBB
- ТВ Фильмы Сериалы
- ↳ Smart TV
- ↳ Android
- ↳ Windows
- Прочее
- ↳ Из учёбы Информатика и вычислительная техника
- ↳ Операционные системы
- ↳ Инженерная графика
- ↳ Культурология
- ↳ Математика
- ↳ Физика
- ↳ Программирование
- ↳ Философия техники
- ↳ История автоматики и вычислительной техники
- ↳ Алгебра и Геометрия
- ↳ Дискретная математика
- ↳ Математическая логика и теория алгоритмов
- ↳ Электротехника
- ↳ Программирование
- ↳ Графическое программирование
- ↳ История
- ↳ Операционные системы
- ↳ Персональные компьютеры
- ↳ Программируемая логика
- ↳ ЭВМ и Периферийные устройства
- ↳ Электроника и схемотехника
- ↳ Базы данных
- ↳ микропроцессорные системы
- ↳ Основы теории надежности
- ↳ Основы теории управления ТАУ САУ
- ↳ Социология
- ↳ Теория вероятности
- ↳ Технология программирования
- ↳ Моделирование систем
- ↳ Объектно-орентир. программирование
- ↳ Программирование на АССЕМБЛЕРЕ
- ↳ САПР системы автоматизированного проектирования
- ↳ Программирование Web
- ↳ Сети и телекоммуникации
- ↳ Системное программное обеспечение
- ↳ Защита информации
- ↳ Системы организации производства
- ↳ Психология и педагогика
- ↳ ВКР
- Электрика
- ↳ 220V электрика
- Сантехника
- ↳ Раздел по сантехнике
- ↳ Ваша первая категория
- ↳ Ваш первый форум
- Другое
- Из рубрики частного дома