Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PYaVU_otvyty.docx
Скачиваний:
2
Добавлен:
04.08.2019
Размер:
100.42 Кб
Скачать

Билет 1: Понятия о структурном программировании

С общей точки зрения процесс решения задачи на ЭВМ включает в себя следующие этапы:

Постановка задачи

построение математической модели

разработка алгоритма

составление программы

реализация программы на ЭВМ

анализ результатов.

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

Проектирование сверху вниз

Модульное программирование

Структурное моделировании

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

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

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

Правила структурного программирования:

В каждой структуре используется один вход и одних выход

Алгоритм может быть построен так, что все его структуры образовывают линейную цепочку

Следует максимально использовать модульный принцип

Билет 2: Моделирование стандартных управляющих структур

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

Альтернатива (в си это if… else…)

Действие или обход (в си это if но без else)

Циклы While и Do While. К ним же относятся счётчики (for)

Следование. Сам Козин не знает что это такое, но подозревает что моделью следования является «блок».

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

Теперь рассмотрим особенности управляющих структур. Каждая управляющая структура имеет только один вход и один выход. Хорошим стилем программирования является написание такого кода (таких функций, например), в котором только один вход и один выход. Например, в функциях рекомендуется делать только один единственные return.

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

Билет 3: структура программы

Исходная программа представляет собой совокупность следующих элементов:

Директивы препроцессора - специфицируют действия препроцессора по преобразованию текста программы перед компиляцией

Указания компилятору - Указания компилятору — это специальные инструкции, которым компилятор языка Си следует во время компиляции.

Объявления переменной – задаёт имя и атрибуты переменной

Определение переменной – помимо задания её имени и атрибутов, выделяет для неё память. Также определение переменной задаёт её начальное значение (явно или не явно).

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

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

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

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

Для того чтобы программа на языке Си могла быть скомпилирована и выполнена, она должна содержать, по крайней мере одно определение — определение функции. Эта функция определяет действия, выполняемые программой. Если же программа содержит несколько функций, то среди них выделяется одна главная функция, которая должна иметь имя main. С нее начинается выполнение программы; она определяет действия, выполняемые программой, и вызывает другие функции. Порядок следования определений функций в исходной программе несуществен. Здесь не совсем верно – в том случае, если есть определение функции, но нету её объявления, то эту функцию МОЖНО вызвать, например из main, НО только в том случае, если определение функции стоит ВЫШЕ определения функции main. Так что в такой ситуации порядок следования определений функции СУЩЕСТВЕНЕН.

Если программа содержит только одну функцию, то она и является главной (и должна иметь имя main)

Напишу от себя то, чего здесь не хватает:

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

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