Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Информационные системы и компьютерные технологии» Пановой Т.В. БГТУ «ВОЕНМЕХ».doc
Скачиваний:
146
Добавлен:
26.03.2015
Размер:
1.27 Mб
Скачать

2.2. Оператор цикла с постусловием.

Постусловие вычисляется и проверяется после выполнения операторов, составляющих тело цикла, и если значение логического выражения, определяющего условие работы цикла (в языке Си), истинно (=1), то цикл продолжает выполняться до тех пор, пока это значение не станет ложным (=0). В любом случае тело цикла с постусловием выполнится, по крайней мере, один раз.

Структура оператора цикла с постусловием:

[<инициализация>; ]

do

{

<тело_цикла>;

[<итерация>;]

}

while (<условие>);

<условие> – логическое выражение, определяющее условие повторения тела цикла; <инициализация> и <итерация> – необязательны.

II. Контрольные вопросы.

  1. Что такое цикл?

  2. Какие существуют два типа циклов?

  3. Структура оператора цикла с параметром.

  4. Как работает цикл с параметром?

  5. Указать особенности оператора цикла с параметром в языке Си?

  6. Какие циклы относятся к итерационным?

  7. Привести структуру оператора цикла с предусловием.

  8. Как работает цикл с предусловием?

  9. Какую структуру имеет оператор цикла с постусловием?

  10. Как работает цикл с постусловием?

III. Практическая часть.

1. Выполнение общего задания.

Задача 1.

1. Постановка задачи: разработать алгоритм вычисления и вывода значения суммы членов ряда = x+x2+x3+…+xn-1+xn для 0<x≤5 при n=8. Написать программу, реализующую разработанный алгоритм.

2. Математическая модель и описательный алгоритм задачи:

  • ввести значение переменной x;

  • проверить условие: если 0<x≤5, то продолжить выполнение алгоритма, иначе вывести соответствующее сообщение и выйти из алгоритма;

  • для формирования суммы использовать переменную S, изначально ее обнулить –S=0;

  • для получения степени переменной xиспользовать переменную xs, изначальноxs=x;

  • в цикле cпараметром (количество повторений = n) каждый раз значениеS увеличивать на значениеxs, а значениеxs увеличивать в xраз для получения степени x;

  • после выхода из цикла вывести значение переменной S.

3. Блок-схема алгоритма задачи:

4. Текст программы:

#include <stdio.h>

#include <conio.h>

int main()

{

const n=8;

float x,xs,S;

printf(“\nВвести x=”);

scanf(“%d”,&x);

if (x>0 && x<=5)

{

S=0; xs=x;

for (int i=1;i<=n;i++)

{

S=S+xs; xs=xs*x;

}

printf(“\nS=%d”,S);

}

getch(); return 0;

}

5. Тестирование:

Теоретически рассчитанное выходное значение

Практически полученное выходное значение

Тест 1: входные данные: x=-2 (не удовлетворяют условию 0<x≤5)

выход из программы

выход из программы

Тест 2: входные данные: x=1

S=8

S=8.000000

Тест 3: входные данные: x=10 (не удовлетворяют условию 0<x≤5)

выход из программы

выход из программы

Задача 2.

1. Постановка задачи: разработать алгоритм вычисления и вывода значения частичной суммы членов ряда + … с точностьюε=10-4 (суммировать пока очередной член ряда по модулю не будет ≤10-3) для π/3≤x≤2ּπ/3. Написать программу, реализующую разработанный алгоритм.

Соседние файлы в предмете Программирование