Программирование циклических вычислительных процессов. Методичка табулирование и программирование функций Программирование циклических вычислительных процессов vba

Цель работы:

Изучить циклические операторы for, while, do – while, научиться составлять и программировать циклические алгоритмы.

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

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

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

Основная форма оператора цикла for имеет вид

for (выражение_1; выражение_2; выражение_3)

оператор;

где выражение_1 – начальное значения параметра цикла;

выражение_2 – проверка условия на продолжение цикла;

выражение_3 – изменение параметра цикла (коррекция);

оператор – простой или составной оператор языка С.

Схема работы оператора следующая: только один раз вначале вычисляется выражение_1, затем проверяется выражение_2, и если оно - «истина», то выполня­ет­ся циклический участок программы, затем производится коррекция параметра, и так до тех пор, пока выражение_2 не примет значение «ложь».

Например: for (k=1; k<5; k++)

printf(“\n %d”, k);

В результате выполнения этого оператора печатаются в столбик цифры от 1 до 4.

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

Например:

for(ch=’a’; ch<=’z’; ch++) // Вывод на экран букв

printf(“ %c”,ch); // латинского алфавита

Необходимо тщательно контролировать структуру циклов for в программе, чтобы не получился бесконечный цикл (из которого нет выхода).

Например :

for(k=10; k>6;k++)

printf(“бесконечный цикл \n”);

Выйти из цикла досрочно можно следующими способами:

По дополнительному условию;

Используя следующие операторы:

break; - выход из цикла, в котором находится break, управление передается на первый после цикла выполняемый оператор;

exit(int Kod); - выход из программы;

return; - выход из функции;

С помощью оператора безусловного перехода goto <метка>;

Досрочное завершение текущего циклического шага возможно при помощи дополнительного условия или оператора continue , который прерывает выполнение текущего шага цикла, т.е. пропускает операторы оставшейся части цикла и передает управление в головной оператор цикла для коррекции параметра и проверки условия.

Передавать управление извне внутрь цикла запрещается.

Любое из выражений цикла for в круглых скобках может отсутствовать, но символ «;» опускать нельзя.

Например :

for(; i<3; i++)

puts(“Hello!”);

Циклические операторы while и do–while

Основная форма циклического оператора while :

While (условие)

оператор;

где оператор

Цикл выполняется до тех пор, пока условие принимает значение «истина», т.е. выражение в скобках возвращает ненулевой результат. Это цикл с предусловием – сначала проверяется условие, затем выполняется оператор. Поэтому цикл while не выполнится ни разу, если изначально результат вычисления условия будет равен 0.

Основная форма оператора do – while :

оператор;

while (условие);

где оператор – это простой, составной или пустой оператор.

Оператор do while – оператор цикла с постусловием, т.е. сначала выполняется оператор, а затем проверяется условие на истинность. Так как в цикле do–while условие проверяется в конце цикла, то цикл будет выполнен хотя бы один раз.

В циклах типа while и do–while допустимы те же способы досрочного выхода из цикла и досрочное завершение текущего шага цикла, как и в операторе for, но в последнем случае в отличие от цикла for управление передается на проверку условия. Для предотвращения бесконечного цикла внутри циклов while и do–while нужно предусмотреть изменение переменных, входящих в условие.

Например:

for (i=1;i<=300;i++) // Печать целых чисел, кратных 5

if (i%5!=0) continue;

printf(“%5d”,i);

Примеры бесконечных циклов:

оператор;

2) while(число_не_0) // Всегда истинно!

оператор;

оператор;

while(число_не_0); // Всегда истинно!

Среди операторов цикла обязательно должно быть условие выхода.

Вложенные циклы

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

