Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 90

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 90 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 902019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

68. Рассмотрите распространенную ошибку набора, заключающуюся в перестановке соседних букв. Перепишите приведенный ниже фрагмент кода с использованием структуры цикла на следующих языках. 1О.1. Рааса!. 10.2. ГОКТКАХ 77. 10.3. Ада. 10.4. С, С++ или зата. )с:= (3 + 13) / 27 1оор: 1й й > 10 "Леп алого огас )с:= К+ 1 3 * й посо 1оор оос ". Предполагается, что все переменные являются целочисленными. Определите. какой язык для этого кода предоставляет наибольшую легкость написания программы, наилучшую читабельность и оптимальную комбинацию этих свойств.

упражнения 11. Решите заново упражнение 1О, только на этот раз предположите, что все переменные и константы представляют собой числа с плаваюшей точкой, и измените опе- ратор на 12. Перепишите приведенный фрагмент кода с использованием многовариантного оператора ветвления на следующих языках. 12 1. Рааса). 12.2. РОКТКАХ 90 (найдите описание этого языка в тексте). 12.3.

Ада. 12.4. С, С++ или Зача. Г)зеп 7:= 2 * )с - 1 'с)зеп 3: 3 * к+ 1 4*)с-1 ог (К = 8] СПеп 3 := Х вЂ” 2 11 (М=1) ог (Х=2) 1б (Х - 3) аг ()с = 5) 12 (Х - 4) С]зеп 3 1т (К = б] ог (К = 7) Предположите, что все переменные являются целочисленными. Рассмотрите относительные достоинства использования этих языков для данного конкретного кода. 13.

Рассмотрите следующий оператор йсг в стиле языка А).ОО(. 60: аког 1:= 3 + 1 всеР 1 * 3 ипкд1 3 * 3 с)о 3 := 3 + 1 Предположите, что начальное значение переменной 3 равно 1. Перечислите последовательность значений использованной переменной 1, предполагая следующую семантику. 13.1. Все выражения вычисляются по одному разу при каждом входе в цикл. 13.2. Все выражения вычисляются перед каждым повтором. 13.3. Выражения веер вычисляются один раз при входе в цикл, а выражения ипсз1 вычисляются перед каждым повтором. 13.4. Выражения ипсз1 вычисляются один раз при входе в цикл, а выражения втер вычисляются перед каждым повтором сразу после увеличения счетчика цикла.

саве 1пс)ех — 1 ок 2, 4: ечеп := ечеп + 1; 1, 3: ос)с):= ос(с) + 1; 0: кего := гого + 1; Глава 7. Структуры упровлвння на уровне операторов Все одновременно вычисляемые выражения вычисляются справа налево. Кроме того, присваивание всегда выполняется, как только оказывается вычисленной правая часть оператора присваивания. 14. Рассмотрите следующий оператор саве язык Рааса). Перепишите его, используя только лвухвариантные операторы ветвления.

