Напоминание

Составление программ циклической структуры


Автор: Рохманько Ирина Львовна
Должность: преподаватель дисциплин общепрофессионального цикла
Учебное заведение: ФГАОУ ВО "Санкт-Петербургский государственный университет аэрокосмического приборостроения", факультет СПО
Населённый пункт: г. Санкт-Петербург
Наименование материала: METOДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ
Тема: Составление программ циклической структуры
Раздел: среднее профессиональное





Назад




1

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«Санкт-Петербургский государственный университет аэрокосмического приборостроения»

Факультет среднего профессионального образования

METOДИЧЕСКИЕ УКАЗАНИЯ

ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

по дисциплине

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

по теме «Составление программ циклической структуры»

по специальности:

09.02.06 «Сетевое и системное администрирование»

Санкт-Петербург

2022 г.

2

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

Составление алгоритма и отладка программ циклического типа

Цель работы:

1.

Овладеть синтаксисом различных вариантов реализации циклических процессов на

языке С/С++;

2.

Научиться отлаживать циклические программы в среде программирования (Visual

C++, online компиляторе);

3.

Осуществить ввод исходных данных и вывод результатов решения задач с помощью

функций ввода/вывода в стиле С и с использованием объектно-ориентированных

средств ввода/вывода.

Теоретические положения

В циклических алгоритмах выполняются повторяющиеся вычисления и действия.

Управление циклом осуществляется с помощью переменной, называемой параметром

цикла. Циклы могут быть одиночными и вложенными, причем глубина вложения не

ограничена.

В языке С/С++ для реализации циклических процессов используется три вида операторов

организации цикла:

1.

while,

2.

do…while,

3.

for

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

Этот оператор, который используется, когда требуется проверить необходимость

выполнения цикла, имеет вид

где while (пока) – ключевое слово;

выражение – условие выполнения цикла (в виде логического или арифметического

выражения сравнимого с нулем).

оператор тела цикла- это либо одиночный или пустой оператор, за которыми

ставится точка с запятой (;), либо составной оператор, заключенный в

операторные скобки { }, за которым точка с запятой не ставится.

Работа оператора

while:

Если

выражение

не равно нулю (истинно), то выполняется

оператор тела цикла

.

В противном случае оператор цикла либо не выполняется вообще, либо заканчивается и

управление передается следующему за ним оператору;

while (выражение)

оператор тела цикла;

while (выражение)

{

оператор 1;

. . .

оператор n;

}

3

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

Этот оператор используется в тех случаях, когда тело цикла должно выполнятся хотя

бы один раз.

/* точка с запятой обязательна */

где

do

(выполнить),

while

(пока) – ключевые слова;

оператор

(тело цикла) – одиночный или составной оператор, заключенный в {};

выражение

(условие цикла) – допустимое в С выражение, сравнимое с нулем: если оно

равно 0, то цикл продолжается, а если не равно 0,

то

цикл

завершается

с

передачей

управления

следующему оператору.

в) Оператор цикла с параметром (for)

/* заголовок оператора цикла */

где

for (

для) – ключевое слово;

инициатор –

одно или несколько выражений, задающих начальное значение

переменным оператора цикла;

условие –

выражение сравнимое с нулем, определяющее условие выполнения цикла;

модификатор –

одно или несколько выражений, изменяющих переменные

оператора цикла;

оператор тела цикла

– одиночный, составной или пустой оператор, выполняющий

действия в цикле.

Работа оператора

for:

1.

В

инициаторе

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

значения;

2.

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

условия

. Если его значение не равно 0 (истинно), то

выполняется

оператор тела цикла

, иначе при значении равном 0 (ложно) управление

передается следующему оператору.

3.

В

модификаторе

изменяются значение параметра цикла и, возможно, других

переменных для следующего цикла.

Прерывание цикла

Оператор

goto

позволяет выйти за пределы операторов циклов любой глубины

вложения в любое место программы

Оператор

break

(прерывать) вызывает завершение самого внутреннего включающего

его оператора цикла по схеме:

do

{

оператор тела цикла

}

while (выражение)

;

for (инициатор; условие; модификатор)

оператор тела цикла

4

while(выражение)

{...;

if (условие выхода)

break ;

/* прерывание цикла */

. . .

}

следующий оператор;

Оператор

continue

(продолжить) позволяет пропустить оставшуюся часть тела

цикла до закрывающей скобки ( } ) и начать новую итерацию цикла, то есть он не передает

управление за пределы оператора цикла, в котором он находится, согласно схеме:

while

(

выражение

)

{ . . . ;

if

(

условие прерывания

)

continue;

/*прерывание текущей итерации цикла */

операторы

;

}

Пример: Вывести на экран таблицу значений функции

F(x,y) =

𝒆

𝐱

𝒙

𝟐

+

𝒚

𝟐

𝟏

При

x= 0,( шаг 0.25),2; y=0,(шаг 0.1),1

начало

setlocale(LC_ALL

, Rusian

Вывод

x y f

x=0

x

Y=0

z=pow(x,2)+

pow(y,2)-1

Z=0

Деление

на 0

f=exp(x)/z

1

Деление

на 0

1

y+=0.1

y

x+=0.25

да

нет

да

конец

5

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

// в стиле С

#include<stdio.h>

#include<windows.h>

#include<math.h>

int main()

{

double f, x, y, z;

printf("x y f\n");

for (x = 0; x <= 2; x += 0.25)

{

y = 0;

do {

z = pow(x, 2) + pow(y, 2) - 1;

if (z == 0) printf("delenie na null\n");

else

{

f = exp(x) / z;

printf("%5.2f|%5.2f|%5.2f\n", x, y, f);

}

y += 0.1;

} while (y <= 1);

}

system("pause"); //задержка экрана

return 0;

}

// в стиле С++

#include<iostream>

#include<windows.h>

#include<math.h>

using namespace std;

int main()

{

double f, x, y, z;

setlocale(LC_ALL, "Rusian"); //подключение кирилицы

cout << "x y f\n";

x = 0;

while (x <= 2)

{

y = 0;

do {

z = pow(x, 2) + pow(y, 2) - 1;

if (z == 0)

cout << "delenie na null\n";

else

{

f = exp(x) / z;

cout << x << "\t "<< y << "\t "<< f << endl;

}

y += 0.1;

} while (y <= 1);

x += 0.25;

}

system("pause"); //задержка экрана

return 0;

}

6

Результаты решения задачи

. . . .

Порядок выполнения работы

1.

Запустите интегрированную среду разработки (IDE)- например, MS Visual Studio,

XCode, online компилятор . или другую.

2.

Создайте файл кода (расширение .cрp);

3.

Запустите программу на выполнение. Если появились сообщения об ошибках,

исправьте их и повторно запустите программу на выполнение

4.

Введите исходные данные, чтобы пройти по каждой ветви решения

5.

Оформите отчет по лабораторной работе

7

Содержание отчета:

1.

Название работы

2.

Цель работы

3.

Условие задачи

4.

Блок-схема алгоритма

5.

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

6.

Исходные данные

7. Результат решения

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

1.

Чем отличаются циклы с предусловием от циклов с постусловием?

2.

Опишите последовательность функционирования циклов while и do while.

3.

Опишите схему работы оператора for. К какому типу он относится?

4.

Что такое неполный цикл for?

5.

Сколько раз символ «;» должен обязательно содержаться внутри заголовка

неполного оператора for

? Полного?

6.

Как будет работать цикл с заголовком for (i=1; ; i++) ?

7.

Для какого из двух циклов

while(1) i++;

while (0) i++;

тело цикла не будет выполнено ни одного раза? Как будет работать второй из этих

циклов, если i имеет тип float? Тип int?

8.

Цикл for (i=1;i<10 ; i++); не содержит тела цикла. Будет ли работать такой

цикл? Что получится в результате?

9.

Какие циклы называются вложенными?

Индивидуальные задания:

Дана функция y = f(x, a) . Вводятся начальные значения параметров циклов х1 и а1,

конечные значения параметров циклов х2 и а2, в шаги изменения параметров циклов х3 и а3

( тип double). Выражение для вычисления функции задать самостоятельно.

Разработать два текста программы, используя все операторы цикла

Вариант №1

Вывести положительные целые значения функции, попадающие в интервал [-5, +100].

Вариант №2

Вывести для каждого х отрицательные значения функции кратные числу В сложить.

Вариант №3

Для каждого а найти произведение всех четных значений функции.

Вариант №4

Найти отношение максимального значения функции к сумме всех значений функции.

8

Вариант №5

Найти отношение количества положительных значений функции к среднему

арифметическому четных значений функции

Вариант №6

Найти отношение количества всех к сумме нечетных значений функции Вариант №7

Вариант №7

Для каждого значения а вывести все значения функции, попадающие в интервал [C, D]. .

Вариант №8

Определить каких значений функции больше и на сколько: четных положительных или

нечетных отрицательных.

Вариант №9

Найти минимальное положительное значение функции

Вариант №10

Найти максимальное отрицательное значение функции

Вариант №11

Для каждого значения a найти отношение максимального значения функции к количеству

четных значений

Вариант №12

Найти и вывести все значения аргумента x, при которых значение функции y принимает

четное значение.

Вариант №13

Найти и вывести все значения аргументов x и а , при которых значение функции y

принимает максимальное значение.

Вариант №14

Для каждого х четные значения функции сложить, отрицательные - вывести.

Вариант №15

Найти отношение максимального значения функции к сумме отрицательных значений

функции.

Вариант №16

Найти отношение минимального значения функции к произведению отрицательных

значений функции

Вариант №17

Определить что больше и на сколько: сумма всех значений функции или максимальное

значение функции.

9

Вариант №18

Определить что больше и на сколько: количество значений функции > A или количество

значений функции < D.

Вариант №19

Найти среднее геометрическое четных значений функции.

Вариант №20

Для каждого значения а вывести целые положительные значения функции

Вариант №21

Вывести все значения аргументов х и а, при которых значение функции = С.

Вариант №22

Вывести все значения аргументов х и а, при которых значение функции попадает в интервал

[ С, D]

Вариант №23

Для каждого а найти произведение четных значений функции.

Вариант №24

Вывести все значения функции, превышающие среднее арифметическое всех значений

функции

Вариант №25

Для каждого х найти среднее арифметическое значение функции кратных числу С.

Вариант №26

Для каждого х найти максимальное нечетное значение функции.

Вариант №27

Для каждого а найти произведение положительных значений функции и сумму

отрицательных значений функций.

Вариант №28

Для каждого х вывести все значения функции и аргументов а , при которых у > С.

Вариант №29

Для каждого a найти среднее геометрическое нечетных значений функции.

Вариант №30

Для каждого x найти отношение среднего арифметического положительных значений

функции к количеству отрицательных значений функции.

Вариант №31

Для каждого х определить каких значений функции больше: четных или нечетных.

Вариант №32

Вывести значение функции , ближайшее по значению к максимальному

10

Вариант №33

Вывести значения аргументов х и а при которых функция принимает четное отрицательное

значение

Вариант №34

Для каждого а определить каких значений больше и на сколько: целых или нечетных.

Вариант №35

Для каждого х найти отношение количества положительных значений функции к

количеству нечетных отрицательных.



В раздел образования