- •1. Базовые понятия пpогpаммиpования. Действие, пpоцесс, алгоритм, программа.
- •2. Функциональная структура эвм. Основные устройства эвм, их функциональные характеристики.
- •3. Представление данных в памяти эвм. Понятие переменной, константы, типа, диапазона значений.
- •4. Требования к качеству программного продукта. Основные критерии качества.
- •5. Этапы разработки программ. Роль каждого этапа в получении качественного программного продукта. Технология программирования.
- •1. Постановка задачи.
- •7. Исполнение программы.
- •6. Главная метафора процедурно-ориентированных языков. Стиль программирования.
- •7. Внешняя спецификация задачи, ее роль в процессе разработки программы. Состав внешней спецификации, структура документа.
- •8. Состав языка программирования. Синтаксис и семантика языка. Метаязык для записи синтаксических правил.
- •9. Структурные уровни языка программирования. Уровни языка Паскаль. Особенности языка Паскаль.
- •10. Простейшие конструкции языка Паскаль. Основные символы, слова, выражения.
- •11. Элементарные инструкции языков программирования. Особенности кодирования инструкции на язык Паскаль.
- •12. Кодирование арифметических, логических и литерных инструкций на язык Паскаль.(бл она хочет кодирование инструкций или выражений?)
- •13. Организация ввода данных из стандартного файла input. Процедуры ввода.
- •14. Ввод данных из текстового файла в Турбо-среде.
- •15. Вывод данных в текстовый файл в среде Турбо-Паскаль.
- •16. Концепция структурного программирования. Принцип Дейкстры.
- •17. Основные правила композиции структурированных программ. Базисы Вирта и Дейкстры. Эквивалентность базисов.
- •18. Последовательность действий. Особенность реализации в языке Паскаль.
- •19. Альтернативные действия. Альтернатива и полуальтернатива. Особенность реализации в языке Паскаль. Синтаксис и семантика.
- •20. Повторяемые действия. Реализация итерационных циклов пока и до в языке Паскаль. Синтаксис и семантика, особенность реализации.
- •22. Выбор из нескольких альтернатив. Реализация в стандартном и Турбо-Паскале.
- •23. Скалярные типы данных в языке Паскаль. Упорядоченные и неупорядоченные типы.
- •24. Структурный тип данных "массив". Реализация массивов переменной длины.
- •25. Правила записи программного модуля.
- •26. Основные стратегии проектирования алгоритмов, их сравнительная характеристика.
- •27. Основные декомпозиционные структуры программ. Сегменты-блоки и сегменты-процедуры, их спецификация.
- •28. Рабочий проект программы. Top-down граф.
- •29. Правила получения окончательной программы. Документация проекта.
- •30. Начальные шаги проектирования программы. Связь с внешней спецификацией. Основные варианты абстракций верхних уровней.
- •31. Процедуры языка Паскаль. Типы процедур. Правила выбора, описания и использования процедур.
- •32. Функции. Правила описания и использования.
- •33. Чистые процедуры. Правила и способы подстановки параметров. Механизм подстановки.
- •34. Структура программы. Локализация объектов.
- •35. Побочный эффект. Причины возникновения и правила предупреждения.
- •36. Цель и содержание отладки программы. Классификация ошибок. Уровни корректности программы в процессе отладки.
- •37. Основные действия при отладке. Контроль программы. Фазы контроля.
- •38. Характеристика восходящего и нисходящего способов отладки.
- •39. Локализация и исправление ошибок в процессе отладки в Турбо-среде.
- •40. Функциональное и структурное тестирование. Метод тестовых счетчиков.
- •41. Документирование программ в процессе разработки. Состав документации.
- •43. Эффективность программы. Средства стандартного и Турбо-Паскаля для повышения эффективности.
- •44. Надежность программы. Организация надежного ввода. Средства Паскаля для повышения надежности.
- •45. Эргономичность программы. Роль структурного программирования в повышении эргономичности.
- •46. Мобильность программ. Отличие версии Турбо-Паскаль от стандартного Паскаля.
- •47. Метод бисекции (деления пополам). Использование его в алгоритмах сортировки и решения уравнений.
- •48. Способы организации надежного ввода из стандартного файла, влияние на структуру программы.
- •49. Организация массива из текстового файла. Процедуры, обеспечивающие различную степень зависимости от входных данных.
- •Var f1:text
- •50. Локализация процедур Паскаля. Внешние процедуры.
- •51. Структурирование циклов. Метод объединения условий при решении задачи информационного поиска в файле.
- •53. Структурирование циклов. Метод флажка на примере организации надежного ввода с детальным анализом каждой переменной.
- •54. Организация процесса нисходящей разработки многомодульных программ. Самодокументирование процесса.
- •55. Независимость программы от данных при работе с массивами переменной длины. Обеспечение этого свойства на этапе спецификации задачи.
- •56. Экономия вычислений при суммировании рядов. Использование рекуррентных соотношений.
- •57. Метод трассировки при визуальном и компьютерном способах отладки.
49. Организация массива из текстового файла. Процедуры, обеспечивающие различную степень зависимости от входных данных.
Var f1:text
begin
clrscr;
assign(f1,'file.txt');
reset(f1);
Процедура ввода массива может иметь разную степень универсальности
1) инициализация файлов и ввод длины массива происходит в главной программе;
(как в приведенном ниже примере); а ввод массива – в процедуре;
{вход: f – имя ф.п., n – длина массива; выход: X - массив}
Procedure Input1_mas (var f : text; n : ind; var X : mas);
2) инициализация файлов происходит в главной программе, а ввод длины массива и самого массива – в процедуре;
{вход: f – имя ф.п., выход:n – длина массива; X - массив}
Procedure Input2_mas (var f: text; var n :ind; var X : mas);
3) в главной программе вводятся внешние имена файлов, а инициализация файлов и ввод длины массива и самого массива – в процедуре;
{вход: Namef – внешнее имя файла, выход:n – длина массива; X - массив}
Procedure Input3_mas (Namef : str8; var n : ind; var X : mas);
4) в процедуре выполняются все операции: вводятся внешние имена файлов, инициализация файлов и ввод длины массива и самого массива
{вход: -- , выход:n – длина массива; X - массив}
Procedure Input4_mas (var n : ind; var X : mas);
Так как фактический (реальный) массив определяется внешним именем файла Namef и длиной n массива, то именно этими переменными желательно управлять в главной программе. С этой точки зрения наиболее предпочтителен следующий вариант:
5) в главной программе вводятся внешние имена файлов и длины массива, а инициализация файлов и ввод самого массива – в процедуре;
{вход: Namef – внешнее имя файла, n – длина массива; выход: X - массив}
Procedure Input5_mas (Namef : str8; n : ind; var X : mas);
50. Локализация процедур Паскаля. Внешние процедуры.
В программе описание процедур и функций должно располагаться между разделами переменных и операторов.
Локализация переменных дает программисту большую свободу в выборе идентификаторов. Так, если две процедуры a и b полностью отделены друг от друга (т.е. не вложены одна в другую), то идентификаторы в них могут быть выбраны совершенно произвольно, в частности, могут повторяться. В этом случае совпадающим идентификаторам соответствуют разные области памяти, совершенно друг с другом не связанные.
Пример.
var k: integer;
procedure a;
var x, z: real;
begin
{ через x, z обозначены две величины –
локальные переменные для a;
k – глобальная переменная для a }
…………………………………
end;
procedure b;
var x, y: integer;
begin
{ через x, y обозначены две другие величины –
локальные переменные для b;
k – глобальная переменная для b }
…………………………………
end;
begin
{ k – единственная переменная, которую
можно использовать в основной ветке программы }
…………………………………
end.
Стандартная версия языка Паскаль содержит только внутренние процедуры: описание и вызов процедур локализованы в голвном модуле и компиляться вместе с ним. Это обеспечивает необходимую строгость при локализации объектов.
Для практического использования необходим механизм, дающий возможность оформления процедуры как самостоятельной единицы, без включения ее текста в вызывающий модуль, т.е. механизм внешних процедур.
С т.з. ОС модуль(внешний модуль) – это отдельно компил. Часть программы. В паскаль-программе м.б. только один головной модуль и несколько процедурных. В ТП имеется механизм работы с внешними модулями, что вместе с процедурными типами и средставми программирования нулевого уравня приближает паскаль к языку Модуля.
Unit<name>;
INTERFACE
<interface part>
IMPLEMENTATION
<imp. Part>
Begin
<init part>
End.
Для установления связи программы с модулем Unit следует после заголовка программы добавить предложение Uses<список модулей>.
Program P;
Uses A;
……….
Имя модуля должно совпадать с именем файла, содержащим модуль: A.pas, B.pas…
В интерфейсной части содержатся описания всех глобальных объектов модуля(констанст, типов, переменных, заголовков процедур). Все объекты основной программы и интерф. Части модуля помещаются в общий сегмент даннхы. Макс длина его = 65521 байт.
В исполняемой части содержатся тела процедур и функций. Инициирующая часть юзается для подготовки программы к работе, тк она выполняется первой, до начала работы основной программы. Эта часть может быть опущена.