Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Способы передачи параметров в подпрограммы




Существует два способа передачи параметров. Первый способ - передача по значению. Смысл этого способа в том, что мы передаём подпрограмме конкретное значение - число, текст, логическое значение и т.д. Подпрограмма каким-либо образом использует это значение. При этом, из внешней программы передавать эти параметры можно было как явным указанием значения (например, указав число прямо в коде программы), так и передавая переменную или константу - использовалось соответствующее значение переменной / константы. Но такой способ не всегда удобен. Более того, в случае, если подпрограмма должна вычислить сразу несколько значений, этот способ не принесёт успеха. Именно поэтому существует другой способ передачи параметров - передача по ссылке. Смысл этого способа в том, что мы передаём не конкретное значение, а ячейку памяти, т.е. переменную. В чём же отличие? А отличие в том, что подпрограмма уже может работать с этой переменной, т.е. не только получать её значение, но и это значение менять! Получается, что мы берём переменную из основной программы, "отдаём" её подпрограмме, та, в свою очередь, производит какие-то манипуляции с ней, и в результате наша переменная получает новое значение и мы можем далее её использовать. Несложно догадаться, что такой подход позволит подпрограмме отдавать сразу несколько значений (причём не обязательно одного типа).Для передачи по значению никаких изменений в подпрограмму вносить не нужно - это способ передачи по умолчанию. А вот для передачи по ссылке нужно всего лишь в описании подпрограммы добавить слово var перед нужными параметрами.

procedure Proc(a: Integer); //Передача по значению procedure Proc(var a: Integer); //Передача по ссылке

Как нетрудно догадаться, если в процедуре требуется передача по ссылке, соответствующий параметр непременно должен быть переменной. Фиксированного значения там быть не должно. Ошибиться здесь трудно - программа просто не скомпилируется, если вместо переменной будет конкретное значение. Примерами функций с передачей по ссылке являются широкоизвестные Inc() и Dec(). Вспомните - ведь не нужно писать a:=Inc(a); - достаточно просто Inc(a).

Билет№24.Интуитивное понятие алгоритма. Его свойства. Формы записи алгоритма. Алгоритмы с линейной, разветвленной и циклической структурой.

Алгоритм - это определенная последовательность логических действий для решения поставленной задачи. Алгоритм – это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами:конечность, определенность, ввод, вывод, эффективность. Алгоритм-точный набор инструкций, описывающих порядок действий исполнителя, для достижения результата решения задачи на конкретное время. Обычно, в качестве исполнителя выступает некоторый механизм(компьютер, станок).Алгоритм является математической абстракцией программы. Метод абстракции применяется для исследования сложных объектов. Входные и выходные данные. Для каждого алгоритма есть некоторые множества объектов, допустимых в качестве входных и выходных данных. Алгоритмизация-процесс систематического составления алгоритмов для решения поставленных прикладных задач. Формальные признаки алгоритма. 1)дискретность-алгоритм разбивается на конечное число элементарных шагов.2)понятность-каждое действие является понятным исполнительно (одно действие на каждом шаге).3)детерминированность-каждое действие понимается в строго определенном смысле.4)массивность-по данному алгоритму должна решаться не одна, а целый класс подобных задач.)результативность-алгоритм в процессе выполнения должен приводить к определенному результату за конечное число действий. Отрицательный результат также является результатом. Свойства алгоритма. 1)вход-массив вещественных чисел.2)выход-вещественное число. Формы записи алгоритма. Алгоритм, составленный для некоторого исполнителя, можно представить различными способами: графического и словесного описания, в виде таблицы, последовательностью формул, записанным на алгоритмическом языке (язык программирования). Термины алгоритмический язык и язык программирования часто используют как синонимы. При использовании этих языков запись алгоритма совершенно формальна Чтобы выполнить вычислительный алгоритм на компью­тере, его записывают на языке программирования. Для под­готовки алгоритма, записанного на языке программирова­ния, к выполнению, применяют автоматические средства. Отдельная инструкция языка программирования называется оператором. Программа — это упорядоченная последовательность операторов. Способ отделения операторов друг от друга определяется правилами языка. Запись операторов в языках программирования обычно производится с помощью ключевых слов, хотя некоторые операторы их не требуют. Линейный алгоритм - это такой, в котором все операции выполняются последовательно одна за другой. Схема представляет собой последовательность блоков, соединенных линиями потоков. Схема представляет собой последовательность блоков, соединенных линиями потоков. Направление потока задается стрелкой, но стрелка не ставится, если направление потока сверху вниз и слева направо. В левом верхнем углу в разрыве линий ставится номер блока. Внутри блока ввода записывается слово “Ввод” и перечисляются исходные данные (имена переменных), которые задаются извне. Внутри блока вывода записывается слово “Вывод” и перечисляются переменные, которые являются результатом расчета. Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие. Ветвление – такая схема, в которой предусмотрено разветвление указанной последовательности действий на два направления в зависимости от итога проверки заданного условия. В схемах такой структуры используется логический блок. Алгоритмы, отдельные действия в которых многократно повторяются, называются алгоритмами циклической структуры (повторение). Совокупность действий алгоритма, связанную с повторением, называют циклом. Блоки 3, 4, образующие тело цикла, повторяются многократно. Бесконечное количество раз

Билет№25 Языки программирования низкого и высокого уровня. Понятие трансляции, компиляции и интерпритации.

Язык программирования-формальная знаковая система, предназначенная для записи программ. Язык программирования определяется синтаксисом(построение языковых конструкций) и семантикой(приписывание действий языковым конструктором). Виды: декларативное-программа описывает нечто, а не реализует алгоритм. Процедурное(императивное)-описывается не задача, а процесс от решения, на каждом шаге решеия состояния характеризуется набором значения переменных.пример:паскаль,С,Fortan?Basic. Низкоуровневый язык программирования — язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft.NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Иногда одно мнемоническое обозначение соответствует целой группе машинных команд, выполняющих одинаковое действие над разными ячейками памяти процессора. Кроме машинных команд языки программирования низкого уровня могут предоставлять дополнительные возможности, такие как макроопределения (макросы). Как правило, использует особенности конкретного семейства процессоров. Общеизвестный пример низкоуровнего языка — язык ассемблера, хотя правильнее говорить о группе языков ассемблера. Более того, для одного и того же процессора существует несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макросов). Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания. Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным. Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования. Компилятор — это программа, обеспечивающая перевод с алгоритмического языка высокого уровня на машинный без одновременного выполнения получаемой программы. Компиляция – перевод исходного текста программы в набор инструкций процессора




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 1500; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.