- •Введение
- •1. Основы алгоритмизации и программирования
- •1.1. Этапы подготовки и решения задач на эвм
- •1.2. Алгоритмы и способы их описания Понятие алгоритма
- •Способы описания алгоритмов
- •Структурные схемы алгоритмов
- •1.3. Компиляция и интерпретация программ
- •1.4. Стили программирования
- •Процедурное программирование
- •Функциональное программирование
- •Логическое программирование
- •Объектно-ориентированное программирование
- •2.1. Пример готовой программы.
- •2.2. Структура основной программы
- •2.3. Алфавит языка
- •2.4. Константы и переменные Константы
- •Переменные
- •Примеры записи имен переменных
- •2.5. Арифметические выражения
- •Примеры вычисления арифметических выражений
- •Стандартные функции
- •Примеры программирования арифметических выражений
- •Контрольные задания
- •1. Составить описания для заданных переменных
- •2.6. Линейные вычислительные процессы
- •Оператор присваивания
- •Странные операторы присваивания
- •Функции ввода-вывода
- •Функции ввода исходных данных с клавиатуры
- •Потоковый ввод данных числового типа
- •Функция форматного ввода
- •Операторы вывода данных на экран Потоковый вывод
- •Форматный вывод
- •Контрольные задания
- •2.7. Разветвляющиеся вычислительные процессы
- •If (логическое выражение) p1; else p2;
- •Логические выражения
- •Порядок выполнения операций в логических выражениях
- •Условные операторы
- •Короткий условный оператор
- •Полный условный оператор
- •If (логическое выражение) { p1;} else {p2;}
- •Вложенные структуры условных операторов
- •Оператор выбора
- •Контрольные задания
- •2.8. Циклические вычислительные процессы
- •Операторы цикла с условием
- •Оператор цикла с параметром
- •2.9. Базовые алгоритмы
- •Задача 1. Алгоритм организации счетчика
- •Задача 2. Алгоритм накопления суммы
- •Задача 3. Алгоритм накопления произведения
- •Задача 4. Алгоритм поиска минимального члена последовательности
- •Задача 5. Табулирование функции (или кратные циклы)
- •Задача 6. Вычисление сумм элементов последовательностей
- •2.10. Указатели и массивы
- •2.10.1. Указатели
- •2.10.2. Понятие массива
- •Одномерные массивы
- •Описание одномерного массива
- •Индексированные переменные
- •Ввод-вывод одномерных массивов
- •Обработка одномерных массивов
- •Задача 1. Организация счетчика
- •Задача 2. Накопление суммы и произведения
- •Задача 3. Поиск минимального и максимального элементов массива
- •Двухмерные массивы
- •Описание двухмерного массива
- •Ввод-вывод двухмерного массива
- •Обработка матриц
- •2.11. Подпрограммы Структура сложной программы
- •Функции
- •Общий вид описания функции
- •Int I,j; //локальные переменные
- •Обращение к функции
- •Пример программы с функцией
- •Механизмы замены параметров
- •Параметры-массивы в функциях
- •Возвращение результатов
- •Примеры программирования задач с использованием подпрограмм Задача 1
- •Рекурсия
- •Технология сборки библиотеки
- •2.12. Текстовые данные
- •Символьный тип данных
- •Ввод-вывод символьных данных
- •Обработка символьных данных
- •Ввод-вывод строковых данных
- •Обработка строковых данных
- •Стандартные функции обработки строк
- •Сравнение строк:
- •Сцепление строк
- •Определение длины строки
- •Копирование строк
- •Поиск символа в стоке
- •Пример программы для задачи с текстовыми данными
- •Контрольные задания
- •2.13. Динамическое выделение памяти
- •Использование оператора new
- •Освобождение памяти
- •Структуры данных Понятие структуры
- •Обработка структур
- •Пример задачи с использованием структурированных данных
- •2.15. Файлы данных
- •2.15.1. Работа с файлами в стиле с
- •Объявление файловой переменной
- •Открытие файла
- •Закрытие файла
- •// Обработка открытого файла
- •Обработка открытого файла
- •Функции ввода/вывода
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
- •Контрольные задания
- •Заключение
- •Оглавление
- •Литература
- •Приложение
Оператор цикла с параметром
Общий вид записи
for( i = ml; i<= m2; i=i+шаг)
{ <тело цикла>;}
i - параметр, управляющий работой цикла;
ml, m2 - выражения, определяющие соответственно начальное и конечное значения параметра цикла.
Замечание. Тело цикла состоит по стандарту из одного оператора. В случае выполнения в цикле нескольких операторов надо воспользоваться обязательно операторными скобками {...}.
Работа оператора цикла for...
Тело цикла выполняется для каждого значения параметра i, начиная от ml до конечного значения m2. После каждого выполнения тела цикла значение параметра i автоматически увеличивается на шаг (шаг – это любое, но заданное число).
Графическая интерпретация оператора цикла for...
В схемах алгоритма оператору цикла for..., как и в случае цикла while, соответствует структура ЦИКЛ-ПОКА.
Однако, из-за особенностей работы оператора и его широкого применения при программировании задач обработки массивов данных, для оператора for... имеется специальная структура следующего вида:
Замечание 1. Оператор цикла for...допускает применение любого шага для изменения своего параметра.
Правила использования оператора цикла с параметром
Параметр цикла , а также его значения ml и m2 могут быть любого типа.
Параметр, а также значения ml и m2 не должны переопределяться (менять значения) в теле цикла.
При завершении работы оператора for параметр становится неопределенным и переменную можно использовать в других целях.
Тело цикла может не выполниться ни разу, если m1>m2 для цикла for... с положительным шагом, или m1<m2 для отрицательного шага.
Пример 3. Решить предыдущую задачу табулирования функции с использованием оператора цикла for.
Схема алгоритма Программа
#include "stdafx.h"
#include<math.h>
int main()
{
float a, b, x, y;
printf("введите а и b ");
scanf("%f%f",&a,&b);
printf(" x y(x)\n");
for( х=-0.5; x<=2.5; x=x+0.1)
{
y=log(abs(x))/(a*a+b*b);
printf("%8.1f %8.1f\n",x,y);
}
return 0;
}
Замечание 2. Оператор цикла while, как указывалось выше, наиболее универсальный из трех операторов цикла, используемых в языке С++. Однако конструкция оператора цикла for является наиболее простой. Поэтому рекомендуется там, где возможно, использовать оператор for.
2.9. Базовые алгоритмы
При реализации циклических вычислительных процессов наиболее часто используются следующие базовые алгоритмы:
табулирование функций;
организация счетчика;
накопление суммы или произведения;
поиск минимального или максимального члена последовательности.
Ниже приводятся примеры программирования задач на основе базовых алгоритмов.
Задача 1. Алгоритм организации счетчика
Дана последовательность:
cos 1, cos 3, cos 5, ..., cos 99.
Определить количество положительных членов последовательности.
Решение
Представим последовательность в общем виде:
а = cos(2n -1), где п =.
Для организации счетчика в памяти компьютера выделяется ячейка, содержимое которой должно увеличиваться на 1 каждый раз, когда встречается положительный член последовательности. В программе ячейке (счетчику) соответствует переменная целого типа, например переменная L. Работа счетчика реализуется с помощью оператора присваивания L=L+1. В начальный момент содержимое ячейки должно быть равно нулю. С этой целью предварительно осуществляется очистка ячейки оператором присваивания L=0.
#include "stdafx.h"
#include<math.h>
int main()
{
float a;
int n,L; // описание переменных
L=0; // очистка счетчика
for(n=1;n<=50;n++) // запуск цикла
{
a = cos(2*n – 1.0); // тело цикла
if(a>0) L = L + 1; // тело цикла
}
printf("L=%d", L); // вывод значения счетчика
return 0;
}