Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Данные и операции алгоритмов

Данные - это информация в виде символов и чисел, которая подвергается обработке или используется в процессе обработки. Все данные делятся на входные, выходные и внутренние данные. Фундаментальное свойство - для каждого типа данных определен свой набор операций.

Входными называются данные, значения которых вводятся в программу извне. Выходными называют данные, значения которых получаются в результате решения задачи и выводятся на внешний носитель информации. К внутренним относятся данные, которые используются внутри алгоритма.

Данные делятся на константы и переменные.

Константы - это данные, которые не изменяются в процессе выполнения алгоритма.

Переменные - это данные которые в процессе выполнения алгоритма могут принимать различные значения. Переменные обозначаются именами. Обычно имя переменной - это последовательность букв и цифр начинающаяся с буквы.

Например, Р, Х2, ВЕТА – имена переменных.

При построении алгоритмов можно использовать данные различных типов. Конкретный набор данных зависит от языка программирования, на котором предполагается реализовывать алгоритм. Во всех языках программирования можно использовать арифметические, логические, символьные данные и данные типа массив. Ко всем этим данным применима операции сравнения и присваивания.

 

3.4.1.Операции сравнения.

 

При построении алгоритмов можно использовать следующие операции сравнения:

< меньше, > больше,

<= меньше или равно, >= больше или равно,

= равно, не равно.

Результат выполнения этих операций логического типа.

 

3.4.2. Операция присваивания.

 

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

Общая форма операции присваивания в схемах алгоритма имеет вид

Р = В,

где Р – имя простой переменной или переменной с индексами; В – выражение.

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

Символ " = " в операции присваивания имеет смысл "заменить на" или "присвоить". Запись вида

А = В + С

означает, что сначала вычисляется значение суммы В + С, а затем полученный результат заносится в ячейку памяти, отведенную для хранения переменной А (при этом данное, которое находилось в ячейке памяти ранее, уничтожается и на его место записывается новое значение). Поэтому выражение справа от символа " = " может содержать и имя переменной, указанной слева, например, в алгоритмах допустима и такая запись

К = К + Х.

При выполнении этой инструкции из ячейки памяти, отведенной для хранения переменной К, берется ее значение, затем вычисляется сумма справа (К + Х) и полученный результат заносится в ту же ячейку памяти, отведенную для К.

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

 

3.4.3.Арифметические данные.

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

Заметим, что тип арифметических данных определяется физическим смыслом переменных. Если N – количество студентов в группе, то это данное целого типа, так как не может быть дробное число студентов в группе. Если V –скорость автомобиля, то это данное вещественного типа, так как V может быть как с нулевой дробной частью, так и со значащей дробной частью.

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

 

3.4.4. Логические данные.

 

Особенностью логических данных (констант и переменных) является то, что они могут принимать только два значения True (истина) и False (ложь), которые обычно отождествляют с символами 1 и 0.

К логическим данным можно применять три логические операции: логическое умножение (операция И), логическое сложение (ИЛИ), логическое отрицание (НЕ). Правила выполнения логических операций приведены в таблице 3.6.1, где истинное значение логической переменной обозначено символом T, а ложное значение – символом F. При вычислении логического выражения (если нет скобок) сначала выполняется операция НЕ, затем операция И и наконец – операция логического сложения ИЛИ. Пусть, например, логические переменные имеют значения

 

S = L ="T", Z = "F" и B = L И Z ИЛИ С.

Тогда после выполнения логической инструкции переменная В получит значение "Т".

таблица 3.6.1

A B И ИЛИ НЕ А
F F F F T
T F F T F
F T F T T
T T T T F

 

3.4.5. Символьные данные

представляют собой последовательности любых допустимых символов, имеющихся на клавиатуре устройств подготовки данных. Константы символьного типа записываются как последовательности символов, заключенные в апострофы.Если символьная константа содержит апострофы, то они обозначаются двумя апострофами, например константа Транзистор 'KT315A' запишется в виде ' Транзистор ''KT315A''.

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

Операция сцепления. Операция сцепления предназначена для соединения символьных данных в одну строку. Эта операция обозначается символом +. В результате выполнения операции сцепления получается строка символов, длина которой равна сумме длин операндов, связанных операцией сцепления.

Пример. Пусть в алгоритме используются символьные переменные СА и СВ, каждая из которых имеет длину 5 байт. Если эти переменные имеют значения: СА ='ТОК__', СВ = 'БАЗЫ_', то в результате выполнения операции СА + СВ получим 'ТОК__БАЗЫ_'

 

3.4.6. Массивы переменных.

 

При решении многих задач удобно объединять логически связанные переменные в массивы. Массив – это группа переменных, имеющих одинаковые характеристики (тип, длину ячеки памяти). Аналогом массивов в математике являются вектор или матрица. Отдельная переменная из массива называется элементом массива. Массивы обозначаются именами, а отдельные элементы массива – переменными с индексами, имеющими вид:

имя массива(индекс, индекс, …).

Например, запись вида ВТ(2,4) обозначает элемент массива, находящийся на пересечении 2-ой строки и 4-го столбца, а запись Р(К) означает К-й элемент массива Р. В качестве индексов можно использовать константы, переменные и выражения целого типа.

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

