12.07.2015 Views

программирование и алгоритмизация - Помощь студентам

программирование и алгоритмизация - Помощь студентам

программирование и алгоритмизация - Помощь студентам

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное бюджетное образовательное учреждениевысшего профессионального образования«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»УТВЕРЖДАЮДиректор ИДО_______________ С.И. Качин«____»_____________2012 г.ПРОГРАММИРОВАНИЕ И АЛГОРИТМИЗАЦИЯМетодические указания и индивидуальные заданиядля студентов ИДО, обучающихся по направлению220700 «Автоматизация технологических процессов и производств»Составитель Н.М. СемёновСеместр 3 4 5Кредиты 4 –Лекции, часов 2 8 –Лабораторные занятия, часов 8 –Практические занятия, часов 4 4Консультации по выполнениюкурсовой работы, часов 6Индивидуальные задания № 1 –Самостоятельная работа, часов 68 80Формы контроля экзамен диф. зачетИздательствоТомского политехнического университета2012


УДК 681.3.06Программирование и алгоритмизация: метод. указ. и индивид. заданиядля студентов ИДО, обучающихся по напр. 220700 «Автоматизациятехнологических процессов и производств» / сост. Н.М. Семёнов;Томский политехнический университет. – Томск: Изд-во Томского политехническогоуниверситета, 2012. – 37 с.Методические указания и индивидуальные задания рассмотреныи рекомендованы к изданию методическим семинаромкафедры интегрированных компьютерных систем управления«___» ___________ 2012 г., протокол № ___.Зав. кафедрой ИКСУ,доктор техн. наук, профессор _____________ А.М. МалышенкоАннотацияМетодические указания и индивидуальные задания по дисциплине«Программирование и алгоритмизация» предназначены длястудентов ИДО, обучающихся по направлению 220700 «Автоматизациятехнологических процессов и производств». Данная дисциплинаизучается в двух семестрах.Дисциплина «Программирование и алгоритмизация» относитсяк циклу профессиональных дисциплин для студентов, обучающихсяпо данному направлению. Предусмотрено изучение особенностейсовременного этапа развития программирования, технологиипрограммирования и алгоритмизации, стандартов на разработкуприкладных программных средств. Принципы объектноориентированногои визуального программирования рассматриваютсяна примере системы Delphi.Приведено содержание основных тем дисциплины. Даны переченьлабораторных работ и темы практических занятий. Приведеныварианты индивидуального домашнего задания и курсовойработы. Даны методические указания по их выполнению.2


ОГЛАВЛЕНИЕ1. МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ .................................. 42. СОДЕРЖАНИЕ ТЕОРЕТИЧЕСКОГО РАЗДЕЛА ДИСЦИПЛИНЫ ...... 53. СОДЕРЖАНИЕ ПРАКТИЧЕСКОГО РАЗДЕЛА ДИСЦИПЛИНЫ ..... 123.1. Тематика практических занятий ...................................................... 123.2. Перечень лабораторных работ ......................................................... 134. ИНДИВИДУАЛЬНЫЕ ДОМАШНИЕ ЗАДАНИЯ .................................. 144.1. Общие методические указания ......................................................... 144.2. Варианты ИДЗ .................................................................................... 155. КУРСОВАЯ РАБОТА.................................................................................. 225.1. Методические указания по выполнению курсовой работы .......... 226. ПРОМЕЖУТОЧНЫЙ КОНТРОЛЬ ........................................................... 296.1. Вопросы для подготовки к экзамену ............................................... 297. Учебно-методическое обеспечение дисциплины ................................... 357.1. Литература обязательная .................................................................. 357.2. Литература дополнительная ............................................................. 357.3. Учебно-методические пособия ......................................................... 357.4. Internet-ресурсы .................................................................................. 363


1. МЕСТО ДИСЦИПЛИНЫ В СТРУКТУРЕОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫДисциплина «Программирование и алгоритмизация» (ПиА) призванапродолжить формирование у студентов основы базовых знаний попрограммированию, необходимые им для изучения последующих учебныхдисциплин и дальнейшей профессиональной деятельности.После изучения данной дисциплины студент должен знать использованнуюв ней терминологию объектно-ориентированного программирования;иметь представление о стандартах на разработку прикладныхпрограммных средств; организации данных; этапах построения алгоритмов;организации программных средств; применяемых технологияхпрограммирования.Познавательная деятельность студентов по дисциплине заключается: в самостоятельном изучении материала теоретических занятийпо рекомендованной литературе и учебно-методическим пособиям; в подготовке к практическим и лабораторным занятиям; в выполнении индивидуального домашнего задания; в выполнении курсовой работы.Дисциплина относится к циклу Б.3 – Профессиональный цикл.Пререквизиты – «Информатика», «Информационные технологии», кореквизиты– нет, пострекизиты – «Моделирование систем и процессов»,«Микропроцессорная техника», «Компьютерная технология инженерноготруда».4


2. СОДЕРЖАНИЕ ТЕОРЕТИЧЕСКОГО РАЗДЕЛАДИСЦИПЛИНЫТема 1. ВведениеПредмет, цели и задачи курса и связь его с другими учебными дисциплинами.Парадигмы программирования, оказавшие существенноевлияние на стиль соответствующих программ. Идея структурирования ипроцедурно – ориентированный язык Фортран. Модульный подход кразработке программ: язык Алгол-60 и позднее появившиеся Паскаль,Си, Ада.Руководящая идея объектно-ориентированного программирования– стремление связать данные с обрабатывающими эти данные процедурамив единое целое – объект.Деление программного обеспечения на системное, прикладное исистемы программирования. Роль прикладного программирования.Особенности современного этапа развития программирования (программыкак продукт, увеличение сложности программ и их жизненногоцикла). Проблемы программирования. Визуальное программирование,объектно-ориентированное программирование и система Delphi.Рекомендуемая литература: [1, с. 5-24, 44-56], [10, с. 39],[12, с. 64-68].Методические указанияНеобходимо усвоить предмет и цели курса, его место среди другихдисциплин. Полезно вспомнить классификацию программного обеспечения(системное, прикладное…). Важно проследить цепочку в развитиипрограммирования от середины ХХ века до современного состояния(от идеи структурирования через модульность к объектам). Приэтом следует связать каждый этап развития с проблемой, стоявшей в соответствующийпериод перед теорией и практикой программирования.Вопросы и задания для самоконтроля1. При изучении каких дисциплин потребуются знания и умения,полученные при изучении дисциплины «Программирование и алгоритмизация»?2. Сформулируйте идею структурированного программирования,положенную в основу языка Фортран.3. В чём заключается принципиальное отличие объединения кода иданных в модули (Паскаль, Си) от объединения их же в объекты (Симула-67,Delphi)?5


