Министерство
образования и науки ЛНР
Луганский государственный университет имени Владимира Даля
Стахановский инженерно-педагогический институт менеджмента
Кафедра информационных систем
Альбом лабораторных работ
по дисциплине: «Основные направления развития в отрасли. Перспективные языки и технологии программирования»
Стаханов 2021
ЛАБОРАТОРНАЯ РАБОТА №1
Тема: Построение графиков функции и 3D поверхностей в системе Mathcad
Цель: получение навыков построения графиков функций и 3D поверхностей.
Пример №1.
Для построения графика можно указать данные в табличном виде, без формул.
Рисунок 1.1 – Построение XY-графика двух векторов
Пример №2.
Для построения графика по функции с незаданной переменной необходимо создать функцию типа «f(x)» и таким же образом отметить ее на графике.
Рисунок 1.2 – Построение графика функции sin(a)
Пример №3
Имеется возможность построить график, на котором отложено несколько функций по оси ординат.
Рисунок 1.3 – Построение нескольких зависимостей на одном графике
Пример №4
Также, на одном графике можно отобразить несколько разных функций от разных аргументов.
Рисунок 1.4 – Построение зависимостей от разного аргумента разного типа данных
Пример №5.
При желании можно изменить диапазон отображения графика по обеим осям.
Рисунок 1.5 – Изменение диапазона оси X
Пример №6
Построение графика с тремя функциями от одного аргумента, отложенными по оси ординат.
Рисунок 1.6 – График с несколькими выражениями, отложенными по оси ординат
Пример №7
Построение графика с несколькими выражениями на обеих осях.
Рисунок 1.7 – График с несколькими выражениями на обеих осях
Пример №8
Построение графика поверхности функции приведено на рисунке 1.8.
Рисунок 1.8 – Построение графика поверхности функции
Пример №9
Пример возможной настройки отображения графика поверхности.
Рисунок 1.9 – Диалоговое окно 3-D Plot Format
Задание №1. Построение графика функции Y=cos(3X+П/2).
Рисунок 1.10 – График функции Y=cos(3X+П/2)
Задание №2.
Построение графика поверхности функции Z=b2/10 – c2/10.
Рисунок 1.11 – График поверхности функции Z=X2/10 - Y2/10
Задание №3
Построение графика трех функций с использованием дополнительной оси ординат. Функции:
Рисунок 1.12 – График трех функций с дополнительной осью ординат
Задание №4
Построение графика поверхности функции
Рисунок 1.13 – График поверхности функции z
Рисунок 1.14 – График поверхности
Выводы: в результате выполненной работы было построено 14 графиков функций, что позволяет сделать заключение о том, что MathCad позволяет строить самые разнообразные виды графиков: график декартовой системы координат, полярный график, график трехмерной поверхности, диаграммы и так далее.
ЛАБОРАТОРНАЯ РАБОТА №2
Тема: Построение графиков функции и 3D поверхностей в системе Mathcad. Создание анимации в MathCad
Цель: Получение навыков построения графиков функций и 3D поверхностей в системе Mathcad.
Построение простого графика в полярной системе координат.
Рисунок 2.1 – Полярный график функции от q
Построение графика двух функций в полярной системе координат.
Рисунок 2.2 – Фигура Лиссажу в молярной системе координат
Построение графика двух функций в полярной системе координат.
Рисунок 2.3 – графика двух функций в полярной системе координат.
Построение объемного графика фигуры вращения.
Рисунок 2.4 – Объемный график фигуры вращения
Построение графика фигуры вращения функции f(x) вокруг оси Oy указано на рисунке 2.5.
Рисунок 2.5 – Фигура вращения кривой f(x) вокруг оси Oy
Построение фигуры вращения кривой вокруг
оси Ox.
Рисунок 2.6 – График фигуры вращения вокруг оси Ох
Построение кривой в пространстве при помощи графика разброса изображено на рисунке 2.7.
Рисунок 2.7 – Кривая в пространстве
Создание анимации при помощи MathCad.
Рисунок 2.8 – Меню записи анимации
Создание анимации графика двух функций.
Рисунок 2.9 – Фрагмент анимации графика двух функций
Создание анимации движения точек по периметру квадрата отображено на рисунке 2.10
Рисунок 2.10 – Фрагмент анимации движения точек по периметру квадрата
Создание анимации движения окружности.
Рисунок 2.11 – Фрагмент анимации движения окружности
Рисунок 2.12 – График поверхности
Рисунок 2.13 – График поверхности
Выводы: в результате выполнения работы было построено 13 графиков функций, среди которых: графики функций в полярной системе координат, графики фигур вращения, графики с анимацией.
Лабораторная работа №3
Тема: «Аналитические вычисления в Mathcad . Инструменты MathCad для задач математического анализа»
Цель: получение навыков аналитического вычисления в Mathcad.
Задание:
1. Выполните все примеры, приведенные в лабораторной работе.
Решение
3.3. Пример 1
3.2. Пример 2
3.3. Пример 3
3.4. Пример 4
3.5. Пример 5
3.6. Пример 6
3.7. Пример 7
3.8. Пример 8
3.9. Пример 9
3.10. Пример 10
3.11. Пример 11
3.12. Пример 12
3.13. Пример 13
3.14. Пример 14
3.15. Пример 15
3.16. Пример 16
3.17. Пример 17
3.18. Пример 18
3.19. Пример 19
Выводы: в ходе выполнения лабораторной работы получила навыки аналитического вычисления в Mathcad.
ЛАБОРАТОРНАЯ РАБОТА №4
Тема: Работа с матрицами в среде Мathcad.
Цель: Получить навыки работы с матрицами в среде Мathcad.
Пример 1. Арифметические операции с матрицами.
Рисунок 4.1 – Пример выполнения арифметических операций с двумя матрицами
Пример 2. Транспонирование матриц.
Рисунок 4.2 – Пример транспонирования матрицы
Пример 3. Произведение матрицы и транспонированной матрицы.
Рисунок 4.3 – Пример произведения матрицы и транспонированной матрицы
Пример 4. Определитель матрицы.
Рисунок 4.4 – Пример вычисления определителя в Mathcad
Пример 5. Решение системы координат способом матричной записи.
Рисунок 4.5 – Пример решения системы координат способом матричной записи
Пример 6. Метод Крамера.
Рисунок 4.6 – Пример решения системы уравнений методом Крамера
Пример 7. Метод Гаусса.
Рисунок 4.7 – Пример решения системы уравнений методом Гаусса
Задание. Дано:
Решим систему линейных уравнений с помощью методов Гаусса и Крамера.
Рисунок 4.8 – Решение способом Крамера
Рисунок 4.9 – Решение способом Гаусса
Рисунок 4.10 – Проверка
Рисунок 4.11 – Решение матричным способом
Выводы: в результате проделанной работы выполнены основные способы работы с матрицами: задание матрицы, вычисление определителя, арифметические действия над матрицами; решение линейных системных уравнений с использованием методов Крамера и Гаусса.
ЛАБОРАТОРНАЯ РАБОТА №5
Тема: Работа с векторами и матрицами в среде Mathcad.
Цель: ознакомиться с системой MathCAD, овладеть основными навыками работы с системой, научиться проводить элементарные вычисления с векторами и матрицами. Освоить технологию решения линейных уравнений матричным способом.
Задание 1. Дана система линейных уравнений с 4-мя неизвестными:
Записать коэффициенты уравнения в виде матрицы А
Рисунок 5.1 – Представление коэффициентов системы уравнений в виде матрицы в система MathCAD
Задание 2. Выделить матрицу А из матрицы М, которая получена из коэффициентов системы линейных уравнений и свободных членов:
а) инвертировать матрицу А;
б) транспонировать матрицу А;
в) найти определитель матрицы А;
г) определить размер матрицы А
Рисунок 5.2 – Выполнение основных операций над матрицами
Используя данные таблиц 1 и 2 (в ячейках указаны варианты, из которых необходимо составить матрицы) выполнить следующие операции:
а) найти матрицу АВС;
б) найти матрицу АВ + ВС;
в) найти матрицу А2 - В2.
Система В: Система С:
Рисунок 5.3 – Представление коэффициентов систем уравнений В и С в виде матриц
Рисунок 5.4 – Результат произведения трех матриц
Рисунок 5.5 – Результат вычислений АВ + ВС
Рисунок 5.6 – Результат разницы квадратов двух матриц
Выводы: в результате проделанной работы выполнены основные способы работы с матрицами: задание матрицы, вычисление определителя, арифметические действия над матрицами.
ЛАБОРАТОРНАЯ РАБОТА №6
ВЫЧИСЛЕНИЕ ФУНКЦИЙ ПОЛЬЗОВАТЕЛЯ. БУЛЕВА АЛГЕБРА
Задания
Пример.
Рисунок 6.1 – Пример
Вариант №2
Ход работы
Рисунок 6.2 – Пример
Рисунок 6.3 – Задание № 2
Рисунок 6.4 - Задание № 9
Рисунок 6.5 – Задание № 16
Рисунок 6.6 – Задание № 23
Рисунок 6.7 – Задание № 30
Рисунок 6.8 – Булева алгебра
Вывод: изучено вычисление функций пользователя, булева алгебра.
Лабораторная работа №7-8
Тема: Современные электронные средства верстки InDesign
Цель: Закрепить теоретические знания и получить практические навыки работы с современной верстальной программой компьютерного творчества Adobe InDesign.
Задание: создать документ с простой версткой страниц, создать шаблоны страниц, добавить направляющие линии, колонтитул, текстовый заполнитель, заполнитель для графики, разделить текст на колонки, добавить разделы.
Ход работы
Для создания нового документа выполняем команду «Файл – Новый – Документ», затем выбираем категорию «Печать» и тип страницы «А5»
Рисунок 8.1 – Выбор параметров нового документа
Чтобы изменить шаблон, необходимо дважды нажать по нему на панели страниц. Разместить колонтитул можно под полями страница, для более точного размещения выставим направляющие линии: горизонтальную на 197,3 мм, вертикальные на 12,7мм; 60мм; 240мм; 283,3мм.
Рисунок 8.2 – Расположение направляющих на странице
Разместим колонтитул. Для этого выбираем инструмент «Текст», выделим область, которая была размечена направляющими, затем, внутри поля, вводим команду «Текст – Вставка специальных символов – Маркеры – Текущая страница»
Рисунок 8.3 – Вставка нижнего колонтитула
Рисунок 8.4 – Вставка верхнего колонтитула
При помощи инструмента «Текст» создадим область с текстовым заполнителем. Выделяем область на всю страницу, затем вызываем контекстное меню и жмем «Заполнить шаблонным текстом».
Рисунок 8.5 – Вставка текстового заполнителя на страницу
Вставляем новую страницу для создания графических объектов. Новая страница будет создана из пустого шаблона.
Инструментом «Прямоугольный фрейм» установим область для изображения, инструментом «Текст» разметим заголовок и текстовую область страницы.
Рисунок 8.6 – Базовая разметка страницы.
Далее выделим цветом главный заголовок и вставим изображение. Выбираем цвет из панели «Цвет». Чтобы вставить изображение, выделяем прямоугольный фрейм, выполняем команду «Файл – Поместить» и выбираем изображение.
Рисунок 8.7 – Готовая страница с изображением
Выводы: для разнообразной вёрстки печатных изданий в настоящее время существует мощный инструмент – Adobe InDesign, – который позволяет выполнять разнообразные задачи по вёрстке. Среди основных функций данной программы: шаблонизация страниц, создание структуры документа из шаблонов, широкие возможности текстового форматирования.
ЛАБОРАТОРНЫЕ РАБОТЫ №№9-10
ТЕМА: ПЛАТФОРМА .NET И СРЕДА РАЗРАБОТКИ
VISUAL STUDIO
Пример 1:
Рисунок 9.1 – Пример 1
Код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace пример1
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void HelloWord_Click(object sender, EventArgs e)
{
MessageBox.Show("Здравствуй,мир");
}
}
}
Пример 2:
Рисунок 9.2 – Пример 2
Код программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
//объявляем переменную для хранения строки введенных данных
string strText;
//выводим на экран информационное сообщение
Console.WriteLine("Введите Ваше имя.");
//вводим данные с консоли
strText = Console.ReadLine();
//Выводим на экран обработанные данные
Console.WriteLine("Здравствуйте {0}", strText);
}
}
}
Задание к лабораторной работе
1. Создайте на форме Windows-приложения кнопку «Выход», при нажатии на которую закрывается форма.
Рисунок 9.3 – Задание 1
Код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
2. Создайте на форме Windows-приложения кнопку «Цвет фона», при нажатии на которую случайным образом изменяется фон формы.
Рисунок 9.4 – Задание 2
Код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Random rnd = new Random(DateTime.Now.Millisecond);
this.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
}
}
}
3. Создайте проект Windows-приложения с двумя формами «Форма 1» и «Форма 2». При запуске приложения на экране вначале появляется «Форма 1», а при закрытии первой формы появляется «Форма 2».
Рисунок 9.5 – Задание 3
Код программы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
{
Form ifrm = new Form2();
ifrm.Left = this.Left; ifrm.Top = this.Top; ifrm.Show();
this.Hide();
}
}
}
}
4. Создайте проект Windows-приложения с двумя формами «Форма 1» и «Форма 2». На первой форме создайте две кнопки «Выход» (нажатие на которой закрывает «Форму 1») и кнопку «Переход» (нажатие на которой отображает «Форму 2», при этом «Форма 1» не закрывается). На «Форме 2» должны быть кнопки «Выход» (закрытие всего приложения) и «Закрыть» (закрытие только второй формы).
Рисунок 9.6 – Задание 4
Код формы 1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Form ifrm = new Form2();
ifrm.Show(); // отображаем Form2
}
}
}
Код формы 2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _4
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
5. Создайте консольное приложение, в котором вводятся два целых числа с клавиатуры и выводится на экран их сумма.
Рисунок 9.7 – Задание 5
Код программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4
{
class Program
{
static void Main(string[] args)
{
int a, b = 0;
Console.WriteLine("Введите первое число:");
a = int.Parse(Console.ReadLine());
Console.WriteLine("Введите второе число:");
b = int.Parse(Console.ReadLine());
Console.WriteLine("Сумма равна:{0}", a + b);
Console.ReadKey();
}
}
}
Вывод: получен опыт работы с платформой .Net и средой разработки Visual Studio.
ЛАБОРАТОРНЫЕ РАБОТА №11-12
Решение профессиональных задач с использованием MathCad Цель работы: Закрепить теоретический материал путем выполнения лабораторной работы; получение навыков расчёта метода анализа иерархий с использованием MathCad.
Порядок выполнения работы (отчёт):
1. Ознакомиться с теоретическим материалом данных методических указаний.
2. Выполнить задания к лабораторной работе.
3. Оформить отчет и сделать выводы.
Ход работы
Рисунок 11.1 - МАИ
Таблица 1 − Матрица попарных сравнений для критериев
K |
Q1 |
Q2 |
Q3 |
Q4 |
Рi |
Xi |
Q1 |
1 |
3 |
1/9 |
1/5 |
0,508 |
0,08 |
Q2 |
1/3 |
1 |
1/8 |
1/5 |
0,302 |
0,048 |
Q3 |
9 |
8 |
1 |
3 |
3,834 |
0,604 |
Q4 |
5 |
5 |
1/3 |
1 |
1,699 |
0,268 |
Решение в Mathcad:
Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:
Далее найдем векторы приоритетов и сумму векторов:
Определим приведенные векторы приоритетов и сумму векторов:
Далее следует определить уровень согласованности мнений экспертов:
Таблица 2 − Матрица попарних сравнений для первой альтернативы
Q1 |
A1 |
A2 |
A3 |
A4 |
Рi |
Xi |
A1 |
1 |
3 |
3 |
9 |
3 |
0,5 |
A2 |
1/3 |
1 |
1/5 |
7 |
0,827 |
0,138 |
A3 |
1/3 |
5 |
1 |
9 |
1,968 |
0,328 |
A4 |
1/9 |
1/7 |
1/9 |
1 |
0,205 |
0,034 |
Решение в Mathcad:
Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:
Далее найдем векторы приоритетов и сумму векторов:
Определим приведенные векторы приоритетов и сумму векторов:
Далее следует определить уровень согласованности мнений экспертов:
Таблица 3 − Матрица попарних сравнений для второй альтернативы
Q2 |
A1 |
A2 |
A3 |
A4 |
Рi |
Xi |
A1 |
1 |
5 |
3 |
9 |
3,409 |
0,559 |
A2 |
1/5 |
1 |
1/2 |
7 |
0,915 |
0,15 |
A3 |
1/3 |
2 |
1 |
9 |
1,565 |
0,257 |
A4 |
1/9 |
1/7 |
1/9 |
1 |
0,205 |
0,034 |
Решение в Mathcad:
Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:
Далее найдем векторы приоритетов и сумму векторов:
Определим приведенные векторы приоритетов и сумму векторов:
Далее следует определить уровень согласованности мнений экспертов:
Таблица 4 − Матрица попарних сравнений для третьей альтернативы
Q3 |
A1 |
A2 |
A3 |
A4 |
Рi |
Xi |
A1 |
1 |
1/7 |
1/9 |
1 |
0,355 |
0,053 |
A2 |
7 |
1 |
3 |
9 |
3,708 |
0,555 |
A3 |
9 |
1/3 |
1 |
9 |
2,28 |
0,341 |
A4 |
1 |
1/9 |
1/9 |
1 |
0,333 |
0,05 |
Решение в Mathcad:
Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:
Далее найдем векторы приоритетов и сумму векторов:
Определим приведенные векторы приоритетов и сумму векторов:
Далее следует определить уровень согласованности мнений экспертов:
Таблица 5 − Матрица попарних сравнений для четвертой альтернативы
Q4 |
A1 |
A2 |
A3 |
A4 |
Рi |
Xi |
A1 |
1 |
3 |
1/9 |
1/5 |
0,508 |
0,08 |
A2 |
1/3 |
1 |
1/8 |
1/5 |
0,302 |
0,048 |
A3 |
9 |
8 |
1 |
3 |
3,834 |
0,604 |
A4 |
5 |
5 |
1/3 |
1 |
1,699 |
0,268 |
Решение в Mathcad:
Образуем матрицу из данных, содержащихся в таблице попарных сравнений для критериев:
Далее найдем векторы приоритетов и сумму векторов:
Определим приведенные векторы приоритетов и сумму векторов:
Далее следует определить уровень согласованности мнений экспертов:
Расчет глобального вектора приоритетов:
Вывод: из полученных данных выходит, что подавляющим по совокупности всех критериев является язык Delphi, на втором месте – VBA, на третьем – C++ и на последнем Python.
Лабораторные работы №№13-14
ООП для .NET. Классы и принцип инкапсуляции
Цель: Знакомство с принципом инкапсуляции в объекте ориентированном программировании (ООП) и его реализацией на различных языках программирования для .NET.
Задание
1. Выполнить в среде разработки Visual Studio пример 1 и пример 2.
2. В отчёт включить примеры и скриншоты результатов работы программ.
3. Модернизировать примеры 1 и пример 2: ввод своих данных в объекты; добавить свои поля или методы.
4. Решить задачу согласно варианту задания.
Ход работы
Пример 1.
Программный код:
Imports System
Module Module1
Sub Main(ByVal args As String())
Dim S As Integer, R As Integer, Stud1 As Student
' Создаем объект класса Student
Stud1 = New Student
' Выводим в консоль запрос
Console.WriteLine("Введите год рождения:")
' Чтение введенных символов
S = Console.ReadLine()
' Переводим введенные символы в целое число
R = Int(S)
' Задаем значение свойства
' Фактически, это будет обращение к процедуре Set
Stud1.God = R
' Выводим значение свойства God.
' Если была ошибка, получим значение 0
Console.WriteLine("Значение свойства =" & Stud1.God)
' Выводим в консоль приглашение на завершение
Console.WriteLine("Для завершения нажмите ENTER")
S = Console.Read()
End Sub
Public Class Student
Private intGod As Integer
Public Property God() As Integer
Get
Return intGod
End Get
Set(ByVal R As Integer)
If R <= 0 Then
Console.WriteLine("Ошибка!")
intGod = 0
Else
intGod = R
End If
End Set
End Property
End Class
End Module
Рисунок 13.1 – Реакция ЭВМ
Пример 2.
Программный код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace primer2
{
class Program
{
static void Main(string[] args)
{
staff A;
Int16 birthyear, children;
string name, surname, patron, gender;
Console.WriteLine("Введите Имя:");
name = Console.ReadLine();
Console.WriteLine("Введите Фамилию:");
surname = Console.ReadLine();
Console.WriteLine("Введите Отчество:");
patron = Console.ReadLine();
Console.WriteLine("Введите Пол:");
gender = Console.ReadLine();
Console.WriteLine("Введите Год рождения:");
birthyear = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Введите Количество детей:");
children = Convert.ToInt16(Console.ReadLine());
A = new staff(name, surname, patron, gender, birthyear, children);
Show(A);
}
static void Show(staff A)
{
Console.WriteLine();
Console.WriteLine("Информация о персонале:");
Console.WriteLine("Фамилия: " + A.surname);
Console.WriteLine("Имя: " + A.name);
Console.WriteLine("Отчество: " + A.patronymic);
Console.WriteLine("Пол: " + A.gender);
Console.WriteLine("Год рождения: " +A.birthday);
Console.WriteLine("Число детей: " + A.numberOfChildren);
Console.WriteLine("Нажмите ENTER");
Console.ReadLine();
}
}
class staff
{
string strname, strsurname, strpatronymic, strgender;
Int16 Intbirthday, IntnumberOfChildren;
static Boolean Symbols(string s)
{
string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",
SmallLat = "qwertyuiopasdfghjklzxcvbnm",
BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",
SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",
letter,
c;
int i;
letter = BigLat + SmallLat + BigKyr + SmallKyr;
for (i = 1; i <= s.Length; i++)
{
c = s.Substring(i - 1, 1);
if (!letter.Contains(c)) { return false; }
}
return true;
}
static Boolean GenderType(string s)
{
string letter, c;
int i;
letter = "МЖмж";
for (i = 1; i <= s.Length; i++)
{
c = s.Substring(i - 1, 1);
if (!letter.Contains(c)) { return false; }
}
return true;
}
static Boolean SymbNumb(string s)
{
string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",
SmallLat = "qwertyuiopasdfghjklzxcvbnm",
BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",
SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",
Numbers = "1234567890",
letter,
c;
int i;
letter = BigLat + SmallLat + BigKyr + SmallKyr + Numbers;
for (i = 1; i <= s.Length; i++)
{
c = s.Substring(i - 1, 1);
if (!letter.Contains(c)) { return false; }
}
return true;
}
static Boolean Range(int N, int LBorder, int RBorder)
{
if ((N >= LBorder) & (N <= RBorder)) { return true; }
return false;
}
// Свойства //
public string name
{
get { return strname; }
set
{
if (!Symbols(value))
Console.WriteLine("Ошибка в имени");
else
strname = value;
}
}
public string surname
{
get { return strsurname; }
set
{
if (!Symbols(value))
Console.WriteLine("Ошибка в фамилии");
else
strsurname = value;
}
}
public string patronymic
{
get { return strpatronymic; }
set
{
if (!Symbols(value))
Console.WriteLine("Ошибка в отчестве");
else
strpatronymic = value;
}
}
public string gender
{
get { return strgender; }
set
{
if (!GenderType(value))
Console.WriteLine("Ошибка ввода: Допустимы только символы 'М' и 'Ж'");
else
strgender = value;
}
}
public Int16 birthday
{
get { return Intbirthday; }
set
{
if (!Range(value, 1900, 2021))
Console.WriteLine("Ошибка в дате: Введите актуальный год.");
else
Intbirthday = value;
}
}
public Int16 numberOfChildren
{
get { return IntnumberOfChildren; }
set
{
if (!Range(value, 0, 12))
Console.WriteLine("Ошибка в имени");
else
IntnumberOfChildren = value;
}
}
// Конструкт //
public staff(string name, string surname, string patronymic, string gender,
Int16 birthday, Int16 numberOfChildren)
{
this.name = name;
this.surname = surname;
this.patronymic = patronymic;
this.gender = gender;
this.birthday = birthday;
this.numberOfChildren = numberOfChildren;
}
}
}
Рисунок 13.2 – Реакция ЭВМ
Программный код приложения в C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zadanie2
{
class Program
{
static void Main(string[] args)
{
staff A;
Int16 kolstr, god;
string nazvanie, format;
Console.WriteLine("Введите название печатного издания:");
nazvanie = Console.ReadLine();
Console.WriteLine("Введите Формат:");
format = Console.ReadLine();
Console.WriteLine("Введите количество страниц:");
kolstr = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Введите год выпуска:");
god = Convert.ToInt16(Console.ReadLine());
A = new staff(nazvanie, format, kolstr, god);
Show(A);
}
static void Show(staff A)
{
Console.WriteLine();
Console.WriteLine("Информация о печатном издании:");
Console.WriteLine("Название: " + A.name);
Console.WriteLine("Формат: " + A.surname);
Console.WriteLine("Количество страниц: " + A.numberOfChildren);
Console.WriteLine("Год выпуска: " + A.birthday);
Console.WriteLine("Нажмите ENTER");
Console.ReadLine();
}
}
class staff
{
string strname, strsurname;
Int16 Intbirthday, IntnumberOfChildren;
static Boolean Symbols(string s)
{
string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",
SmallLat = "qwertyuiopasdfghjklzxcvbnm",
BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",
SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",
letter,
c;
int i;
letter = BigLat + SmallLat + BigKyr + SmallKyr;
for (i = 1; i <= s.Length; i++)
{
c = s.Substring(i - 1, 1);
if (!letter.Contains(c)) { return false; }
}
return true;
}
static Boolean SymbNumb(string s)
{
string BigLat = " QWERTYUIOPASDFGHJKLZXCVBNM",
SmallLat = "qwertyuiopasdfghjklzxcvbnm",
BigKyr = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ",
SmallKyr = "йцукенгшщзхъфывапролджэячсмитьбю",
Numbers = "1234567890",
letter,
c;
int i;
letter = BigLat + SmallLat + BigKyr + SmallKyr + Numbers;
for (i = 1; i <= s.Length; i++)
{
c = s.Substring(i - 1, 1);
if (!letter.Contains(c)) { return false; }
}
return true;
}
static Boolean Range(int N, int LBorder, int RBorder)
{
if ((N >= LBorder) & (N <= RBorder)) { return true; }
return false;
}
// Свойства //
public string name
{
get { return strname; }
set
{
if (!Symbols(value))
Console.WriteLine("Ошибка в названии");
else
strname = value;
}
}
public string surname
{
get { return strsurname; }
set
{
if (!Symbols (value))
Console.WriteLine("Ошибка в формате");
else
strsurname = value;
}
}
public Int16 numberOfChildren
{
get { return IntnumberOfChildren; }
set
{
if (!Range(value, 1, 2000))
Console.WriteLine("Ошибка: Введите допустимое количество страниц.");
else
IntnumberOfChildren = value;
}
}
public Int16 birthday
{
get { return Intbirthday; }
set
{
if (!Range(value, 1500, 2021))
Console.WriteLine("Допущена ошибка в годе выпуска");
else
Intbirthday = value;
}
}
// Конструкт //
public staff(string name, string surname,
Int16 numberOfChildren, Int16 birthday)
{
this.name = name;
this.surname = surname;
this.numberOfChildren = numberOfChildren;
this.birthday = birthday;
}
}
}
Рисунок 13.3 – Реакция ЭВМ
Программный код VB.NET:
Imports System
Module Module1
Sub Main(ByVal args As String())
Dim S As Int16, R As Int16, Pechatnoe_izdanie1 As Pechatnoe_izdanie, format As String, nazvanie As String, kolstr As Int16
' Создаем объект класса Pechatnoe_izdanie
Pechatnoe_izdanie1 = New Pechatnoe_izdanie
' Выводим в консоль запрос
Console.WriteLine("Введите название печатного издания:")
nazvanie = Console.ReadLine()
Console.WriteLine("Введите формат:")
format = Console.ReadLine()
Console.WriteLine("Введите количество страниц:")
kolstr = Console.ReadLine()
Console.WriteLine("Введите год:")
' Чтение введенных символов
S = Console.ReadLine()
' Переводим введенные символы в целое число
R = Int(S)
' Задаем значение свойства
' Фактически, это будет обращение к процедуре Set
Pechatnoe_izdanie1.God = R
' Выводим значение свойства God.
' Если была ошибка, получим значение 0
Console.WriteLine("----------------------------------------------")
Console.WriteLine("Название = " & nazvanie)
Console.WriteLine("Формат = " & format)
Console.WriteLine("Количество страниц = " & kolstr)
Console.WriteLine("Год выпуска = " & Pechatnoe_izdanie1.God)
' Выводим в консоль приглашение на завершение
Console.WriteLine("Для завершения нажмите ENTER")
S = Console.Read()
End Sub
Public Class Pechatnoe_izdanie
Private intGod As Integer
Public Property God() As Integer
Get
Return intGod
End Get
Set(ByVal R As Integer)
If R < 1500 Or R > 2021 Then
Console.WriteLine("Ошибка ввода года!")
intGod = 0
Else
intGod = R
End If
End Set
End Property
End Class
End Module
Рисунок 13.4 – Реакция ЭВМ
Вывод: при выполнении лабораторной работы ознакомились с принципом инкапсуляции в объектно-ориентированном программировании (ООП) и его реализацией на различных языках программирования для .NET.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.