Для хранения массива а памяти ЭВМ отводится отдельная группа ячеек памяти, в которой элементы массива располагаются последовательно в порядке возрастания номеров. Эта группа ячеек как раз и обозначается именем массива, поэтому в алгоритмах нельзя использовать одно и то же имя для обозначения простой переменной и массива.

Главным достоинством данных типа массив является доступ к отдельным элементам массива путем изменения индекса. Это позволяет организовывать обработку массивов в виде циклических процессов.

 

3.4.7. Циклические процессы.

Циклом называется такой участок алгоритма, на котором многократно выполняются одни и те же операции, но каждый раз эти операции применяются к различным данным. В схемах алгоритмов циклический процесс изображается в виде замкнутой структуры, содержащей ветвь и условный блок. Различают две модификации циклического процесса, отличающиеся расположением условного блока. Конструкцию приведенную на рис.3.6.1 принято называть циклом с предусловием, так как сначала осуществляется проверка условия окончания цикла и только после этого выполняется тело цикла.

Конструкцию представленную на рис.3.6.2 называют циклом с постусловием, так как сначала выполняется тело цикла, а затем проверяется условие окончания цикла.

Циклический процесс представляет собой стандартную структуру, содержащую следующие блоки: 1 – блок подготовки цикла; 2 – блок проверки условия окончания цикла; 3 – тело цикла (в общем случае это совокупность любых блоков); 4 – блок подготовки к очередному циклу. Блоки 1, 2, 4 – вспомогательные, они предназначены для организации циклического процесса. Блоки 3 и 4 как раз и являются ветвью, операции которой выполняются многократно до тех пор, пока не выполнится условие окончания цикла. Очевидно, что независимо от условия, указанного в блоке 2, тело цикла в циклическом процессе рис.3.6.2 выполняется хотя бы один раз.

Пример. Пусть необходимо найти максимальное число в массиве Z, содержащем N элементов. Данную задачу можно решить следующим образом. Присвоим переменной MAX значение первого элемента массива. Затем начиная с K = 2 будем последовательно в цикле сравнивать переменную MAX с элементами массива Z(K), увеличивая каждый раз индекс K на единицу. Каждый раз когда выполняется условие MAX<Z(K) делаем присваивание MAX = Z(K). Процесс прекращаем как только перестанет выполняться условие

K <= N.

Рис.3.6.3.

 

Фрагмент схемы алгоритма решения этой задачи приведен на рис.3.6.3.

 

3.4.8. Операции ввода и вывода данных.

 

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

ВВОД: список данных.

Элементами списка могут быть имена простых переменных, переменных с индексами и имена массивов. Например, если в программе используются: переменная А, массивы Р(15) и Н(12), то запись

 

ВВОД: А, Р(4), Н


означает ввод в память ЭВМ значений: переменной А, четвертого элемента массива Р и всех двенадцати элементов массива Н.

Часто в алгоритмах возникает задача ввода и вывода регулярных последовательностей элементов массивов. Чтобы не записывать длинный список переменных с индексами, можно воспользоваться сокращенной записью. Назовем ее элементом с автоматической индексацией. Здесь указываются начальное значение, конечное значение и шаг изменения индекса. Для одномерного массива этот элемент записывается в виде

 

M(K), K = N1 до N2 шаг N3,

 

где М – имя массива; К – индекс (переменная);N1, N2, N3 – начальное значение, конечное значение и шаг изменения индекса соответственно. Если шаг равен 1, его можно не указывать. Например, запись

 

ВВОД: В(Н), Н = 1, 8

 

означает ввод значений первых восьми элементов массива В.

Если необходимо указать операцию ввода регулярной последовательности элементов многомерного массива, то, приведенная выше запись дополняется указанием законов изменения остальных индексов. При этом предполагается, что чем правее указан закон изменения индекса, тем медленнее изменяется этот индекс. Например, запись вида

 

ВВОД: С(М,К), К = 1,3; М = 1,2

 

эквивалентна записи

 

ВВОД: С(1,1), С(1,2), С(1,3), С(2,1), С(2,2), С(2,3).

 

Для обозначения операции вывода данных в алгоритмах используется запись, имеющая вид

 

Вывод: список данных.

 

Элементами списка данных все те же элементы, что и в операции ввода данных, а так же символьные константы. Например, запись вида

ВЫВОД: 'Результат У = ', У

означает вывод символьной константы "Результат У =" и значения переменной У.

Пример. Теперь, после того как мы рассмотрели данные типа массив и операции ввода и вывода массивов мы можем построить схему алгоритма определения количества отрицательных элементов, рассмотренного в разделе 3.2. Действительно, если для хранения исходных чисел взять простые переменные, то тогда мы не сможем организовать циклический процесс. Для организации цикла исходные числа надо поместить в массив (У). Схема алгоритма решения этой задачи приведена на рис. 3.6.2.

Текст во вторм блоке означает, что в алгоритме используется массив У,

содержащий 900 элементов.

Рис.3.6.4.

<== предыдущая лекция | следующая лекция ==>
Вопросы к главе 2 | 
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 4525; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.