Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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. Реферат- VAX и Berceley Pascal
2. Выращивание рассады
3. на тему- Формирование ассортимента женской одежды
4. Политический портрет И
5. Обязательное социальное страхование от несчастных случаев
6. Примеры задач оптимизации связанных с фундаментальными понятиями теории связи
7. Forms of Ownership
8. Коллективизаци
9. Реферат- Конкуренция и рынок, виды конкуренции.html
10. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Кіровоград ~
11. Этика
12. нагревание камнями
13. Тема- Філософія її призначення зміст і функції в суспільстві Актуальність теми- Філософія як ос
14. ТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА ВЫСШЕЙ АЛГЕБРЫ МЕТОДИЧЕСКИЕ УК
15.  основні ідеї національної доктрини розвитку освіти в Україні в 21 ст
16. Инвестиционная деятельность предприятия
17. Политико-правовой идеал Конфуция
18. октябрь 2002 12 март 2003 13 март 2004 24 декабрь 2004Почтовые рассылки новостей
19.  1Основные понятия термины определения в экологии Экология отрасль биологической науки о взаимод
20. ТЕМА ЗАСТОСУВАННЯ ГЕРБІЦИДІВ на посівах ЦИБУЛІ РІПЧАСТОЇ В ЛІСОСТЕПУ УКРАЇНИ 06