Алгоритмическое (модульное) программирование



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

Реальные данные, с которыми работает программа, — это числа, строки и логические величины (аналоги 1 и 0, «да» и «нет», «истина» и «ложь»). Эти типы данных называют базовыми.

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

Hello

_SumOfReal

xl

H8_G7_F6

Переменная обычно имеет тип, определяющий, какая информация хранится в данной переменной (число, строка и т. д.). Переменные с указанием их типа можно вводить в программу с помощью специальных команд описания {объявления, декларации). Значения переменных разных типов допускается преобразовывать друг в друга в соответствии с соглашениями языка программирования. Переменные могут существовать на всем протяжении работы программы — тогда они называются статическими, а могут создаваться и уничтожаться на разных этапах ее функционирования — такие переменные называются динамическими.

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

123

2.87

"это строка"

или для удобства обозначать их идентификаторами.

Числовые данные

Числа обычно бывают двух видов: целые и дробные. Если число отрицательное, перед ним ставится знак «-», если положительное, то знак «+» можно ставить, а можно и опускать. Вычисления над целыми числами выполняются точно, вычисления над дробными числами — приближенно. При записи дробных чисел в качестве десятичного разделителя используется точка:

1.28

3.333321

Очень большие или очень маленькие числа записываются специальным образом. Для них дополнительно указывается мантисса — число со знаком, являющееся степенью числа 10. Мантисса записывается справа от числа через букву е (или Е). Пробелы в такой записи не допускаются.

Например, число 100 (единица, умноженная на 10 во второй степени) запишется так:

1е+2

число 0,003 (тройка, умноженная на 10 в минус третьей степени) так:

Зе-3

число со 120 нулями — так:

1Е+120

 

Тип числа Бейсик Паскаль Си++
целое INTEGER integer int
дробное DOUBLE real float

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

К основным арифметическим операциям относятся:

+        (сложение)

-          (вычитание)

*        (умножение)
/         (деление)

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

С помощью арифметических операций формируются арифметические выражения.

Логические выражения отличаются тем, что результат их вычислений может принимать только одно из двух допустимых значений — true (истина, да, включено) и false (ложь, нет, выключено). Чаще всего значение false ассоциируется с нулем, а значение true — с числом 1 или просто ненулевым значением.

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

 

 

Операция

Варианты написания

Бейсик, Паскаль Си++
Равно = ==
Не равно <> !=
Меньше < <
Меньше или равно <= <=
Больше > >
Больше или равно >= >=

 

Приоритеты всех логических операций ниже, чем приоритеты операций сравнения

 

Логический тип

Бейсик Паскаль Си++
Базового типа нет. Используется числовой тип INTEGER boolean bool

Строчные выражения

Строки в языках программирования всегда заключаются в кавычки. В Си++ и Бейсике для этого используются двойные кавычки, в Паскале — одинарные.

"это строка Бейсика или Си++"

'это строка Паскаля'

Строка может быть пустой. Часто допускается также операция сцепления строк, записываемая с помощью символа «+». Например:

"123" + "4567" -получится "1234567"

"абв " + "abc " + " эюя" —получится "абв abc эюя"

Тип «строка»

Бейсик Паскаль Си++
STRING string Базового типа «строка» нет

Указатели

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

Сложные данные

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

Синтаксис описания структуры

 

Бейсик Паскаль Си++
TYPE имя-структуры поле AS тип END TYPE record поле: тип; end; struct имя { тип поле; };

 

Вот примеры описания структур.

Бейсик:

TYPE Student

Name AS STRING

Sex AS INTEGER

BirthYear AS INTEGER

END TYPE

 

Паскаль:

record

Name: string;

Sex: boolean;

BirthYear: integer;

end;

 

Си++:

struct Student {

bool Sex; int BirthYear; };

 

Доступ к содержимому структуры: Student.BirthYear = 1980;

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

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

Синтаксис описания массива

Бейсик DIM имя (число элементов) AS тип
Паскаль аггау[ нижняя_граница .. верхняя_граница ] of тип;
Си++ тип имя[ число-элементов ];

 

В Бейсике нижней границей считается 1, в Си++ — 0, в Паскале она указывается явно.

Вот примеры описания массивов.

Бейсик:

DIM IntArray(lOOO) AS INTEGER

 

Паскаль:

array[1..1000] of integer

 

Си++:

int IntArray[1000];

 

Доступ к элементу массива осуществляется по его номеру. Этот номер указывается в круглых (Бейсик) или квадратных (Паскаль, Си++) скобках сразу за именем массива (такое действие называется индексированием):

 

IntArray( 12 ) IntArray[ i+1 ]

 

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

В развитых языках программирования допускаются массивы, состоящие из структур, и структуры, состоящие из массивов. Например:

 

а[0].Items.Strings[4].value

 

Массив а состоит из структур, в описании которых есть поле Items, являющееся тоже структурой, имеющей поле Strings, которое, в свою очередь, представляет собой массив структур, имеющих поле value.

Описание переменных

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


Дата добавления: 2019-02-22; просмотров: 384; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!