for(i=nn;i

for(j=mn;j

оператор;

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

Пример:

for(i=1;i<10;i++) // Печать таблицы умножения

for(j=1;j<4;j++)

printf(“\n %d*%d=%2d”, i, j, i*j);

printf(“\n”);

Пример использования оператора for

Вычислить . На печать программа должна выводить промежуточные и окончательный результаты.

Текст программы может иметь вид

#include

#include

puts(“ Введите N”);

scanf(“%d”,&N);

for (s=0, k=1; k<=N; k++) // В заголовке цикла можно выпол-

{ // нять и двойное присваивание

printf(" \n k=%d s=%f ", k, s);

printf("\n ОТВЕТ: s=%f, Press any key...",s);

Варианты индивидуальных заданий

Составить программу для определения таблицы значений функции у в произвольном диапазоне [a ,b ] изменения аргумента х с произвольным шагом h . Значения a, b, h вводятся с клавиатуры. Таблица должна содержать следующие столбцы: порядковый номер, значение аргумента x , значение функции, сообщение о возрастании или убывании функции, разность двух соседних значений функции.

Определить максимальное и минимальное значения функции.

1. a=-p; b=p; h=0,4.

2. a=0,7; b=1,8; h=0,1.

3. a=-0,5; b=2,5; h=0,2.

4. a=-0,9; b=2,7; h=0,3.

5. a=-2; b=0,8; h=0,2.

6. a=-1,9; b=2,7; h=0,3.

7. a=-0,4p; b=0,4p; h=0,5.

8. a=-0,3p; b=1,3p; h= p/10.

9. a=-p/2; b= p/2; h=p/10.

10. a=-3; b=3; h=0,5.

ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

Основные сведения

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

оператор цикла с параметром For – Next , конструкция которого используется, если заранее известно, сколько раз должно повториться тело цикла:

For счетчик = начальное_значение То конечное_значение Step шаг блок_операторов

Next с четчик

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

Конструкция цикла

Конструкция цикла

с предусловием имеет вид:

с постусловием имеет вид:

Do While условие

блок_операторов

блок_операторов

Loop While условие

Do Until условие

блок_операторов

блок_операторов

Loop Until условие

While условие

блок_операторов

Разработаем пользовательскую форму и составим программу для определения индекса рентабельности предлагаемого инвестиционного проекта обновления оборудования, если сумма первоначальных вложений (ПВ) составляет 10 000 тыс. р., ставкадисконтированияr = 10 %, апредполагаемые денежныепотокиследующие:

Денежный поток (ДПk B ),B тыс. р.

Пусть пользовательская форма будет иметь вид (рис. 1), а значения величин денежных потоков в 1-м – 5- х годах считываются из ячеек рабочего листа «Пример 1» (рис. 2).

Свойства объектов формы представлены в таблице 1.

Рис. 1. Форма «Индекс рентабельности

рентабельности

инвестиционного проекта»

рассчитывается по формуле

∑n

ДПk

ИР =

k = 1 (1+ r )

где n – количество лет, в течение которых будут приходить денежные поступления.

Рис. 2. Таблица распределения денежных потоков

Таблица 1

Свойство

Свойство

Caption = Индекс рента-

Caption = Размер первоначаль-

бельности инвестиционно-

ных вложений

го проекта

Caption = Ставка дисконтирова-

Caption = Индекс рентабельности

Caption = Очистить

Caption = Выход

Для обработки события нажатия кнопки «Рассчитать» введем следующий

Private Sub calc_Click()

‘задание типа переменных

Dim pv, dp, i, n As Integer

Dim r, s As Single

‘считывание значений переменных

pv = Val(txtPV.Text)

r = Val(txtSD.Text) / 100

n = Val(InputBox("Введите количество лет, в течение которых будут

приходить

денежные

поступления ", "Ввод данных"))

‘считывание значений денежных потоков

dp = Cells(2, i + 2)

‘суммирование

txtIR.Text = Round(s / pv, 2) ‘округление и вывод результата

Функция Round (N, k) округляет число N до k знаков после запятой.

Далее с помощью элемента Кнопка панели инструментов Элементы управления разместим ниже таблицы кнопку «Открыть форму» для запуска процедуры «ФормаИндексРентабельности» (рис. 3). Код данной процедуры имеет вид:

Private Sub ФормаИндексРентабельности_Click ()

Рис. 3. Определение индекса рентабельности инвестиционного проекта

С помощью созданной кнопки «Открыть форму» запустим форму и рассчитаем индекс рентабельности инвестиционного проекта (рис. 3).

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

Для создания данной пользовательской формы перейдем в редактор VB (останемся в той же рабочей книге MS Excel, что и в примере 1) и добавим еще одну форму (рис. 4).

Свойства объектов формы представлены в таблице 2.

Для обработки событий нажатия кнопок

следующий код:

Private Sub calc_Click()

Рис. 4. Форма для примера 2

Label2.Caption = ""

‘определение первой цифры двузначного числа

‘определение второй цифры двузначного числа

If (i1^2+i2^2) Mod 13=0 Then Label2.Caption = Label2.Caption+Str(i)+" "

Private Sub clean_Click()

Label2.Caption = ""

Private Sub exitForm_Click()

Таблица 2

Свойство

Caption = Пример 2

Caption = Двузначные числа, сумма

квадратов цифр которых делится на 13

TextAlign = 2-fmTextAlignCenter

Caption = “ ”

AutoSize = False

Свойство

Caption = Очистить

Caption = Выход

На рабочем листе «Пример 2» разместим

кнопку «Открыть форму» для вызова формы

«Пример 2» и запустим данную форму (рис.

Разработаем

пользовательский

интерфейс

и составим

программу для вы-

суммы ряда:

числения с точностью ε = 10P

k + 2

S = ∑

(− 1)

k = 1

Останемся в той же рабочей книге Excel,

что и в примерах 1 и 2. С помощью инстру-

Рис. 5. Двузначные числа, сумма квад-

ментов «Надпись», « Поле» и «Кнопка» па-

ратов цифр которых делится на 13

нели инструментов

Элементы

управления

разместим на рабочем листе «Пример 3» соответствующие объекты (рис. 6).

Свойства объектов листа «Пример 3» представлены в таблице 3.

Таблица 3

Свойство

Свойство

Caption = Сумма ряда

Caption = Очистить

Для обработки событий нажатия кнопок «Рассчитать» и «Очистить» введем в модуле «Лист3(Пример 3)» следующий программный код:

eps = Val(InputBox("Задайте точность", "Ввод данных"))

a = (-1) ^ (k + 2) / (f * 2 ^ k) s = s + a

Loop txtS.Text = s

Private Sub clean_Click() txtS.Text = ""

Здесь тело цикла Do While – Loop будет

выполняться,

слагаемое

абсолютной

k + 2

n− 1

k + 2

n+ 2

величине (т.

(− 1)

−∑

(− 1)

(− 1)

) будет

Рис. 6. Вычисление суммы

k = 1

k = 1

превышать заданную точность 10 P

Проверим работу программы (рис. 7).

Разработаем

пользовательскую

составим программу для решения следующей задачи.

При анализе хозяйственной деятельности пред-

установлена

следующая

закономерность: в январе 2004 г. прибыль данного

предприятия составила 573 тыс. р. и в течение

следующих 5 лет ежемесячно увеличивалась на i %,

где i – номер месяца (т. е. в феврале – на 2 %, в марте

– на 3 % и т. д.), по сравнению с суммой прибыли в

Рис. 7. Результат вычисления

предыдущем месяце.

Определить полученные пред-

суммы ряда

приятием суммы прибыли за 2004 г., 2005 г., …, 2008 г., а также общую сумму прибыли за эти 5 лет.

Для создания данной пользовательской формы перейдем в редактор VB (останемся в той же рабочей книге MS Excel, что и в примерах 1–3) и добавим еще одну форму (рис. 8). Вывод вычисленных значений прибыли предприятия будет осуществляться как в поле объекта список (ListBox ), размещенного на форме, так и в ячейки рабочего листа «Пример 4» (рис. 9).

Рис. 8. Форма «Прибыль предприятия» Рис. 9. Таблица к примеру 4

Свойства объектов формы представлены в таблице 4.

Таблица 4

Свойство

Свойство

Caption = Прибыль предприятия

Caption = Очистить

Caption = Выход

Примечание. Свойство ColumnCount задает количество колонок объекта ListBox.

Для обработки событий нажатия кнопок «Рассчитать», «Очистить» и «Вы-

ход» введем следующий код:

Private Sub calc_Click() Dim i, j As Integer

Dim PrM, prG, sPr As Single

PrM = Val(InputBox("Введите прибыль, полученную в январе 2004 г.", "Ввод данных"))

ListBox используется метод AddItem , предназначенный для добавления элементов в список

ИмяСписка.AddItem Выражение , Индекс

где Выражение – элемент списка, который надо добавить; Индекс – порядковый номер элемента в списке (нумерация элементов списка начинается с 0).

А свойство List (НомерСтроки, НомерСтолбца) объекта ListBox возвращает (присваивает) элемент списка, стоящий на пересечении указанных строки и столбца.

На рабочем листе «Пример 4» разместим кнопку «Открыть форму» для вызова формы «Прибыль предприятия» и запустим данную форму (рис. 10).

Теперь можно добавить в рабочую книгу MS Excel еще один лист с именем «Оглавление», на котором, например, с помощью инструмента Кнопка панели инструментов Формы создадим четыре кнопки: «Индекс рентабельности», «Двузначные числа», «Сумма ряда», «Прибыль предприятия».

В редакторе VB добавим новый модуль (Insert → Module ), в котором введем следующий код:

Public Sub ЛистПример1()

Worksheets("Пример 1").Activate

ListPr.AddItem "Год", 0

‘задание начальных подписей и данных

ListPr.List(0, 1) = "Прибыль, тыс. р."

‘цикл по годам

‘цикл по месяцам каждого года

If (i = 4) And (j = 1) Then

PrM = PrM * (1 + j / 100)

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

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

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

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

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

оператор;

while (условие);

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

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



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

while (условие);

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

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

оператор;

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

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

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

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

4.1.3 Пример составления алгоритма и программы на языке C++ для циклического вычислительного процесса.

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

b – исходная величина, ее значение вводятся с клавиатуры и не изменяется;

a – изменяется в диапазоне с шагом 1;

y – результат, его значения выводятся на экран.

Исходя из условия задания переменная a является целочисленной, поэтому может быть использована в качестве счетчика в счетном цикле.

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

#include

#include

#include

printf(“Введите b: “);

scanf(“%f”,&b);

printf(“ a y\n”);

for (a=0;a<=10;a++)

printf(“%3d”,a);

printf(“%8.2f\n”,y);

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

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

Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом:

#include

#include

#include

printf(“Введите b: “);

scanf(“%f”,&b);

printf(“ a y\n”);

printf(“%3d”,a);

printf(“%8.2f\n”,y);

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

else printf(“ y не существует\n”);

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

Текст программы на языке C++, соответствующей данному алгоритму, выглядит следующим образом:

#include

#include

#include

printf(“Введите b: “);

scanf(“%f”,&b);

printf(“ a y\n”);

printf(“%3d”,a);

printf(“%8.2f\n”,y);

y=(a-b)/sqrt(a);

printf(“%8.2f\n”,y);

else printf(“ y не существует\n”);

while(a<=10);

Практическая часть

4.2.1 Требования к выполнению работы:

Выполнить задание из лабораторной работы № 3 для диапазона значений одной из переменных. Изменяемая переменная, диапазон ее изменения и шаг указаны в таблице 4. Составить блок-схемы алгоритмов и программы для двух типов циклов, указанных в индивидуальном задании (таблица 4).

Оформить вывод результатов таким образом, чтобы четко выделялись значения изменяемого параметра и при каждом его конкретном значении выводились значения результата (трех переменных из столбца 2 таблицы 3) в виде таблицы.

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

1. Выполнить анализ задания, сформулировать постановку задачи.

2. Составить блок-схемы алгоритмов.

3. Составить программу на языке C++. Предусмотреть ввод исходных данных с клавиатуры и вывод результатов на экран.

4. Выполнить проверку работоспособности программы на различных исходных данных.

5. Выполнить анализ полученных результатов.

Варианты индивидуальных заданий.

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

Таблица 4. Варианты индивидуальных заданий

№ п/п Изменяемая переменная Типы циклов
10 ≤ a ≤ 10, Δ a=1
-4 ≤ d ≤ 4 , Δ d = 0.5
-6 ≤ x ≤ 3 , Δ x = 0.5
0 ≤ b ≤ 3 0, Δ b = 1.5 1. С предусловием, 2. Счетный
-15 ≤ j ≤ 1 0, Δ j = 0.5 1. С предусловием, 2. С постусловием
5 ≤ e ≤ 35, Δ e = 2 1. Счетный, 2. С постусловием
-5 ≤ m ≤ 15, Δ m = 1 1. С предусловием, 2. Счетный
1 ≤ c ≤ 70, Δ c = 3 1. С предусловием, 2. С постусловием
1.5 ≤ c ≤ 15, Δ c = 0.5 1. Счетный, 2. С постусловием
-8 ≤ b ≤ 28, Δ b = 2 1. С предусловием, 2. Счетный
-4.5 ≤ x ≤ 11.5, Δ x = 0.5 1. С предусловием, 2. С постусловием
-7 ≤ k ≤ 2, Δ k = 0.3 1. Счетный, 2. С постусловием
-1 ≤ m ≤ 21, Δ m = 1 1. С предусловием, 2. Счетный
-2 ≤ e ≤ 34, Δ e = 2 1. С предусловием, 2. С постусловием
-11 ≤ c ≤ 23, Δ c = 2 1. Счетный, 2. С постусловием
-13 ≤ p ≤ 50, Δ p = 3 1. С предусловием, 2. Счетный
3.3 ≤ b ≤ 9.3, Δ b = 0.3 1. С предусловием, 2. С постусловием
3.5 ≤ y ≤ 12.3, Δ y = 0.4 1. Счетный, 2. С постусловием
-7.5 ≤ a ≤ 5.7, Δ a = 0.6 1. С предусловием, 2. Счетный
-1.5 ≤ h ≤ 1.2, Δ h = 0.1 1. С предусловием, 2. С постусловием
0 ≤ h ≤ 10, Δ h=0.5 1. Счетный, 2. С постусловием
-15 ≤ b ≤ 15 , Δ b =2 1. С предусловием, 2. Счетный
-7 ≤ l ≤ 3 , Δ l = 0.5 1. С предусловием, 2. С постусловием
-5.5 ≤ b ≤ 6.5 , Δ b = 0.5 1. Счетный, 2. С постусловием
1 ≤ k ≤ 9 , Δ k = 0.4 1. С предусловием, 2. Счетный
0 ≤ b ≤ 6.9, Δ b = 0.3 1. С предусловием, 2. С постусловием
-3 ≤ v ≤ 9, Δ v = 0.6 1. Счетный, 2. С постусловием
-2 ≤ p ≤ 2.6, Δ p = 0.2 1. С предусловием, 2. Счетный

4.3 Контрольные вопросы и практические задания:

1. Как работает оператор while?

2. Как работает оператор do ... while?

3. Как работает оператор for?

4. Подчеркнуть в программе операторы, образующие цикл.

5. В чем заключается отличие операторов while и do ... while?

6. Заменить в программе один оператор цикла другим.

Нажав на кнопку "Скачать архив", вы скачаете нужный вам файл совершенно бесплатно.
Перед скачиванием данного файла вспомните о тех хороших рефератах, контрольных, курсовых, дипломных работах, статьях и других документах, которые лежат невостребованными в вашем компьютере. Это ваш труд, он должен участвовать в развитии общества и приносить пользу людям. Найдите эти работы и отправьте в базу знаний.
Мы и все студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будем вам очень благодарны.

Чтобы скачать архив с документом, в поле, расположенное ниже, впишите пятизначное число и нажмите кнопку "Скачать архив"

Подобные документы

    Составление отчетной ведомости "Магазины" в Excel 2013. Работа с таблицами семейства Microsoft Office. Построение круговой диаграммы и гистограммы, графиков. Разработка процедур для табулирования функций. Программирование функций пользователя на VBA.

    курсовая работа , добавлен 03.04.2014

    Пакет Microsoft Office. Электронная таблица MS Excel. Создание экранной формы и ввод данных. Формулы и функции. Пояснение пользовательских функций MS Excel. Физическая постановка задач. Задание граничных условий для допустимых значений переменных.

    курсовая работа , добавлен 07.06.2015

    Особенности использования встроенных функций Microsoft Excel. Создание таблиц, их заполнение данными, построение графиков. Применение математических формул для выполнения запросов с помощью пакетов прикладных программ. Технические требования к компьютеру.

    курсовая работа , добавлен 25.04.2013

    Организация файлов и доступ к ним. Файловые операции. Программирование с использованием встроенных функций ввода-вывода; линейных, разветвляющихся и циклических вычислительных процессов с использованием If-else, оператора выбора Case; массивов и матриц.

    курсовая работа , добавлен 24.05.2014

    Процессор электронных таблиц Microsoft Excel - прикладная программа, предназначенная для автоматизации процесса обработки экономической информации, представленной в виде таблиц; применение формул и функций для производства расчетов; построение графиков.

    реферат , добавлен 03.02.2013

    Программирование вычислительных процессов на языке FORTRAN для обеспечения взаимодействия системы "Человек-Производство-Природа". Использование массивов для составления циклов подсчета уровня экологического загрязнения, затрат на переработку отходов.

    курсовая работа , добавлен 30.05.2014

    Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.

    дипломная работа , добавлен 16.02.2016

Задание №2

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

Цель работы

Получить навыки программирования ветвящихся вычислительных процессов. Изучить условные операторы, переменные логического типа, логические отношения и операции.

Пусть на плоскости x, y задана область D. Требуется определить «попадает» ли точка с координатами (x, y) в область D или нет. Если попадает, то необходимо вычислить функцию и переменной M, значение которой является признаком «попадания» или «непопадания», присвоить значение M=1. В противном случае вычислить и положить M=2.

Ход работы

Алгоритм решения поставленной задачи:

1. Выписать область D и выписать функции и

2. Записать уравнения, определяющие границы области

3. Подготовить 7 точек, чтобы часть точек находилась внутри D, а часть- вне ее.

4. Написать программу для выполнения поставленной задачи.

5. Для выбранных точек получить и записать результаты счета.

f 1= tg(x)/e y f 2 =

(x>0 и y>0 и X**2+Y**2<=9) или (x<0 и y>0 и y<=x+4) или (x<0 и y<0 и x>(-4) и y>(-2))

то точка принадлежит области D

1)(1;1)
2)(3;3)
3)(-1;2)
4)(-5;2)
5)(-2;-1)
6)(-5;-3)

