ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной 
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Организация ввода-вывода данных Для форматного ввода-вывода данных скалярных типов и строк используются стандартные функции ввода/вывода, описанные в библиотеке stdio.h. Для ввода используется стандартная функция scanf(), её синтаксис: scanf (“форматная строка”, список параметров ввода); Форматная строка заключается в кавычки и может содержать символы трех типов: – обычные символы, которые должны вводиться с клавиатуры в том же виде, в каком они содержатся в форматной строке; – спецификации преобразования, задающие формат ввода, которые начинаются с символа «%» и заканчиваются символом преобразования. Символы преобразования задают тип вводимой переменной: ‘c’ ‒ символ; «d», «i» – десятичное целое типа int; «D», «I» – десятичное целое типа long; «e», «E» – вещественное число в экспоненциальной форме, например, 5.12E–02; «f», «g», «G» – вещественное число с плавающей точкой; «o» («O») – восьмеричное число типа int (long); «x» («X») – 16-ричное число типа int (long); «u» («U») – беззнаковое целое типа int (long); «s» – строка символов; «lf» – вещественное число удвоенной точности; – управляющие символьные константы (например, ‘\n’ – переход к следующей строке). Список параметров ввода отделяется от форматной строки запятой и содержит перечисление параметров ввода через запятые. В качестве параметров ввода используются адреса переменных, которые обозначается знаком символом ‘&’, стоящим перед именем вводимой переменной. Количество спецификаций в форматной строке должно совпадать с числом выводимых параметров. Пример 1.1. Даны две строки, содержащие функции форматного ввода: scanf (“%f %f %f”, &a, &b, &c); scanf (“%s%d%lf”, &simb1, &n, &x); В первой строке вводятся три вещественных (%f) числа a, b, c, разделяемые при вводе с клавиатуры пробельными символами, ввод заканчивается нажатием клавиши [Enter]. Во второй строке вводятся: строка символов(%s) simb1, целое (%d) число n и вещественное число x с удвоенной точностью (%lf). Для вывода используется функция printf(), её синтаксис: printf (“форматная строка”, список параметров вывода); Форматная строка вывода аналогична форматной строке ввода. Список параметров вывода отделяется от форматной строки запятой и содержит перечисление параметров вывода через запятые. Пример 1.2. Дан фрагмент программы на языке С, С++, содержащий функции форматного вывода: printf(“Введите стороны треугольника”); printf(“Результат: a=%9.4f b=% 3d \n”,a,b); В первой строке в форматной части отсутствуют параметры вывода, на экран выводится фраза «Введите стороны треугольника», курсор остается на той же строке, в следующей позиции после последнего выведенного символа. Во второй строке выводится результат вычисления: фраза «Результат:», имя переменной и знак равенства «a=», значение переменной a в формате 9.4f (9 ‒ общая ширина поля вывода позиций, из них 4 позиции на десятичные цифры после точки, одна позиция на десятичную точку, остальные 4 позиции на знак числа и его целую часть), имя следующей переменной и знак равенства «b=», значение переменной b в формате d, с шириной поля – три. Если значение a=4.23, а значение b=3, на экране появится строка: Результат: a= 4.2300 b=3 После вывода данной строки, курсор перейдет в начало следующей строки, так как в конце форматной строки стоит управляющий символ ‘\n’. В языке С++ ввод-вывод может осуществляться не только с помощью функций, но и с помощью операций. Операция вывода <<, операция ввода >>. Синтаксис вывода на экран: cout << выражение. Синтаксис ввода с клавиатуры: cin>>переменная. При использовании операций ввода-вывода необходимо включить в программу файл iostream.h. Пример 1.3. Дана программа на языке С, С++. #include <iostream.h> int i; main(){ cout << "Введите целое число "; cin >> i; cout << " Квадрат числа: " << i*i << "\n"; return 0; } В результате работы программы на экран выводится фраза: «Введите целое число », далее с клавиатуры должно вводиться целое число (например, 3), значение которого присвоится переменной i. Экран, после выполнения программы имеет вид: Введите целое число 3 Квадрат числа: 9 Аппаратура и материалы: персональный компьютер не ниже Pentium–4, OC семейства Windows, интегрированная среда Builder C++. Порядок выполнения работы 1. Создайте папку на указанном преподавателем диске или на флеш-носителе, для хранения исходных текстов программ на языке С++. 2. Отладим и выполним эту программу в среде Borland C++Builder 6. Для этого запустите Builder C++, нажав соответствующий значок на рабочем столе или (Пуск\Все программы\Builder C++). После нажатия откроется основная рабочая область инструмента, представленная на рисунке 1.1. Ознакомьтесь с средой C++Builder 6, описание которой приведено в теоретической части работы. 3. Для запуска проекта консольного приложения необходимо выполнить следующее действие: выбрать пункт меню File->New->Other, далее в открывшемся окне проектов, необходимо выбрать пункт Console Wizard.  Рис. 1.2. Выбор типа проекта После выбора консольного проекта, откроется окно, в котором надо указать на каком языке будет код программы: С или С++. Выберите С++ и нажмите Ок. В результате открывается окно с шаблоном для ввода, куда записывается код контрольного примера лабораторной работы. Некоторые заголовочные файлы автоматически подключаются для работы программы в виде шаблона при входе в консольное приложение. Они выделены зеленым цветом и их нельзя удалять. Вид кода консольного приложения в среде C++Builder 6 представлен на рисунке 1.3.  Рис 1.3. Вид кода консольного приложения в среде C++Builder 6 4. Составим алгоритм решения следующей задачи: Вычислить длину окружности, площадь круга и объем шара, имеющих радиус R (любое целое число): Для вычислений используем формулы L=2πR, S=πR2, V=πR3×4/3= RS× 4/3. Блок-схема решения задачи представлена на рисунке 1.4, из которого видно, что алгоритм имеет линейную структуру. 5. Реализуем построенный алгоритм на языке программирования С++. Программа на С++ имеет вид: #include<iostream.h> //включение заголовочного файла ввода-вывода const float Pi =3.14; //описание константы π int main(int argc, char* argv[]) //главная функция { /*описание переменных: целого типа и вещественного типа*/ int R; float L, S, V; cout <<" Enter R="; // вывод на экран комментария cin >>R; //ввод значения радиуса L=2*Pi*R; // вычисление значений S= Pi*R*R; V=4./3* Pi*R*R*R; //вывод значений cout <<'\n'<<" L="<< L <<" S="<<S<<'\n'; cout <<'\n'<<" V ="<<V <<'\n'; return 0; } 6. Наберите программу в окне редактирования C++ Builder, используя «заготовку» (комментарий, написанный после // можно не вводить, он поясняет строки программы) (рисунок 1.5).  Рис 1.5. Вид кода консольного приложения в среде C++Builder 6 с контрольным примером 7. Сохраните программу, используя команду File\Save или щелчком по одноименному инструменту (рисунок 1.1). В диалоговом окне выберите диск, с которыми Вы работаете и папку, созданную в п.1. В строке имя файла введите имя программы Lab1. Автоматически к имени файла будет добавлено расширение .cpp, которое для компилятора является признаком того, что программа составлена на языке С++ (расширение .c – признак программы написанной на языке Си). 8. Для запуска программы необходимо нажать клавишу F9 или кнопку запуска в инструментах. При этом выполняется компиляция программы. Если в программе есть ошибки, то появятся соответствующие сообщения. Надо вернуться в программу, исправить их, сохранить программу с тем же именем и запустить на выполнение клавишей F9. 9. После чего откроется консоль приложения, как показано на рисунке 1.6. Рис. 1.6. Результат работы программы 10. В открывшемся окне введите исходные данные (целое число – значение радиуса R), нажмите [Enter]. На экране появится результаты решения задачи L, S и V, но они быстро исчезнут. Для задержки экрана вывода результатов вернитесь в программу, перед return добавьте команду cin>>R; и заново запустите программу. 11. Для возврата в интегрированную среду, нажмите любую клавишу. Запустите программу с другими исходными данными. 12. Эта программа написана с использованием потокового ввода-вывода данных, что характерно для С++. Видоизменим программу в стиле С, используя форматный ввод и вывод. Для этого замените строки программы и сохраните под именем Lab1_1: cout <<" Vvedite R="; cin >>R; на строки: printf(" Vvedite\n R="); scanf(“%d”, &R); 13. Замените строки программы: cout <<'\n'<<" L="<< L <<" S="<<S<<'\n'; cout <<'\n'<<" V ="<<V <<'\n'; на строку: printf("\n L= %8.3f S=%10.4f \n\n\n V =%7.2f\n", L,S,V); 14. Сохраните файл под этим же именем и откомпилируйте программу. В результате компиляции выявится ошибка. В программе необходимо заменить библиотеку iostream.h на stdio.h (т. к. используются функции форматного ввода и вывода). Исправьте ошибку. Сохраните исправленный текст программы. Запустите программу на выполнение. 15. Сравните вид результатов работы программ Lab1 и Lab1_1. 16. Выполнить согласно варианту, выданному преподавателем, задание 1 (таблица 1.1), задание 2 (таблица 1.2) и задание 3 (таблица 1.3). Примечание: для заданий 1 и 2 программу писать не надо! Таблица 1.1 – Условие и исходные данные задания 1 Задание 1. Записать на языке С++ математические выражения 1 и 2 | № вар. | Математическое выражение 1 | Математическое выражение 2 | | | | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | | | | | | Продолжение таблицы 1.1 | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | Таблица 1.2 – Условие и исходные данные задания 2 Задание 2. Вычислить значения выражений, записанных на Си: A/B; C/D; C%D; C++; D--. (для вычисления A/B воспользуйтесь калькулятором). | № варианта | А | В | С | D | № варианта | А | В | С | D | | 30,2 | 1,9 | | | | 15,2 | 16,9 | | | | 29,3 | 2,8 | | | | 14,3 | 17,8 | | | | 28,4 | 3,7 | | | | 13,4 | 18,7 | | | | 27,5 | 4,6 | | | | 12,5 | 19,6 | | | | 26,1 | 5,5 | | | | 11,1 | 20,5 | | | | 25,2 | 6,9 | | | | 10,2 | 21,9 | | | | 24,3 | 7,8 | | | | 9,3 | 22,8 | | | | 23,4 | 8,7 | | | | 8,4 | 23,7 | | | | 23,4 | 8,7 | | | | 8,4 | 23,7 | | | | 22,5 | 9,6 | | | | 7,5 | 24,6 | | | | 21,1 | 10,5 | | | | 6,1 | 25,5 | | | Таблица 1.3 – Задание 3 № вар. | Условия заданий | | С клавиатуры вводятся: длины катета прямоугольного треугольника АВ и гипотенузы АС. Вычислить длину катета ВС и периметр треугольника. | | С клавиатуры вводятся: величины углов треугольника а, в, с и радиусом описанной окружности R. Вычислить стороны треугольника. | | С клавиатуры вводятся: целые числа А и В выражающие объем информации в килобайтах. Перевести А в байты, В в мегабайты. | | С клавиатуры вводится сторона равностороннего треугольника А. Вычислить радиус вписанной r и описанной R окружностей этого треугольника. | | С клавиатуры вводятся числа A, B, C. Вычислить среднее арифметическое и среднее геометрическое этих чисел. | | С клавиатуры вводятся: длины катетов прямоугольного треугольника АВ и ВС. Вычислить гипотенузу и площадь треугольника. | | С клавиатуры вводятся: высота конуса H и радиус основания R. Вычислить площадь боковой поверхности и объем конуса. | | С клавиатуры вводятся: координаты вершин треугольника X1,Y1, X2, Y2 и X3, Y3. Вычислить периметр этого треугольника. | | С клавиатуры вводятся: основания равнобокой трапеции А, В и угол при большем основании В – АВ. Вычислить площадь трапеции. | | С клавиатуры вводятся: первый член геометрической прогрессии b1 и знаменатель q. Вычислить третий член и сумму первых трёх членов этой прогрессии. | | С клавиатуры вводятся: координаты концов отрезка X1,Y1 и X2, Y2. Вычислить координаты середины отрезка. | | С клавиатуры вводится коэффициент b. Решить уравнение ах = b, где а = cos(b) + 5* b. | | С клавиатуры вводятся числа A, B, C. Вычислить среднее арифметическое и среднее геометрическое этих чисел. | | С клавиатуры вводятся: длины сторон треугольника А, В и С. Вычислить площадь треугольника, используя формулу Герона. | | С клавиатуры вводится длина окружности L, найти площадь круга и радиус. | | С клавиатуры вводится сторона правильного треугольника а. Вычислить периметр и площадь треугольника. | | С клавиатуры вводятся: высота цилиндра H и радиус основания R. Вычислить площадь боковой поверхности и объем цилиндра. | | С клавиатуры вводится сторона квадрата А. Вычислить радиус вписанной r и описанной R окружностей квадрата. | | С клавиатуры вводятся: внутренний радиус кольца R1 и внешний – R2. Вычислить площадь кольца. | | Даны два момента времени в часах и минутах. Найти разность между ними в часах и минутах | Содержание отчета и его форма Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать: – название и цель лабораторной работы; – условие и результат выполнения задания 1; – условие и результат выполнения задания 2; – условие задания 3, блок–схему алгоритма, отлаженную программу, вводимые исходные данные и результаты выполнения программы; – ответы на контрольные вопросы. Отчет предоставляется в письменной или печатной форме в тетради или на листах формата А4. Контрольные вопросы и защита работы 1. Что такое редактирование и компиляция программы? 2. Как записывается комментарий в программах на Си? 3. Что такое заголовочные файлы? Пример. 4. Как объявляются переменные в программах? 5. Структура программы на языке C/С++. 6. Что такое алгоритм и программа линейной структуры? 7. Основные операции, используемые в C/C++ и их приоритет. 8. Какие операции ввода/вывода данных в C/С++ известны Вам? Защита лабораторной работы включает в себя демонстрацию выполненных программ, подготовленный отчет и устный ответ на вопросы. |