Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
С++ Лабораторная работа №2 ТКС-12б (вложенные ц...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
267.78 Кб
Скачать

Лабораторная работа №2

Программирование циклических вычислительных процессов”

Цель работы: освоение составления алгоритмов циклических вычислительных процессов и организации программ с использованием вложенных циклов.

1. Теоретическая часть

1.1. Циклические алгоритмы.

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Имеется 3 вида циклов:

  • цикл с предусловием;

  • цикл с постусловием;

  • цикл со счетчиком (счетный цикл).

Если выполнение цикла связано с каким-либо логическим условием, то используются циклы с предусловием или с постусловием.

Циклы со счетчиком представляют такой класс, в котором выполнение тела цикла должно повторяться заранее определенное число раз.

1.2 Операторы цикла в языке программирования C++.

В C++ для каждого вида цикла имеется соответствующий оператор:

  • цикл типа while (с предусловием);

  • цикл типа do…while (с постусловием);

  • цикл типа for (счетный).

1.Оператор цикла типа while

Форма записи:

while (условие) оператор;

где: (условие) – логическое выражение;

оператор – выполняемый в цикле оператор или тело цикла.

Если тело цикла представляет собой составной оператор, то его нужно заключить в операторные скобки{...}:

while (условие)

{

группа операторов

}

Схема работы такого цикла: пока условие является истинным (true), выполняется тело цикла и снова проверяется условие и т.д. Когда условие станет ложным (false) цикл завершает работу.

2. Оператор цикла типа do…while

Форма записи:

do

оператор;

while (условие);

Схема работы такого цикла: сначала выполняется оператор, потом проверяется условие, если условие является истинным, выполняется оператор и снова проверяется условие и т.д. Когда условие станет ложным, цикл завершает работу.

3. Оператор цикла типа for

Форма записи:

for (A;B;C)

оператор;

A – начальное выражение, которое задает начальные значения параметру цикла и при необходимости начальные значения другим параметрам. Например:

i=0, x=0.5, p=1, s=0

B – условное выражение, которое проверяет условие продолжения работы цикла. Например:

x<=5

C – выражение приращения, которое задает приращение параметру цикла и при необходимости другим параметров, тогда они записываются списком. Например:

x+=0.1, i++

1.3 Использование вложенных циклов.

Цикл называется вложенным, если он размещается внутри тела другого цикла. На каждом проходе внешнего цикла вызывается внутренний, который исполняется до своего завершения (пока не происходит выход из этого цикла), после чего управление передается в тело внешнего цикла. И так до тех пор, пока не завершится внешний цикл.

Внутрь вложенного цикла, в свою очередь, также может быть вложен цикл.

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

1.4 Пример составления алгоритма и программы на языке C++ для вычислительного процесса, использующего вложенные циклы.

Задание:

Вычислить значение выражения:

где ,

z – результат.

Решение.

Постановка задачи.

В задаче необходимо вычислить переменную z. Переменная z не всегда может быть вычислена: если y + x3 < 0, то подкоренное выражение меньше 0 и, соответственно, переменная z не может быть найдена. Переменная z зависит от двух переменных (x и y), каждая из которых изменяется в заданном интервале с определенным шагом. Таким образом, для вычисления z необходимо организовать два вложенных цикла, один из которых перебирает все значения x, а второй – все значения y. Будем использовать внешний и внутренний циклы одного типа – с предусловием.

Блок-схема алгоритма решения задачи выглядит следующим образом:

Программа на языке C++, выполняющая решение данной задачи:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{int y;

float x,z;

clrscr();

x=-5;

while(x<=5)

{

y=-10;

while(y<=10)

{

printf("\nx=%6.2f y=%4d",x,y);

if (y+x*x*x<0)

printf(" z невозможно найти");

else

{

z=1.4*x*x-7*sqrt(y+x*x*x);

printf(" z=%6.2f",z);

}

y=y+1;

}

x=x+0.5;

}

getch();

return 0;

}