4. Какие требования к программе существенно повышаются присоздании её как программного продукта?5. Какие этапы составляют жизненный цикл программы?Тема 2. Основы DelphiИнтегрированная среда разработчика (IDE). Основные элементыIDE: главное окно, окно инспектора объекта, окно дизайнера форм, окноредактора кода, менеджер проекта. Основное окно: линейка инструментов,ее настройка и изменение размеров; палитра компонентов и еестраницы, меню Delphi. Окно дизайнера форм. Понятие формы. Окноинспектора объекта и его страницы. Окно редактора кода. Менеджерпроекта и его использование.Технология создания нового проекта и файлы проекта. Объектныеи исполнимые файлы. Иерархия файлов.Формы и компоненты. Формы как основа визуального программированияв Delphi. Разработка проекта, основанная на компонентах: созданиекомпонентов, изменение свойств формы, вложенные свойства,размещение компонентов на форме. Визуальные и невизуальные компоненты.Программы и модули Delphi. Синтаксис модуля. Модули,поддерживающие формы. Классы и объекты, классы и наследование.Поля и методы класса.Принципы визуального программирования. Проектирование формы.Время разработки и время выполнения. Размещение компонентовна форме. Выбор группы компонентов. Операции над группой компонентов.Визуальные и объектные аспекты форм. Классы и формы. Присоединениепрограммы обработки события. Свойства компонентов. События.Архитектура приложения. Диалоговые окна. Формы как модальныедиалоговые окна. Формы как немодальные диалоговые окна.Особенности языка программирования Object Pascal. Булевы типы,тип String.Рекомендуемая литература: [2, с.12-56], [12, с. 5-20].Методические указанияЭта тема раскрывает устройство и возможности программногосредства Delphi.Следует иметь в виду, что система программирования Delphi какпрограммный продукт появилась в середине 90-х годов прошлого столетия.Она использовала язык программирования Object Pascal (объектныйПаскаль), очень похожий на популярный в образовательной средеязык Turbo Pascal (Borland Pascal). Но в середине первого десятилетия6


нашего века язык программирования также стали называть Delphi. Поэтомупод этим словом подразумевается как среда визуального программирования(программное средство), так и сам язык программирования.Достаточное внимание надо трём основным составляющим интегрированнойсреды разработки: дизайнеру форм; инспектору объекта; редактору кода.Эти три составляющие являются ядром всех выпусков Delphi, начинаяот Delphi 1 до Delphi 10.Следует иметь в виду, что методические материалы, сопровождающиеэтот курс, рассчитаны на Delphi 6 и Delphi 7. Хотя, как показываетопыт, студенты дневного отделения не испытывают существенныхтрудностей и при работе с более современными выпусками программногосредства.Вопросы и задания для самоконтроля1. Что такое «палитра компонентов»?2. Какие функции возложены на редактор кода?3. Почему некоторые компоненты, располагаемые на форме в процессесоздания проекта, называются «невизуальными»?4. Каково назначение оператора Application.CreateForm(TForm1,Form1), расположенного в основном модуле проекта?5. Назовите основные элементы интегрированной среды разработчика.Тема 3. Введение в объектно-ориентированное программированиеКлассы и объекты. Определение объектно-ориентированного программирования(ООП). Объекты. Классы. Наследование. Объектныеполя. Объявление переменных, представляющих экземпляр класса. Обращениек элементам объекта.Рекомендуемая литература: [3, с. 102-118], [12, с. 32-38].Методические указанияКак и всякое теоретическое построение в любой области знания,ставшая не так давно широко применяться парадигма объектноориентированногопрограммирования имеет свою теоретическую базу исоответствующую терминологию. Поэтому для освоения этого теоретическогоматериала требуется систематическая регулярная работа в течениедостаточно продолжительного времени.7


Ключевыми являются понятия класса, как некоего порождающегообразования, и объекта, являющегося представителем этого класса. Например,в качестве класса можно представить марку автомобиля LadaPriora, которая имеет соответствующую конструкторскую и технологическуюдокументацию, конвейерные линии и станки для производства.А экземпляром класса (представителем класса) будет конкретный автомобиль,имеющий номер государственной регистрации.С программистской точки зрения класс можно представить как некоторыйтип (Type), опираясь на который могут объявляться соответствующиепеременные.Вопросы и задания для самоконтроля1. Дайте определение объектно-ориентированного программирования.2. Напишите фрагмент программы на Delphi, задающий класс сдвумя полями и одним методом.3. Дайте определение объекта.4. В чем заключается механизм наследования классов? Что такое«базовый класс»?5. В разделе var объявите переменную – представителя класса,созданного в задании 2.6. Запишите общий синтаксис объявления класса.Тема 4. Методы. Конструкторы и деструкторыРазновидность методов. Методы-функции и методы-процедуры.Конструкторы. Деструкторы. Классовые процедуры и функции. Реализацияметодов. Вызов методов. Видимость элементов класса.Рекомендуемая литература: [4, с. 84-98], [12, с. 39-50].Методические указанияВ Delphi существует шесть разновидностей методов – своеобразныхподпрограмм (процедур и функций). Они объявляются в разделеType при описании класса, а непосредственно активная часть методовкодируется в разделе реализации (implementation) модуля проекта.Особое внимание следует уделить двум методам: конструкторам идеструкторам. Первые выделяют во время работы созданной программы(проекта) динамическую память под объекты, а вторые освобождаютзанимаемую динамическую память после того, как объект становитсяненужным.Следует знать и различать синтаксис объявления, реализации и вызова(использования) каждой разновидности методов.8


