Главная » Просмотр файлов » Лекции по информатике

Лекции по информатике (984119), страница 28

Файл №984119 Лекции по информатике (Лекции по информатике) 28 страницаЛекции по информатике (984119) страница 282015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 28)

с технологической позиции воплощает нисходящук> точку зрения на ЛТД как на набор операций, но не как на множество оперируемых обьектов. В языке программирования такое определение оформляется как специальная синтаксическая конструкция -- часть программы, которая называется классом (в языках Симула 67 и Сопспггеп1, Раэса1), кластером (С1Х), формой (А11»1<аг<1), ъ<одулем (Мо<1п1а, Епс!1<1), определением (Меэа), пакетоъл 1Ада), капсулой (Кпеве1).

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

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

В наиболес развитой форме <л1Д присутствуют в исследовательских языках А1р1<аг<1, СЕС', и, конечно же, в полноценных средах обьектно-ориентированного программирования, поглотивгпих А"ГД в качестве неотьемлемой составной части. 7.2.1 Методы абстракции в языках программирования Процесс, абстракции может быть рассмотрен как некоторое обобгцение ~21).

Он позволяет нам забыть об информации и, следовательно, рассматривать различные предметы так, .как если бы они были эквивалентны. Мы выполняем это в надежде упростить наш анализ, отделяя существенные атрибуты от несущественных. Однако при этом важно знать, что критерий такого отделения во многоь< зависит от контекста. В контексте школьного курса, мы учимся абстрагировать от (8<<3)» 3 и 5 + 3 к понятию, представленному числоъл 8. В дальнейшем мы узнаем, что при работе на большинстве вычислительных машин такая абстракция приводит к неприятностям ~40~. Например, рассмотрим структуру, приведенную на рисунке.

Понятием здесь является «млекопитающие». Все млекопитаклцие обладак>т определенными оощими характеристиками. Например, .все женские особи этого класса вырабатывая>т молоко, На таком уровне абстракции мы фокусируемся именно на этих общих характеристиках и игнорируем раз- личи.я между существующими видами млекопитающих.

Иерархия абстракций Г .* Н )илсаты Грызуны Обезьяны Человек 1осп1с1: =Га1не 1:= 1ожЬоппс1(а) Мп1е 1 < ЫдЬЬоппс1(а) + 1 с1о 11 а[1] = е СЬеп х:= 1 1оппс1: =огне епс1 1:=1+1 епс1 1оппс1:=Ка1ве 1: = 1йдЬЬоппс1[а) тл Ь11е 1 > 1отсЬоппс1(а) — 1 с1о 11 а[1] = е СЬеп х:= 1 1оппс1: =огне епс1 1:=1 — 1 епс1 На уровне абстракции, определенном использованным языком высокого уровня, очевидно, что приведенные фрагменты отличаются друт от друга: если е присутствует в а, На нижнем уровне абстракции мы сосрссдоточиваем свое внимание на конкретных представителях семейства млс;копитающих.

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

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

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

Рассмотрим фрагмент программы линейного поиска: то первый фрагмент отыскивает индекс его первого вхождения, .а второй - индекс последнего вхождения. Первая программа устанавливает т', в ЕгЕд66оыиЕ(а) + 1, а вторая- в ЕоьвЕюиисЕ(а) — 1. Обе программы, однако, были написаны для выполнения одной и той же функции: установить в Евин значение Еа1ве, если е отсутствует в а, а в противном случае установить в ЕоипсЕ багие и в з индекс вхождения е в а. Если нам необходимо выполнение именно этого требования, то становится очевидным, что приведенные фрагменты программ не находятся на требуемом уровне абстракции. Одним из подходов к репюнию такой проблемы является создание языков более высокого уровня, реализованных на базе некоторого фиксированного набора относительно обобщенных универсальных структур данных и мощном наборе примитивов, используемых для манипуляции с ними.

Например, рассмотрим язык, в котором имеются примитивы ьэ ш и пнЕех оЕ, позволяющие осуществлять соответствующие операции над массивами. Тогда рассматриваемая задача легко реализуется следующим образом: ЕошЫ: — 1а ш (а, е) ЕЕ Еоцпс1 СЬеп х г= паек оЕ (а, е) ешЕ Недостатком такого подхода является предположение о том, что разраГютчик языка включит в него большинство абстракций, которые могут понадобиться пользователю.

Предвидеть все возможные ситуации довольно затруднительно. Однако, даже если это и удалось бы сделать, получившийся язык содержал бы столь много встроенных абстракций, что работа. с пим стала бы невозможной. Альтернативой может быть создание таких языковых механизмов, которые позволяют программисту создавать свои собственные абстракции по мере необходимости. Е1аиболее распространенным механизмом такого рода является использование процедур. Разделяя в программе тело процедуры и обращения к ней, язык высокого уровня реализует тем самым два важных метода абстракции: абстрпкцпл через парал~етрпзацию и абсшЕяил1 ил через спсцпфпкацит 7.2.1.1 Параметризационный метод Абстракция через параметризацию позволяет нам, используя параметры, представить фактически неограниченный набор различных вычислений одной программой, которая есть абстракция всех этих наборов ~40).

Рассмотрим следующий текст программы: х~х+уэр В ней описаны вычисления., в процессе которых квадрат значения некоторой переменной х складывается с квадратом значения переменной у. О другой стороны, выражение Л Лх, р: ЕпЕ. (х * я. + и ~ р) описывает набор вычислений, в процессе которых возводится в квадрат значение, хранимое в некоторой целочисленной переменной (к полученному результату мы временно ссылаемся как к г) и этот результат добавляется к квалрату значения, хранимого в другой целочислешюй переменной, временно называемой нами у. В этом выражении мы называем х и у формальными параметрами, а выражение т, ~ х + д ~ у-телом выражения. Мы производим вычисления, связывая формальные параметры с аргументами и вычисляя затем все выражение. Например, т,у: гЫ.(аа ~ х+ и ~ у)(и, в) эквивалентно и>э гв+ в -.

В более привычном представлении мы можем заменить приведенное выпю выражение Л на ас1нагеэ — ргос (х, у: >пс) геФпгпв (п>1) ге1пгп (х * х - у~у) епс1 а замену формальных параметров — на фактические и вычисление выражения можем выполнять через обращение к процедуре: вс1цагеэ(вчи) Программисты часто используют абстракцию через параметризацию, даже не замечая этого. Например, предположим, что нам необходима процедура, которая сортирует массив целых чисел а. В далысейшем, вероятно, понадобится отсортировать некоторый другой массив, возможно, в другом месте этой же программы. Однако маловероятно, что каждый такой массив будет иметь имя а,.

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

Характеристики

Тип файла
DJVU-файл
Размер
675,15 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее