линейный и разветвляющийся алгоритм. Лекция Линейный и Разветвл.алгоритм для ХТ, БИО_Примеры 1-4. Лекция Базовые знания о языке программирования С
Скачать 0.58 Mb.
|
Лекция 1. Базовые знания о языке программирования С++ Программа – это реализация алгоритма для выполнения задачи компьютером (ЭВМ). С помощью программы мы формулируем алгоритм на языке, понятном компьютеру. Таким языком служит язык программирования. На сегодняшний день распространенными языками программирования являются: С, С++, Pascal, Basic, Fortran и т.д. Язык программирования С++ является одним из самых востребованных на сегодняшний день. На языке С++ можно составлять программы для инженерных расчетов, также можно строить оконные проекты, имеющие пользовательский графический интерфейс. Существует несколько приложений для написания программ на языке С++. Мы будем рассматривать Microsoft Visual Studio. В языке программирования С++ определены некоторые стандартные типы данных, которые представлены в табл. 1.
Программа на языке С++ имеет определенную структуру. Существует определенная последовательность заранее определенных строк кода, которая приведена в табл. 2.
Библиотека – это файл, в котором описаны функции и операторы. Для каждой смысловой группы функций своя библиотека. Библиотек в языке C++ предусмотрено много, мы будем рассматривать только самые необходимые. Нам понадобятся функции для работы с экраном, математические функции. Основные библиотеки и их основные функции и операторы: Библиотека <iostream> для работы с консолью (экраном). cout – оператор вывода данных на экран. Пример использования: cout<<"fraza"; //выведет на экран слово fraza. Может вывести любой текст. cout< cin – оператор считывания с экрана. Когда у пользователя запрашивают число, программа ждет, пока пользователь не напечатает число и нажмет ENTER. Тогда оператор cin записывает это значение в переменную х. Пример использования: cin>>x; //присваивает переменной х значение, введенное с клавиатуры. cin>>x>>y; //присваивает переменной х первое введенное с клавиатуры значение, переменной у – второе. endl – оператор перевода каретки на экране на следующую строку. Самостоятельно не используется. Пример использования: cout< cout< cout< precision(n) – функция для отображения на экране дробных чисел с n цифрами после запятой. Пример использования: cout.precision(3)<<7.897426; //число 7.897426 выведется на экран в виде 7.897. Библиотека математических функций <math.h>. Основные математические функции представлены в табл. 3.
Пример: специально некоторые пары скобок выделила цветом
Библиотека <iomanip> - для форматного вывода данных setw(n) – для вывода на экран отводится ячеек. Используется при построении ровной таблицы значений функции. Пример использования: cout< На экране выведутся два числа: первое (1.5) в первых пяти ячейках, второе (-73) во вторых пяти ячейках. _ _ 1 . 5 _ _ - 7 3 . Переменные В программах используются переменные. Имя переменной выбирает составитель программы; имя переменной должно начинаться с буквы латинского алфавита и может содержать буквы латинского алфавита, цифры и символы подчеркивания. Заглавные и строчные буквы считаются разными. Примеры имен переменных: х, y, summa, s1, srednee_ar и т.д. Имена переменных не должны совпадать с ключевыми словами языка С++. Чтобы использовать в программе переменную, необходимо: объявить переменную в начале программы, явно указав тип данных для переменной. Пример: double x; //вещественная переменная . int m; //целочисленная переменная . Если переменная не будет объявлена, но будет использоваться далее в программе, то программа не запустится, компилятор выдаст ошибку. проинициализировать переменную, т.е. задать переменной значение. Пример: x=7.81; m=4; z=x+m; Если переменная не будет проинициализирована, то компилятор не выдаст ошибки, но расчеты будут выполнены неверно. Для числовых переменных определены простейшие арифметические операции, которые приведены в табл. 4. Для их использования не нужно подключать библиотеку.
Для сравнения переменных и чисел используются встроенные знаки сравнения, которые приведены в табл. 5. Для их использования не нужно подключать библиотеку.
Реализация линейного и разветвляющегося алгоритмов Пример 1. Составить блок-схему и программу для вычисления значений функций и при различных значениях аргументов x ,y. Переменные x, y считать с клавиатуры.
Для реализации разветвляющегося алгоритма в С++ используется условный оператор if. Приведем общий вид блок-схем и общий вид записи оператора if: Примечание. Если необходимо выполнить не набор действий, а всего одно действие, то фигурные скобки можно опустить. Пример 2. Вычислить значение функции при различных значениях аргумента x (аргумент x считать с клавиатуры). Решение: Функция Z задана как кусочная функция, т.е. при разных значениях x она считается по-разному. Следует отметить, что при одном значении аргумента функция будет иметь лишь одно значение, т.е. функция однозначная. П римечание: При расчете кусочной функции так или иначе сначала проводится проверка условия, поэтому вычисление таких функций реализуется через разветвляющийся алгоритм. В данном примере будет один блок разветвления (соответственно один оператор if в программе). Условием будет служить проверка "x<1". Если условие верно, то функция считается по первой ветке, если ложно, то по второй ветке. Второе условие "x≥1" будет лишним, т.к. оно соответствует стрелке "нет" от первого условия "x<1". Посчитаем значение функции Z при x=0. Прежде всего необходимо проверить, какое условие верно: "x<1" или "x≥1". Условие для первой ветки функции верно, значит считаем Z=x+3=0+3=3. Посчитаем значение функции Z при x=4. Прежде всего необходимо проверить, какое условие верно: "x<1" или "x≥1". Условие для второй ветки функции верно, значит считаем Z=4x=4*4=16.
Результат выполнения программы: Пример 3. Вычислить значение функции при различных значениях аргумента x (аргумент x считать с клавиатуры). Решение: Функция Z задана как кусочная функция, определенная на трех промежутках. График функции Z представлен на рис. 4.9. Рис. 4.9. График кусочной функции В данной задаче будем использовать два условия для определения нужной ветви функции. Первое условие "x<0" определяет, следует ли рассчитывать по первой ветви функции. Второе условие "x≤5" определяет, следует ли рассчитывать по второй ветви. Если и первое, и второе условия оказались ложными (не выполнились), то следует рассчитывать по третьей ветви. Следовательно, в блок-схеме будем использовать два блока разветвления, а в программе два оператора условия if. Например, нужно вычислить Z при x = -2. Первое условие "x<0" выполняется верно, т.к. -2<0. Следовательно, считать следует по первой ветви, а именно: Z = x2 = (-2)2 = 4. Например, нужно вычислить Z при x = 2,5 Первое условие "x<0" выполняется неверно, т.к. 2,5>0. Проверяем второе условие "х≤5": 2,5≤5 – верно. Следовательно, считать следует по второй ветви, а именно: Z=|x|=|2,5|=2,5. Например, нужно вычислить Z при x = 10. Первое условие "x<0" выполняется неверно, т.к. 10>0. Проверяем второе условие "x≤5": 10≤5 – неверно. Следовательно, ни первое, ни второе условия не выполнились, и считать следует по третьей ветви, а именно: Z=5.
Результат выполнения программы (Visual Studio): Пример 4. Найти наибольшее (максимальное) из трех выражений. Задача: Найти значение функции при различных значениях аргумента (аргумент считать с клавиатуры). Решение. Функция считается как наибольшее из трех выражений. Введем обозначения: , х будем считывать с клавиатуры. Для нахождения наибольшего из трех выражений введем еще одну переменную Z, которая будет хранить наибольшее значение. Принцип нахождения наибольшего значения заключается в следующем. Сначала принимаем Z как первое значение. Потом поочередно сравниваем с оставшимися значениями и . Если окажется, что больше уже запомненного Z, то следует перезаписать Z, изменив его значение на значение . Если же b
Лекция 1. Линейный и разветвляющийся алгоритм |