Язык программирования программа и ее структура

Язык программирования программа и ее структура

1.1. Структура программы и языка программирования

Изучение программирования нельзя начать, не ответив на ряд вопросов: а что же такое программа, алгоритм, данные, язык программирования. В этом списке основным термином является алгоритм, который, как и большинство понятий общего вида, имеет множество определений. Например:

«Алгоритм — это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность». ( Д. Э. Кнут)

«Алгоритм — это точное предписание, определяющее вычислительный процесс, идущий от варьируемых исходных данных к искомому результату». ( А. Марков).

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

· в языке программирования имеются средства описания данных, которые позволяют программисту конструировать различные формы их представления – типы данных;

· вторая основная компонента программы – описание порядка, последовательности выполняемых действий, также называется алгоритмом «в узком смысле», или алгоритмической компонентой. Она обычно состоит из двух частей. Первая часть – выражения, представляет собой описание линейной последовательности выполнения простейших действий из набора операций (арифметические операции, присваивание, условные выражения). Они включаются во вторую компоненту – операторы, которые задают ту или иную последовательность действий;

· как уже отмечалось, программа работает исключительно с данными, что и определяет сущность алгоритма. В наборе операций имеются команды ввода-вывода, осуществляющие обмен данными между переменными и внешней средой (посредством устройств ввода-вывода). С «программно-эгоцентрической» точки зрения это выглядит чистой формальностью и не является существенной частью программы;

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

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

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

· средства описания данных: определение типов данных (форма представления) и переменных;

· набор операций над основными типами данных (включая ввод-вывод), а также средства записи выражений;

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

· средства разбиения программы на независимые части – модули (функции, процедуры), взаимодействующие между собой через программные интерфейсы.

Определение программы уже давно дано в простой формуле: «Программа = алгоритм + данные». Но в ней алгоритм и данные не просто «складываются» в одно целое как независимые части, но являются двумя взаимозависимыми элементами. Это своего рода «Янь и Инь» программы, олицетворяющие единство и борьбу двух противоположных начал (в философии этот принцип положен в основу диалектики – учения о развитии). Попробуем привести несколько аналогий, поясняющих сущность взаимодействий в этой «парочке»:

· если данные можно в какой-то мере обладают свойствами пространства (объем, протяженность), то алгоритм – свойствами времени (эффективность, быстродействие). Тезис «проигрывая в пространстве, выигрываем во времени» здесь также уместен: эффективность программ может быть принципиально повышена за счет использования дополнительных структур данных в памяти;

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

Взаимосвязь алгоритма и данных в программе не является простой и линейной. Процесс выполнения любой программы можно рассматривать с двух точек зрения: как последовательность выполнения операций (команд), в которых содержится информация об операндах (данных), которые они обрабатывают – поток команд (поток управления). С другой стороны – любой элемент данных можно рассматривать как результат выполнения действий над исходными данными и как источник данных (операнд) для последующих результатов. Т.е. в программе также присутствует логическая последовательность вычислений (преобразований данных), называемая потоком данных. Исторически сложилось, что в традиционной (фон Неймановской) архитектуре в программе в явном виде задается последовательность команд, т.е. программа выглядит как поток управления, в котором алгоритмическая компонента является первичной (ведущей), а данные – вторичной (ведомой).

Читайте также:  Как зайти в админку drupal

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

Уравнение «Программа = алгоритм + данные» можно разрешить и по-другому: «Алгоритм = программа — данные», что также имеет некоторый смысл, несмотря на явную натяжку. Например, конечный автомат (см .3.8) как раз и является программой, лишенной данных, т.е. алгоритмической компонентой, взаимодействующей с внешней средой без сохранения результатов во внутренних данных. Также и «Данные = программа — алгоритм» определяют их как пассивную программную систему, лишенную действий.

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

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

Синтаксически программа на Паскале состоит из трех частей: заголовка программы, блока программы и символа конца программы — точки.

Структура программы на языке Pascal.

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

Любая программа (или программная единица- процедура или функция) на Паскале должна состоять из трех основных разделов:

I Раздел заголовка (объявления программной единицы);

II Раздел описаний;

III Раздел исполняемых операторов (тело программы).

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

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

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

Т.е. все операторы, реализующие ваш алгоритм должны помещаться между этими операторными скобками.

Таким образом, структура программы Pascal в простейшем случае имеет вид:

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

Раздел описания (в общем случае) состоит из

— раздела описания используемых библиотек USES;

— раздела описания меток LABEL;

— раздела описания констант CONST;

— раздела описания типов TYPE;

— раздела описания переменных VAR;

— раздела описания процедур и функций.

5. Типы данных, используемые в современных языках программирования (на примере одного языка).

Язык Паскаль является строго типизированным языком программирования. Это означает, что для всех переменных в вашей программе должен быть определен их тип данных.

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

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

Выполнение раздела описания переменных сопровождается следующими действиями:

Читайте также:  Phenom ii x4 b40 характеристики

При описании выделяется область памяти для переменных. (Например, в стандартном Паскале целые переменные занимают 2 байта, а вещественные — 4 байта);

Описание не определяет конкретное значение переменной, т.е. считается, что в выделенной памяти при ее распределении (до использования) находится некоторый "мусор";

Описание определяет способ представления элементов в памяти ПК. (Например, вещественные переменные или константы, в отличие от целых, представляются в машине в виде мантиссы и порядка);

Описание определяет набор допустимых операций;

Описание определяет область действия переменных (локальные или глобальные).

Переменные могут быть:

Скалярные (простые) — содержит одно единственное значение.

Структурированные — могут содержать несколько значений.

Рассмотрим некоторые простые типы данных, с которыми будем иметь дело в ближайшее время:

