Программы с линейной структурой
Приступая к решению задач с линейной структурой, следует вспомнить, что:
· • программы с линейной структурой являются простейшими и используются, как правило, для реализации обычных вычислений по формулам;
· • в программах с линейной структурой инструкции выполняются последовательно, одна за другой;
· • алгоритм программы с линейной структурой может быть представлен следующим образом:
Пример
Два числа X и Y задаются при помощи оператора ввода. Вычислить сумму их квадратов, модуль разности и произведение. Текст программы на языке Паскаль приведен ниже. Здесь переменная SUM используется для обозначения суммы квадратов, переменная М — для обозначения модуля разности, переменная P -для обозначения произведения.
Работа программы
Вводятся исходные числа Х и Y с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 2
Таблица 2 – Назначение переменных
Калбаева А Т Программы линейной структуры
Переменная | Тип | Назначение |
x, y | real | Вещественные числа, вводимые с клавиатура |
Sum | real | Сумма квадратов исходных вещественных чисел |
M | real | Модуль разности исходных вещественных чисел |
p | real | Произведение исходных вещественных чисел |
Блок – схема алгоритма программы
Рис. 2 Блок схема алгоритма программы
Текст программы
Тестирование
Вводим два числа, проверяя корректность работы программы: (1) при двух положительных числах, где Х больше Y; (2) при двух отрицательных числах, где Y больше X. Программа ведёт себя корректно.
Введите Х = 3
Введите Y = 2
Ссума квадратов sum = 13.000
Модуль разности m = 1.000
Произведение р = 6.000
Введите Х = -5
Введите Y = -2
Ссума квадратов sum = 29.000
Модуль разности m = 3.000
Произведение р = 10.000
Практическая часть
Практическая часть выполняется каждым студентом индивидуально, согласно своему варианту. Вариант задания выдается преподавателем.
Задание 1 Составить программу для вычисления по формулам. Предусмотреть задание исходных данных при помощи оператора ввода.
1. Треугольник задан длинами сторон a и b, и величиной угла С. Найти сторону с и площадь S данного треугольника.
Предусмотреть ввод угла a в градусах и перевод его в радианы:
2. Треугольник задан длинами сторон. Найти длины высот :
3. Треугольник задан длинами сторон. Найти длины медиан:
4. Треугольник задан длинами сторон. Найти длины биссектрис:
5. Треугольник задан длинами сторон. Найти углы треугольника:
6.Даны два угла треугольника A, B и высота ha . Вычислить площадь треугольника и две стороны по формулам:
7. Даны два угла треугольника B,С и высота ha . Вычислить длины всех сторон по формулам:
Лекция «Алгоритмы и программы линейной структуры»
8. В треугольнике заданы сторона a и углы В и С. Найти площадь S и стороны b и c:
9. В треугольнике заданы сторона a, высота ha и угол С. Найти стороны b,с и площадь S.
10. Треугольник задан координатами своих вершин. Найти площадь треугольника:
Замечание: расстояние между точками A(x1, y1) и B(x2, y2), расположенными на плоскости рассчитывается:
11. Треугольник задан координатами своих вершин. Найти периметр и площадь треугольника.
12. Вокруг треугольника со сторонами a, b, c описана окружность. Определить ее радиус R, угол треугольника A и площадь, ограниченную стороной a и радиусами, проведенными в вершины B, C.
13. В окружность радиуса R вписан правильный треугольник. Определить длину его стороны a, площадь S и площадь круга S0 , вписанного в треугольник:
14. Вычислить значения Z1 и Z2 по формулам:
15. Опредлить дальность полета тела, запущенного с начальной скоростью V0 с высоты h под углом к горизонту a,пренебрегая сопротивлением воздуха. Траектория движения тела описывается уравнениями:
; , где , V0x, V0y — компоненты скорости V0 вдоль осей X и Y. Замечание: в момент падения тела Y=0.
Задание 2. Составить программу для вычисления. Предусмотреть задание исходных данных при помощи оператора ввода.
1. Написать программу вычисления объема параллелепипеда. Значения вводятся с клавиатуры
2. Написать программу вычисления объема и площади поверхности шара.
3. Написать программу вычисления объема цилиндра.
4. Написать программу вычисления стоимости покупки некоторого количества (по весу) помидоров, огурцов и яблок.
5. Написать программу вычисления стоимости покупки нескольких тетрадей и карандашей. Предполагается, что во время работы программы пользователь будет вводить данные о каждой составляющей покупки в отдельной строке: сначала цену, затем количество.
6. Вычислить расстояние между двумя точками с координатами х1, у1 и х2, у2.
7. Треугольник задан длинами сторон. Найти: длины высот и медиан.
8. Вычислить период колебания маятника длины l.
9. Определить силу притяжения F между телами массы m1 и m2, находящимися на расстоянии r друг от друга.
10. Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и радиус вписанной окружности.
11. Даны два действительных числа a и b. Получить их сумму, разность и произведение.
12. Даны действительные числа x и y. Получить
13. Даны два действительных положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.
14. Даны два действительных числа. Найти среднее арифметическое и среднее геометрическое их модулей.
15. Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.
Задание 3 Составить программу для вычисления. Предусмотреть задание исходных данных при помощи оператора ввода.
1. Написать программу вычисления площади параллелограмма.
2. Написать программу вычисления объема параллелепипеда.
3. Написать программу вычисления площади поверхности параллелепипеда.
4. Написать программу вычисления объема куба.
5. Написать программу вычисления объема цилиндра.
6. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и карандашей.
7. Написать программу вычисления стоимости покупки, состоящей из нескольких тетрадей и такого же количества обложек к ним.
8. Написать программу вычисления стоимости некоторого количества (по весу) яблок.
9. Написать программу вычисления площади треугольника, если известна длина основания и высота.
10. Написать программу вычисления площади треугольника, если известны длины двух его сторон и величина угла между этими сторонами.
11. Написать программу вычисления сопротивления электрической цепи, состоящей из двух параллельно соединенных сопротивлений.
12. Написать программу вычисления сопротивления электрической цепи, состоящей из двух последовательно соединенных сопротивлений. Ниже представлен рекомендуемый вид экрана во время работы программы (данные, введенные
13. Даны x, y, z. Вычислить a, b, если
14. Даны x, y, z. Вычислить a, b, если
15. Дана сторона равностороннего треугольника. Найти площадь этого треугольника.
Задание 4 Составить программу для вычисления. Предусмотреть задание исходных данных при помощи оператора ввода.
1. Даны x, y, z. Вычислить a, b, если
2. Даны x, y, z. Вычислить a, b, если
3. Написать программу вычисления силы тока в электрической цепи.
4. Написать программу вычисления расстояния между населенными пунктами, изображенными на карте.
5. Написать программу вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются: расстояние до дачи (в километрах); количество бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина.
6. Написать программу вычисления объема цилиндра.
7. Написать программу вычисления площади поверхности цилиндра.
8. Написать программу вычисления объема параллелепипеда.
9. Написать программу пересчета расстояния из верст в километры (1 верста равняется 1066,8 м).
10. Написать программу пересчета веса из фунтов в килограммы (1 российский фунт равен 409,5 г).
11. Написать программу вычисления величины дохода по вкладу. Процентная ставка (в процентах годовых) и время хранения (в днях) задаются во время работы программы.
12. Написать программу пересчета величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.
13. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например, число 125 должно быть преобразовано к виду 12 руб. 50 коп.
14. Написать программу пересчета веса из фунтов в килограммы (1 фунт равняется 409,5 г).
15. Написать программу, которая вычисляет площадь треугольника, если известны координаты его углов.
СОДЕРЖАНИЕ ОТЧЕТА
Отчет о практической работе должен содержать:
1) Титульный лист
3) Отчет по каждой программе согласно варианту. Пример оформления представлен в примере данной методички.
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Источник: cyberpedia.su
Программы линейной структуры
Программой линейной структуры называется такая программа,каждый операторкоторой выполняется один и только один раз.
Она может строиться только из простых операторов, не меняющих естественный порядок вычислений, а именно, из операторов присваивания и вызова функций. Из числа последних в этом разделе нас будут интересовать только вызовы функций ввода и выво-да для стандартных устройств – клавиатуры и монитора.
Средства разработки программ линейной структуры
Рассмотрение вопросов алгоритмизации задач и приёмов программирования удобнее всего проводить на примерах обработки числовых данных. Рассмотрим в пер-вую очередь некоторые стандартные типы (имеющиеся в C и не требующие объявле-ния в программе) числовых данных.
Целый тип данных
К числу стандартных целых типов относятся:
int–тип,представляющий целые со знаком от–2 31 до+2 31 -1 (от-2147483648до
2147483647), занимает 4 байта.
unsignedint–тип,представляющий целые без знака(на что указываетмо-дификатор unsigned)от0до+2 32 -1 (от0до4294967295),занимает4байта.
// объявление целых переменных I и K как целых со знаком intI, K=-5;
// объявление целых переменных i и k как целых без знака unsignedinti, k=5;
//при выполнении программы значения переменных можно изменять // объявление именованной целой константы со знаком
//при выполнении программы значения констант нельзя изменять
Для данных целого типа определены следующие арифметические операции (опе-раторы, используемые только в выражениях, то есть как составная часть других операто-ров). Результат их выполнения также будет иметь тип целый:
изменение знака (унарный минус -), сложение (знак +),
«Практикум по программированию на языке C в среде VS C++»
вычитание (знак -), умножение (знак *), целочисленное деление (знак /), взятие по модулю (знак %).
Результатом выполнения операции / является целая часть частного, а операции %
– остаток от целочисленного деления (знак остатка всегда совпадает со знаком делимо-го). Например,
I = -5 / -2; //Iполучит значение2
K = -5 % -2; //Kполучит значение-1
Частью выражений целого типа могут быть также вызовы функций, возвращаю-щих целые значения, и операторы присваивания целых значений (см. ниже). Если же хотя бы одна составляющая выражения имеет вещественный тип, то вычисленное значе-ние всего выражения будет иметь вещественный тип.
Источник: studopedia.ru
Цель работы: научиться писать программы линейной структуры.
Каждая программа на С++ начинается с одного или нескольких операторов #include. Эти операторы указывают компилятору включить содержимое данного заголовочного файла в текст программы. Заголовочные файлы (файлы с расширением . h ― head files) содержат определенные операторы С++ или программные определения. В таблице 1.1 перечислены некоторые заголовочные файлы стандартной библиотеки.
Стандартные входные и выходные потоки | |
Файловые входные и выходные потоки | |
Манипуляторы | |
Математические функции | |
Функции для работы со строками | |
Функции стандартной библиотеки | |
Стандартный ввод/вывод (в стиле С) | |
Функции управления выводом | |
Графические функции |
Программа состоит из операторов. Программа с линейной структурой – это программа, в которой все операторы выполняются по порядку сверху вниз. Любая программа должна обеспечить выполнение поставленной задачи. Для выполнения расчетов может понадобиться заголовочный файл, содержащий описание математических или иных функций. Их подключают с помощью оператораinclude, например,
Некоторые стандартные функцииперечислены в таблице 1.2.
Функция | Назначение | Заголовочный файл |
abs(x) | Возвращает модуль числа x, если x – целое число | |
acos(x) | Возвращает арккосинус х | |
asin(x) | Возвращает арксинус х | |
atan(x) | Возвращает арктангенс х | |
ceil(x) | Округляет число х вверх | |
cos(x) | Вычисляет косинус х | |
exp(x) | Возвращает степень числе е | |
fabs(x) | Возвращает модуль числа х, если x – вещественное число | |
floor(x) | Округляет число х вниз | |
log(x) | Вычисляет натуральный логарифм х | |
log10(x) | Вычисляет логарифм х по основанию 10 | |
pow(x,y) | Возводит число х в степень у | |
sin(x) | Вычисляет синус х | |
sqrt(x) | Вычисляет квадратный корень х | |
tan(x) | Возвращает тангенс х | |
getchar | Читает символ из стандартного ввода (с клавиатуры) | |
gets | Читает символы с клавиатуры до появления символа новой строки | |
atof(s) | Преобразует строку s в вещественное число | |
atoi(s) | Преобразует строку s в целое число | |
itoa(v,s,n) | Преобразует целое число v в строку s в системе счисления по основанию n | |
random(n) | Генерирует случайные числа в диапазоне от 0 до n | |
strcat(s1, s2) | Присоединяет строку s2 к строке s1 | |
strcmp(s1, s2) | Сравнивает строки s1 и s2. Результат: -1, если s1 < s2 0, если s1 = s2 1, если s1 > s2 | |
strchr(s,c) | Ищет первое вхождение символа c в строке s. Возвращает указатель на найденный символ или NULL | |
strcpy(s1, s2) | Копирует строку s2 в строку s1 | |
strlen(s) | Возвращает длину строки s | |
strncat(s1, s2,n) | Присоединяет n символов строки s2 к строке s1 | |
strncmp(s1, s2,n) | Сравнивает n символов строки s2 и строки s1. Результат аналогичен strcmp | |
strstr(s1, s2) | Ищет подстроку s2 в строке s1. Возвращает указатель на начало найденного фрагмента в s1 или NULL | |
strupr(s) | Выводит строку s в верхнем регистре | |
strlwr(s) | Выводит строку s в нижнем регистре |
Все переменные, используемые в программе, должны быть объявлены. Объявить переменную – это значит указать ее тип и имя (идентитфикатор). Идентификаторы используются для обозначений имен переменных, функций, меток. Идентификатором может быть любая последовательность латинских символов (заглавных и строчных), цифр и символа подчеркивания произвольной длины.
Общий вид оператора объявления:
Основные типы переменных перечилены в таблице 1.3. (“e” означает десять в степени…).
Тип | Диапазон значений | Размер в байтах |
char (символ) | -0 … Обычно используется для хранения букв | |
int(целый) | -32768 … 32767 | |
unsigned (целый без знака) | 0 … 65535 | |
long (длинный целый) | -2147483648 … 2147483647 | |
float(вещественный) | -3. 4e-38 … 3. 4e38 | |
double (двойной вещественный) | 1.7e-308 … 1.7e308 |
Примеры объявления переменных:
int age=17, i, j;объявлены три переменные целого типа: i, j, age. Переменная age
инициализирована при объявлении – ей присвоено начальное
значение, равное 17;
float a, b, f;объявлены три переменные вещественного типа.
Алгоритм для решения поставленной задачи можно записать в виде геометрических фигур или блоков. Обычно при составлении блок-схемы блоки размещаются друг под другом в порядке их выполнения. Возврат назад осуществляется только в циклах. Это дает простую и наглядную структуру алгоритма, по которой легко составить программу. Основные виды блоков:
В программе для вывода результатов на экран используют оператор следующего вида:
Для ввода с клавиатуры используют следующий оператор:
cin >> идентификатор 1 >> идентификатор 2>> … >> идентификатор n;
Здесь знак “>>” означает оператор извлечения, который извлекает из входного потока (по умолчанию – это клавиатура) число или символ и помещает в указанный идентификатор. Каждый оператор заканчивают точкой с запятой.
Пример 1.1 Вычислить площадь круга, значение радиуса ввести с клавиатуры
При записи выражений следует учитывать порядок выполнения операций. В таблице 1.4 приведены некоторые операции С++ в порядке убывания приоритета. Операции с разными приоритетами разделены жирной чертой.
Операция | Краткое описание | Пример |
:: | доступ к области видимости | ::а |
. | выбор | student.name |
-> | выбор | student->name |
[ ] | индексация | a [ i ] |
( ) | вызов функции | sin(x), main(void) |
++ | приращение после | a++ |
++ | приращение до | ++a |
— | уменьшение после | a— |
— | уменьшение до | —a |
a | ||
* | разыменование | *a |
~ | поразрядное отрицание | ~a |
! | логическое НЕ | !a |
* | умножение | a * b |
/ | деление | a / b |
% | остаток от целочисленного деления | a % b |
+ | сложение | a + b |
― | вычитание | a — b |
сдвиг влево; сдвигает биты (разряды) влево на указанное количество разрядов | a | |
>> | сдвиг разрядов вправо | a>>1 |
меньше, чем | a | |
меньше или равно | a | |
> | больше, чем | a>b |
>= | больше или равно | a>=b |
= = | равно | a= = b |
! = | не равно | a !=b |
b | ||
| | побитовое ИЛИ | a | b |
^ | побитовое исключающее ИЛИ | a ^ b |
логическое И | a b | |
| | | логическое ИЛИ | a | | b |
Задание
1. Запустить Visual C++.
2. Написать и отладить две программы линейной структуры по вариантам. Значение исходных данных запрашивать с клавиатуры.
3. Составить электронный отчет по лабораторной работе. Включить в отчет условие задачи, блок-схему, текст программы и результаты работы программы для каждого задания.
Варианты задач
1. Вычислить высоты треугольника со сторонами a, b, c по формулам:
2. Вычислить координаты центра тяжести системы трех материальных точек с массами m1, m2, m3 и координатами (x1, y1), (x2,y2), (x3,y3) по формулам:
3. Вычислить координаты точки, делящей отрезок a1a2 в отношении n1:n2 по формулам:
4. Вычислить медианы треугольника со сторонами a, b, c по формулам:
5. Вычислить значение функции
6. Вычислить корни системы уравнений: по формулам:
7. Вычислить площадь поверхности и объем усеченного конуса.
8. Дана длина ребра куба. Найти объем куба, площадь его боковой поверхности и площадь каждой грани.
9. Даны катеты прямоугольного треугольника. Найти его гипотенузу, периметр и площадь.
10. Дана сторона равностороннего треугольника а. Найти площадь этого треугольника S и радиус описанной окружности по формуле .
11. Даны гипотенуза и катет прямоугольного треугольника. Найти второй катет и радиус вписанной окружности по формуле , где S – площадь треугольника, р – полупериметр.
12. Вычислить расстояние между двумя точками с координатами x1, y1 и x2, y2.
13. Найти площадь кольца, внутренний радиус которого равен 20, а внешний – заданному числу r (r>20).
14. | 15. |
16. | 17. |
18. | 19. |
20. | 21. |
22. | 23. |
24. | 25. |
26. | 27. |
28. | 29. |
30. | 31. |
32. | 33. |
Контрольные вопросы
1. Что такое линейная структура программы?
2. Какие типы переменных вы знаете?
3. Какой оператор используется для вывода информации на экран в С++?
4. Оператор ввода с клавиатуры.
5. Когда подключается заголовочный файл “math.h”?
6. Порядок выполнения операций в С++.
Воспользуйтесь поиском по сайту:
Источник: megalektsii.ru
1.27 1. Программы линейной структуры
Программой линейной структурыназывается такая программа, каждый оператор которой выполняется один и только один раз. Она может строиться только из простых операторов, не меняющих естественный порядок вычислений, а именно, из операторов присваивания и операторов процедур. Из числа последних в этом разделе нас будут интересовать только операторы процедур ввода и вывода для стандартных устройств – клавиатуры и монитора.
Средства разработки программ линейной структуры
Рассмотрение вопросов алгоритмизации задач и приёмов программирования удобнее всего проводить на примерах обработки числовых данных. Рассмотрим в первую очередь стандартныетипы(имеющиеся вDelphiи не требующие объявления в программе) числовых данных.
Целые типы данных
К числу стандартных целых типов относятся:
Int64 – тип, представляющий целые со знаком от –2 63 до +2 63 -1, занимает 8 байт; Integer – тип, представляющий целые со знаком от –2147483648 до +2147483647, занимает 4 байта; LongInt – тип, эквивалентный типу Integer;
SmallInt – тип, представляющий целые со знаком от –32768 до +32767, занимает 2 байта;
ShortInt – тип, представляющий целые со знаком от –128 до +127, занимает 1 байт; Byte – тип, представляющий целые без знака от 0 до 255, занимает 1 байт; Word – тип, представляющий целые без знака от 0 до 65535 занимает 2 байта;
LongWord – тип, представляющий целые без знака от 0 до 4294967295, занимает 4 байта;
Cardinal – тип, эквивалентный типу LongWord .
Например, чтобы объявить переменные с именами I и K как переменные типа Integer и N – как Byte, в программе следует записать
- var
- I, K:Integer; //Объявление целых переменных I и K типа Integer
- N:Byte //Объявление целой переменной Nтипа Byte
- const
- Nmax=10; //Объявление именованной константы Nmax
Источник: studfile.net
Программы линейной структуры
Линейная программа должна состоять из следующих операторов: ввода данных, присваивания, вывода (печать) результатов расчета. Линейный вычислительный процесс сводится к последовательным вычислениям арифметических выражений, причем последовательность вычислений полностью соответствует порядку записи математических зависимостей в постановке задачи.
Пример 1. Составить схему линейного алгоритма вычисления значения:
Для начала построения блок-схемы алгоритма опишем последовательность действий, необходимых для решения данной задачи:
Ø ввод чисел a,b
Ø вывод результата
Составляем блок-схему алгоритма, используя соответствующие блоки.
Оператор-комментарий. Для облегчения восприятия и большейнаглядности программы в нее целесообразно включать комментарии, которые поясняют работу отдельных частей программы, характеризуют используемые переменные и т.д. Для записи комментариев используется оператор REM (REMARK) или знак ( ‘ ).
В этом операторе за словом REM могут быть записаны любые символы VISUAL BASIC.Включение операторовREMв программу никак невлияет на ее выполнение.
Операторы ввода и вывода. Оператор ввода служит для задания исходных данных при выполнении программы. Операторы вывода позволяют получить результаты выполнения программы. Ввод и вывод может осуществляться в нескольких формах: обмен данными между программой и ячейками Excel и между программой и стандартным окном Windows.
Ввод и вывод с ячейками Excel показаны на следующих примерах:
a = Cells(1, 2) –ввод значения переменнойaиз ячейкиB1;
Cells(1, 2)= a – вывод значения переменной a в ячейку B1;
Ввод и вывод при помощи стандартного окна Windows показаны на следующих примерах:
a =InputBox(«введите а=») –ввод значения для переменнойa.
Сообщение «введите а» появляется в окне для подсказки, чтобы знать, для какой переменной требуется ввести его значение. Здесь в качестве значения для переменной “a” введено число 10.
MsgBox («а=» а=»и значения переменной а.
Операторы ветвление в VBA
Для составления разветвляющихся программ используются операторы безусловной и условной передачи управления. В разветвляющихся вычислительных процессах последовательность выполнения операций заранее не определена и ставится в зависимость от результатов проверки заданных условий.
Оператор безусловного перехода.
Общий вид оператора GO TO m, гдеmметка.Этот оператор передает управление первомуоператору в строке с меткой m.
Условные операторы
Эта алгоритмическая структура представляет разветвление алгоритма в зависимости от значения (истинности или ложности) некоторого условия. В общем виде конструкция выглядит так:
и читается как «если условие истинно, то выполнить действия1, иначе (если условие ложно), выполнить действия2». Слова «если», «то», «иначе» в разных языках могут иметь разный синтаксис, но в большинстве языков это «if», «then», «else». В VBA синтаксис условного оператора:
Условный оператор может быть неполным, без ветки . Тогда, если условие ложно, управление передается следующему в общей последовательности оператору. На блок-схемах эти два случая изображаются так:
Здесь знаки «+» и «-» обозначают «да» (условие выполняется) и «нет» (условие не выполняется). Например, вычисление y, заданной формулой:
На языке программирования VBA эта конструкция выглядит так:
Обратите внимание, что операторы после Then(ветка «+») и Else (ветка «-») начинаются с новой строки, а сам условный оператор заканчивается фразой End If – признаком конца конструкции ветвления.
Каждая из ветвей условного оператора может содержать произвольное количество операторов, среди которых могут быть снова ветвления (вложенные «если»). Например, следующая программа:
Возможна одновременная проверка нескольких условий, соединенных словами: OR — условие считается выполненным, если выполняется хотя бы одно из проверяемых условий; AND — условие выполнено, если выполняются все проверяемые условия одновременно; XOR — условие выполнено, если выполняется ровно одно из двух проверяемых условий.
Пример 2. Составить блок-схему разветвляющего алгоритма вычисления значения:
Оператор циклической структуры на VBA
Программы циклической структуры это такие программы, в которых какая-то группа операторов многократно повторяется. Эта группа операторов, оформленная специальным образом, называется циклом. Количество повторений определяется либо параметрами цикла, либо условием, заданным вне цикла. Многократное повторение выполняется за счет передачи управления на начало этой группы операторов. Циклические алгоритмы применяются при решении задач на табулирование функций (составление таблицы значений функции), на вычисление суммы и произведений, при обработке массивов.
проверяется всякий раз перед очередным исполнением тела цикла. Если условие истинно, тело исполняется, если ложно, управление передается следующему за циклом оператору в алгоритме. Таким образом, тело цикла исполняется столько раз, сколько раз истинно условие цикла.
Циклы с предусловием называют обычно циклами типа While или циклами ПОКА (работает, пока условие выполняется). Синтаксис этих циклов в VBA:
While Wend
Do While Loop)
Например, исполнение фрагмента программы:
While a > 0
Wend
даст в результате значение а=0, т.к. тело цикла a = a–1 выполнялось столько раз, сколько выполнялось условие a>0. Последний раз оно выполнилось, когда a=1, в результате a=1–1=0. Проверка условия (0>0) показала «ложь» и управление передалось операторам, следующим за Wend (граница цикла While). Таким образом, значение а осталось равным 0. Если заменить первый оператор фрагмента a=7 на a=0, то цикл не выполнится ни разу, т.к. условие a>0 ложно.
Блок-схема этого оператора:
Тело цикла не исполнится ни разу, если условие не выполняется уже в начале. В некоторых задачах необходимо, чтобы тело цикла хотя бы раз отработало. Можно, конечно, операторы тела цикла «продублировать», написав их еще раз до оператора цикла, тогда они исполнятся независимо от истинности условия. Но, если их много, программа выглядит громоздко. Для таких случаев удобно использовать цикл с постусловием.
Цикл с постусловием. В таких циклах условие проверяется после того, как операторы тела цикла хотя бы раз отработают. Блок схема этого цикла такова:
В отличие от цикла с предусловием, данный цикл работает до выполнения условия, пока оно не верно, т.е. здесь истинность условия означает выход из цикла.
Циклы с постусловием называют Until-циклами, циклами ПОКА НЕ или циклами ДО (работают до того, как условие выполнится). Синтаксис этих циклов в VBA:
Do Loop Until .
Программа предыдущего примера, но с Until-циклом:
Do
Loop Until a < 0
даст другой результат: а=-1, т.к. после того, как значение а стало равным 0, тело цикла отработало еще раз (условие a
Если заменить первый оператор фрагмента a=7 на a=0, то этот оператор цикла сработает, т.к. до проверки условия выполнится a=a–1, и уже после этого произойдет выход из цикла (значение а станет -1, поэтому условие завершения a
Цикл с параметром. Эти циклы используются тогда, когда число повторений известно заранее – количество шагов задано, например, 20, 100, N, или может быть вычислено как результат какого-либо выражения до исполнения цикла. Параметром в цикле является счетчик шагов.
Счетчик (это значение специально выделенной переменной) может изменяться на единицу с каждым шагом или получать некоторое заданное приращение, например, 0.15. Цикл тогда исполняется до тех пор, пока значение счетчика не достигнет указанного в заголовке цикла значения. Циклы с параметром называют часто циклами типа For, т.к. в большинстве языков программирования их заголовок начинается со слова For. Для VBA синтаксис этого цикла:
Next
или, если используется счетчик с приращением значения, отличным от 1:
Step
Next
Здесь переменная-счетчик – это имя переменной, взятой для счета шагов; начальное значение, конечное значение – выражения, в частности, целые числа или переменные, значения которых берутся в качестве начала и, соответственно, конца отсчета повторений тела цикла, приращение – выражение, значение которого на каждом шаге добавляется к счетчику цикла (приращение может быть и отрицательной величиной, тогда оно вычитается из счетчика и начальное значение в этом случае должно быть больше конечного).
Обозначим начальное значение счетчика i как i0, конечное значение – N, приращение – h. Тогда блок-схема этого оператора имеет вид:
Оператор цикла с параметром работает следующим образом. Тело цикла исполняется столько раз, сколько значение счетчика меньше или равно конечному значению.
После каждого шага цикла к счетчику добавляется 1, если приращение не указано, или значение приращения, если оно указано. Условие на счетчик после этого проверяется и, если конечное значение не превышено, тело цикла вновь исполняется. После присваивания счетчику начального значения условие также проверяется. Пример использования цикла — For в программе VBA:
For i = k + 1 To m * 2 + 1 Step 0.5
Next
Этот цикл выполняется, начиная со значения счетчика i, равного 3-м, и продолжается, пока счетчик не превзойдет величину 9 (4*2+1=9); на каждом шаге значение счетчика увеличивается на 0.5, поэтому число шагов будет не 7, а 13. В результате значение k = 80. Несмотря на то, что значение k на каждом шаге меняется, начальное значение k+1=3 не пересчитывается и к нему исполнение цикла не возвращается.
Досрочный выход из цикла. При использовании циклических конструкций может возникнуть необходимость досрочного выхода из цикла. Например, получен искомый результат, а условие цикла еще истинно и позволяет продолжить исполнение этого оператора.
В языке VBA оператором досрочного выхода является Exit, причем в циклах For он имеет вид Exit For, а в циклах, начинающихся с Do, он имеет вид Exit Do. Например, программа
Do
If a = 5 Then
Exit Do
End If
Loop Until a < 0
даст на выходе значение 5, т. к. цикл принудительно прервался, когда значение переменной а стало равным пяти. Того же результата можно достичь и в программе с циклом For:
For i = k + 1 To m * 2 + 1 Step 0.5
If k = 5 Then
Exit For
End If
Next
Вложенные циклы. Тело любого оператора цикла может содержать другие циклы. Такие конструкции называют вложенными циклами. Вложенные циклы (цикл в цикле) применяют обычно в задачах, когда требуется связать или сравнить каждый элемент одного множества с каждым элементом другого множества.
Пример программы с вложенными циклами в VBA:
For i = 1 To 7
For j = 1 To 5
End If
Next
Next
Пример 3.Составить блок-схему алгоритма нахождения суммы пяти чисел. Здесь в качестве переменной цикла используется переменная i с начальным значением, равным единице, и конечным значением, равным 5, и шагом, равным единице. В этом цикле проверка условия выхода из цикла выполняется в конце цикла. При этом тело цикла повторится пять раз.
Для начала построения блок-схемы алгоритма опишем последовательность действий, необходимых для решения данной задачи:
Ø начальное значение суммы S равно 0; i – номер очередного числа x;
Ø ввод очередного значения x;
Ø добавление к сумме S очередного числа х;
Ø увеличение номера очередного числа на 1;
Ø проверка условия «Перебраны все значения x?»;
Ø Вывод результата суммирования;
3.МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО РАЗРАБОТКЕ программ в среде Visual Basic for Applications
Использование макросов в MS Excel
Макрос – это программа, записанная на встроенном языке макропрограммирования Visual Basic. Для создания и редактирования макросов используется редактор VBA, интегрированный в MS Excel.
Источник: megaobuchalka.ru