Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (Ведищев) + шпоры к экзамену / Алгоритмические языки.doc
Скачиваний:
51
Добавлен:
20.06.2014
Размер:
557.06 Кб
Скачать

7. Постановка задачи и спецификация программы (представление в виде спецификации ввода–вывода; особенности спецификации для завершающихся и циклических программ); способы записи алгоритма. 1 час

Постановка задачи и спецификация программ.

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

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

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

8. Теорема структуры и структурное программирование; анализ программ; утверждения о программах; корректность программ; правила вывода для основных структур программирования; инвариантные утверждения. 4 часа

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

Структурным называют такой подход к программированию, при котором для передачи управления программами используется 3 конструкции, допускающие последовательную, условную, и итеративную передачу. Управления. Безусловная произвольная передача управления (goto) запрещается. В результате каждая сложная команда в программе имеет ровно одну точку выхода и 1 точку входа., вследствие чего облегчается восприятие программы. С и PASCAL м.б. отнесены к языкам структурого программирования. Однако в них присутствует оператор безусловного переход, рекомендуемый к использованию только в исключительных ситуациях, например для выхода из множества вложенных циклов.

9. Программа на языке высокого уровня. Язык программирования Си.

    1. Элементы языка Си (алфавит: буквы и цифры, пробельные символы, разделители, специальные символы, операции; константы: целые константы, константы с плавающей точкой, символьные константы, символьные строки; идентификаторы; ключевые слова; комментарии). 4 часа

Элементы языка си

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

  • алфавит;

  • константы;

  • идентификаторы;

  • ключевые слова;

  • комментарии.

Компилятор языка Си воспринимает исходный файл, содержащий программу на языке Си, как последовательность текстовых строк. Каждая строка завершена символом новой строки. Этот символ вставляется текстовым редактором при нажатии клавиши ENTER (ВВОД).

Компилятор языка Си последовательно считывает строки программы и разбивает каждую из считанных строк на группы символов, называемые лексемами. Лексема—это единица текста программы, которая имеет самостоятельный смысл для компилятора языка Си и которая не содержит в себе других лексем. Никакие лексемы, кроме символьных строк, не могут продолжаться на последующих строках текста программы. Знаки операций, константы, идентификаторы и ключевые слова, описанные в этом разделе, являются примерами лексем. Разделители, например квадратные скобки [], фигурные скобки {}, круглые скобки (), угловые скобки < > и запятые, также являются лексемами. Внутри идентификаторов, ключевых слов, а также знаков операций, состоящих из нескольких символов, пробельные символы недопустимы.

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

i+++j

В этом примере компилятор языка Си вначале сформирует из первых двух знаков "плюс" операцию инкремента (++), а из оставшегося знака плюс — операцию сложения. Выражение проинтерпретируется как (i++)+(j), а не как (i)+(++j). В подобных случаях рекомендуется для ясности разделять лексемы пробельными символами или круглыми скобками.