Задания для выполнения дома Задание 1 2.5.1.1. Условие задания Составить программу вычисления функции согласно указанному вари-анту. Предусмотреть вывод информации о выбранной ветви вычислений. Таблица 6.4 № | Функция | № | Функция | |  | |  | |  | |  | |  | |  | |  | | | |  | |  | |  | | | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | | f(x)= x2, | |  | | f(x) = ex | |  | | f(x) = ln x | |  | | f(x) = ex | 2.4. Пример выполнения работы Написать программу вычисления выражения  f(x) = ex Предусмотреть вывод информации о выбранной ветви вычислений. При выводе номера ветви задействовать директиву #define. Текст программы /*Программа LR6-Primer31*/ /*Разветвляющийся вычислительный процесс*/ /*Полная форма оператора if*/ /*Домашнее задание*/ /* Вариант № 30*/ /*Автор: Иванова А.А. студентка гр. ИНФО-101*/ #include<iostream.h> #include<conio.h> #include<math.h> #define STR "Ветвь номер: " int main() { double x, y, p, l; int K; //Номер ветви cout << "Vvedite x: "; cin >> x; cout << "Vvedite p: "; cin >> p; double fx = exp(x); if (x > fabs(p)) { l = 2*pow(fx,3) + 3*p*p; //x> |p| K = 1; cout << STR << K << " Result = " << l << endl; } else if (x > 3 && x < fabs(p)) //3<x < |p| {l = fabs(fx - p); K =2; cout << STR << K << " Result = " << l << endl; } else {l = pow((fx - p), 2); // x = |p| K = 3; cout << STR << K << " Result = " << l << endl; } getch (); return 0; } Тестирование Для ветви 1  Для ветви 2  Для ветви 3  Задание 2 2.5.2.1. Условие задания Составить программу вычисления функции согласно указанному вари-анту. Предусмотреть вывод информации о выбранной ветви вычислений. 3.3. Содержание работы Требуется составить схему программы, разработать, отладить и выполнить программу для решения задачи. Плоскость хОу разделена на четыре области, обозначенные буквами А, В, Си D (рисунки в табл. 6.5). Способ деления определяется вариантом индивидуального задания. Программа должна обеспечить ввод с клавиатуры координат двух точек ха, уа и хь, уь, определить и вывести на печать: коды областей, в которых лежат указанные точки; направление отрезка ab — вертикальное, горизонтальное, наклонное вниз или вверх по отношению к положительному направлению оси х. Кроме того, в программе следует предусмотреть меню, определяющее, каким цветом должны выводиться результаты. В ходе отладки программы следует опробовать отладочные средства среды ВС, помогающие следить за ходом вычислительного процесса при наличии разветвлений, и заполнить в таблице «горячих клавиш» (см. Практическую работу 2, табл. 2.1) графы, помеченные цифрой 3. 3.4. Индивидуальные задания Схема деления плоскости хОу на области А, В, С и D для вариантов заданий показаны на рис. 3.3. Центры окружностей совпадают с началом координат. Радиусы внутренней и наружной окружностей принять равными 1 и 3 соответственно. 3.5. Дополнительное задание для «мастеров» 1. Дополнить программу таким образом, чтобы она отслеживала ситуации, когда точка попадает на границу между областями, и выводила на экран имена приграничных областей. 2. Дополнить программу, обеспечив ввод с клавиатуры координат еще одной точки с. Программа должна определить, лежит ли точка с на отрезке ab, и выдать на экран результат. Таблица 6.5 № | Область | № | Область | № | Область | № | Область | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | |  | | | | | | | | | 3.6. Пример программы Условие задачи. Ввести с клавиатуры координаты точки на плоскости X и Y и определить, в каком квадранте плоскости хОу лежит точка. Приведем три различных варианта решения задачи, блок- схемы которых показаны соответственно на рис. 6.19, 6.20 и 6.21. Пример 6.38. /*Лабораторная работа № 6*/. /*Программа для определения квадранта*/ /* положения точки на координатной плоскости*/. /*Вариант А (см. рис. 6.19)*/ /*Автор Иванов Сергей, гр. ИНФО-101*/ /*Дата выполнения 29.03.2012*/ # include <stdio.h> # include <conio.h> int main () {float x,y; int К; //К – номер квадранта / *ввод исходных данных */ clrscr(); //Очистка экрана cout << ("Введите координаты точки х и у > "); cin >> x >> y >> endl; /* Определение номера квадранта*/ if(x>=0 && y>=0) K = 1; if(x<0 && y>=0) K = 2; if(x<0 && y<0) K = 3; if(x>=0 && y<0) K = 4; /*печать результата*/ cout << ("\n\nТочка лежит в квадранте K = ") << K << endl; getch(); return 0; }  Рис. 6.19. Схема программы (вариант А) к примеру 6.38 | Рис. 6.20. Схема программы (вариант В) к примеру 6.39 | | | Пример 6.39. /*Лабораторная работа № 6*/. /*Программа для определения квадранта*/ /* положения точки на координатной плоскости*/. /*Вариант А (см. рис. 6.20)*/ /*Автор Иванов Сергей, гр. ИНФО-101*/ /*Дата выполнения 29.03.2012*/ # include <stdio.h> # include <conio.h> int main () {float x,y; int К; //К – номер квадранта / *ввод исходных данных */ clrscr(); //Очистка экрана cout << ("Введите координаты точки х и у > "); cin >> x >> y >> endl; /* Определение номера квадранта*/ if(x> = 0 &&y> = 0) K = 1; else if(x<0 && у> = 0) K = 2; else if(x<0 && у< 0) K = 3; else K = 4; /*печать результата*/ cout << ("\n\nТочка лежит в квадранте K = ") << K << endl; getch(); return 0; }  Рис. 6.40. Схема программы (вариант С) Пример 6.40. /*Лабораторная работа № 6*/. /*Программа для определения квадранта*/ /* положения точки на координатной плоскости*/. /*Вариант А (см. рис. 6.40)*/ /*Автор Иванов Сергей, гр. ИНФО-101*/ /*Дата выполнения 29.03.2012*/ # include <stdio.h> # include <conio.h> int main () {float x,y; int К; //К – номер квадранта / *ввод исходных данных */ clrscr(); //Очистка экрана cout << ("Введите координаты точки х и у > "); cin >> x >> y >> endl; /* Определение номера квадранта*/ if(y>=0) k = (x>=0)?1:2; // точка в верхней половине плоскости else k = (х<0)?3:4; // точка в нижней половине плоскости /*печать результата*/ cout << ("\n\nТочка лежит в квадранте K = ") << K << endl; getch(); return 0; } Сравнение приведенных вариантов весьма поучительно, хотя все они приводят к одинаковому результату. Для варианта А результат достигается после выполнения проверки восьми условий независимо от положения точки. Для варианта В в наихудшем случае проверяются шесть условий, а в наилучшем – только два. Наконец, для варианта С результат в любой ситуации достигается после проверки всего двух условий. Таким образом, очевидно, что вариант В предпочтительнее варианта А, а вариант С предпочтительнее вариантов А и В, так как обеспечивает наиболее экономное решение. Этот пример показывает, как важно правильно организовать процесс ветвления в сложной ситуации. Примечание. Обратите внимание на взаимное расположение операторов if и else при записи программы в варианте В: каждый оператор elseпомещен под своим if. Настоятельно рекомендуется строго придерживаться этого правила, так как оно существенно улучшает чтение (и отладку) программ, содержащих сложную иерархию условных операторов. 3.7. Типичные ошибки при выполнении работы Операция сравнения ошибочно записывается в виде =. Следует записывать = =. Составные операторы необходимо заключать в фигурные скобки. 3.8. Требования к студентам В результате выполнения работы студенты должны: знать синтаксис операторов, организующих ветвящиеся процессы; знать и уметь использовать на практике отладочные средства среды ВС при отладке программ с разветвлением; уметь анализировать иерархию условных операторов с точки зрения оптимальности ее организации. Задание 3 2.5.3.1. Условие задания Составить программу вычисления функции согласно указанному варианту. Таблица 6.4 № | Задания | | Прямая L, заданная на плоскости координатами двух точек (a,b) и(c,d), разбивает координатную плоскость на две полуплоскости. Известны также координаты двух точек (x1, y1) и (x2, y2), не лежащих на данной прямой. Определить, находятся ли точки в разных полуплоскостях или в одной, и напечатать сообщение. Иметь возможность повторного обращения в диалоге. | 2. | Составить программу для определения корней системы двух линейных алгебраических уравнений по правилу Крамера. Решение вывести в виде системы уравнений. Иметь возможность повторного обращения в диалоге. | 3. | Дано натуральное число N, в записи которого ровно пять знаков. Определить, является ли это число палиндромом или нет, напечатать сообщение текстом. Значение числа вводить в диалоге, иметь возможность повторного обращения. | 4. | Дано натуральное число N, определяющее возраст человека в годах. Дать для этого числа наименование «год», «года» или «лет». Например, «Вам 21 год» или «Вам 43 года». Иметь возможность повторного обращения в диалоге. | 5. | Окружность на плоскости с центром в начале координат имеет радиус R. Известны также координаты концов некоторого отрезка (x1,y1) и (x2,y2). Определить, пересекает ли отрезок окружность и сколько раз. Значения координат вводить в диалоге, иметь возможность повторного обращения. | 6. | На плоскости заданы две окружности координатами центров и радиусами. Определить, пересекаются ли они или касаются друг друга. Значения вводить в диалоге, иметь возможность повторного обращения. | 7. | Даны длины трех отрезков. Определить, можно ли построить треугольник с такими длинами сторон. Если да, то определить, какой это треугольник: прямоугольный, остроугольный или тупоугольный. Значения длин вводить в диалоге, иметь возможность повторного обращения. | 8. | Заданы декартовы координаты точки на плоскости. Перевести в полярные координаты с учетом номера четверти, где находится точка. Угол перевести в градусную меру с точностью до минут. Значения вводить в диалоге, иметь возможность повторного обращения. | 9. | По введенным координатам точки (x,y) определить номер четверти координатной плоскости, где находится точка. Значения координат вводить в диалоге, иметь возможность повторного обращения. | 10. | На плоскости задан треугольник длинами своих сторон. Найти наименьший из углов треугольника с точностью до одного градуса. Значения сторон вводить в диалоге, иметь возможность повторного обращения. | 11. | На плоскости заданы три точки своими координатами. Определить расстояния от точек до начала координат и напечатать, какая из точек расположена ближе к началу координат. Значения вводить в диалоге, иметь возможность повторного обращения. | 12. | Дано натуральное число N, в записи которого ровно пять знаков. Определить, имеет ли это число одинаковые цифры или нет. Значение числа вводить в диалоге, иметь возможность повторного обращения. | 13. | Окружность на плоскости с центром в начале координат имеет радиус 1. Известны координаты левого верхнего угла квадрата со стороной 1. Определить, принадлежит ли окружности хотя бы одна вершина квадрата. Значения вводить в диалоге, иметь возможность повторного обращения | 14. | Окружность с центром в начале координат имеет радиус 1. Определить, пересекает ли прямая y = k·x + b окружность или хотя бы касается один раз. Значения k и b вводить в диалоге, иметь возможность повторного обращения. | 15. | На плоскости заданы два квадрата координатами левого верхнего угла и длинами сторон. Определить, пересекаются ли они. Значения вводить в диалоге, иметь возможность повторного обращения. | 16. | На плоскости задано кольцо с центром в начале координат и радиусами r1 и r2, где r1<r2. Дана точка своими координатами (x,y). Определить, находится ли точка внутри кольца. Значения вводить в диалоге, иметь возможность повторного обращения. | 17. | Прямоугольной формы кирпич имеет стороны A, B, C. Определить, пройдет ли кирпич в прямоугольное отверстие размером 5 на 8. Значения вводить в диалоге, иметь возможность повторного обращения. | 18. | Даны четыре числа. Определить, являются ли они элементами арифметической прогрессии. Значения вводить в диалоге, иметь возможность повторного обращения. | 19. | В продаже есть два вида системных блоков, по цене К1 и К2 руб., и три вида мониторов по цене М1, М2 и М3 руб. Известны также стоимость клавиатуры и мыши. Найти, сколько будет стоить самый дешевый компьютер, и сколько самый дорогой. Значения стоимостей вводить в диалоге, иметь возможность повторного обращения. | 20. | Прямоугольной формы контейнер имеет размеры 8*8*12, где 12 – высота контейнера. Дано К прямоугольных блоков размером n*n*2n. Определить, войдут ли эти блоки в контейнер. Если не войдут, то определить, сколько останется. Размер блоков вводить в диалоге, иметь возможность повторного обращения. | 21. | На плоскости заданы три точки своими координатами. Определить длины сторон охватывающего их прямоугольника наименьшего размера. Пусть его стороны параллельны координатным осям. Значения координат вводить в диалоге, иметь возможность повторного обращения. | 22. | Даны два интервала числовой оси [a1,b1] и [a2,b2]. Найти соотношение интервалов: пересекаются или нет, первый принадлежит второму или наоборот. Значения вводить в диалоге, иметь возможность повторного обращения. | 23. | На плоскости задан квадрат координатами левого верхнего угла и длиной стороны. Задан также отрезок координатами концов. Определить, находится ли отрезок полностью внутри квадрата или один его конец внутри, или отрезок полностью снаружи. Значения вводить в диалоге, иметь возможность повторного обращения. | 24. | На плоскости задан треугольник координатами своих вершин. Найти наибольшую из сторон треугольника. Значения координат вводить в диалоге, иметь возможность повторного обращения. | 25. | Дано цилиндрическое ведро радиусом r и высотой h. Требуется с его помощью переместить К литров жидкости из одной емкости в другую. Определить, можно ли это сделать за одно действие. Если нет, то определить, сколько раз нужно воспользоваться ведром. Размеры вводить в диалоге, иметь возможность повторного обращения. | 26. | На плоскости заданы три точки своими координатами. Определить, сколько из них и какие находятся внутри окружности, для которой известны радиус и координаты центра. Все значения вводить в диалоге, иметь возможность повторного обращения. | 27. | Дан возраст двоих людей в формате «Число, месяц, год». Найти который из них старше, сравнивая по отдельности год, затем месяц, затем день. Значения вводить в диалоге, иметь возможность повторного обращения. | 28. | Даны прямоугольная коробка размером w*w*h1 и цилиндрическое ведерко радиуса основания r и высотой h2. Найти, какая емкость больше по объему. Значения вводить в диалоге, иметь возможность повторного обращения. | 29. | На плоскости заданы две прямые каноническими уравнениями. Найти, пересекаются эти прямые, или нет. Значения коэффициентов вводить в диалоге, иметь возможность повторного обращения. | 30. | Дано числовое значение денежной суммы не более 100 руб. Вывести значение числа прописью, например, «2 рубля», «12 рублей», «51 рубль». Анализировать остаток от деления на 10. Так, для остатка, равного 1 наименование «рубль», для остатка, равного 2, 3, 4, наименование «рубля», для остатка, равного 5, 6, 7, 8, 9, 0 наименование «рублей». Числа второго десятка – исключение. Значение денежной суммы вводить в диалоге, иметь возможность повторного обращения. | 31. | У каждого из трех братьев есть некоторая сумма денег. Они решили поделиться поровну. Определить, кто из них и кому должен передать какую сумму. Значение сумм вводить в диалоге, иметь возможность повторного обращения. | 32. | При кормлении одного лабораторного животного нужно в день К1 калорий для мыши, К2 калорий для крысы. Есть корма калорийностью P1 по цене Х1 руб., P2 по цене X2 руб. и P3 по цене X3 руб. за кг. Подобрать самый дешевый дневной рацион для X мышей и Y крыс. Значения данных вводить в диалоге, иметь возможность повторного обращения. | 33. | Для одного подарка выделено К руб. В подарок можно положить яблоки по цене К1 руб., апельсины по цене К2 руб. и печенье по цене К3 руб. за штуку. В подарок каждый из предметов должен войти хотя бы один раз. Если получается, то по два одинаковых или по три. Найти состав подарка. Найти сумму, которая останется от покупки. Значения данных вводить в диалоге, иметь возможность повторного обращения. | 2.5.3.2. Пример решения задачи (вариант 31) 2.5.3.3. Условие программы У каждого из трех братьев есть некоторая сумма денег. Они решили поделиться поровну. Определить, кто из них и кому должен передать какую сумму. Значение сумм вводить в диалоге, иметь возможность повторного обращения. 2.5.3.3. Схема алгоритма 2.5.3.3. Программа /****************************************************/ /* Лабораторная работа № 6 */ /* Разветвляющийся вычислительный процесс */ /* Задание № 3-Домашнее */ /* Вариант № 31. */ /* Автор: Иванова А.А. студентка гр. ИНФО-101 */ /****************************************************/ #include<conio.h> #include<math.h> #include<iostream.h> #include<stdio.h> #include <stdio.h> int main() { float sb1, sb2, sb3, s, sred, ost1, ost2, ost3; /* Ввод данных */ cout << "Введите через пробел три суммы sb1, sb2, sb3: "; cin >> sb1 >> sb2 >> sb3; s = sb1 + sb2 + sb3; sred = s/3.0; ost1 =sb1 - sred; ost2 = sb2 - sred; ost3 = sb3 - sred; /* Вывод только что введенных значений */ cout << "Исходные данные: " << endl; cout << "sb1 = " << sb1 << " sb2 = " << sb2 << " sb3 = " << sb3<< endl; cout << "Промежуточные данные: "<< endl ; cout << "s = " << s << " sred = " << sred << endl; cout << "ost1 = " << ost1 << " ost2 = " << ost2 << " ost3 = " << ost3<< endl; /* Проверка условий */ if ((ost1==ost2)&& (ost1==ost2)) {cout << "Братья располагают одинаковыми суммами:" << endl; cout << "sb1 = " << sb1 << " sb2 = " << sb2 << " sb3 = " << sb3 << endl; } else if (ost1 >0 && ost2 >0) {cout << "Брату 3 отдают: "; cout << "Брат 1 = " << ost1 << " рублей; "; cout << "Брат 2 = " << ost2 << " рублей " << endl; } else if (ost1 >0 && ost3 >0) {cout << "Брату 2 отдают: "; cout << "Брат 1 = " << ost1 << " рублей; "; cout << "Брат 3 = " << ost3 << " рублей " << endl; } else if (ost2 >0 && ost3 >0) {cout << "Брату 1 отдают: "; cout << "Брат 2 = " << ost2 << " рублей; "; cout << "Брат 3 = " << ost3 << " рублей " << endl; } else if (ost1 >0 && ost2 <0 && ost3 <0) {cout << "Брат 1 отдает: "; cout << "Брату 2 = " << -ost2 << " рублей; "; cout << "Брату 3 = " << -ost3 << " рублей " << endl; } else if (ost2 >0 && ost1 <0 && ost3 <0) {cout << "Брат 2 отдает: "; cout << "Брату 1 = " << -ost1 << " рублей; "; cout << "Брату 3 = " << -ost3 << " рублей " << endl; } else if (ost3 >0 && ost1 <0 && ost2 <0) {cout << "Брат 3 отдает: "; cout << "Брату 1 = " << -ost1 << " рублей; "; cout << "Брату 2 = " << -ost2 << " рублей " << endl; } getch(); return 0; } 2.5.3.3. Тестирование Вариант 1  Вариант 2  Вариант 3  Вариант 4  Вариант 5  Вариант 6  Вариант 7  2.5. Вывести тексты программы на принтер. 2.6. Подготовить отчет. 2.6. Подготовиться к защите лабораторной работы (вопросы к защите приводятся). 3. ВЫВОДЫ Выполнение этой лабораторной работы должно показать Вам средства языка C++, необходимые программисту для реализации программ с разветвленной структурой. Вы должны освоить операторы языка С++, реализующие разветвления в программах. Во время выполнения этой и других работ Вы познакомитесь с другими возможностями языка С++ и выберете для себя некоторый стиль написания программ на языке С++. Чем активнее Вы будете овладевать возможностями системы программирования на языке С++, тем более легким и эффективным будет для Вас выполнение всего лабораторного практикума. 4. ТРЕБОВАНИЕ К ОТЧЕТУ В отчете должны быть отображены следующие пункты: 1. Название работы. 2. Цель работы 3. Задание. 4. Краткие теоретические сведения. 5. Листинги семи программ. 6. Таблицы выбора идентификаторов (таблицы кодирования переменных). 7. Результаты выполнения трех программ (скриншоты). 8. Выводы. 5. ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ 1. В каких случаях следует задавать значения переменным с помощью операторов ввода, а в каких – с помощью операторов присваивания? 2. В каком порядке выполняются операторы при отсутствии специальных указаний о передаче управления? 3. Из каких частей состоит условный оператор if ? 4. Может ли быть помечен оператор, входящий в состав условного оператора, и возможен ли переход к нему из другого места программы? 5. Какие логические операции разрешены в языке С++? 6. Каков приоритет логических операций? 7. Какие операции сравнения разрешены в языке С++? 8. Какие формы условного оператора if имеются в языке С++? 9. В каких случаях используется короткая форма условного оператора? 10. В каких случаях используется полная форма условного оператора? 11. В каких случаях используется составной оператор? 12. Что понимается под группой операторов? 13. Как образуется группа операторов? 14. Какой вычислительный процесс называется разветвляющимся? 15. Какой оператор в языке С++ называется пустым? 16. Для каких целей используется пустой оператор? 17. Какой оператор в языке С++ называется оператором перехода? 18. Какие операции отношения разрешены в С++? 19. Когда используется оператор перехода? 20. Как (какими средствами) реализуется разветвляющийся вычислительный процесс в языке С++? 21. Могут ли ветви оператора if быть в свою очередь операторами if (допускаются ли вложенные операторы if)? 22. Как можно в ветви оператора if задать последовательность из нескольких операторов? 23. По какому правилу определяется отношение ключевого слова else к оператору if во вложенных операторах if? 24. Для каких целей предназначен условный оператор if? 25. Каков уровень вложенности операторов if? 26. Какие операторы относятся к операторам управления выполнения программы? 27. Могут ли в составной оператор входить другие составные операторы? 28. Можно ли в качестве ветвей условного оператора if использовать пустые операторы? 29. Какой оператор называется составным? 30. Какое выражение называется логическим? 31. Какой алгоритм называется разветвляющимся? 32. Как называются команды, использующиеся в разветвляющихся алгоритмах? 33. Изобразите графически команду ветвления в полной форме. 34. Изобразите графически команду ветвления в сокращенной форме. 37. Какие операторы языка используются для программирования ветвлений? 38. Какие операторы языка используются для программирования выбора? 39. Какое выражение называется логическим? 40. Какие значения может принимать логическое выражение? 41. Перечислите операции отношения. 42. Перечислите логические операции. 43. Приведите таблицы результатов выполнения логических операций. 44. Сокращенная форма записи оператора if? 45. Полная форма записи оператора if? 46. Как выполняется оператор if в сокращенной форме? 47. Как выполняется оператор if в полной форме? 48. Как производится проверка правильности разветвляющегося алгоритма и программы? 49. Общий вид оператора выбора? 50. Структура команды выбора, соответствующая оператору switch с оператором break после каждого case? 51. Сформулируйте правило выполнения оператора switch. 52. Какие функции выполняет условный оператор? 53. Что такое полный и неполный условный оператор? В чем разница между ними? Нарисуйте их схемы. 54. Что такое вложенный условный оператор? Как определяется соответствие между операторами if и else во вложенных условных операторах? 55. Что такое условная операция и чем она отличается от условного оператора? 56. С помощью каких операций формируется условие в условном операторе и условной операции? 57. Что такое составной оператор и когда его следует применять внутри условного оператора? 58. Из каких компонент состоит оператор множественного ветвления? 59. Какова роль оператора breakв операторе множественного ветвления? 60. Дайте характеристику служебного слова default?Как работает оператор switchпри отсутствии оператора default? 61. Как выполняется отладка программ, содержащих ветвления вычислительного процесса? 62. Как отлаживать программы с ветвлениями вычислительного процесса? 63. Когда используется условный оператор? 64. Какие формы условного оператора существуют? Чем они отличаются? 65. Как работает неполный условный оператор? 66. Как осуществляется анализ вложенных условных операторов? 67. Как проверить, является ли целое число нечетным? 68. Как выполняются логические операциии, или, не? 69. Определить результат отношений: ’a’==’A’ ’a’!=’A’ 70. Какой вычислительный процесс называется разветвляющимся? Литература 1. Волков В. Б., Макарова Н. В. Информатика. Учебник для вузов. – СПб: Питер, 2011 2. Гагарина Л.Г. , Колдаев В.Д. Алгоритмы и структуры данных: учеб. пособие. – М.: Финансы и статистика; ИНФРА-М, 2009. -304 с: ил. 3. Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования: учеб. пособие. – 3-е изд., испр. и доп. – М: ФОРУМ, 2008. — 432 с. — (Профессиональное образование). 4. Страуструп Б. Программирование: принципы и практика использования C++. Пер. с англ. – М.: ООО "И.Д. Вильямс", 2011. – 1248 с.: ил. 5. Савич У. Программирование на C++. – СПб: Питер, 2004. 6. ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. 7. Хенкеманс Д., Ли М. Программирование на С++. – Пер. с англ. – СПб: Символ-Плюс, 2002, 2005. 416 с, ил. 8. Герберт Ш. С++: базовый курс, 3-е издание. : Пер. с англ. – М.: Издательский дом "Вильяме", 2010. – 624 с.: ил. 9. Дейтел Х., Дейтел П. Как программировать на С++ Бином-Пресс, 2010. Оглавление Лабораторная работа № 06. 2 Программирование разветвляющихся вычислительных процессов. 2 1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ.. 2 1.1. Операции сравнения и логические операции. 2 1.1.1. Операции сравнения. 2 1.1.2. Логические операции. 4 1.1.3. Логические выражения. 4 1.2. Приоритет операций. 5 1.3. Разветвляющийся вычислительный процесс. 8 1.4. Реализация РВП средствами языка С++. 9 1.5. Оператор перехода. 12 1.6. Пустой оператор. 14 1.7. Условный оператор и его формы в С++. 16 1.7.1. Короткая форма условного оператора. 18 1.7.2. Полная форма условного оператора. 19 1.8. Программирование простых РВП средствами языка С++. 22 1.9. Понятие составного оператора (группы операторов) 23 1.10. Программирование сложных (произвольных) РВП средствами языка С++. 27 1.10.1. Проверка двух или более условий. 28 1.10.2. В C++ истина представляется как ненулевое значение, а ложь как 0. 30 1.10.3. Использование операции НЕ в C++. 31 1.10.4. Использование логических операций C++. 32 1.10.5. Обработка нескольких условий. 32 1.10.6. Вложенный условный оператор. 34 1.11. Рекомендации по заданию исходных значений переменным.. 50 1.11.1. Операторы присваивания. 50 1.11.2. Операторы ввода. 51 1.11.3. Инициализация переменных. 51 1.11.4. Именованные константы.. 52 1.12. Оператор множественного выбора switch. 55 1.13. Использование отступов для улучшения удобочитаемости вашей программы.. 63 2. ЗАДАНИЕ.. 63 3.6. Пример программы.. 90 3.7. Типичные ошибки при выполнении работы.. 94 3. ВЫВОДЫ... 102 4. ТРЕБОВАНИЕ К ОТЧЕТУ.. 102 5. ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ.. 102 Литература. 105 |