Вопросы и задания для самоконтроля1. Что понимается под термином «метод объекта»?2. Назовите шесть разновидностей методов.3. Напишите синтаксис объявления метода-процедуры.4. Напишите синтаксис объявления конструктора.5. Синтаксис вызова деструктора.6. Запишите общий синтаксис реализации метода-функции.Тема 5. Графика в Delphi. Обработка исключенийОконно-ориентированная графика. Начало графических координатформы. Область клиента. Визуальный компонент Delphi как независимаяобласть рисования. Объект Canvas как посредник между пользователем(программистом) и генератором графики внутри Windows. Наиболееважные свойства класса TCanvas: Pen (перо), Brush (кисть),Font (шрифт), Handle (дескриптор).Наиболее часто используются методы класса TCanvas:Rectangle, Ellipse, MoveTo и LineTo, Polygon и PolyLine,TextOut.Исключения как инструмент для передачи информации об ошибкахвремени выполнения программы. Отличие обработки исключений оттрадиционной обработки ошибок. Конструкция try – finally обработкиисключений и защита ресурсов. Оператор try – except.Оператор on - do как средство обеспечения специфического откликана определённые исключения.Рекомендуемая литература: [6, с. 393-420], [12, с. 56-63],[5, с. 459-489].Методические указанияПри изучении графических возможностей Delphi надо обратитьвнимание на наличие удобного средства – объекта Canvas – для облегченияработы с генератором графики внутри Windows. Этот генераторGraphic Device Interface (GDI) представляет собой набор подпрограммдля вывода графики и связанных с ними структур данных, которые даютвозможность приложениям отображать информацию визуально.Прямое взаимодействие с GDI утомительно и чревато ошибками. КонцепцияCanvas и её реализация в виде стандартного класса TCanvasзначительно упрощают использование графики. Свойства и методыкласса TCanvas непосредственно являются инструментами для созданияграфики в Delphi.9


Исключения в виде конструкций try – finally и try –except позволяют значительно повысить эффективность отладки создаваемыхприложений. Достигается это за счёт механизма разнесенияпо разным местам программы кода, обнаруживающего ошибку временивыполнения, и кода, реагирующего на такую ошибку.Обработка исключений предоставляет автоматический канал связимежду этими двумя частями кода. Код, обнаруживший ошибку, возбуждаетисключение, тем самым сигнализируя о состоянии ошибки. Код,который реагирует на такой сигнал, называется обработчиком исключений.Вопросы и задания для самоконтроля1. Каково назначение объекта Canvas?2. Укажите назначение свойств Pen и Brush.3. Какой метод позволяет рисовать окружность?4. Напишите фрагмент программы, позволяющий нарисовать треугольниклинией красного цвета.5. Дайте определение понятию «исключение» (exceptions).6. Запишите общий синтаксис блока try – finally.7. Напишите фрагмент кода, позволяющий выявлять с помощьюоператора try – except операцию деления на ноль.Тема 6. Современные технологиипрограммирования и алгоритмизацияСтандарты на разработку прикладных программных средств. Документирование,сопровождение и эксплуатация программных средств.Организация данных: статические и динамические данные, список,очередь, стек, множество; последовательный, индекснопоследовательныйфайлы, файл с прямым доступом. Абстракция данных.Этапы построения алгоритма. Методы частных целей, подъема, эвристика,метод ветвей и границ, рекурсия и итерация, сортировка и поиск,численные и символьные вычисления.Организация программных средств: информационные системы,системы автоматизированного исследования и проектирования, системыуправления техническими средствами, диалоговые системы.Технологии программирования: экстремальное программирование,структурное программирование, стандартные логические структуры,метод пошаговой детализации, тестирование и отладка программ.Рекомендуемая литература: [7, с. 235-312], [12, с. 64-72],[8, с. 425-677].10


Методические указанияСоздаваемые программы чаще всего предназначены для продажи.Это существенно повышает требования к надёжности программного изделия,т.е. к уменьшению числа оставшихся невыявленными ошибок впрограмме и таких неучтённых ситуаций, при возникновении которыхпрограмма может выдавать неопределённый результат или вообще прекращатьсвоё нормальное функционирование. Особое значение приобретаети эффективность программы. Недостаточная эффективность примногократном последующем использовании этой программы можетпривести к весьма существенным непроизводительным затратам машинноговремени на её выполнение.Технологии программирования, появившиеся в последней четвертипрошлого века и позднее, как раз направлены на выполнение этих требований.Этому же способствую стандарты на разработку программныхсредств, их сопровождение и эксплуатацию.Сами языки программирование также предусматриваю выполнениеряда требований, направленных на повышение надёжности создаваемыхпрограмм.Адекватная решаемой задаче организация данных, эффективныеметоды решения, средства тестирования и отладки – всё это, в конечномсчёте, направлено на получение конкурентоспособных программ, надёжных,эффективных и удобных в эксплуатации.Вопросы и задания для самоконтроля1. Проанализируйте приведённый листинг фрагмента программына языке Паскаль:R:= 0;for i:= 1 to N dofor j:= 1 to N doif A[i] > B[j] then R:= 1;if R=0 then write (‘Yes’) else write (‘No’);В чём заключается неэффективность применённого алгоритма? Напишитетекст, соответствующий эффективному алгоритму.2. Приведите пример задачи, для решения которой применяется методветвей и границ.3. Какие стандартные логические структуры используются для созданияхорошо структурированных программ?4. В чём суть метода пошаговой детализации, применяемого приразработке программ?5. Назовите достоинства и недостатки применения блок-схем дляотображения алгоритма программы.11


3. СОДЕРЖАНИЕ ПРАКТИЧЕСКОГО РАЗДЕЛА ДИСЦИПЛИНЫ3.1. Тематика практических занятий4 СЕМЕСТРТема 1. Технология создания проектов в Delphi. Создание алгоритмаи программы нахождения максимального и минимальногочисел массива (2 часа).Иерархия файлов проекта Delphi. Разработка блок-схемы алгоритмапрограммы. Визуальное проектирование формы. Реализация алгоритмав методе-процедуре и методе-функции модуля формы.Рекомендуемая литература1. Программирование в Delphi для начинающих/ Н. Тюкачёв и др. –СПб.: БХВ-Петербург, 2007. – 672 с.2. Семёнов Н.М. Программирование и основы алгоритмизации:учебное пособие / Н.М. Семенов. – Томск: Изд-во Томского политехническогоуниверситета, 2009. – 96 с.Тема 2. Создание алгоритма и программы обмена местамимаксимального и минимального чисел матрицы (2 часа).Разработка блок-схемы алгоритма программы. Визуальное проектированиеформы. Реализация алгоритма в методе-процедуре модуляформы.Рекомендуемая литература1. Бобровский С. Delphi 7: Учебный курс. – СПб.: Питер, 2008. –736 с.2. Семёнов Н.М. Программирование и основы алгоритмизации:учебное пособие / Н.М. Семенов. – Томск: Изд-во Томского политехническогоуниверситета, 2009. – 96 с.5 СЕМЕСТРТема 1. Вычисление суммы элементов матрицы, расположенныхпо периметру, с помощью компонента StringGrid (4 часа).Изучение интерфейса и возможностей компонента StringGrid.Разработка блок-схемы алгоритма программы. Визуальное проектированиеформы. Реализация алгоритма в методе-процедуре модуля формы.Рекомендуемая литература1. Сухарев М. Delphi. Полное руководство. Включая версию 2010. –СПб.: Наука и техника, 2010. – 1035 с.12


