- •Лекция 1 Создание консольного приложения
- •2. Консоль. Построение консольного проекта
- •3. Запуск приложения
- •4. Сохранение и редактирование проекта
- •Лекция 2
- •4. Функции форматированного ввода и вывода
- •4.1. Функция форматированного ввода с клавиатуры
- •4.2. Функция форматированного вывода на экран
- •5. Математические функции
- •Лекция 3 Линейные вычислительные процессы
- •1. Алгоритм. Управляющие структуры
- •2. Линейные вычислительные алгоритмы
- •2.1. Условный оператор if()
- •2.2. Условное выражение
- •2.3. Оператор выбора switch()
- •Лекция 5 Программирование разветвляющихся вычислительных процессов
- •Лекция 6 Циклические вычислительные процессы.
- •1. Типы циклов
- •3. Операторы безусловного перехода
- •Лекция 7 Вычисление последовательностей
- •4. Примеры вычисления последовательностей
- •5. Структура алгоритмов вычисления рекуррентных последовательностей
- •Лекция 8 Одномерные массивы
- •1. Массивы
- •1.1. Примеры программ обработки одномерных массивов
- •1.2. Сортировка выбором
- •1.3. Сортировка простыми вставками
- •Лекция 10 Двухмерные массивы
- •1. Двухмерные массивы
- •Лекция 11 Алгоритмы матричной алгебры
- •1. Алгоритмы матричной алгебры
- •Лекция 12 Динамические массивы
- •1. Память компьютера. Адресное пространство
- •2. Динамическая память
- •3. Адреса и указатели
- •4. Указатели и массивы. Динамические массивы
- •5. Проблемы, связанные с указателями
- •6. Поразрядные операции
- •1.2. Способы объявления и обращения к элементам двухмерных массивов
- •Лекция 14 Символы и строки
- •1. Символьный тип данных
- •2. Строки
- •Лекция 15 Структуры
- •1. Понятие структуры
- •2. Определение нового имени типа
- •3. Массивы структур. Указатели на структуры
- •3.1. Определение статического массива структур
- •3.1. Определение динамического массива из n структур
- •Лекция 16 Файлы
- •1. Потоковый ввод-вывод данных
- •3. Понятие файла. Функции работы с файлами
- •Лекция 17 Файлы
- •Лекция 18 Функции пользователя
- •I. Приёмы построения алгоритмов
- •2. Понятие функции
- •2.1. Определение функции
- •2.2. Область видимости переменных
- •2.3. Параметры функции
- •2.4. Описание функции
- •2.5. Организация вызова функции
- •2.5. Передача параметров в функцию
- •3. Рекурсия
- •Лекция 20 Нахождение приближенного значения корня нелинейного уравнения
- •На отрезке [a;b] с заданной точностью eps
- •1.1. Метод дихотомии (половинного деления)
- •1.2. Метод хорд
- •1.3. Метод касательных (Ньютона)
- •Лекция 22 Объектно-ориентированное программирование
- •Полиморфизм – это свойство класса, позволяющее определить одно и то же по имени, но разное по смыслу действие. Основные этапы ооп:
- •Уточнённое имя принадлежит классу (т.Е. Компонентной) функции
- •Лекция 23 Объектно-ориентированное программирование
- •1. Конструкторы и деструкторы
- •1.2. Определение компонентных функций
- •Лекция 25 Объектно-ориентированное программирование
- •1. Свойства классов
- •1.1. Наследование классов
- •1.2. Полиморфизм
- •Библиографический список
3. Операторы безусловного перехода
В языке С++ есть четыре оператора перехода: return, goto, break, continue. Оператор goto не будем рассматривать, так как другие операторы позволяют заменить его, а применение этого оператора в программе довольно сильно запутывает алгоритм.
Оператор return используется для выхода из функции, в том числе и из главной – main(). Общая форма записи оператора:
return <выражение>;
Подробно работа этого оператора будет рассмотрена в разделе «Функции».
Оператор break применяется для выхода из оператора выбора switch() или для прекращения работы цикла любого типа без проверки условия окончание работы этого цикла. Это означает, что если в теле цикла встречается оператор break, то произойдет безусловный переход на оператор, следующий за этим циклом.
Оператор continue используется для передачи управления на заголовок цикла из любого оператора тела этого цикла. При этом все операторы тела цикла, следующие после continue до конца тела цикла, будут игнорироваться.
Пример. Вывести на экран таблицу из n значений функции .
Ход выполнения работы
-
Алгоритм решения задачи строится следующим образом. Из условий задачи видно, что значения x изменяются от a до b. Шаг h, на который изменяются значения x, вычисляется по формуле . Формула для изменения значений x выглядит следующим образом:
Т
Такие формулы называют рекурсивными, поскольку новое значение переменной зависит от предыдущего значения и вычисляется через него.
Каждый раз при получении нового значения x будем вычислять значение y по заданной формуле. Таким образом, необходимо повторить одну и ту же последовательность действий известное (это важно) число раз (в данной задаче количество повторений равно n). Для решения такого типа задач как раз и используются циклические вычислительные процессы. В нашей задаче будет использован цикл с параметром.
-
Написать программу, соответствующую алгоритму:
Алгоритм
Программа
объявление вещ: а,b,x,y,h, цел: n,i
// ввод концов отрезка
ввод a
ввод b
// задаем количество вычисляемых
// значений функции
ввод n
// вычисление шага
h=(b-1)/n
// задаем начальное значение аргумента
x=a
// цикл для построения таблицы значений
для i=1 до n шаг 1
// вычисляется значение функции
y=|cos(x)|+|x-1|
печать x,y
// вычисляем новое значение
// аргумента
x=x+h
всё_для i
#include "stdio.h"
#include "math.h"
int main ( )
{
float a, b, x, y, h;
int n, i;
// ввод концов отрезка
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
// задаем количество
//вычисляемых значений функции
printf("n=");
scanf("%i",&n);
// вычисление шага
h=(b-a)/n;
// задается начальное значение аргумента
x=a;
//печатается заголовок таблицы
printf("x\ty\n");
// цикл для построения таблицы значений
for (i=1; i<=n; i++)
{
// вычисляется значение функции
y=fabs(cos(x))+fabs(x-1);
printf("%7.3f\t%7.3f\n",x,y);
// вычисляется новое значение
//аргумента
x=x+h;
}
return 1;
}
-
Создать проект и реализовать данную задачу в среде Visual C++ 6.0.