Integer — значением переменной этого типа может быть целое число из отрезка [-32768; 32767]

Real — значением переменной этого типа может быть вещественное число, модуль которого принадлежит отрезку [2,9*10-39; 1,7*108]

Boolean — переменная этого типа может принимать только два значения: истина (true) или ложь (false)

Char — значением переменной этого типа может быть любой символ, из набора ASCI I-символов

Вообще, иерархия типов в языке Pascal следующая:

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

Описание переменной: имя переменной (идентификатор) : тип;

Var D, C, N : Integer;

Тип переменной определяет диапазон допустимых значений, принимаемых величинами этого типа; набор операций, допустимых над данной величиной и объем памяти, отводимой под эту переменную.

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

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

Основные элементы языка ПАСКАЛЬ.

Основные элементы языка программирования.

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

Дадим краткое описание каждого элемента:

1. Ввод означает считывание значений, поступающих с клавиатуры, с диска или из порта ввода-вывода.

2. Данные – это константы, переменные и структуры, содержащие числа (целые и вещественные), текст (символы и строки) или адреса (переменных и структур).

3. Операции осуществляют присвоение значений, их комбинирование (сложение, деление и т. д.) и сравнение значений (равные, неравные и т. д.).

4. Вывод означает запись информации на экран, на диск или в порт ввода-вывода.

5. Условное выражение предполагает выполнение набора команд в случае, если удовлетворяется (является истинным) некоторое условие (если это условие не удовлетворяется, то эти команды пропускаются или же выполняется другой набор команд).

6. Благодаря циклам некоторый набор команд выполнятся повторно или фиксированное число раз, или пока является истинным некоторое условие, или пока некоторое условие не стало истинным.

7. Подпрограмма представляет собой набор команд, который имеет имя и может быть неоднократно вызван из любого места программы по его имени.

Теперь рассмотрим, как эти элементы используются в Паскале.

Алфавит и словарь языка Паскаль.

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

Идентификаторы.

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

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

Для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций служат стандартные идентификаторы, например: intrger,sin,read,writeln.

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

Читайте также:  Обнаружение телефона по imei

Общие правила написания идентификаторов:

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

2) Идентификатор может состоять из букв, цифр и знака подчеркивания (пробелы, точки и другие специальные символы недопустимы).

3) Между двумя идентификаторами должен быть по крайней мере один пробел.

4) Максимальная длина идентификатора 127 символов.

5) Прописные и строчные буквы не различаются.

6) Идентификатор не может содержать символы русского языка.

1.2.2 Константы и переменные.

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

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

Все константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const.

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

Maxint – 32767 (максимальное целое)

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

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

Переменные описываются в специальном разделе, который начинается зарезервированным словом var.

Кроме констант и переменных существуют так называемые типизированные константы.

Структура программы.

Синтаксически программа состоит из необязательного заголовка и блока.

Заголовок программы блок .

Блок может содержать в себе другие блоки. Блок состоит из двух частей: описательной и исполнительной. Первая часть может отсутствовать, без второй блок не имеет смысла. Блок, который не входит ни в какой другой блок, называется глобальным. Если в глобальном блоке находятся другие блоки, они называются локальными. Глобальный блок – это основная программа, он должен присутствовать в любом случае. Локальные блоки – это процедуры и функции, их присутствие необязательно. Объекты программы (типы, переменные, константы и т. д.) соответственно называются глобальными и локальными. Область действия объектов – блок, где они описаны, и все вложенные в него блоки.

Структура программы выглядит следующим образом:

uses ; //подключение библиотечных модулей

label . ; // описание меток

const . ; // определение констант

type . ; // определение типов

procedure ; // описание процедуры

function ; // описание функции

В начале программы находится заголовок, состоящий в общем случае из зарезервированного слова program и имени программы. Заголовок программы несет только несет смысловую нагрузку и может отсутствовать, однако его рекомендуется всегда записывать для быстрого распознавания нужной программы среди листингов других программ. После заголовка следует программный блок, состоящий в общем случае из семи разделов. Любой раздел, кроме раздела операторов может отсутствовать. Разделы описаний (кроме uses) могут следовать в произвольном порядке.

Комментарии. Для лучшего понимания программы в ней записывается пояснительный текст – комментарий. Комментарий можно записывать в любом месте программы где разрешен пробел. Текст комментария ограничен символами <> или (* *) и может содержать любое количество символов. В тексте не должны находится знаки ограничителей, с которых комментарий начинается, однако ограничители <> можно вложить в (* *) и наоборот.

Комментарии игнорируются компилятором и поэтому никакого влияния на программу не оказывают. Используются как пояснения к тексту программы или как средства ее отладки.

Типы данных.

Типы данных – множество величин, объединенных определенной совокупностью допустимых операций.

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

В Паскале для описания типа в общем случае используется зарезервированное слово type. Формат:

Все типы данных можно разделить на две группы: скалярные и структурированные (составные). Скалярные типы в свою очередь делятся на стандартные и пользовательские.

Ссылка на основную публикацию
Шаблоны букв английского алфавита для вырезания
Трафареты и шаблоны букв английского алфавита для вырезания из бумаги, это разнообразные шрифты разного стиля и тематики. Трафареты помогут вам...
Что значит спящий режим компьютера
В операционной системе Windows есть несколько режимов выключения компьютера – это обыкновенный режим, (который полностью выключает PC), режим гибернации и...
Что значит сторнировать документ
Сто́рно (итал. storno — перевод на другой счёт, отвод; от stornare — поворачивать обратно) — в общем смысле возврат к...
Шаблоны для брошюры в ворде
Автор: admin Дата записи Быстрей всего набросать буклет, если под рукой окажется готовый шаблон. Проще всего создать буклет в программе...
Adblock detector