У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 5 Инструкции цикла Цель- Изучение формата написания и принципа действия

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

6

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

Инструкции цикла

 Цель:

  •  Изучение формата написания и принципа действия инструкций цикла for, while, do-while.
  •  Составление циклических консольных приложений на основе инструкций цикла.
  •  Освоение приемов работы с одномерными массивами с использованием циклических инструкций.
  •  Изучение инкрементных и декрементных инструкций.

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

Инструкция цикла for

for( [init-expr]; [cond-expr]; [loop-expr] )
statement

Ключевое слово for выполняет инструкцию statement циклически. Сначала выполняется инициализация – вычисляется выражение (init-expr). Затем, пока условное выражение (cond-expr) дает в результате ненулевое значение, инструкция statement выполняется и вычисляется выражение (loop-expr). Когда (cond-expr) становится равным 0, управление вычислительным процессом передается на следующую за for инструкцию.

Инструкция цикла while

while( expression )
statement

Ключевое слово while выполняет инструкцию statement циклически до тех пор, пока логическое выражение expression станет равным 0.

Инструкция цикла do-while

do
statement
while( expression );

Ключевое слово do выполняет инструкцию statement циклически до тех пор, пока логическое выражение expression станет равным 0.

Инструкция continue

continue;

Инструкция continue передает контроль следующей итерации ближайшего цикла do, for или while, в котором инструкция continue появляется.

Инструкция break

break;

Инструкция break прекращает ближайший цикл do, for или while, в котором инструкция break появляется.

Постфиксная инкрементная и декрементная инструкции

postfix-expression ++
postfix-expression --

Операнды постфиксного инкрементного ++ и декрементного -- операторов являются переменными скалярного типа (l-values). Результатом постфиксной инкрементной  и декрементной операции является значение операнда (postfix-expression) до того, как применен инкрементный или декрементный оператор. Тип результата совпадает с типом postfix-expression. После того, как результат получен, величина операнда увеличивается (или уменьшается) на 1. Например:

int I = 4; // I == 4

int K;

K=I++;  // K == 4, I == 5

Префиксная инкрементная и декрементная инструкции

++ unary-expression
-- unary-expression

Унарные операторы (++ и --) называются «префиксными», когда появляются перед операндами (unary-expression). Постфиксный инкрементный и декрементный операторы имеют более высокий приоритет, чем префиксные операторы. Операнд должен быть переменной целого, вещественного типа или указателем (без атрибута const). Операнд сначала  увеличивается (или уменьшается) на 1,  и его новое значение становится результатом выражения. Например:

int I = 4; // I == 4

int K;

K=++I;  // K == 5, I == 5

Расчет коэффициента рекуррентности

Бесконечные зависимости , в которых каждый следующий (i+1)-элемент ряда может быть определен по предыдущему i-му элементу , называются рекуррентными, а коэффициент  - коэффициентом рекуррентности.

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

Найти массив сумм S элементов рекуррентного ряда для каждого значения последовательности x, (x меняется в пределах заданного диапазона с шагом ). Каждую сумму искать с точностью  до (прекращать суммировать, когда абсолютное значение очередного элемента ряда становится меньше ).

Требования

  •  Оформить вычисления в виде консольного приложения.
  •  Циклический алгоритм вычислений осуществить с помощью инструкций цикла while, do-while.
  •  Сформировать одномерные массивы для значений x и сумм.
  •  Результаты расчета (значения x, суммы S, количество просуммированных членов ряда) вывести в выходной стандартный поток cout с помощью оператора << с использованием инструкции цикла for.
  •  В отчет включить текст основной программы и результаты расчета.

Пример:

 

Содержание работы

  1.  Найти коэффициент рекуррентности  для заданного ряда S. Для нахождения  надо подставить i+1 вместо n в формулу для n-го элемента ряда : . Аналогично, для i-го элемента ряда , а коэффициент рекуррентности . Проверим правильность полученной формулы. Начальный элемент  (задано). Первый элемент найдем по формуле . Второй элемент ряда будет и т.д., что совпадает с элементами ряда в задании. Значит, коэффициент рекуррентности был найден правильно и может быть использован для расчетов. Удобство такого подхода заключается в том, что отпадает необходимость вычисления факториалов.
    1.  Теперь можно создать проект консольного приложения.
      •  Запустите интегрированную среду программирования на выполнение (Пуск | Программы | Microsoft Visual Studio.NET).
      •  Запустить мастер создания проекта AppWizard командой меню File | New | Project.
      •  В диалоговой панели New Project выделить мышью вариант приложения Win32 Console Application, набрать имя создаваемого проекта Lab5 в окне редактирования Name и при помощи кнопки «Browse» справа от окна редактирования Location перейти на рабочий логический диск (например, R). Подтвердить нажатием кнопки OK выбранные опции панели New Project.

  •  В открывшемся следующем окне Win32 Console Application  Wizard подтвердить выбранные опции, нажав Finish.

  •  В появившемся окне New Project Information подтвердить информацию о новом проекте нажатием кнопки ОК.
    1.  Открыть исходный файл Lab5.cpp в окне редактора, где в заготовку главной функции надо добавить необходимый текст консольного приложения:

