- •1.2. Правила записи программ на языке с
- •1.3 Правила формального описания синтаксиса языка программирования
- •1.5.3. Описание данных в языке с
- •1.5.4 Правила записи констант различных типов
- •1.5.5. Символьные строки
- •Глава 2. Понятие функции
- •2.1. Стандартная функция printf
- •2.2. Стандартная функция scanf
- •Перед каждым аргументом, не являющимся строкой (адресом) ставится знак & и трактуется как вычисление адреса.
- •2.3. Стандартные математические функции
- •2.4. Простейшие функции, определяемые программистом
- •3.5. Дополнительные арифметические операции
- •3.6. Дополнительные операции присваивания
- •3.7. Битовые операции
- •3.8. Операторы отношения
- •Глава 4. Структурное программирование и язык с
- •4.2. Операторы языка с
- •4.3. Оператор цикла while
- •4.4. Оператор цикла do – while (цикл с постусловием)
- •4.5. Условный оператор и условная операция
- •4.6. Оператор цикла for (цикл с известным числом повторений)
- •4.7. Запись алгоритмов при помощи диаграмм Несси-Шнейдермана
- •4.8. Оператор прерывания цикла
- •4.9. Оператор продолжения цикла (continue)
- •4.10. Множественный выбор
- •Глава 5. Типовые приемы в программировании
- •5.1. Использование счетчиков
- •5.2. Вычисление суммы и произведения.
- •5.3. Вычисление минимума и максимума последовательностей.
- •5.4. Использование флагов
- •Глава 6. Простейшая графика
- •6.1.Графические режимы
- •6.2. Идеология bgi и WinBgi
- •6.3.Основные графические функции
- •6.3.1. Управление графическими режимами
- •6.3.2. Графические примитивы
- •6.3.3. Установки и их проверка
- •6.3.4. Работа с текстом
- •Глава 7. Модульное программирование
- •7.2. Библиотеки функций
- •Глава 8. Массивы
- •8.1. Описание массива
- •8.2. Ввод – вывод массивов
- •8.3. Инициализация массива
- •8.6. Двумерные массивы
- •8.6.1. Инициализация двумерного массива
- •8.7. Многомерные массивы
- •Глава 9. Работа с файлами
- •9.1. Открытие и закрытие файлов
- •Глава 10. Структуры языка с
- •10.1. Описание структур
- •10.2. Трактовка имени структуры
- •10.2.1. Доступ к полям структуры
- •10.3. Инициализация структур
- •10.4. Структуры и функции
- •10.5. Поля бит в структурах
- •10.6. Объединение
- •Глава 11. Дополнительные сведения о функциях
- •11.1. Области видимости.
- •Глава 12. Анимация
- •Глава 13. Рекурсия
- •13.1. Понятие рекурсии
- •13.2. Вычисление факториала
- •13.3. Числа Фибоначчи
- •13.4. Замена итерационных алгоритмов рекурсивными
- •13.5. Применение рекурсии в графике
4.6. Оператор цикла for (цикл с известным числом повторений)
Часто его еще называют циклом со счетчиком.
В языке С оператор выглядит так:
for (выр1;выр2;выр3) цикл_опер
Выражение1 является инициализацией цикловых переменных. Выражение2 – условие продолжения цикла. Выражение3 – модификация цикловых переменных.
Вначале и всего один раз вычисляется Выражение1. Затем вычисляется значение Выражения2. Если оно отлично от нуля (истинно), выполняется тело цикла. Затем вычисляется Выражение3. Затем снова вычисляется Выражение2 и если оно отлично от нуля то тело… И так до тех пор, пока Выражение2 не даст значение 0.
Пример: вывести числа от 1 до n. Оно введено с клавиатуры.
int I;
{
printf(“Vvedite N”);
scanf(“%d”&i);
i=1;
while (i<=n)
{
printf(“%d “,i);
i++;
}
}
for(i=1;i<=n;i++);
{
printf(“%d “,i);
}
Цикл for удобен тем, что позволяет в заголовке сконцентрировать управление циклом. Считается дурным тоном изменение значение цикловых переменных в теле цикла.
Пример 2: Считать от 1 вверх до n с шагом s1 от n вниз с шагом s2
for(i=n,j=1;i<=0&&j<=n;j+=s1,i-=s2);
printf(“%d %d ”,i,j);
Пример 3:
x=5,6;//компилятор это распознает как из нескольких выражений, записанных через запятую последнее является результатом операции. Здесь будет 6. Отделять надо через точку.
4.7. Запись алгоритмов при помощи диаграмм Несси-Шнейдермана
Основная идея диаграмм Несси-Шнейдремана – это изображение алгоритмов в структурном стиле.
- вычислительный процесс (каждый из внутренних прямоугольников является другим подпроцессом
условие
тело цикла
условие
тело цикла
- условия (с предусловием и постусловием)
Пример. Рассмотрим алгоритм рассмотрения модуля X
ввод х
если х<0
да нет y=-x
y=x
вывод x
Вычисление определенного интеграла на отрезке:
ввод а,в, dx s=0
x=a
x<b x<-5
Главным достоинством структурограмм является невозможность изобразить неструктурированный алгоритм. Однако есть и недостатки: трудно предугадать масштаб структурограммы, а также требуются специфические средства изображения.
4.8. Оператор прерывания цикла
Пример: имеется ли на определенном отрезке отрицательные числа в заданной функции.
f=0;
x=0;
while(x<b)
{
}
Данная программа имеет существенный недостаток: уже при обнаружении первого отрицательного числа можно выдать утвердительный ответ. Тем не менее, программа продолжит выполнение всех остальных витков. Чтобы избежать этого можно использовать дополнительное условие в заголовке цикла. Но у этого есть тоже недостаток – дополнительная проверка. А можно использовать оператор break.
Оператор break передает управление за следующим за циклом оператор. При этом оставшаяся часть витка не выполняется.