Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на языке высокого уровня. Лабораторный практикум
.pdf
Затем параметр цикла I увеличивается на шаг H. Если
новое значение параметра I меньше или равно значению N2,
то цикл (действия 1 и 2) повторяется вновь.
Если значение параметра I превышает N2, то цикл перестает работать, происходит выход из цикла и выполняется
действие 3.
Операторы данного цикла в разных языках программирования могут иметь различные отклонения от данной схемы
при реализации. В частности, возможен расчет всех значений
параметра I до начала выполнения цикла. Получается список
значений, из которого выбирается очередное значение I при
каждом повторе цикла.
I = N1, N2, H
Действие 1
Действие 2
Действие 3
Рис. 6. Структура цикла с заданным числом повторений
11

1.3. Примеры реализации алгоритмических структур
Начало
1
Вывод:
2
3
Вычис
ление
4
Вычисл
е
ние
5
Вычисл
е
ние
Вывод
Конец
6 7 8
Пример 1. Составить структурную схему алгоритма для
вычисления функции при произвольных значениях A, X.
2
ax
eaxxxaxy lnsin*)(
Структурная схема приведена на рис. 7.
«Введите A, X»
Y1 = AX +
SIN2(X)
Ввод
A, X
Y2=LNA+X
+ eAX
Y= Y1 - Y2
Y, Х, А
Рис. 7. Структурная схема реализации линейной
вычислительной задачи
12

Пример 2. Составить структурную схему алгоритма для
1
2
3
4
Вычи
с
лить
5
да
Вычи
с
лить
6
нет
Вы-
7
8
реализации вычисления разветвляющейся функции
2
;),(sinln
axеслиxax
.,
axеслиaxa
Начало
Вывод:
«Введите
А, Х»
X >= A?
Ввод
А, Х
___
Y=A + X-A
Y= LN|X+A| +
SIN2(X)
вод Y, Х
Конец
Рис. 8. Структурная схема реализации разветвляющейся
вычислительной задачи
13

Пример 3. В массиве P(20) найти количество положи-
1
2
3
4
6
7
да 8 нет
А 5
тельных элементов и сформировать новый массив Р1, каждый
элемент которого получается делением соответствующего
элемента массива P на найденное количество. Составить
структурную схему алгоритма.
Начало
K=0
Вывод:
«Введите
Р»
I = 1, 10
I = 1, 10
Pi > 0 ?
Ввод Рi
K=К + 1
Рис. 9. Структурная схема решения циклической задачи
по обработке одномерного массива (начало)
14

А
9
10
11
12
i
13
14
15
16
17
18
I = 1, 10
Вывод K
P1i = Pi / K
Вывод:
«Новый
массив»
Вывод:
«Массив
I = 1, 10
I = 1, 10
Вывод:
Р1
i
Вывод:
Р
Конец
Рис. 9. Структурная схема решения циклической задачи по
обработке одномерного массива (окончание)
15

Пример 4. В матрице А(3, 3) найти максимальный эле-
12
Вы
вод:
2
3
4
Вы
вод
5
8
Max = A(I,J
)
Nctl =J
7
9
Да 10
Нет 11 1 6
мент и номер строки и столбца, где он стоит. Вывести максимальный элемент и его номера. Составить структурную схему
алгоритма решения данной задачи.
Начало
Max = A(1,1)
Nctr = 1
Nctl =1
«Введите
А(3,3)»
I = 1, 3
Max,
Nctr, Nctl
I = 1, 3
J = 1, 3
Конец
J = 1, 3
Max <
Aij ?
Ввод
А
I , J
Nctr = I
Рис. 10. Структурная схема работы с матрицей
16

2. СПРАВКА ПО ПРОГРАММИРОВАНИЮ
# - ; ^
НА ЯЗЫКЕ С++
2.1. Базовые средства языка С++
Алгоритмический язык программирования включает
следующие базовые средства [2]:
– лексемы;
– выражения;
– операторы.
Совокупность всех символов образует алфавит языка. Из
символов составляются лексемы. Лексемы - это минимальные
единицы языка, имеющие самостоятельный смысл.
Выражения определяют правила вычисления какоголибо значения.
Операторы описывают типовые действия.
Базовые средства приведены в табл. 2.
Таблица 2
Базовые средства языка С++
Базовое средство Описание
Прописные и строчные латинские буквы и знак подчеркивания
Арабские цифры от 0 до 9,
и цифры от A до F, используемые в шестнадцатеричной
системе счисления
Специальные знаки:
“ { } , | [ ]
( ) + - /
% * . \
‘ : ? <
= > ! &
Элемент алфавита
Элемент алфавита
Элемент алфавита
17

Окончание табл. 2
Символы пробела, табуляции, перехода на новую строку
Идентификатор Имя программного объекта,
Ключевые слова Зарезервированные иденти-
Знаки операций Один или более символов,
Константы Величины, которые не меня-
Комментарии Либо начинаются с двух сим-
Элемент алфавита
начинается с буквы, в имени
используют латинские буквы,
цифры и знак подчеркивания,
в идентификаторе прописные
и строчные буквы различаются
фикаторы, которые имеют
специальное значение для
компилятора. Например: asm,
futo, else и т.д.
определяющих действие над
операндами. Операции по количеству участвующих в них
операндов делятся на унарные, бинарные и тернарные.
ют свои значения. Различаются целые, вещественные, символьные и строковые константы.
волов «прямая косая черта»
(//) и заканчивают символом
перехода на новую строку,
либо заключаются между
символами-скобками /* и */.
18

2.2. Основные типы данных в C++
Основные (стандартные) типы данных следую-
щие [3]:
– int (целый);
– char (символьный);
– wchar_t (расширенный символьный);
– bool (логический);
– float (вещественный);
– double (вещественный с двойной точностью).
Существует четыре спецификатора типа, уточняющих
внутреннее представление и диапазон значений стандартных
типов:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
В табл. 3 приведены диапазоны значений для простых
типов данных.
Таблица 3
Диапазоны значений простых типов данных
Тип Диапазон значений Размер (байт)
bool true и false 1
signed char -128 ... 127 1
unsigned char 0 ... 255 1
signed short int -32 768 ... 32 767 2
unsigned short int 0 ... 65 535 2
signed long int -2 147 483 648 ...
2 147 483 647
unsigned long int 0 ... 4 294 967 295 4
float 3.4e-38 ... 3.4e+38 4
double 1.7e-308 ... 1.7e+308 8
long double 3.4e-4932 ... 3.4e+4932 10
19
4

2.3. Структура программы
Программа на языке С++ состоит из директив препро-
цессора, описаний и функций.
Пример структуры программы, содержащей функции
main, fl и f2:
директивы препроцессора
описания
int main(){
операторы главной функции
}
int fl(){
операторы функции fl
}
int f2(){
операторы функции f2
}
2.4. Переменные, константы, выражения
Переменная – это именованная область памяти, в кото-
рой хранятся данные определенного типа, которые могут изменять свое значение.
Перед использованием любая переменная должна быть
описана.
Пример описания целой переменной с именем а и веще-
ственной переменной х:
int a;
float х;
Общий вид оператора описания переменных:
[const] тип имя [инициализатор];
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
