
- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
5.4 Оператор цикла do while
Оператор цикла do while называется оператором цикла с постусловием.
Формат оператора имеет следующий вид:
do тело while (выражение);
Схема выполнения оператора do while :
1. Выполняется тело цикла (которое может быть составным оператором).
2. Вычисляется выражение.
3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.
Это важно:
т.к. do while – это цикл с постусловием, то инструкции (операторы) тела цикла будут выполнены хотя бы один раз;
чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break (см. п.7);
операторы do while может быть вложенным.
Сравнение циклов показано в таблице 15.
Таблица 15 – Циклы в С/С++
for |
while |
do while |
for (выражение-1; выражение-2; выражение-3) тело;
|
выражение-1; while (выражение-2) { тело выражение-3; } |
выражение-1; do { тело выражение-3; } while(выражение-2) |
5.5 Табулирование функций
Наиболее наглядным примером цикла с известным числом повторений является задача табулирования функции.
Табулирование функции – вычисление таблицы значений функции для аргумента x, изменяющегося от начального значения х0 до конечного хn с постоянным шагом h. В таблице 16 приведен пример табулирования функции y(x)=x2 на отрезке [0; 10] с шагом 2.
Таблица 16 – Табулирование функции y(x)=x2
x |
y(x)=x2 |
0 |
0 |
2 |
4 |
4 |
16 |
6 |
36 |
8 |
64 |
10 |
100 |
Пример 5.2 Табулирование непрерывной функции
Протабулируем функцию y(x)=x2 на отрезке [х0; хn] с шагом h с использованием операторов for, while, do while (таблицы 17,18).
Таблица 17 – Табулирование функции
Таблица 18 – Сравнение операторов цикла при табулировании функции
for |
while |
do while |
for(x=x0;x<=xn;x+=h) { y=x*x; printf("%f %f\n",x,y); } |
x=x0; while (x<=xn) { y=x*x; printf("%f %f\n",x,y); x+=h; } |
x=x0; do { y=x*x; printf("%f %f\n",x,y); x+=h; } while (x<=xn); |
Задание 5.2
На основе примера 5.2 составьте программу табулирования функции y(x)=x3 на отрезке [х0; хn] с шагом h.
Пример 5.3 Табулирование сложной функции
Напишем программу табулирования сложной функции
График функции приведен на рисунке 11.
Рисунок 11 - График функции
Реализация в С++:
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
using namespace System;
int main(array<System::String ^> ^args)
{
float x0,xn,h,x,y;
printf("xo="); scanf("%f",&x0);
printf("xn="); scanf("%f",&xn);
printf("h="); scanf("%f",&h);
for(x=x0;x<=xn;x+=h)
{
if (x<=0) y=0;
else
if (x>0 & x<1) y=x;
else y=1;
printf("%f %f\n",x,y);
}
getch();
return 0;
}
Задание 5.3
Выполните программу примера 5.3 и на ее основе составьте программу табулирования функции. График функции приведен на рисунке 12.
Рисунок 12 – График функции