2. Семёнов Н.М. Программирование и основы алгоритмизации:учебное пособие / Н.М. Семенов. – Томск: Изд-во Томского политехническогоуниверситета, 2009. – 96 с.3.2. Перечень лабораторных работ1. Элементы среды разработки Delphi. (2 часа).2. Программы и модули Delphi (2 часа).3. Принципы визуального программирования (2 часа).4. Проектирование калькулятора в среде Delphi (2 часа).Методические указания к выполнению лабораторных работ приведеныв [11].13


4. ИНДИВИДУАЛЬНЫЕ ДОМАШНИЕ ЗАДАНИЯ4.1. Общие методические указанияИндивидуальное домашнее задание (ИДЗ) предусматривает решениепоставленной задачи в виде программы на Delphi.Вариант индивидуального задания определяется как число, составленноеиз двух последних цифр зачетной книжки студента. Еслиполученное число меньше или равно 30, то это будет вариант ИДЗ. Еслиполученное число находится в интервале от 31 до 60, то вариант ИДЗопределяется после вычитания числа 30. Если полученное число находитсяв интервале от 61 до 90, то вариант ИДЗ определяется после вычитаниячисла 60.Например:Последние две цифры номеразачётной книжкиПодлежащий выполнениювариант11 11 вариант32 32 – 30∙1= 2 вариант65 65 – 30∙2= 5 вариантВ отчёте должно быть:1. Титульный лист.2. Постановка задачи.3. Краткое пояснение идеи решения и реализации проекта.4. Блок-схема программы, выполненная в соответствии с требованиямиГОСТ 19.701-90 ЕСПД. Схемы алгоритмов, программ, данных исистем. Условные обозначения и правила выполнения.5. Листинг программы (примерно пятую часть текста должны заниматькомментарии).6. Скриншоты экрана монитора, отражающие спроектированнуюформу, введённые данные и полученные результаты.7. Выкладки, подтверждающие правильность полученных результатов.Оформлять отчёт рекомендуется по стандарту организации СТОТПУ 2.5.01-2006 «Работы выпускные квалификационные, проекты и работыкурсовые. Структура и правила оформления». Преподавателюдолжны быть представлены файлы проекта с расширениями exe, pas,dfm, dpr, подтверждающие работоспособность проекта.14


4.2. Варианты ИДЗ1. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины вычисляет дебит, приходящийся в среднемна одну скважину. Применить класс в проекте, реально вычисляющемдебит. Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.2. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины вычисляет разность дебитов самой продуктивнойи самой малопроизводительной скважин. Применить класс впроекте, реально вычисляющем разность дебитов. Для ввода данных впроекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.3. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номер самой продуктивнойскважины. Применить класс в проекте, реально определяющем такойномер. Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободить динамическуюпамять, выделенную под объект.4. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номер самой малопродуктивнойскважины. Применить класс в проекте, реально определяющемтакой номер. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.5. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номер такой скважины, чьяпродуктивность ближе всего к дебиту, приходящемуся в среднем на однускважину куста. Применить класс в проекте, реально определяющем15


такой номер. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.6. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номера скважин с минимальнойи максимальной производительностью. Применить класс впроекте, реально определяющем такие номера. Для ввода данных в проектеобязательно использовать компонент StringGrid. Перед окончаниемработы проекта освободить динамическую память, выделеннуюпод объект.7. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номера двух скважин с минимальнойпроизводительностью. Применить класс в проекте, реальноопределяющем такие номера. Для ввода данных в проекте обязательноиспользовать компонент StringGrid. Перед окончанием работы проектаосвободить динамическую память, выделенную под объект.8. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет номера двух скважин с максимальнойпроизводительностью. Применить класс в проекте, реальноопределяющем такие номера. Для ввода данных в проекте обязательноиспользовать компонент StringGrid. Перед окончанием работы проектаосвободить динамическую память, выделенную под объект.9. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому суточномудебиту каждой скважины определяет процент скважин, производительностькоторых превышает среднее значение производительностискважины куста. Применить класс в проекте, реально определяющемтакой процент. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.10. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве скважин куста на нефтяном промысле. Предусмотретьв созданном классе наличие метода, который по введённому16


суточному дебиту каждой скважины определяет процент скважин, производительностькоторых меньше среднего значения производительностискважины куста. Применить класс в проекте, реально определяющемтакой процент. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.11. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб вертикальной скважины. Предусмотретьв созданном классе наличие метода, который по введённойдлине каждой трубы определяет глубину всей скважины. Применитькласс в проекте, реально определяющем глубину. Для ввода данных впроекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.12. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённой длине каждойтрубы определяет среднюю длину труб скважины. Применить класс впроекте, реально определяющем среднюю длину. Для ввода данных впроекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.13. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённой длине каждойтрубы определяет номер самой короткой трубы. Применить класс впроекте, реально определяющем такой номер. Для ввода данных в проектеобязательно использовать компонент StringGrid. Перед окончаниемработы проекта освободить динамическую память, выделеннуюпод объект.14. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённой длине каждойтрубы определяет номер самой длинной трубы. Применить класс в проекте,реально определяющем такой номер. Для ввода данных в проектеобязательно использовать компонент StringGrid. Перед окончаниемработы проекта освободить динамическую память, выделенную подобъект.15. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть в17


созданном классе наличие метода, который по введённой длине каждойтрубы определяет номер трубы, длина которой меньше всего отличаетсяот средней длины обсадных труб скважины. Применить класс в проекте,реально определяющем такой номер. Для ввода данных в проекте обязательноиспользовать компонент StringGrid. Перед окончанием работыпроекта освободить динамическую память, выделенную под объект.16. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённой длине каждойтрубы определяет номера двух самых коротких. Применить класс в проекте,реально определяющем такие номера. Для ввода данных в проектеобязательно использовать компонент StringGrid. Перед окончаниемработы проекта освободить динамическую память, выделенную подобъект.17. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённой длине каждойтрубы определяет номера двух самых длинных. Применить класс в проекте,реально определяющем такие номера. Для ввода данных в проектеобязательно использовать компонент StringGrid. Перед окончаниемработы проекта освободить динамическую память, выделенную подобъект.18. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы определяет номер трубы с наибольшимобъёмом. Применить класс в проекте, реально определяющем такойномер. Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.19. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы определяет номер трубы с наименьшимобъёмом. Применить класс в проекте, реально определяющем такойномер. Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.20. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть в18


созданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы вычисляет сумму объёмов труб. Применитькласс в проекте, реально определяющем такой номер. Для вводаданных в проекте обязательно использовать компонент StringGrid.Перед окончанием работы проекта освободить динамическую память,выделенную под объект.21. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы вычисляет среднее арифметическоеобъёмов обсадных труб. Применить класс в проекте, реально вычисляющемтакую величину. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проектаосвободить динамическую память, выделенную под объект.22. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы определяет номер трубы с объёмом,меньше всего отличающимся от среднего арифметического объёмоввсех труб. Применить класс в проекте, реально вычисляющем такой номер.Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободить динамическуюпамять, выделенную под объект.23. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве обсадных труб скважины. Предусмотреть всозданном классе наличие метода, который по введённым длине и внутреннемудиаметру каждой трубы определяет номер трубы с объёмом,больше всего отличающимся от среднего арифметического объёмоввсех труб. Применить класс в проекте, реально определяющем такойномер. Для ввода данных в проекте обязательно использовать компонентStringGrid. Перед окончанием работы проекта освободить динамическуюпамять, выделенную под объект.24. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве напорных сальников вертлюга, использованныхпри бурении скважины. Предусмотреть в созданном классе наличие метода,который по введённому времени работы каждого сальника определяетномер сальника, проработавшего дольше всех. Применить классв проекте, реально определяющем такой номер. Для ввода данных впроекте обязательно использовать компонент StringGrid. Перед19


окончанием работы проекта освободить динамическую память, выделеннуюпод объект.25. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве напорных сальников вертлюга, использованныхпри бурении скважины. Предусмотреть в созданном классе наличие метода,который по введённому времени работы каждого сальника определяетномер сальника, проработавшего меньше всех. Применить классв проекте, реально определяющем такой номер. Для ввода данных впроекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.26. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве напорных сальников вертлюга, использованныхпри бурении скважины. Предусмотреть в созданном классе наличие метода,который по введённому времени работы каждого сальника вычисляетсреднее время работы. Применить класс в проекте, реально вычисляющемсреднее время работы напорного сальника. Для ввода данных впроекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.27. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве напорных сальников вертлюга, использованныхпри бурении скважины. Предусмотреть в созданном классе наличие метода,который по введённому времени работы каждого сальника определяетномер сальника со временем работы, меньше всего отличающимсяот среднего времени работы всей группы сальников. Применитькласс в проекте, реально определяющем такой номер. Для ввода данныхв проекте обязательно использовать компонент StringGrid. Передокончанием работы проекта освободить динамическую память, выделеннуюпод объект.28. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве долот, использованных при бурении скважины.Предусмотреть в созданном классе наличие метода, который по введённомуколичеству метров, пробуренных каждым долотом, определяетномер долота с наибольшей проходкой. Применить класс в проекте, реальноопределяющем такой номер. Для ввода данных в проекте обязательноиспользовать компонент StringGrid. Перед окончанием работыпроекта освободить динамическую память, выделенную под объект.29. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве долот, использованных при бурении скважины.20


Предусмотреть в созданном классе наличие метода, который по введённомуколичеству метров, пробуренных каждым долотом, определяетномер долота с наименьшей проходкой. Применить класс в проекте, реальноопределяющем такой номер. Для ввода данных в проекте обязательноиспользовать компонент StringGrid. Перед окончанием работыпроекта освободить динамическую память, выделенную под объект.30. Объявить в Delphi класс, позволяющий объекту хранить информациюо количестве долот, использованных при бурении скважины.Предусмотреть в созданном классе наличие метода, который по введённомуколичеству метров, пробуренных каждым долотом, определяетдлину скважины. Применить класс в проекте, реально вычисляющемтакую длину. Для ввода данных в проекте обязательно использоватькомпонент StringGrid. Перед окончанием работы проекта освободитьдинамическую память, выделенную под объект.21


5. КУРСОВАЯ РАБОТА5.1. Методические указания по выполнению курсовой работыКурсовая работа состоит в выполнении двух заданий в соответствиис вариантом. Как правило, первая задача носит ярко выраженныйвычислительный характер. Суть работы состоит в разработке алгоритмарешения первой задачи и написания соответствующей программы наязыке программирования Delphi. Вторая задача формулируется так: всистеме Delphi создать заказной (авторский) компонент. Причём этоткомпонент должен помогать решать задачу, выполненную студентом в4-ом семестре в рамках индивидуального домашнего задания. Например,если задача состояла в нахождении суммы двух чисел (рис. 1), тоследует создать компонент-панель (TPanel), результат применения которогопоказан на рис. 2.Рис. 1. Проект для решения задачи из индивидуального домашнего заданияРис. 2. Результат применения созданного студентом компонента-панелиСозданный компонент обязательно должен быть расположен в Палитрекомпонентов Delphi, например, на закладке Samples (рис. 3).22


Рис. 3. Значок созданного компонента на закладке SamplesНомер варианта курсовой работы определяется как число, составленноеиз двух последних цифр номера зачетной книжки. Для курсовойработы, как и для индивидуального домашнего задания, имеется 30 вариантов.Поэтому вариант выбирается аналогично в соответствии сдвумя последними цифрами номера зачётной книжки:Последние две цифры номеразачётной книжки23Подлежащий выполнениювариант11 11 вариант32 32 – 30∙1= 2 вариант65 65 – 30∙2= 5 вариантДля первой задачи из варианта должны быть представлены:1. Краткое пояснение метода решения задачи, т.е. применяемогоалгоритма.2. Блок-схема алгоритма, выполненная в соответствии с ЕСПД.3. Пояснения к блок-схеме, приведенные отдельно от блок-схемы иоформленные в виде обычных предложений.4. Листинг программы.5. Скриншоты экрана монитора, отражающие спроектированнуюформу, введённые данные и полученные результаты.6. Выкладки, подтверждающие правильность полученных результатов.Для второго задания из варианта надо представить описание технологиисоздания компонента с необходимым обоснованием принятыхрешений, листинги модулей, скриншоты, аналогичные приведённым нарис. 1, 2, 3.Для обеих задач студент должен предоставить преподавателю файлы,позволяющие проверить работоспособность предлагаемых решенийи при необходимости внести коррективы. Как правило, это файлы срасширениями pas, dpr, dfm.При выполнении курсовой работы нужно пользоваться методическимиматериалами [11, 13], а также можно пользоваться Internetресурсами[14, 15, 16, 17].Аттестационная оценка курсовой работы учитывает функциональнуюполноту и качество решения поставленных задач, качество оформ-


