Лабораторные работы / Методические указания к ЛР по ОАИП (09.02.07)
.pdfРасширим этот пример, добавив к выводу строки с приветственным сообщением имени, сохраненную в инициализированную переменную
(Рисунок 1.6).
Рисунок 1.6 – Модифицированная программа
В данном примере мы создали переменную name типа string (строка
9). Тип данных string используется для хранения данных строкового типа. В
параметр метода консольного вывода данных (строка 10) мы добавили вывод значения переменной name к строке «Hello World». Для встраивания отдельных значений в выводимую на консоль строку используются фигурные скобки, в которые заключается встраиваемое значение. Это можем значение переменной ({name}) или более сложное выражение (например, операция сложения {4 + 7}). А перед всей строкой ставится знак доллара $.
Для того чтобы собрать приложение, следует выбрать пункт меню
«Сборка», а в нем команду «Собрать решение». После построения программы компилятор сообщит о завершении или укажет ошибки в тексте программы.
Для запуска приложения следует выбрать пункт меню «Отладка», а в нем команду «Запуск без отладки». После чего на экране, в случае отсутствия ошибок, вы увидите результат выполнения программы (Рисунок 1.7).
11
Рисунок 1.7 - Результат выполнения программы
Для создания консольного приложения на языке программирования С++
в окне создания проекта выберите пункт «Консольное приложение С++» (Рисунок 1.8).
Рисунок 1.8 – Окно создания проекта
Код приложения, эквивалентный созданному раннее, представлен на рисунке 1.9.
Рисунок 1.9 – Программа вывода приветственного сообщения на С++
12
3) Задание на лабораторную работу Обе части лабораторной работы выполняются на языках
программирования С++ и С#.
Часть 1.
Написать простейшую консольную программу, которая выводит приветственное сообщение, введенное с клавиатуры пользователем.
Часть 2.
В соответствии с вариантом необходимо написать простейшую консольную программу, в которой помимо главной функции будет функция по варианту.
Варианты |
Индивидуальное задание |
|
|
|
|
1 |
Вычисление суммы двух вещественных чисел. |
|
|
|
|
2 |
Вычисление разности двух вещественных чисел. |
|
|
|
|
3 |
Вычисление произведения двух вещественных чисел. |
|
|
|
|
4 |
Вычисление частного двух вещественных чисел. |
|
|
|
|
5 |
Вычисление суммы квадратов двух вещественных чисел |
|
|
|
|
6 |
Вычисление разности квадратов двух вещественных чисел |
|
|
|
|
7 |
Вычисление произведения квадратов двух вещественных |
|
чисел |
||
|
||
|
|
|
8 |
Вычисление частного квадратов двух вещественных чисел |
|
|
|
|
9 |
Вычисление квадрата суммы двух вещественных чисел |
|
|
|
|
10 |
Вычисление квадрата разности двух вещественных чисел |
|
|
|
|
11 |
Вычисление квадрата произведения двух вещественных чисел |
|
|
|
|
12 |
Вычисление квадрата частного двух вещественных чисел |
|
|
|
|
13 |
Возведение первого введенного числа в степень второго |
|
введенного числа |
||
|
||
|
|
|
14 |
Вычисление периметра треугольника по введенным длинам |
|
трех различных сторон |
||
|
||
|
|
13
Варианты |
Индивидуальное задание |
|
|
|
|
15 |
Вычисление периметра прямоугольника по введенной длине и |
|
ширине |
||
|
||
|
|
|
16 |
Вычисление площади треугольника по трем известным |
|
сторонам |
||
|
||
|
|
|
17 |
Вычисление площади прямоугольника по введенной длине и |
|
ширине |
||
|
||
|
|
|
18 |
Вычисление площади окружности |
|
|
|
|
19 |
Вычисление площади квадрата |
|
|
|
|
20 |
Вычисление объема параллелепипеда по трем известным |
|
сторонам |
||
|
||
|
|
4)Контрольные вопросы
1.Какие основные элементы входят в состав среды разработки Visual Studio?
2.В чем преимущество использования фреймворка .NET?
3.Перечислите основные части программы, написанной на языке программирования С++?
4.Перечислите основные части программы, написанной на языке программирования С#?
5.Какие операторы используются для реализации консольного ввода/вывода данных?
6.Что такое переменная?
14
ЛАБОРАТОРНАЯ РАБОТА №2
Тема: «Программирование алгоритмов разветвляющейся структуры»
ЦЕЛЬ РАБОТЫ
Приобрести умения и практические навыки для программирования
алгоритмов разветвляющейся структуры.
ХОД РАБОТЫ
1)Условные конструкции при построении алгоритмов.
Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно
условие, в результате проверки которого выполняется либо одна, либо другая последовательность действий.
Выбор направления выполнения алгоритма зависит от исходных или промежуточных данных.
Самыми простыми условными ветвлениями в языке С++ являются операторы if/else.
Чтобы указать условие при выполнении которого будет выполняться определенный код, тогда вам потребуется прибегнуть к следующей структуре:
1. набрать ключевое слово if в своей программе;
2. после него, в круглых скобках, вы должны указать логическое выражение:
1 if (<выражение>)
Здесь вместо <выражение> нужно указать требуемое условие, при котором будет выполняться требуемый нам код.
3.инструкции, которые будут выполнятся, мы оборачиваем в фигурные скобки сразу после круглых скобок с условием:
1if (выражение)
2{
3<выполняемый код>
4}
Также можно опустить фигурные скобки. Это можно сделать только в
том случае, если в качестве исполняемого кода будет указана лишь одна
15
инструкция (или один оператор, в том числе другой оператор ветвления,
который уже может содержать любое количество инструкций)
Оператор else выполняется в том случае, если условие указанное в if
ложно. В таком случае будет проигнорирован код в блоке if, и программа сражу перейдет к выполнению кода в блоке else.
Данный оператор нужно прописывать после закрывающей фигурной скобки блока кода if или после единственной инструкции оператора if.
Общая структура условной конструкции if/else выглядит следующим образом:
1if (выражение)
2{
3<выполняемый код>
4}
5else
6{
7<оператор2 (операторы2)>
8}
Если результатом выражения является true (истина, любое ненулевое значение), то выполняться будет оператор1. Если же результатом выражения является false (ложь, 0), то выполняться будет оператор2.
Например:
1 |
#include <iostream> |
|
|
|
|
2 |
using namespace std; |
|
|
|
|
3 |
int main() |
|
|
|
|
4 |
{ |
|
|
|
|
5 |
cout << "Enter a number: "; |
|
|
|
|
6 |
int a; |
|
|
|
|
7 |
cin >> |
a; |
|
|
|
8 |
if (a |
> 15) |
|
|
|
9 |
cout << "Число " << a << " больше чем 15\n"; |
|
|
|
|
10 |
else |
|
|
|
|
11 |
cout << "Число " << a << " меньше чем 15\n"; |
|
|
|
|
12 |
return |
0; |
|
|
|
13 |
} |
|
16
Оператор if выполняет только одну операцию, если выражение
является true, и также только одну операцию else, если выражение — false.
Для того, чтобы выполнить несколько операций подряд, используется блок операторов, которые ограничены фигурными скобками {…}:
1 |
#include <iostream> |
2 |
using namespace std; |
3 |
int main() |
4 |
{ |
5 |
cout << "Enter a number: "; |
6 |
int a; |
7 |
cin >> a; |
8 |
if (a > 15) |
9 |
{ |
10 |
// Блок операторов ограничивается фигурными скобками |
|
{…} |
11 |
// Обе операции будут выполнены, если a > 15 |
12 |
cout << "Было введено число " << a << "\n"; |
13 |
cout << "Число " << a << " больше чем 15\n"; |
14 |
} |
15 |
else |
16 |
{ |
17 |
// Блок операторов ограничивается фигурными скобками |
|
{…} |
18 |
// Обе операции будут выполнены, если a <= 15 |
19 |
cout << "Было введено число " << a << "\n"; |
20 |
cout << "Число " << a << " меньше чем 15\n"; |
21 |
} |
22 |
return 0; |
23 |
} |
Если программист не указал скобки для блока операторов if или else,
то компилятор неявно сделает это за него.
Однако нередко надо обработать не два возможных альтернативных варианта, а гораздо больше. Например, в случае выше можно насчитать три условия: переменная x может быть больше 5, меньше 5 и равна 5. Для проверки
альтернативных условий мы можем вводить выражения else if:
1 |
if(x > 5) |
2 |
{ |
3 |
cout << "x больше чем 5 \n"; |
17
4 |
} |
5 |
else if (x < 5) |
6 |
{ |
7 |
cout << "x меньше чем 5 \n"; |
8 |
} |
9 |
else |
10 |
{ |
11 |
cout << "x равно 5 \n"; |
12 |
} |
То есть в данном случае мы получаем три ветки развития событий в программе.
switch – это множественный условный оператор. Он работает также как несколько условий if, но может проверять лишь одну переменную в своих условиях. Если одно условие является правильным происходит выход.
Для его использования не нужно подключать какие-то дополнительные библиотеки, кроме стандартной <iostream>.
1 switch (имя переменной) {…}
Для проверки условия нужно использовать конструкцию case:
1switch (имя переменной)
2{
3case <проверяемое значение>:
4//Блок кода
5break;
6}
После слова case используются : (двоеточие), а в самом ее конце должен присутствовать оператор break.
Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default.
1int x = 9;
2switch (x) {
3case 5:
4cout << "Значение равно 5";
18
5 |
break; |
|
|
6 |
case 6: |
|
|
7 |
cout << "Значение равно 6"; |
|
|
8 |
break; |
|
|
9 |
case 0: |
|
|
10 |
cout << "Значение равно zero"; |
|
|
11 |
break; |
|
|
12 |
default: |
|
|
13 |
cout << "Значение не равно 5, 6 и даже 0"; |
|
|
14 |
} |
|
|
Если ни одно case и default не правильны, то программа выйдет из switch и продолжит работать дальше.
2)Задание на лабораторную работу.
Обе части лабораторной работы должны быть выполнены либо на языке программирования С++, либо на языке программирования C#.
|
Часть 1 |
||
В соответствии с вариантом необходимо написать консольную |
|||
программу. |
|
|
|
|
|
|
|
Варианты |
Индивидуальное задание |
||
|
|
|
|
1 |
Ввести целое число N. Выяснить, кратно ли оно трем. |
||
|
|
||
2 |
По заданным x, y составить программу вычисления значения z: |
||
|
= |
min( , ) + 0,5 |
|
|
|
|
|
|
1 + max2( , ) |
||
|
|
||
3 |
По заданным x, y составить программу вычисления значения z: |
||
|
max( , ) , при < 0 |
||
|
= {min( , ) , при ≥ 0 |
||
4 |
Даны действительные числа x, y. определить, принадлежит |
||
|
ли точка с координатами (х, y) заштрихованной части |
||
|
|
плоскости. |
|
|
|
|
|
19
Варианты |
|
Индивидуальное задание |
||||
|
|
|
|
|
||
|
|
|
|
|
||
5 |
Даны действительные числа x, y, z. Получить: |
|||||
|
= 2 max( , ) − 3 min( , , ) |
|||||
|
|
|
||||
6 |
По заданным вещественным числам a, b, c вычислить: |
|||||
|
|
= |
max( , , ) − min( , , ) |
|
||
|
|
|
|
|||
|
|
|
|
|
2 |
|
|
|
|
||||
7 |
Ввести два целых числа. Выяснить, являются ли они оба |
|||||
|
четными или нечетными, либо одно четное, а другое нечетное. |
|||||
|
|
|
||||
8 |
Даны действительные числа a, b, c. проверить, выполняются ли |
|||||
|
|
неравенства a < b < c. |
||||
|
|
|
||||
9 |
Даны действительные числа a, b, c. удвоить эти числа, если |
|||||
|
a ≥ b ≥ c, и заменить их абсолютными значениями (значение по |
|||||
|
|
модулю), если это не так. |
||||
|
|
|
||||
10 |
Даны два действительных числа. заменить первое число |
|||||
|
нулем, если оно меньше второго или равно ему, и оставить |
|||||
|
числа без изменения в противном случае. |
|||||
|
|
|
|
|
||
11 |
Даны действительные положительные числа x, y, z. Выяснить, |
|||||
|
существует ли треугольник с длинами x, y, z. |
|||||
|
|
|||||
12 |
Дано действительное число a. Вычислить f (a), если |
|||||
|
|
|
2 |
+ 4 + 5, при ≤ 2 |
||
|
( ) = { |
1 |
|
, в противоположном случае |
||
|
|
|
|
|||
|
|
2 + 4 + 5 |
20