МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
«Самарский национальный исследовательский университет
имени академика С.П. Королева»
(Самарский университет)
Институт информатики, математики и электроники
Факультет информатики
Кафедра информационных систем и технологий
ОТЧЁТ
по лабораторной работе
по курсу «Программирование»
Выполнил:
гр. 6169-090301Z
Проверил: асс. кафедры информационных систем и технологий
Самара 2019
СОДЕРЖАНИЕ
|
|
|
3.1 Задание |
3.2 Разработка программы |
3.3 Демонстрация и тестирование программы |
3.4 Результаты |
|
4.1 Задание |
4.2 Разработка программы |
4.3 Демонстрация и тестирование программы |
4.4 Результаты |
- График выполнения лабораторных работ
Тарнапольская А.В., гр. 6169-090301Z | ||||
№ | Вариант | Выдача задания | Отметка о сдаче | |
Дата | Подпись | |||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
- Лабораторная работа 1. Простейшие программы
Задание
Написать консольную программу для получения ответа на вопрос и вывода на экран правильного ответа.
-
Разработка программы
В лабораторной работе необходимо написать программу для получения ответа «Чему равно значение функции? », вводимого пользователем. После получения ответа вывести правильный ответ.
Для этого воспользуемся методами Console и Math для ввода и вывода данных, работы с математическими функциями.
Текст программы:
Console.WriteLine("Чему равно значение функции?f=lnpow2(b)/cos(a)-1");//выведем вопрос и функцию
Console.WriteLine("Введите число a: ");//пользователь задает значения переменной а
int a = int.Parse(Console.ReadLine());//ввод числа
Console.WriteLine("Введите число b: ");//пользователь задает значения переменной b
int b = int.Parse(Console.ReadLine());//ввод числа
Console.WriteLine("Введите ответ:");//ввод пользователем ответа
Console.ReadLine();
double result = Math.Log10(b) / Math.Cos(a) - 1;//рассчет функции по заданымм данным
int x = 1, s = 2;//s - степень логарифма, x - значение ln
Console.WriteLine("Правильный ответ:" + result + Math.Pow(x, s));//вывод правильного ответа
Console.ReadKey();
-
Демонстрация и тестирование программы
В таблице представлены тесты для проверки работы программы.
Таблица – Набор тестов
№ | Входные данные | Результат |
|
a=1,b=1 | Правильный ответ: -11 |
|
a=2,b=3 | Правильный ответ:-2,14 |
|
a=5,b=2 | Правильный ответ:0,06 |
Результаты работы программы представлены на рисунках 1,2 и 3.
Рисунок 1 - результат теста № 1
Рисунок 2 – результат теста №2
Рисунок 3 – результат теста №3
-
Результаты
В результате выполнения лабораторной работы изучены основы работы в Visual Studio. Изучены методы классов Console, Math для ввода и вывода данных и работы с математическими функциями. Разработано и протестировано консольное приложение.
- Лабораторная работа 2. Условные операторы
- Задание
Написать программу, проверяющую ответ пользователя на вопрос из лабораторной работы 1. Так же реализовать меню для выбора действий:
-
-
-
-
-
-
- Выполнение лабораторной работы
- Об авторе (Фамилия И.О., номер группы)
- Задание
- Выход
-
-
-
-
- Разработка программы
-
Для реализации меню в программе используем оператор «Switch». Так же нам потребуется метод Console и Parse, для ввода и вывода данных и для конвертации любого значения в значение определенного типа.
Метод TryParse будет необходим для проверки ввода пользователем не тех символов (вместо цифр – буквы).
Текст программы:
Console.WriteLine("1 Выполнение лабораторной работы\n2 Об авторе\n3 Задание\n4 Выход");//вывод все пунктов меню
int i;
while (!int.TryParse(Console.ReadLine(), out i))//устанвим проверку на корректность ввода данных
Console.WriteLine("Ошибка ввода!");//сообщение появится если введены буквы вместо цифр
switch (i)//оператор необходим для выбора меню
{
case 1:
Console.Clear();//очистим меню после выбора пункта меню
Console.WriteLine("Выполнение лабораторной работы");
Console.WriteLine("Чему равно значение функции?f=lnpow2(b)/cos(a)-1");//выведем вопрос и функцию
Console.WriteLine("Введите число a: ");//пользователь задает значения переменной a
int a; //ввод числа
while (!int.TryParse(Console.ReadLine(), out a))
Console.WriteLine("Ошибка ввода!");
Console.WriteLine("Введите число b: ");//пользователь задает значения переменной b
int b;//ввод числа
while (!int.TryParse(Console.ReadLine(), out b))
Console.WriteLine("Ошибка ввода!");
Console.WriteLine("Введите ответ:");//ввод пользователем ответа
Console.ReadLine();
double result = Math.Log10(b) / Math.Cos(a) - 1;//рассчет функции по заданымм данным
int x = 1, s = 2;//s - степень логарифма, x - значение ln
if (result <= 1)//установим условие в случае неправильного ответа
Console.WriteLine("Вы ввели неверный ответ!");
Console.WriteLine("Правильный ответ:" + result + Math.Pow(x, s));//вывод правильного ответа
Console.WriteLine("Выберите следующее действие:");
break;//завершение работы
case 2:
Console.Clear();
Console.WriteLine("Тарнапольская А.В., группа 6196-090301Z");
Console.WriteLine("Выберите следующее действие:");
break;
case 3:
Console.Clear();
Console.WriteLine("Чему равно значение функции? (ln^2 β)/(cosα-1)");
Console.WriteLine("Выберите следующее действие:");
break;
case 4:
string e;
do
{
Console.Clear();
Console.WriteLine("Выйти из программы?");
e = Console.ReadLine();
} while (e != "д");//при нажатии клавиши "д" программа закроется
return;
default:
Console.WriteLine("Ошибка");
break;
}
3.3 Демонстрация и тестирование программы
В таблице представлены тесты для проверки работы программы.
Таблица – Набор тестов
№ | Входные данные | Результат |
|
Выберем пункт 1, с параметрами, а=1,b=1 и введем неверный ответ |
«Вы ввели неверный ответ!» Правильный ответ: -11 |
|
Введем буквы вместо цифр | «Ошибка ввода!» |
|
Выберем пункт меню 4 | «Выйти из программы?» |
Результаты работы программы представлены на рисунках 1,2 и 3.
Рисунок 1 – результат теста №1.
Рисунок 2 – результат теста №2.
Рисунок 3 – результат теста №3.
-
- Результаты
В результате выполнения лабораторной работы были изучены условные операторы, такие как “Swicth” и “if…else”. Так же изучен новый метод TryParse, служащий для проверки корректности ввода данных. Разработано и протестировано консольное приложение.
- Лабораторная работа 3. Циклы
4.1 Задание
Необходимо зациклить работу программы из лабораторной работы №2.
Так же дать возможность пользователю только 3 попытки ввода ответа.
4.2 Разработка программы
Используем цикл do-while для непрерывной работы консольного приложения. Этот же цикл мы используем для того чтобы совершать выход из консольного приложения через 4 пункт меню.
Текст программы:
{
do {
Console.WriteLine("1 Выполнение лабораторной работы\n2 Об авторе\n3 Задание\n4 Выход");//вывод все пунктов меню
int i;
while (!int.TryParse(Console.ReadLine(), out i))//устанвим проверку на корректность ввода данных
Console.WriteLine("Ошибка ввода!");//сообщение появится если введены буквы вместо цифр
switch (i)//оператор необходим для выбора меню
{
case 1:
Console.Clear();//очистим меню после выбора пункта меню
Console.WriteLine("Выполнение лабораторной работы");
Console.WriteLine("Чему равно значение функции?f=lnpow2(b)/cos(a)-1");//выведем вопрос и функцию
Console.WriteLine("Введите число a: ");//пользователь задает значения переменной a
int a; //ввод числа
while (!int.TryParse(Console.ReadLine(), out a))
Console.WriteLine("Ошибка ввода!");
Console.WriteLine("Введите число b: ");//пользователь задает значения переменной b
int b;//ввод числа
while (!int.TryParse(Console.ReadLine(), out b))
Console.WriteLine("Ошибка ввода!");
Console.WriteLine("Введите ответ:");//ввод пользователем ответа
Console.ReadLine();
Console.WriteLine("Вы ввели неверный ответ!");
Console.ReadLine();
Console.WriteLine("Вы ввели неверный ответ!");
Console.ReadLine();
Console.WriteLine("Увы, вы ввели трижды неверный ответ. Вы проиграли!");
double result = Math.Log10(b) / Math.Cos(a) - 1;//рассчет функции по заданымм данным
int x = 1, s = 2;//s - степень логарифма, x - значение ln
Console.WriteLine("Правильный ответ:" + result + Math.Pow(x, s));//вывод правильного ответа
if (result <= 1)//установим условие в случае неправильного ответа
Console.WriteLine("Вы ввели неверный ответ!");
Console.WriteLine("Выберите следующее действие:");
break;//завершение работы
case 2:
Console.Clear();
Console.WriteLine("Тарнапольская А.В., группа 6196-090301Z");
Console.WriteLine("Выберите следующее действие:");
break;
case 3:
Console.Clear();
Console.WriteLine("Чему равно значение функции? (ln^2 β)/(cosα-1)");
Console.WriteLine("Выберите следующее действие:");
break;
case 4:
string e;
do
{
Console.Clear();
Console.WriteLine("Выйти из программы?");
e = Console.ReadLine();
} while (e != "д");//при нажатии клавиши "д" программа закроется
return;
default:
Console.WriteLine("Ошибка");
break;
}
} while (true);//используем для возможности неоднократного выбора пунктов меню
}
4.3 Демонстрация и тестирование программы
В таблице представлены тесты для проверки работы программы.
Таблица – Набор тестов.
№ | Входные данные | Результат |
1 | Введем 3 раза неверный ответ, в пункте 1 | Сообщение о проигрыше |
2 | Выберем пункты меню 2,3 | Приложение повторяет запрос о выборе пункта меню |
Результаты работы программы представлены на рисунках 1,2 и 3
Рисунок 1 – результат теста №1
Рисунок 2 и 3 – результат теста №2
-
- Результаты
В результате выполнения лабораторной работы были изучены циклы, такие как “While” и “Do…While”. Разработано и протестировано консольное приложение.