ления отчёта, степень соблюдения стандартов, рекомендаций настоящихметодических указаний и непосредственно саму защиту работы (ответына вопросы преподавателя, уровень понимания и владения представленнымипрограммами).Вариант 11. Числа Фибоначчи (f n ) определяются формуламиf 0 =f 1 =1; f n =f n-1 +f n-2 при n=2,3, . . .2. Вычислить «S» – сумму простых чисел ряда Фибоначчи, которыене превосходят 1000.3. Создать компонент для решения задачи из ИДЗ (вариант 1).Вариант 21. Числа Фибоначчи (f n ) определяются формуламиf 0 =f 1 =1; f n =f n-1 +f n-2 при n=2,3, . . .2. Вычислить «S» – сумму чисел ряда Фибоначчи, которые не превосходят1000 и не являются простыми.3. Создать компонент для решения задачи из ИДЗ (вариант 2).Вариант 31. Числа Фибоначчи (f n ) определяются формуламиf 0 =f 1 =1; f n =f n-1 +f n-2 при n=2,3, . . .2. Вычислить «S» – сумму пяти последних чисел ряда Фибоначчипри n=40.3. Создать компонент для решения задачи из ИДЗ (вариант 3).Вариант 41. Дана последовательность целых чисел. Путем удаления некоторыхэлементов (не переставляя элементы), получить неубывающую последовательностьмаксимальной длины.2. Создать компонент для решения задачи из ИДЗ (вариант 4).Вариант 51. Множество «K» строится следующим образом: 1) Два натуральныхчисла a, b включены в множество «K». 2) Для любых «x», «y», входящихв «K», число x+y+xy включается в «K». 3) Других элементов в«K» нет. Определить, является ли Z элементом множества «K», если заданычисла a, b.2. Создать компонент для решения задачи из ИДЗ (вариант 5).24


Вариант 61. Даны целое n > 0 и последовательность из n вещественных чисел,среди которых есть хотя бы одно отрицательное число. Найти величинунаибольшего среди отрицательных чисел этой последовательности.2. Создать компонент для решения задачи из ИДЗ (вариант 6).Вариант 71. Написать программу, которая вычисляет периметр и площадьправильного n-угольника, вписанного в окружность заданного радиуса.2. Создать компонент для решения задачи из ИДЗ (вариант 7).Вариант 81. Логической переменной t присвоить значение true или falseв зависимости от того, является ли натуральное число k степенью 3 илинет.2. Создать компонент для решения задачи из ИДЗ (вариант 8).Вариант 91. Из заданных «n» предметов выбрать такие, чтобы их суммарныйвес был менее 30 кг, а стоимость – наибольшей. Вывести на дисплейсуммарную стоимость выбранных предметов и их индексы из массиваВ. Точнее – заданы два массива положительных чисел A[1:n] иB[1:n]. Выбрать такие числа i 1 , i 2 , . . . i k , чтобы сумма A[i 1 ]+A[i 2 ]+ . . . + A[i k ] 30, а сумма B[i 1 ]+B[i 2 ]+ . . .+B[i k ]= max.2. Создать компонент для решения задачи из ИДЗ (вариант 9).Вариант 101. Для заданного «a» вычислить принадлежащий интервалу (, 2)корень уравнения ln(ctgx-1)=a.2. Создать компонент для решения задачи из ИДЗ (вариант 10).Вариант 111. Ввести целое число 2 и натуральное k. Вычислить 2 k с выполнениемследующих условий: операцией возведения в степень пользоватьсянельзя; k может оказаться настолько большим, что недопустимо выполнятьk умножений. То есть надо предусмотреть возможность переполненияразрядной сетки компьютера, но всё равно вывести на дисплейвсе цифры полученной степени числа 2.2. Создать компонент для решения задачи из ИДЗ (вариант 11).25


Вариант 121. Вычислить дробную часть среднего геометрического трёх заданныхположительных чисел.2. Создать компонент для решения задачи из ИДЗ (вариант 12).Вариант 131. Методом выбора определите максимальную и минимальнуюсуммы элементов матрицы m n при условии, что при вычислении очереднойсуммы в каждой строке и каждом столбце может быть выбрантолько один элемент.2. Создать компонент для решения задачи из ИДЗ (вариант 13).Вариант 141. Дана непустая последовательность положительных чисел, за которойследует ноль (это признак конца последовательности). Вычислитьсреднее геометрическое этих чисел.2. Создать компонент для решения задачи из ИДЗ (вариант 14).Вариант 151. Для произвольных вещественных чисел a, b и c определить, имеетли уравнение ax 2 +bx+c=0 хотя бы одно вещественное решение.2. Создать компонент для решения задачи из ИДЗ (вариант 15).Вариант 161. Дано натуральное k. Определить k-ю цифру в последовательности110100100010000100000 . . . , в которой выписаны подряд степени10.2. Создать компонент для решения задачи из ИДЗ (вариант 16).Вариант 171. Для заданных чисел p, a и b (a b) определить, имеет ли уравнениеarctg (2 x - p)= 2 корень на отрезке [a, b].2. Создать компонент для решения задачи из ИДЗ (вариант 17).Вариант 181. Дано целое k от 1 до 180. Определить, какая цифра находится вk-ой позиции последовательности 10111213 . . . 9899, в которой выписаныподряд все двузначные числа. Последовательность нельзя задаватьпри помощи строкового типа.2. Создать компонент для решения задачи из ИДЗ (вариант 18).26