Fortran MathCAD
x y z m c z m c
0.1573E+01 T 1.573
0.0751E+01 F 0.751
-1 -0.1211E+01 T -1.211
-5 0.083E+01 F 0.83
-2 -1 0. 394E+01 T 3.94
-5 -3 0.0282E+01 F 0.282
-3 0. 0271E+01 F 0.271

PRINT *,"X=?,Y=?";READ *,X,Y

C=(x>0..and. y>0..and.X**2+Y**2<=9).or.(x<0..and.y>0..and.y<=x+4).or.(x<0..and.y<0..and.x>(-4).and.y>(-2))

PRINT 2,X,Y,Z,C,M

2 FORMAT ("X=",F7.3,3X,"Y=",F7.3,3X,"Z=",E11.4,3X,"C=",L2,3X,"M=",I2/)

END PROGRAM LAB2

FUNCTION F1(X,Y)

F1=tan(x)/exp(x)**y

FUNCTION F2(X,Y)

F2= (sqrt(sin(2*x+3*y)**2)**1./3.)

print*,"a,b,c=?";read "(2F7.3)",a,b,c

q=a>b.and.a

ac

w=b>a.and.b

bc

e=c>a.and.c

cb

28.,558.,345. 345.0000


Задание №3

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

Цель работы

Получить навыки программирования циклических вычислительных процессов. Изучить циклы с шагом и циклы с условием.

