textarchive.ru

Главная > Документ


Литература

1. Основы информатики и вычислительной техники: Пробное учебное пособие для средних учебных заведений. Ч. 1 / А.П. Ершов, В.М. Монахов, С.А. Бешенков и др.; под ред. А.П. Ершова и В.М. Монахова. М.: Просвещение, 1985, 96 с.

2. Кушниренко А.Г., Лебедев Г.В., Зайдельман Я.Н. Информатика. 7–9-е классы: Учебник для общеобразовательных учебных заведений. М.: Дрофа, 2000, 336 с.

3. Информатика: Энциклопедический словарь для начинающих / Сост. Д.А. Поспелов. М.: Педагогика-Пресс, 1994, 352 с.

4. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2000, 366 с.

5. Семакин И.Г. Информатика. Базовый курс. 7–9-е классы / И.Г. Семакин, Л.А. Залогова, С.В. Русаков, Л.В. Шестакова. М.: БИНОМ, 2004, 390 с.

6. Бирих Р.В., Еремин Е.А., Чернатынский В.И. Компьютерные модели в школьном курсе физики. Информатика, 2006, № 14, с. 3–45; № 15, с. 3–13.

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

В качестве примера рассмотрим поиск информации в базе данных в формате MS Access. База данных содержит следующие поля.

Запросы на поиск информации в базе данных

1. Кто родился весной?

2. Кто учится в одиннадцатом классе?

3. Кто не занимается тяжелой атлетикой?

4. Кто не определил свое хобби?

5. Кто из мальчиков живет на улице Чердынской?

6. У кого карие глаза и этот человек не умеет вязать?

Примерная информация для заполнения базы данных приведена ниже.

Для указанных выше запросов логические выражения могут выглядеть так:

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

"Дата" = Like "*.03.*" Or Like "*.04.*" Or Like "*.05.*"

Диалоговое окно для создания запроса в режиме конструктора выглядит в этом случае так:

2. "Класс" = 11

3. "Хобби" <>"тяжелая атлетика"

4. "Хобби" Is Null

5. "Пол" = Истина and "Улица" = "Чердынская"

6. "Глаза" = "карие" and "Хобби" <> "аэробика"

В данном примере рассматривается однотабличная база данных. Соответственно, запросы в этом случае строятся, хотя и с помощью сложных логических выражений, более простые, чем в случае многотабличной базы данных. Примеры использования многотабличных баз данных и задания для формирования данного билета можно найти в элективном курсе информатики И.Г. Семакина, Е.К. Хеннера2.

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

Задача. Используется кодовая таблица CP1251 (Windows Cyrillic). Сколько килобайт будет занимать файл в простом текстовом формате (plain text), если в тексте 300 страниц, на странице 25 строк, а в строке в среднем 45 символов? Оцените объемы того же текста в форматах doc, rtf и в HTML. Как изменится объем файла в этих форматах, если применить элементы форматирования (использовать различные шрифты и начертания)?3

Решение. В заданной системе кодировки один символ занимает 1 байт. Поэтому для ответа на поставленный вопрос достаточно подсчитать количество символов в тексте.

300 x 25 x 45 = 337 500 символов, что соответствует 337 500 байтам, или около 329,59 Кб.

В HTML собственно текстовая информация дополнится служебной информацией, тегами для разметки текста, что в среднем увеличит размер предыдущего файла до »500 Кб. Добавление дополнительных элементов форматирования (за счет добавления соответствующих тегов) может незначительно увеличить размер на 10–15 Кб4.

Оценивая объемы того же текста в форматах doc, rtf, можно лишь предположить, что использование некоторых команд разметки и т.д., присутствующих в этих форматах, приведет к росту размера файла, увеличив его в 2,5–3 раза, т.е. около 1 Мб. При этом дополнительные элементы форматирования несущественно изменят объем. Не следует забывать, что в файлах этих форматов хранится и некоторая служебная информация, объем которой оценить затруднительно.

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

1 Для n = 2, в частности, окончательные значения t1 и t2 легко вычисляются путем решения системы из двух уравнений для них, что позволяет провести еще один тест программы.

2Семакин И.Г. Информационные системы и модели. Элективный курс: Учебное пособие / И.Г. Семакин, Е.К. Хеннер. М.: БИНОМ. Лаборатория Знаний, 2005, 303 с.: илл.

Семакин И.Г. Информационные системы и модели. Элективный курс: Практикум / И.Г. Семакин, Е.К. Хеннер. М.: БИНОМ. Лаборатория Знаний, 2006, 87 с.: илл.

3 Следует признать формулировку задания (как общего, так и этого частного) некорректной, поскольку, говоря об оценке размера файла, необходимо знать о внутренних форматах файлов, а, например, формат .doc является закрытым (открытым является формат файлов WinWord 97).

4 Если для добавления новых элементов форматирования используется стиль (в частности, его описание хранится в отдельном файле), то объем файла в формате HTML просто не изменится.

Билет № 6

1. Технология программирования. Структурное и объектно-ориентированное программирование.
Процедуры и функции. Локальные и глобальные переменные

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

 

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

· указание последовательности выполнения технологических операций;

· перечисление условий, при которых выполняется та или иная операция;

· описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т.п.

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

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

Исторически в развитии программирования можно выделить несколько принципиально отличающихся методологий.

Изначально понятие технологии как таковой появилось в период “стихийного” программирования (это 60-е годы прошлого столетия). В этот период отсутствовало понятие структуры программы, типов данных и т.д. Вследствие этого код получался запутанным, противоречивым. Программирование тех лет считалось искусством. Конец 60-х — кризис в программировании.

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

Другим базовым принципом структурного программирования является использование при составлении программ только базовых алгоритмических структур (см. билет № 4), запрет на использование оператора GOTO.

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

Поддержка принципов структурного программирования была заложена в основу так называемых процедурных языков программирования. Как правило, они включали основные “структурные” операторы передачи управления, поддерживали вложение подпрограмм, локализацию и ограничение области “видимости” данных. Среди наиболее известных языков этой группы стоит назвать PL/1, ALGOL-68, Pascal, С.

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

Модульное программирование предполагает выделение групп подпрограмм, использующих одни и те же глобальные данные, в отдельно компилируемые модули (библиотеки подпрограмм), например, модуль графических ресурсов. Связи между модулями при использовании данной технологии осуществляются через специальный интерфейс, в то время как доступ к реализации модуля (телам подпрограмм и некоторым “внутренним” переменным) запрещен. Эту технологию поддерживают современные версии языков Pascal и С (C++), языки Ада и Modula.

Объектно-ориентированное программирование (ООП) определяется как технология создания сложного программного обеспечения, основанная на представлении программы в виде совокупности объектов,каждый из которых является экземпляром определенного типа (класса),а классы образуют иерархию с наследованием свойств. Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений.

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

Бурное развитие технологий программирования, основанных на объектном подходе, позволило решить многие проблемы. Так, были созданы среды, поддерживающие визуальное программирование, например, Delphi, C++ Builder, Visual C++ и т.д. При использовании визуальной среды у программиста появляется возможность проектировать некоторую часть, например, интерфейсы будущего продукта, с применением визуальных средств добавления и настройки специальных библиотечных компонентов. Результатом визуального проектирования является заготовка будущей программы, в которую уже внесены соответствующие коды.

Можно дать обобщающее определение: объект ООП — это совокупность переменных состояния и связанных с ними методов (операций). Упомянутые методы определяют, как объект взаимодействует с окружающим миром.

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

Инкапсуляция — это механизм, который объединяет данные и методы, манипулирующие этими данными, и защищает и то и другое от внешнего вмешательства или неправильного использования. Когда методы и данные объединяются таким способом, создается объект.

Применяя инкапсуляцию, мы защищаем данные, принадлежащие объекту, от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным. Кроме того, применение этого принципа очень часто помогает локализовать возможные ошибки в коде программы. А это намного упрощает процесс поиска и исправления этих ошибок. Можно сказать, что инкапсуляция подразумевает под собой сокрытие данных, что позволяет защитить эти данные. Однако применение инкапсуляции ведет к снижению эффективности доступа к элементам объекта. Это обусловлено необходимостью вызова методов для изменения внутренних элементов (переменных) объекта. Но при современном уровне развития вычислительной техники эти потери в эффективности не играют существенной роли.

Наследование — это процесс, посредством которого один объект может наследовать свойства другого объекта и добавлять к ним черты, характерные только для него. В итоге создается иерархия объектных типов, где поля данных и методов “предков” автоматически являются и полями данных и методов “потомков”.

Смысл и универсальность наследования заключается в том, что не надо каждый раз заново (“с нуля”) описывать новый объект, а можно указать “родителя” (базовый класс) и описать отличительные особенности нового класса. В результате новый объект будет обладать всеми свойствами родительского класса плюс своими собственными отличительными особенностями.

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

Современная технология программирования — компонентный подход, который предполагает построение программного обеспечения из отдельных компонентов — физически отдельно существующих частей программного обеспечения, которые взаимодействуют между собой через стандартизованные двоичные интерфейсы. В отличие от обычных объектов объекты-компоненты можно собрать в динамически вызываемые библиотеки или исполняемые файлы, распространять в двоичном виде (без исходных текстов) и использовать в любом языке программирования, поддерживающем соответствующую технологию. На сегодня рынок объектов стал реальностью. Это позволяет программистам создавать продукты, хотя бы частично состоящие из повторно использованных частей, т.е. использовать технологию, хорошо зарекомендовавшую себя в области проектирования аппаратуры.

Компонентный подход лежит в основе технологий, разработанных на базе COM (Component Object Model — компонентная модель объектов), и технологии создания распределенных приложений CORBA (Common Object Request Broker Architecture — общая архитектура с посредником обработки запросов объектов). Эти технологии используют сходные принципы и различаются лишь особенностями их реализации.

Технология СОМ фирмы Microsoft является развитием технологии OLE (Object Linking and Embedding — связывание и внедрение объектов), которая использовалась в ранних версиях Windows для создания составных документов. Технология СОМ определяет общую парадигму взаимодействия программ любых типов: библиотек, приложений, операционной системы, т.е. позволяет одной части программного обеспечения использовать функции (службы),предоставляемые другой, независимо от того, функционируют ли эти части в пределах одного процесса, в разных процессах на одном компьютере или на разных компьютерах. Модификация СОМ, обеспечивающая передачу вызовов между компьютерами, называется DCOM (Distributed COM — распределенная СОМ).

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

Обсудим далее то, что в конечном итоге является “кирпичиками”, строительным материалом любой программы — подпрограммы и варианты их реализации на примере языка Pascal — процедуры и функции.

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

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

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

Подпрограммы могут быть двух видов: подпрограмма без параметров и подпрограмма с параметрами. Обращение к подпрограмме может быть организовано из любого места основной программы или другой подпрограммы сколько угодно раз.

При работе с подпрограммами важными являются понятия формальных и фактических параметров. Формальные параметры — это идентификаторы входных данных для подпрограммы. Если формальные параметры получают конкретные значения, то они называются фактическими. Формальные параметры могут получить конкретные значения только в той программе, где производится обращение к данному модулю-подпрограмме. Тип и порядок записи, а также семантическое (смысловое) наполнение фактических параметров должны быть такими же, как и формальных параметров. В противном случае результат работы программы будет непредсказуемым. Из этого следует, что фактические параметры используются при обращении к подпрограмме из основной, а формальные параметры — только в самой подпрограмме.

Подпрограмма с параметрами используется для записи многократно повторяющихся действий при разных исходных данных. Подпрограммы с параметрами можно разделить на два типа: подпрограммы-функции и просто подпрограммы с параметрами (их называют процедурами).

При составлении подпрограмм с параметрами надо соблюдать следующие правила:

1) каждая подпрограмма имеет свое имя и список формальных параметров;

2) процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Но результатом могут быть, конечно, не только значения переменных, но какое-либо действие, выполненное ЭВМ.

Пример 1. Используем алгоритм нахождения наибольшего общего делителя двух натуральных чисел в качестве вспомогательного при решении задачи: составить программу вычитания дробей (a, b, c, d — натуральные числа). Результат представить в виде обыкновенной несократимой дроби.

Program Sub;

Var A, B, C, D, G, E, F : Integer;

Procedure Nod(M, N : Integer; Var K : Integer);

Begin

While M <> N Do

If M > N Then M := M — N Else N := N — M;

K := M

End;

Begin

Write('Введите числители и знаменатели дробей:');

ReadLn(A, B, C, D);

E := A * D — B * C;

F := B * D;

If E = 0 Then WriteLn(E)

Else Begin

Nod(Abs(E), F, G);

E := E Div G;

F := F Div G;

WriteLn('Ответ: ', E, '/', F)

End

End.

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

Вызов процедуры осуществляется следующим образом:

<Идентификатор (имя) процедуры>

(<список фактических параметров>);

Например,

Nod(Abs(E), F, G);

По способу передачи фактических значений в подпрограмму в Turbo Pascal выделяют параметры-переменные, параметры-значения, параметры-константы. Есть и другие способы, которые менее актуальны.

Функция (в отличие от процедуры) всегда возвращает единственное значение.

Покажем, как изменится подпрограмма из примера, если ее записать в виде функции.

Function Nod(M, N : Integer) : Integer;

Begin

While M <> N Do

If M > N Then M := M — N Else N := N — M;

Nod := M

End;

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

Вызов функции будет следующим:



Скачать документ

Похожие документы:

  1. Примерные ответы на профильные билеты

    Документ
    Примерныеответынапрофильныебилеты Е.А. Еремин, А.П. Шестаков От авторов Уважаемые ... . М.: Энергия, 1973, 144 с. 5. Еремин Е.А., Шестаков А.П. Примерныеответынапримерныебилеты // Информатика, 2002, № 13 (350), с. 9–13 ...
  2. Профильное обучение

    Сценарий
    ... (Методическая консультация. Профильная школа). Профильное обучение: вопросы и ответы : [ответына некоторые актуальные вопросы] ... . Анализ существующего положения дел. Еремин Е. А. Примерныеответынапрофильныебилеты / Е. А. Еремин, А. П. Шестаков. ...
  3. Ответы на экзаменационные билеты по литературе 11 класс

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

    Документ
    Примерныеответына теоретические вопросы билетов. Профильный уровень Билет № 1 Понятие информации. Виды ... так, чтобы на них можно было ответить «да» или ... в Америке и мангустов — на острове Ямайка. Билет № 11 Информационные основы управления ...
  5. Примерные билеты по физике для сдачи экзамена по выбору выпускниками xi (xii) классов общеобразовательных учреждений российской федерации пояснительная записка

    Документ
    ... изучавших физику на базовом и напрофильном уровнях. Содержание билетов учитывает требования ... 2) плакаты и таблицы для ответовна теоретические вопросы, 3) непрограммируемый калькулятор ... именно статистические исследования? Примерныебилеты по физике для ...

Другие похожие документы..