Вариант 191. Дано натуральное k. Определить k-ю цифру в последовательности123456789101112131415 . . . , в которой выписаны подряд все натуральныечисла.2. Создать компонент для решения задачи из ИДЗ (вариант 19).Вариант 201. Дано натуральное k. Определить k-ю цифру в последовательности149162536 . . . , в которой выписаны подряд квадраты всех натуральныхчисел.2. Создать компонент для решения задачи из ИДЗ (вариант 20).Вариант 211. Дано натуральное k. Определить k-ю цифру в последовательности1123581321 . . . , в которой выписаны подряд все числа Фибоначчи.2. Создать компонент для решения задачи из ИДЗ (вариант 21).Вариант 221. В заданный непустой текст входят только цифры и буквы. Определить,является ли текст десятичной записью числа, кратного 9.2. Создать компонент для решения задачи из ИДЗ (вариант 22).Вариант 231. В заданный непустой текст входят только цифры и буквы. Определить,удовлетворяет ли он следующему свойству: текст начинается снекоторой ненулевой цифры, за которой следуют только буквы, и ихколичество равно числовому значению этой цифры.2. Создать компонент для решения задачи из ИДЗ (вариант 23).Вариант 241. В заданный непустой текст входят только цифры и буквы. Определить,удовлетворяет ли он следующему свойству: текст начинается с kбукв ( 1 k 9), за которыми следует только одна литера-цифра с числовымзначением k.2. Создать компонент для решения задачи из ИДЗ (вариант 24).Вариант 251. В заданный непустой текст входят только цифры и буквы. Определить,удовлетворяет ли он следующему свойству: текст состоит толькоиз цифр, причём их числовые значения образуют арифметическуюпрогрессию (например: 2468, 741, 3).2. Создать компонент для решения задачи из ИДЗ (вариант 25).27


Вариант 261. В заданный непустой текст входят только цифры и буквы. Определить,удовлетворяет ли он следующему свойству: текст содержит(помимо букв) только одну цифру, причём её числовое значение равнодлине текста.2. Создать компонент для решения задачи из ИДЗ (вариант 26).Вариант 271. В заданный непустой текст входят только цифры и буквы. Определить,удовлетворяет ли он следующему свойству: сумма числовыхзначений цифр, входящих в текст, равна длине текста.2. Создать компонент для решения задачи из ИДЗ (вариант 27).Вариант 281. Два простых числа называются «близнецами», если они отличаютсядруг от друга на 2 (таковы, например, числа 41 и 43). Найти всепары «близнецов» из отрезка [n, 2n], где n – заданное целое число,большее 2.2. Создать компонент для решения задачи из ИДЗ (вариант 28).Вариант 291. Вывести все цифры десятичной записи числа 1!+2!+3!+…+100!.(Рекомендация: представить «длинное» натуральное число в виде массиваиз цифр и реализовать нужные операции над ними).2. Создать компонент для решения задачи из ИДЗ (вариант 29).Вариант 301. Два натуральных числа называются «дружественными», есликаждое из них равно сумме всех делителей другого, за исключением егосамого (таковы, например, числа 220 и 284) Найти все пары «дружественных»чисел, не превосходящих заданного натурального числа.2. Создать компонент для решения задачи из ИДЗ (вариант 30).28


6. ПРОМЕЖУТОЧНЫЙ КОНТРОЛЬПри изучении дисциплины «Программирование и алгоритмизация»студенты сдают экзамен в 4-ом семестре (теоретический, лабораторныйи практический разделы) дифференцированный зачёт в 5-ом семестре(курсовая работа).6.1. Вопросы для подготовки к экзамену1. Основные элементы IDE Delphi.2. Типы свойств компонентов Delphi.3. Разновидности методов в Delphi.4. Преимущества визуального программирования по сравнению страдиционным.5. Ограничения доступа к разделам public, protected иprivate при объявлении класса.6. Понятие “программный продукт”.7. Характерные черты современного этапа развития программирования.8. “Жизненный цикл” программы.9. Структуризация в практике программирования.10. Структурное программирование.11. Стандартные функциональные блоки (структуры) для полученияструктурированных программ.12. Характеристика этапа “Разработка программы”.13. Оформление программы.14. Тестирование и отладка программы.15. Метод пошаговой детализации.16. Объектно-ориентированное программирование.17. Понятие класса и объекта.18. Синтаксис и пример класса.19. Объявление переменных типа класс.20. Назначение конструктора в Object Pascal.21. Понятие метода в Object Pascal.22. Синтаксис объявления конструктора.23. Деструктор. Назначение, синтаксис объявления.24. Классовые процедуры и функции. Синтаксис объявления.25. Реализация методов. Неявный оператор with self do.26. Правило согласованности работы конструктора и деструктора.27. Вызов методов.28. Синтаксис вызова конструктора.29


29. Синтаксис для вызова метода класса.30. Полностью квалифицированное имя метода. Использованиеwith.31. Синтаксис для вызова деструктора.32. Методы для доступа к полям. Преимущества их использования.33. Объект Canvas.34. Наиболее употребительные свойства класса TCanvas.35. Наиболее употребительные методы Canvas.36. Понятие исключения.37. Технология использования исключения.38. Конструкция try - finally: синтаксис, назначение и использование.39. Конструкция try - except: синтаксис, назначение и использование.40. Вложенные обработчики исключений.Пример экзаменационного билета для студентов классическойформы заочного обучения:1. Разновидности методов в Delphi.2. Объект Canvas.3. Дана матрица целых чисел А[N, N]. Определить номер строки,в которой сумма элементов минимальна. (Написать текст программы).Пример экзаменационного билета для студентов, выбравшихдистанционные обучающие технологии (ДОТ). Билет включает 20 заданий:1. Основная идея процедурного программирования (выбрать вариантответа)1) решение задачи оформить в виде подпрограммы2) подобрать для решения задачи подходящую подпрограмму3) определить, какие именно подпрограммы будут использоватьсяв программе4) разработать для подпрограммы наилучший алгоритм2. Основная идея объектно-ориентированного программирования(выбрать вариант ответа)1) облегчить создание приложений путём использования компонентов2) уменьшение времени разработки приложений3) сократить объём повторного написания кода за счёт механизманаследования30


4) связать данные с обрабатывающими их процедурами в единоецелое – объект3. Составная часть интегрированной среды разработчика Delphi, вкоторую входит панель (линейка) инструментов (выбрать вариантответа)1) главное окно2) инспектор объекта3) дизайнер форм4) менеджер проекта5) редактор кода4. Раздел объявления класса, к которому имеют доступ только классы-потомки1) security2) public3) protected4) private5) all5. Заполнить пропуск.Объявление __________ имеет три возможных раздела, которыеопределяют доступность полей и методов: private,protected, public.1) переменных2) модулей3) заголовков4) интерфейсов5) классов6. Заполнить пропуск._____________ аналогичны самостоятельным функциям, заисключением того, что они присоединены к классу и вызываютсятолько через объект.1) Классовые функции2) Классовые процедуры3) Методы-процедуры4) Конструкторы5) Деструкторы6) Методы-функции31


7. Наиболее эффективное средство облегчения понимания программы1) комментирование2) варьирование3) архивирование4) транскрипция5) инсталляция8. Заполнить пропуск.Идеи структурного программирования требуют как можно режеприменять в программе оператор ___________.1) цикла2) if3) case4) перехода5) присваивания9. Виды программного обеспечения (выбрать несколько вариантовответа)1) оперативное2) прикладное3) структурное4) системное5) визуальное10. Составные части основного окна IDE Delphi (выбрать нескольковариантов ответа)1) Инспектор объектов2) Панель инструментов3) Менеджер проекта4) Палитра компонентов5) Редактор кода11. Способы вызова классовой функции (выбрать несколько вариантовответа)1) через объект2) через процедуру3) через класс4) через поле5) через свойство32


12. Стандартные логические структуры, применяемые для составленияхорошо структурированных программ (выбрать несколько вариантовответа)1) Следование2) Переход3) Ветвление4) Присваивание5) Повторение (цикл)13. Порядок выполнение операций при создании проекта в Delphi(указать последовательность)1) Компиляция2) Установление свойств3) Размещение компонентов на форме4) Выполнение5) Отладка14. Последовательность действий при намерении создать приложениедля черчения фигуры (указать последовательность)1) Активизировать событие OnPaint2) Создать новый проект3) Набрать код4) Перейти на страницу Events (События)15. Последовательность появления терминов и разделов в структуререализации деструктора (указать последовательность)1) ИмяДеструктора2) Destructor3) Параметры4) Локальные объявления5) Inherited16. Последовательность появления терминов и разделов в структуререализации классовой процедуры (указать последовательность)1) Procedure2) Исполняемые операторы3) Параметры4) class5) Имя процедуры17. Установите соответствие между парадигмами программирования1) Процедурное программирование33


2) Логическое программирование3) Модульное программирование4) Объектно-ориентированное программированиеи языками программирования1) Delphi2) Fortran3) Pascal4) Prolog18. Установите соответствие между наименованием символа и егографическим представлением1) Граница цикла (конец)2) Процесс3) Данные4) Дисплей1 .2 .3 .4 .19. Вычислить количество тестовых проверок, если программа тестируетсякак единое целое (дать краткий ответ)20. Вычислить количество тестовых проверок, если каждый модультестируется автономно (дать краткий ответ)34


7. УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ7.1. Литература обязательная1. Давыдов В.Г. Программирование и основы алгоритмизации:учеб. пособие. – М.: Высш. шк., 2003. – 447 с.2. Сухарев М. Delphi. Полное руководство. Включая версию 2010.– СПб.: Наука и техника, 2010. – 1035 с.3. Фаронов В.В. Delphi. Программирование на языке высокогоуровня: учеб. для вузов. – СПб.: Питер, 2009. – 640 с.4. Истомин Е.П. Программирование на языках высокого уровня:учеб/ Е.П. Истомин, С.Ю. Неклюдов. – СПб: Изд-во Михайлова В.А.,2003. – 719 с.7.2. Литература дополнительная5. Бобровский С.И. Delphi 7: Учебный курс. – СПб.: Питер, 2008. –736 с.6. Культин Н.Б. Delphi в задачах и примерах. – СПб.: БХВ-Петербург, 2007. – 288 с.7. Архангельский А.Я. Программирование в Delphi: учебник поклассическим версиям Delphi. – М.: Бином, 2008. – 804 с.8. Фленов М.Е. Библия Delphi. – СПб.: БХВ-Петербург, 2009. –799с.9. Голованов М.Е. Создание компонентов в среде Delphi/ М.Е. Голованов,Е.О. Веселов. – БХВ-Петербург, 2004. – 320 с.10. Фаронов В.В. Паскаль и Windows. - М.:МВТУ-ФЕСТО Дидактик,1995. – 639 с.7.3. Учебно-методические пособия11. Программирование и алгоритмизация: метод. указ. и задания клабораторным работам для студентов направления 220700 «Автоматизациятехнологических процессов и производств» ИДО / сост.Н.М. Семёнов; Томский политехнический университет.– Томск: Изд-воТомского политехнического университета, 2012. – 88 с.12. Семёнов Н.М. Программирование и основы алгоритмизации:учебное пособие / Н.М. Семенов. – Томск: Изд-во Томского политехническогоуниверситета, 2009. – 96 с.13. Программирование и алгоритмизация: метод. указ. и задания ккурсовой работе студентов направления 220700 «Автоматизация технологическихпроцессов и производств» ИДО / сост. Н.М. Семёнов; Томскийполитехнический университет.– Томск: Изд-во Томского политехническогоуниверситета, 2012. – 48 с.35


7.4. Internet-ресурсы14. Сайт кафедры интегрированных компьютерных систем управленияТПУ.– Режим доступа:http://portal.tpu.ru/departments/kafedra/iksu/ucheb_rabota, вход свободный.15. Вальвачев А.Н. и др. Программирование на языке Delphi. Глава9. Окна диалога.– Режим доступа: http://rsdn.ru/article/Delphi7_09.xml,вход свободный.16. Все о Delphi.– Режим доступа: htpp://beluch.ru/progr/100comp,вход свободный.17. ЭВМ. Программирование.– Режим доступа: htpp://hiintel.ru/800/1.html,вход свободный.36


Учебное изданиеПРОГРАММИРОВАНИЕ И АЛГОРИТМИЗАЦИЯМетодические указания и индивидуальные заданияСоставительСЕМЁНОВ Николай МихайловичРецензенткандидат технических наук,доцент кафедры ИКСУ ИКЕ.И. ГромаковРедакторКомпьютерная верстка В.П. ЗиминОтпечатано в Издательстве ТПУ в полном соответствиис качеством предоставленного оригинал-макетаПодписано к печати . Формат 60×84/16. Бумага «Снегурочка».Печать Xerox. Усл.печ.л. 2,15. Уч.-изд.л. 1,95.Заказ . Тираж экз.Национальный исследовательский Томский политехнический университетСистема менеджмента качестваИздательства Томского политехнического университета сертифицированаNATIONAL QUALITY ASSURANCE по стандарту BS EN ISO 9001:2008. 634050, г. Томск, пр. Ленина, 30.Тел./факс: 8(3822)56-35-35, www.tpu.ru37

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!