1. Записать расчетные формулы для вычисления слагаемого и конечной суммы

2. Составить алгоритм вычисления с заданной точностью суммы конечного числа членов ряда в указанном диапазоне изменения параметра x с заданным шагом. Для получения шага диапазон изменения x разделить на 10.

3. Составить программу решения задачи. В программе для каждого значения x предусмотреть вычисление как приближенной, так и точной суммы соответствующего ряда y по приведенной в таблице формуле.

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

Ход работы

1. Задать x0-начало цикла и xл-конец цикла

2. Задаем шаг h по формуле

4. Составить программу решения задач рекуррентным способом

5. Построить таблицу полученных данных

Формула ряда:

Формула точного вычисления суммы: π/4

1. x0= π/10 xk=9 π/10

3.


real:: a,b,c,eps,h,s,x,x0,xk,y,p

b=(sin*(x)*(2*n)-1+sin*((2*n-1)*x))/4*n-2

if(abs(a)

print 2,x,s,y,n; write(1,2)x,s,y,n

end do 2 format("x=",f6.3,3x,"s=",e10.3,3x,"y=",e10.3,3x,"n=",i5)

end program lab3


x S(x) y
0.314 0.324 0.785
0.565 0.622 0.785
0.817 0.979 0.785
1.068 1.404 0.785
1.319 1.43 0.785
1.57 -19.257 0.785
1.821 -533.961 0.785
2.072 -8.624E+3 0.785
2.324 -9.986E+4 0.785
2.575 -8.928E+5 0.785
2.826 -6.477E+6 0.785