Лабораторная работа №4. “Программирование циклических вычислительных процессов”
“Программирование циклических вычислительных процессов”
Цель работы: освоение методов составления алгоритмов циклических вычислительных процессов и организации циклических программ сложной структуры. Теоретическая часть 4.1.1. Циклические алгоритмы.
Цикл – это последовательность действий, которая может выполняться более одного раза. Циклический алгоритм – это алгоритм, содержащий один или несколько циклов. Имеется 3 вида циклов: - цикл с предусловием; - цикл с постусловием; - цикл со счетчиком (счетный цикл). Если выполнение цикла связано с каким-либо логическим условием, то используются циклы с предусловием или с постусловием. Циклы со счетчиком представляют такой класс, в котором выполнение тела цикла должно повторяться заранее определенное число раз. Блок-схемы циклических алгоритмов выглядят следующим образом: 1. Цикл со счетчиком. 2. Цикл с предусловием. 3. Цикл с постусловием. 4.1.2 Операторы цикла в языке программирования C++.
В C++ для каждого вида цикла имеется соответствующий оператор: - цикл типа while (с предусловием); - цикл типа do…while (с постусловием); - цикл типа for (счетный).
1.Оператор цикла типа while Форма записи: while (условие) оператор; где: (условие) – логическое выражение; оператор – выполняемый в цикле оператор или тело цикла. Если тело цикла представляет собой составной оператор, то его нужно заключить в операторные скобки{...}: while (условие) { группа операторов } Схема работы такого цикла: пока условие является истинным (true), выполняется тело цикла и снова проверяется условие и т.д. Когда условие станет ложным (false) цикл завершает работу. 2. Оператор цикла типа do…while Форма записи: 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++ 4.1.3 Пример составления алгоритма и программы на языке C++ для циклического вычислительного процесса. Задание: Вычислить значение выражения: b – исходная величина, ее значение вводятся с клавиатуры и не изменяется; a – изменяется в диапазоне [0;10] с шагом 1; y – результат, его значения выводятся на экран. Решение. Исходя из условия задания переменная a является целочисленной, поэтому может быть использована в качестве счетчика в счетном цикле. Блок-схема алгоритма решения данной задачи с использованием счетного цикла выглядит следующим образом: Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом: #include <conio.h> #include <math.h> #include <stdio.h> int main() { int a; float b,y; clrscr(); printf(“Введите b: “); scanf(“%f”,&b); printf(“ a y\n”); for (a=0;a<=10;a++) { printf(“%3d”,a); if (a>b) { y=1.2*a+3*b; printf(“%8.2f\n”,y); } else { if (a>0) { y=(a-b)/sqrt(a); printf(“%8.2f\n”,y); } else printf(“ y не существует\n”); } } getch(); return 0; }
Блок-схема алгоритма решения данной задачи с использованием цикла с предусловием выглядит следующим образом: Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом: #include <conio.h> #include <math.h> #include <stdio.h> int main() { int a; float b,y; clrscr(); printf(“Введите b: “); scanf(“%f”,&b); a = 0; printf(“ a y\n”); while(a<=10) { printf(“%3d”,a); if (a>b) { y=1.2*a+3*b; printf(“%8.2f\n”,y); } else { if (a>0) { y=(a-b)/sqrt(a); printf(“%8.2f\n”,y); } else printf(“ y не существует\n”); } a=a+1; } getch(); return 0; }
Блок-схема алгоритма решения данной задачи с использованием цикла с постусловием выглядит следующим образом:
Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом: #include <conio.h> #include <math.h> #include <stdio.h> int main() { int a; float b,y; clrscr(); printf(“Введите b: “); scanf(“%f”,&b); a = 0; printf(“ a y\n”); do { printf(“%3d”,a); if (a>b) { y=1.2*a+3*b; printf(“%8.2f\n”,y); } else { if (a>0) { y=(a-b)/sqrt(a); printf(“%8.2f\n”,y); } else printf(“ y не существует\n”); } a=a+1; } while(a<=10); getch(); return 0; }
Практическая часть
4.2.1 Требования к выполнению работы:
Выполнить задание из лабораторной работы № 3 для диапазона значений одной из переменных. Изменяемая переменная, диапазон ее изменения и шаг указаны в таблице 4. Составить блок-схемы алгоритмов и программы для двух типов циклов, указанных в индивидуальном задании (таблица 4). Оформить вывод результатов таким образом, чтобы четко выделялись значения изменяемого параметра и при каждом его конкретном значении выводились значения результата (трех переменных из столбца 2 таблицы 3) в виде таблицы. Порядок выполнения работы. 1. Выполнить анализ задания, сформулировать постановку задачи. 2. Составить блок-схемы алгоритмов. 3. Составить программу на языке C++. Предусмотреть ввод исходных данных с клавиатуры и вывод результатов на экран. 4. Выполнить проверку работоспособности программы на различных исходных данных. 5. Выполнить анализ полученных результатов.
Варианты индивидуальных заданий.
Варианты индивидуальных заданий выбираются из таблицы 4 в соответствии с номером студента в списке группы в журнале преподавателя. Таблица 4. Варианты индивидуальных заданий
4.3 Контрольные вопросы и практические задания:
1. Как работает оператор while? 2. Как работает оператор do ... while? 3. Как работает оператор for? 4. Подчеркнуть в программе операторы, образующие цикл. 5. В чем заключается отличие операторов while и do ... while? 6. Заменить в программе один оператор цикла другим.
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (3507)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |