Простые типы Зонным: переменные и константы

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

Переменная – есть именованный объект (ячейка памяти), кото­рый может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от про­граммиста. Кроме имени и значения, переменная имеет тип, опре­деляющий, какая информация находится в памяти. Тип переменной задает: ■ "*

• используемый способ записи информации в ячейки памяти;

• необходимый объем памяти для ее хранения.

Объем памяти для каждого типа определяется таким образом, чтобы в него можно было поместить любое значение1 из допустимо­го диапазона значений данного типа. Например, тип «байт» может принимать значения от 0 до 255, что в двоичном коде (255(10) = = 11111111 2) соответствует ячейке памяти длиной в 8 бит (или 1 байт).

В описанных выше алгоритмах (примеры 6.1 - 6.8) все данные хранятся в виде переменных. Например, инструкция «Ввод двух чи­сел а, Ь» означает введение пользователем значений двух перемен­ных, а инструкция «К=К+1» означает увеличение значения перемен­ной К на единицу.

Если переменные присутствуют в программе, на протяжении всего времени ее работы - их называют статическими. Переменные, создающиеся и уничтожающиеся на разных этапах выполнения про­граммы, называют динамическими.

Все остальные данные в программе, значения которых не изме­няются на протяжении ее работы, называют константами или посто­янными. Константы, как и переменные, имеют тип. Их можно ука­зывать явно, например, в инструкции «К = К + 1» 1 есть константа, или для удобства обозначать идентификаторами: pi = 3,1415926536. Только значение pi нельзя изменить, так как это константа, а не пе­ременная.

3116.5. Структурированные Зонные и алгоритмы ин обработки

Для повышения производительности и качества работы необхо­димо иметь данные, максимально приближенные к реальным анало­гам. Тип данных, позволяющий хранить вместе под одним именем несколько переменных, называется структурированным. Каждый язык программирования имеет свои структурированные типы. Рас­смотрим структуру, объединяющую элементы одного типа данных, -массив.

Массивом называется упорядоченная совокупность однотипных величин, имеющих общее имя, элементы которой адресуются (раз­личаются) порядковыми номерами (индексами). В качестве иллюст­рации можно представить шкаф, содержащий множество пронуме­рованных ящиков (совокупность — «Ящик № 1», «Ящик № 2», «Ящик № 3» и т.д.; «Ящик» - общее имя всех ее элементов). Доступ к со­держимому конкретного ящика (элементу массива) осуществляется после выбора ящика по его номеру (индексу). Элементы массива в памяти компьютера хранятся по соседству, одиночные элементы про­стого типа такого расположения данных в памяти не предполагают. Массивы различаются количеством индексов, определяющих их эле­менты.

Одномерный массив (шкаф ящиков в один ряд) предполагает на­личие у каждого элемента только одного индекса. Примерами одно­мерных массивов служат арифметическая (а.) и геометрическая (Ь) последовательности, определяющие конечные ряды чисел. Количе­ство элементов массива называют размерностью. При определении одномерного массива его размерность записывается в круглых скоб­ках, рядом с его именем. Например, если сказано: «задан массив А(10)», это означает, что даны элементы: ар а2, ... , а]0. Рассмотрим алгоритмы обработки элементов одномерных массивов.

Ввод элементов одномерного массива осуществляется поэлемен­тно, в порядке, необходимом для решения конкретной задачи. Обыч­но, когда требуется ввести весь массив, порядок ввода элементов не важен, и элементы вводятся в порядке возрастания их индексов. Ал­горитм ввода элементов массива А(10) представлен на рис. 6.15.

Псевдокод:

1. Повторить 10 раз (для i = 1, 10, 1): 1.1. Вввод а.

Блок-схема

Простые типы Зонным: переменные и константы - student2.ru

Рис. 6.15. Ввод элементов одномерного массива А( 10)

Пример 6.9.-»

Рассмотрим алгоритм вычисления среднего арифметического по­ложительных элементов числового массива А(10).

Среднее арифметическое есть отношение суммы к числу ее сла­гаемых, т.е.

среднее арифметическое —

Алгоритм решения задачи (рис. 6.16) будет содержать подсчет суммы (обозначим ее S), включающей положительные элементы мас­сива ( а. > 0), и количества (обозначим N) ее слагаемых.

Псевдокод:

1. Повторить 10 раз (для i = 1, 10, 1). 1.1. Ввод а.

2. Начальное значение суммы: S = 0.

3. Начальное значение счетчика: N = 0.

4. Повторить 10 раз (для /= 1, 10, 1):

4.1. ЕСЛИ а. > 0, ТО S = S + а. ; N = N + 1.

5. ЕСЛИ N > 0, ТО вычисление среднего арифметического SA = S/N; вывод SA.

ИНАЧЕ: вывод «Положительных элементов в массиве нет».

6. Конец.

313С Начало 1

" '■'»■■

>-;

S = 0

N = 0

  10, 1    
ч"1. У
    > | Да
Нет   S = S +я,  
    i  
    N = N+1  
   

Нет

Да

Простые типы Зонным: переменные и константы - student2.ru

Положительных элементов нет

Рис. 6.16. Блок-схема задачи «подсчета среднего арифметического положительных элементов массива» (пример 6.9)

( Начало J

щ

т= 1

X^i = 2,10,

Простые типы Зонным: переменные и константы - student2.ru

Пример 6.10.

В заданном числовом массиве А( 10) найти наиболь­ший элемент и его индекс, при условии, что такой эле­мент в массиве существует, и единственный.

Обозначим индекс наи­большего элемента т. Будем считать, что первый элемент массива является наиболь­шим (т = 1). Сравним пооче­редно наибольший с осталь­ными элементами массива. Если оказывается, что теку­щий элемент массива о. (тот, с которым идет сравнение) больше выбранного нами наибольшего а , то считаем его наибольшим (т = i) (рис. 6.17).

Рассмотрим двумерный массив (шкаф с множеством ящиков, положение которых определяется двумя коорди­натами — по горизонтали и по вертикали). В математике двумерный массив (таблица чисел) называется матрицей. Каждый ее элемент имеет два

индекса а.., первый индекс / определяет номер строки, в которой на­ходится элемент (координата по горизонтали), а второй j — номер столбца (координата по вертикали). Двумерный массив характеризу­ется двумя размерностями N и М, определяющими число строк и столбцов соответственно (рис. 6.18).

Ввод элементов двумерного массива осуществляется построчно, в свою очередь, ввод каждой строки производится поэлементно, тем

ат

(

Конец

Рис 6.17. Алгоритм поиска

наибольшего элемента массива

и его индекса (пример 6.10)

Языки программирования

Как мы уже знаем, компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначенных для управления компьютером. Процессор компьютера - это большая интегральная схема. Все данные и команды он получает в виде электрических сигналов. В двоичном коде наличие сигнала описывается понятием «1», а его отсутствие - понятием «0». Команды, обрабатываемые процессором, можно интерпретировать как ряд чередующихся определенным образом единиц и нулей. То есть любая команда преобразуется в двоичное число. Таким образом, процессор исполняет программы, представляющие собой последовательность чисел и называемые машинным кодом.

Писать программы в машинных кодах очень сложно, причем с ростом размера программы эта задача усложняется. В компьютерах первого поколения использовались программы, написанные в машинных кодах, причем для каждого компьютера существовал свой собственный машинный код. Числовая кодировка команд, адресов ячеек и обрабатываемых данных, зависимость вида программы от ее места в памяти не давали возможность следить за смыслом программы. Это во многом ограничивало область применения компьютеров первого поколения. В тот период (начало 50-х гг.) средства программирования и программное обеспечение только зарождались и были еще не развиты. Для того чтобы сделать программу читабельной и иметь возможность следить за ее смысловой структурой, придумали символический язык ассемблер, близкий к машинному (конец 50-х -начало 60-х гг.), в котором появилось понятие переменной. Ассемблер стал первым полноценным языком программирования. Благодаря этому заметно уменьшилось время разработки и возросла надежность программ. Для записи кодов операций и обрабатываемой информации в ассемблере используются стандартные обозначения, позволяющие записывать числа и текст в общепринятом виде, для кодов команд приняты мнемонические обозначения. Для обозначения величин, размещаемых в памяти, можно применять имена. После ввода программы ассемблер сам заменяет символические имена на адреса памяти, а символические коды команд на числовые. Использование ассемблера сделало процесс программирование более наглядным. Дальнейшее развитие этой идеи привело к созданию языков программирования высокого уровня, в которых длинные и сложные последовательности машинных кодов были заменены одним единственным обозначающим их словом – операторы.

Наши рекомендации