Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Вопросы к экзамену 2010

.doc
Скачиваний:
8
Добавлен:
20.06.2014
Размер:
31.74 Кб
Скачать

АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ

1-й вопрос билета

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

2.Понятие формального алгоритма. Тезис Тьюринга – Черча об эквивалентности различных определений вычислимости.

3.Абстрактная машина фон Неймана. Понятие об элементарном исполнителе.

4.Основные этапы решения задач на ЭВМ: математическая постановка; алгоритм; программа; отладка и тестирование; сдача в эксплуатацию.

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

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

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

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

9.Способы конструирования программ (простое кодирование алгоритма; нисходящее проектирование – метод пошаговой детализации).

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

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

12.Средства выполнения программ. Понятие операционной системы для прикладного программиста. Интерфейс прикладного программиста с операционной системой, понятие API. Система программирования (средство поддержки программирования; средство поддержки программных разработок). Понятие о библиотеках программ, их использование.

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

2-й вопрос билета

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

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

3.Концепция данных. Стандартные типы данных (элементарные данные; агрегатные данные).

4.Представление основных структур программирования: итерация, ветвление, повторение; процедуры.

5.Типы данных, определяемые пользователем; структуры; файлы.

6.Динамические структуры данных; списки: основные виды и способы реализации (понятие дисциплины обслуживания, последовательность, очередь, стек, дек).

7.Объявления в языке Си. Базовые типы данных. Области значений. Описатели (синтаксис описателей; интерпретация составных описателей; описатели с модификаторами). Объявление переменных (простой переменной; переменной перечислимого типа; структуры; объединения; массива; указателя). Объявление функции (прототип).

8.Спецификация классов памяти. Использование классов памяти при объявлении переменной на внешнем уровне. Использование классов памяти при объявлении переменной на внутреннем уровне.

9.Инициализация (базовые типы и указатели; составные типы; строковые инициализаторы).

10.Объявление типа (объявление тега, typedef, абстрактные имена типов).

11.Выражения в языке Си. Операнды (идентификаторы; константы; символьные строки; вызовы функций; индексные выражения; выбор элемента; операции и L–выражения; скобочные выражения; константные выражения).

12.Операции (преобразования по умолчанию; унарные; мультипликативные; аддитивные; сдвига; отношения; поразрядные; логические; последовательного вычисления; условная; присваивания: инкремента и декремента, простое и составное). Приоритет и порядок выполнения. Побочные эффекты.

13.Преобразование типов (при присваивании; явные; при вызовах функций).

14.Операторы языка Си (понятие оператора; пустой оператор; составной оператор; оператор–выражение; условный оператор if; оператор пошагового цикла for; оператор цикла с предусловием while; оператор цикла с постусловием do; оператор продолжения continue; оператор–переключатель switch; оператор разрыва break; оператор перехода goto; оператор возврата return).

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

16.Директивы препроцессора и указания компилятору языка СИ (основные понятия и определения; именованные константы и макроопределения: директива #define, склейка лексем и преобразование аргументов макроопределений, директива #undef; включение файлов; условная компиляция: директивы #if, #elif, #else, #endif, #ifdef, #ifndef; управление нумерацией строк; директива обработки ошибок; пустая директива; указания компилятору; псевдопеременные).

3-й вопрос билета

Написать программу в соответствии с заданием.

2