// lab5.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

const int M=10;  // количество элементов массивов 

int _tmain(int argc, _TCHAR* argv[])

{

double

 Xn,  // начальное значение Х

 Xk,  // конечное значение Х

 Hx,  // шаг по Х

 Eps;  // точность вычисления каждой суммы

 double

 X[M],  // формируемый массив Х

 Sum[M]; // формируемый массив сумм

 int

 It[M]={0}; // массив итераций по поиску каждой суммы

 int

 i,  // счетчик по членам суммируемого ряда

 k;  // счетчик по Х

double

 x,  // текущий Х, для которого ищется сумма

 q,  // коэффициент рекурентности

 a1,  // предыдущий элемент ряда

 a2;  // следующий элемент ряда (суммируемый)

 // Ввод данных с консоли

 cout << " Initial data:\n\n" << " Xn Xk Hx Eps = ";

cin >> Xn >> Xk >> Hx >> Eps;

 x=Xn;    // начальное значение Х

 k=0;    // начальное значение счетчика сумм

 while(x <= Xk)   // начало цикла по Х

 {

  X[k]=x;   // формирование массива Х

  Sum[k]=1;  // начальное значение текущей суммы

  a1=1;   // первый просуммированный член ряда

  i=0;   // номер члена ряда

  do   // начало цикла по суммируемым членам ряда

  {

   q=-x/(i+1); // текущий коэффициент рекурентности

   a2=a1*q; // следующий член ряда

   Sum[k]+=a2; // подсчет суммы

   i++;  // число просуммированных членов ряда

   a1=a2;  // сохранение просуммированного члена ряда

  }while (fabs(a2) > Eps); // проверка точности суммирования

  It[k]=i;   // сколько членов ряда просуммировано

  k++;   // увеличение счетчика по Х

  x+=Hx;   // переход на новый Х

 }

 // вывод результирующих массивов

cout << "\n ***************** Results *****************\n\n";

for(k=0; k<M; k++)

{

 cout << " k=" << k << " x=" << X[k];

 cout << " Summa=" << Sum[k] << " Iter= " << It[k] << "\n";

}

 

return 0;

}

  1.  В заголовочный файл StdAfx.h после строки комментария // TODO: вставить стандартные заголовочные файлы для корректной работы с библиотекой арифметических функций и стандартнім пространством имен:

#include <math.h>

using namespace std; // стандартное пространство имен

  1.  Выполнить построение проекта командой меню Build | Build lab5.exe.
    1.  Запустить на выполнение созданное консольное приложение командой меню Debug | Start Without Debugging.
    2.  Появится окно консоли с предложением ввести с клавиатуры исходные данные:

  1.  Введите исходные данные:

  1.  После нажатия клавиши «Enter» выполнится алгоритм основной функции и появится окно консоли с результатами расчета.

  1.  Вернуться в среду редактирования нажатием любой клавиши.
    1.  Завершить работу интегрированной среды Microsoft Visual C++ 7.0, выполнив команду меню File | Exit.
    2.  Оформить отчет о проделанной лабораторной работе.

Условия вариантов

Вариант № 1

; x=0.11.0,

Вариант № 2

;  x=12,

Вариант № 3

Вариант № 4

Вариант № 5

Вариант № 6

Вариант № 7

Вариант № 8

Вариант № 9

Вариант № 10

Вариант № 11

Вариант № 12

Вариант № 13

Вариант № 14

Вариант № 15

Вариант № 16

Вариант № 17

Вариант № 18

Вариант № 19

Вариант № 20

Вариант № 21

Вариант № 22

Вариант № 23

Вариант № 24

Вариант № 25

Вариант № 26

Вариант № 27

Вариант № 28

Вариант № 29

Вариант № 30




1. Представительство в суде
2. Контрольная работа- Последовательные интерфейсы
3. СОВЗОНД главы из учебного пособия по программному комплексу ENVI компании RSI
4. правові інституціональні управлінські регулятивні та саморегулятивні глобальні національні державні н.html
5. Лекція 10 Методи психолінгвістичних досліджень Роль експерименту у психолінгвістиці
6. 1 Настоящие федеральные государственные требования устанавливают нормы и положения обязательные при реал
7. единого индустриального общества является Р
8. жемчужина собакасолнце сладкий цветок лотоса львиная собачка эти названия пришли из легенд о пр
9. Теплогенерирующие установки Рывкина НВ
10. Экология Определение и содержание