е1ве еггог := скин ( ! е. Рассмотрите следующий фрагмент программы на языке С. Перепишите его, не ис-. пользуя операторы доео и Ькеа)с. = -3; йок (1=0; 1 < 3; 1++! ( визксЬ (3 + 2) ( саве 3: саве 2; 3-1 Ькеа1с) саве 0: 3 + 2; Ькеа!с; с(екаи1К: 3 = 0; 1 зй (д > 0) Ькеа)с) 3-1 В письме редактору журнала САСМ Рубин ()(ц(з(п, 1987) использует следующий сегмент кода в качестве доказательства того, что читабельность некоторых программ, содержащих операторы ло!о, лучше, чем читабельность аналогичных программ, не использующих операторы козе. Этот код находит первую строку матрицы целых чисел размером и х и с именем х, не содержащую ничего, кроме нулей.

кок 1:= 1 со и с(о Ьедка к'ок 3:- 1 Ко п с1о Их(1 3] <> 0 ЕЬеп доФо те3еск) нгзсе1и('Первая нулевая строка:', 1); Ькеа)с! =е-'есс: июне) Перепишите зтот код без использования операторов яо(о на одном из следующих языков: С, С++, Рааса!, Зача или Ада. Сравните читабельность вашего кода с читабельностью кода, приведенного выше. ! . Приведите аргументы "за" и "против" исключительного использования булевских выражений в управляющих операторах языка Зача (в отличие от языков С и С++, допускающих использование арифметических выражений в управляющих операторах). 343 ° чоажнения ' Дейнйс Рйтчй (Оепп~в йЫве) Деннис Ритчи из корпорации Вен Ьзьогвгопез был одним из основных рвзрвботчиков опервционное системы 0ЗГ1Х.

Его первая версия языки С затем была «спользоввнв при создании опервционное системы ОМ!Х для компьютеров РОР-11. 8.11. Доступ к нелокальным средам 8.12. Перегруженные операторы, определяемые пользователем 8.13. Сопрограммы одпрограммы — основные строительные блоки, из которых состоят програм- П мы — относятся к наиболее важным понятиям в области разработки языков программирования. В этой главе мы исследуем вопросы разработки подпрограмм, включая методы передачи параметров, локальные и глобальные среды ссылок, перегруженные и обобщенные подпрограммы, раздельную и независимую компиляцию, а также совмещение имен и проблемы, связанные с побочными эффектами, присущими подпрограммам.

Мы также кратко опишем сопрограммы, позволяющие создавать симметричные модули управления. Методы реализации подпрограмм будут обсуждаться в главе 9. 8.1. Введение Языки программирования могут содержать два возможных средства абстракции: абстракцию процессов и абстракцию данных. На заре истории языков программирования высокого уровня программисты признавали и включали в языки только абстракцию процессов, которая была основным понятием во всех языках программирования.

Однако в ! 980-х годах люди стали понимать, что абстракция данных не менее важна. Абстракция данных обсуждается в главе 10. Первый программируемый компьютер (аналитическая машина Бэббилжа), построенный в 1840-х годах, позволял при необходимости повторно использовать карточки с наборами команд. В 'современных языках программирования такой набор операторов записывается в виде подпрограммы. Повторное использование совокупностей операторов приводит к различным видам зкономии — от уменьшения объема памяти до сокращения времени программирования. Такое повторное использование представляет собой некую абстракцию, в которой детали вычислений, производимых подпрограммой, заменяются в программе оператором, вызывающим эту подпрограмму. Вместо того, чтобы объяснять, каким образом следует выполнять некие вычисления в некотором месте программы, это объяснение (набор операторов в подпрограмме) заменяется оператором вызова, что позволяет действительно абстрагироваться от деталей вычислений.

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

° Каждая подпрограмма имеет один вход. ° На время выполнения вызываемой подпрограммы выполнение вызывающего ее модуля откладывается. Это приводит к тому, что в каждый момент времени выполняется только одна подпрограмма. ° Управление после выполнения подпрограммы всегда возвращается в вызывающий модуль. Глава В. Подпрограммы Несмотря на то что подпрограммы в языке гОКТКАЫ могут иметь несколько входов, .: -'ретный вид входа является относительно неважным, поскольку он не обеспечивает ни ::-ой су шественно новой возможности.

В силу этих причин в этой главе мы будем игио.- тоаать возможность наличия нескольких входов в подпрограммы языка ГОКТКА1Ч. ~альтернативой указанным выше предположениям являются подпрограммы (раздел 8.13) и -зг допел ьные молули, рассматриваемые в разделе 8.12. '1етоды в объектно-ориентированных языках тесно связаны с подпрограммами, об. -.=аемыми в этой главе. Основное отличие методов от подпрограмм заключается в ;-::обе, которым они вызываются, а также в способе связи методов с классами и объек-т" н Несмотря на то что эти характеристики методов обсуждаются в главе 11, свойства, ие для них и подпрограмм (параметры и локальные переменные), рассматриваются в - д главе. 8.2.2. Основные опредвленив Определение полпрограммы (зцЬргойгаш оебп(((оп) описывает ее связь с вызываю- ".и модулем (т.е.

интерфейс) и действия, которые абстрагируются подпрограммой. Вы::в подпрограммы (зцЬргойаш са11) представляет собой явное требование выполнить -:=программу. Подпрограмма называется активной, если после получения вызова она -: -зла свое выполнение, но еше не закончила его. Две основные разновидности подпро—. зч ч — процедуры и функции — описываются в разделе 8.2.4. Заголовок подпрограммы (ьиЬргойгаш Ьеа()ег), являющийся первой строкой ее оп::=аления, преследует несколько целей. Во-первых, он указывает, что следующая за ним :"нтаксическая единица представляет собой определение подпрограммы некоего кон.гетного вида.

Это указание часто выполняется с помощью специального слова. Воз гзрых. заголовок определяет имя подпрограммы. В-третьих, он может, но необязатель- .. содержать список параметров. Эти параметры являются необязательной частью заго: вка. поскольку не все описания подпрограмм их имеют. Рассмотрим следующий пример заголовка: ЗКОРТ1ИЕ АРРЕК(параметры) .--.

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

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

Список файлов книги

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