Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке с++ ч.1.doc
Скачиваний:
10
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Лабораторная работа №15 Операторы цикла: оператор цикла с постусловием do … while

Цель работы: изучить операторы цикла и научиться работать с оператором цикла с постусловием do … while в языке C++.

Теоретические сведения

Как и в других языках программирования, в С++ существуют специальные средства организации циклов, управляющие последовательностью выполнения повторений в зависимости от условий.

Наряду с циклами for и while, где проверка условия, влияющего на порядок выполнения повторений, предшествует итерациям, предусмотрена конструкция, в которой выражение-условие проверяется после очередного выполнения тела цикла. Семантика организации такого цикла, в котором тело цикла предшествует проверке выражения-условия, определила оператор цикла с постусловием.

Оператор цикла с постусловием do … while

Цикл с постусловием – цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.

Оператор цикла do...while имеет следующий синтаксис:

do

тело_цикла;

while (выражение-условие)

выражение-условие – это выражение, определяющее условие, при котором тело цикла будет выполняться. В качестве выражения-условия чаще всего используется отношение или логическое выражение.

Схема выполнения оператора do...while следующая:

  • выполняется тело_цикла;

  • вычисляется выражение-условие;

  • если значение выражения-условия равно нулю, то выполнение оператора do...while заканчивается и выполняется следующий по порядку оператор. Если значение выражения-условия не равно нулю, то выполнение оператора цикла do...while продолжается с пункта 1 (т.е. выполняется тело_цикла и все повторяется…).

В операторе do...while проверка условия происходит после выполнения операторов, образующих тело цикла. Оператор do...while удобно использовать в ситуациях, когда цикл должен выполниться хотя бы один раз.

Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.

При построении цикла do...while необходимо включить в тело цикла какие-либо конструкции, изменяющие величину проверяемого выражения-условия так, чтобы в конце концов оно стало равным нулю. В противном случае цикл будет бесконечным.

Например:

int i, s;

i=2;

do {

printf("Добрый день!"); }

while(i < 5); /*цикл будет выполняться бесконечно*/

int i, s;

i=2;

do {

printf("Добрый день!");

i=i+1; }

while(i < 5); /*цикл будет выполнен 3 раза*/

Пример 1: Вычисления квадратов чисел от 1 до 9.

#include <stdio.h>

void main() {

int i, b;

i=1;

do {

b=i*i;

printf("\n %2d в квадрате = %3d", i, b);

i++; }

while (i<10);

}

Пример 2: Программа для печати фрагмента таблицы ASCII (от 32-го символа до 126-го).

#include <stdio.h>

void main() {

int number;

char character;

number = 32;

do {

character = number;

printf("Символ %c имеет код %d (дес.) или

%x (шестнд.)\n", character,character,character);

number++; }

while (number <= 126);

}

Пример 3: Вычислить S = 1 + 2 + 3 + 4 + … + n.

#include <iostream.h>

void main() {

int n,i,s=0;

cout<<"\nВведите n=";

cin>>n;

if(n<=0) {

cout<<"\n n<=0";

return;

}

i=1;

do {

s+=i;

i++; }

while (i<=n);

cout<<"\nS="<<s<<"\n";

}

Задания

  1. Составьте программу для решения задачи. Дано число а (1 < а < 1,5). Из чисел напечатать те, которые не меньше а.

  2. Составьте программу для решения задачи. Дана непустая последовательность целых чисел, оканчивающаяся числом 100. Определить, есть ли в последовательности число 77? Если имеются несколько таких чисел, то определить порядковый номер первого из них.

  3. Составьте программу для решения задачи. Даны целые числа а и b (а > b). Определить результат целочисленного деления а на b, не используя стандартную операцию целочисленного деления.

  4. Дано натуральное число. Найдите сумму его цифр.

Домашние задания

  1. Наберите коды программ из Примеров 1, 2 и 3. Сохраните коды программ. Выполните компиляцию и запуск программ. Введите свои данные в качестве входных.

  2. Составьте программу для решения задачи. Дано число а (1 < а < 1,5). Среди чисел найти первое, меньшее а.

  3. Составьте программу для решения задачи. Дана последовательность натуральных чисел a1, a2, … a20. Определить, есть ли в последовательности хотя бы одно число, оканчивающее цифрой 7? В случае положительного ответа определить порядковый номер первого из них.

  4. Составьте программу для решения задачи. Даны целые числа а и b (а > b). Определить результат остатка от деления а на b, не используя стандартную операцию вычисления остатка.