Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
76.48 Кб
Скачать
      1. 5) Основный идеи структурного программирования:

Н.Вирт\

Dijkstra|=> Структурное программирование

Хоар /

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

Жизненный цикл любой программы включает несколько этапов:

*Проектирование

*Кодирование

*Отладка

*Тестирование

*Эксплуатация и сопровождение

1. В основе структурного программирования лежит метод проектирования программы, называемый «Сверху-вниз»(Метод последовательного уточнения действий)(Метод пошаговой детализации)

2.В качестве управляющих структур допускаются структуры следующего вида

1)Следование

2)Ветвление

а) альтернатива

Псевдокод

если условие

то действие1

иначе действие2

конец если

б)Выбор

Выбрать

условие1:действие1

условие2:действие2

….........................

условие N: действие N

иначе действие

конец выбрать

3)Циклы

а)бесконечный цикл

повторять

действие1

действие2

….........

действие N

конец повторять

Так как у этой структуры только один вход и нет выхода, то она может быть использована только в качестве самой внешней при проектировании программ

б)циклы с управляемыми условиями

*цикл с предусловием

пока условие

действие

конец-пока

*цикл с пост-условием

повторять

действие1

действие2

действие N

до условие

в)циклы, управляемые параметром

для каждого

повторять

действие

конец для

4)Вызов подпрограммы

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

3.На любом этапе проектировании программы(на любом шаге детализации) алгоритм должен представлять собой линейную цепочку структур управления.

Д.з.

Следующую последовательность действий преобразовать в структурный вид(в тетраде)

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

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

Основу любой системы программирования составляет язык программирования.

Процесс преобразования текста программ записан на языке программирования.

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

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

Исходным данным для компилятора является текст программы, записанный на языке программирования.

Результатом — файл. С последовательностью команд в кодах процессора.

Исходным данным для интерпретатора является отдельный оператор программы, записанный на языке программирования.

Результатом — выполнение оттранслированной отдельной команды.

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

В большинстве систем программирования процесс трансляции происходит в 3 этапа:

1.Компиляция-перевод текста программы.

Получаемый в результате файл называется объектным модулем.

В общем случае таких файлов может быть несколько.

2.Редактирование связей.(Компоновка)

Компоновка — отдельные файлы объектных модулей связывается в единую программу.

3.Загрузка в память и исполнение:

Загрузчик настраивает адреса созданной программы на область памяти выделенной ОС и запускает эту программу.

7) Алфавит, словарь, грамматика языка: синтаксис, семантика.

Любой язык программирования в своей основе имеет:

1.Алфавит

2.Словарь

3.Грамматика языка:

*Синтаксис-совокупность правил задающих множество формальных правильных предложений.(правило построения конструкции)

*Семантика - совокупность правил истолкований предложений языка.

Грамматику можно описать словесно. Но при описании формальных языков используются специальные средства.

Пример: Собака лает

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

Предложение = подлежащие сказуемое

Подлежащие = собака || кошка

Сказуемое = лает || мурлычет

= '' | метасимволы

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

Рассмотренный способ описание синтаксических правил называется БНФ(Бэкус-Наурова Форма)

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

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

Всегда являются промежуточными.

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

S = A B

A = ''X'' | ''Y''

B = ''Z'' | ''W''

X Z

XW

YZ

YW

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

В настоящее время используется РБНФ (Расширенная БНФ)

()- для группировки

[]-необязательная конструкция.

{}-Элемент расположенный внутри может появиться сколько угодно раз.

S = “X”A

A=”Z”|”Y”A

XZY

XZZY

XZZZY

Основными символами алфавита языка С++ являются:

*Прописные и строчные латинские буквы и знак подчеркивания

*Арабские цифры от 0 до 9

*Специальные знаки( «» ' {} [] () + - / * % . \ ? , ; < = > & # ! | )

*Пробельные символы(символы не изображаемые знаками на экране (пробел табуляция переход на строку)

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

8) Изображения значений в языке С++

Литерал — цепочка литер, служащая для представления конкретного значения в программе.

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

В языке С++ используются 4 типа литералов:

*Целочисленный

*Вещественный

*Символьный

*Строковый

Целое = [знак] целое_без_знака

Знак = “+” | “-”

целое_без_знака = цифра{цифра}

цифра = 0 1 2 3 4 5 6 7 8 9

Вещественное = [знак]вещественное_без_знака

вещественное_без_знака = [целые_без_знака] ''.'' [целые_без_знака] [[''E'' | ''e''] порядок]

порядок = целое

Существует еще один способ описания синтаксических правил — синтаксические диаграммы.

Целое_без_знака

число

-нетерминальный символ

- терминальный

Если числовой литерал начинается с символа 0, то он изображает восьмеричное число.

Начальные символы 0х — означает 16ричное число

Вещественные сила могут быть только десятичные.

Символьные константы изображаются 'A'. они занимают в памяти 1 байт

2-х символьные константы занимают 2 байта и если они начинаются с \ то используются для представления:

*кодов не имеющих графического изображения

' \a' – код звука

'\n' – переход к следующий строке

*символов ' \ ? “ являющихся элементами строковой константы

*любого символа с помощью его 16ричного кода

Последовательности символов начинающихся с \ управляющие (escape-последовательность)

Строковая константа — это последовательность литер ограниченная двойными кавычками.

Если в тексте программ строковые константы разделены только пробельными символами, то при компиляции они объединяются в одну строку. В конец каждого строкового литерала компилятор автоматически добавляет управляющую последовательность \0 являющийся признаком конца строки.

Строковая константа может быть пустой “”, но память выделится

Символьная не может быть пустой

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]