рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Способ передачи параметров в подпрограмму - раздел Философия, Билет №1 Линейные программы. Структура программ Паскаль Существует Несколько Способов Передачи Параметров В Подпрограмму. ...

Существует несколько способов передачи параметров в подпрограмму.

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

int func1(int x) { x=x+1; return x; }

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

void func2(int &x) { x=x+1; }

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

-Передача параметров через стек. Это фактически разновидность передачи параметра по значению «с ручным приводом», в данном случае отсутствует понятие формальных и фактических параметров. Все параметры лежат на стеке, причём их типы, количество и порядок не контролируются компилятором. Данный подход реализован в языке Форт.

Язык программирования может предоставлять возможность передавать параметры в подпрограммы либо только по значению (так сделано в языке Си), либо по значению и по ссылке (это реализовано в Паскале, Аде,C++), либо по имени и значению (это реализовано в языках Алгол и Алгол 68). В последних двух случаях для различения способов передачи параметра используются отдельные синтаксическая конструкции (в Паскале это ключевое слово var при описании параметра). В действительности, если язык содержит понятие ссылки (указателя), то можно обойтись и без передачи параметра по ссылке (её всегда можно смоделировать, описав параметр типа «ссылка»), но эта возможность удобна, так как позволяет работать с формальным параметром-ссылкой без разыменования, а также повышает надёжность и безопасность программы.

На параметры, передаваемые по ссылке, накладываются естественные ограничения: фактический параметр, подставляемый на место такого параметра при вызове, обязан быть переменной (то есть иметь адрес), а в языках со строгой типизацией — ещё и иметь в точности такой же тип данных.

№17. 1. Строки данных.

В программировании, строковый тип (англ. string «нить, вереница») — тип данных, значениями которого является произвольная последовательность (строка) символов алфавита. Каждая переменная такого типа (строковая переменная) может быть представлена фиксированным количеством байтов либо иметь произвольную длину.

Представление в памяти. Некоторые языки программирования накладывают ограничения на максимальную длину строки, но в большинстве языков подобные ограничения отсутствуют. При использовании Unicode каждый символ строкового типа может требовать двух или даже четырёх байтов для своего представления. Основные проблемы в машинном представлении строкового типа:строки могут иметь достаточно существенный размер (до нескольких десятков мегабайтов);

изменяющийся со временем размер — возникают трудности с добавлением и удалением символов.

В представлении строк в памяти компьютера существует два принципиально разных подхода.. Представление массивом символов. В этом подходе строки представляются массивом символов; при этом размер массива хранится в отдельной (служебной) области. От названия языка Pascal, где этот метод был впервые реализован, данный метод получил название Pascal strings. Слегка оптимизированным вариантом этого метода является т. Н. формат c-addr u (от англ. Character-aligned address + unsigned number), применяемый в Форте. В отличие от Pascal strings, здесь размер массива хранится не совместно со строковыми данными, а является частью указателя на строку. Преимущества:программа в каждый момент времени «знает» о размере строки, и операции добавления символов в конец, копирования и получения размера строки выполняются достаточно быстро;

строка может содержать любые данные;возможно на программном уровне следить за выходом за границы строки при её обработке;возможно быстрое выполнение операции вида «взятие N-ого символа с конца строки».

Недостатки:проблемы с хранением и обработкой символов произвольной длины;увеличение затрат на хранение строк — значение «длина строки» также занимает место и в случае большого количества строк маленького размера может существенно увеличить требования алгоритма к оперативной памяти;ограничение максимального размера строки. В современных языках программирования это ограничение скорее теоретическое, так как обычно размер строки хранится в 32-битовом поле, что даёт максимальный размер строки в 4 294 967 295 байт (4 гигабайта).

Простейшие операции со строками:получение символа по номеру позиции (индексу) — в большинстве языков это тривиальная операция;конкатенация (соединение) строк.

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

Возможные задачи для строк на естественном языке

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

– Конец работы –

Эта тема принадлежит разделу:

Билет №1 Линейные программы. Структура программ Паскаль

Билет... Способы изображения алгоритмов... Алгоритм заранее заданное точное предписание возможному ис полнителю совершить определ нную последовательность...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Способ передачи параметров в подпрограмму

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Линейные программы. Структура программ Паскаль.
Линейной называется программа, все операторы которой выполняются последовательно в том порядке, в котором они записаны.Структура программы на языке Паскаль имеет следующий вид: Program Имя

Билет 4
Условный оператор IF - предназначен для ветвления программы на два направления. Условный оператор позволяет проверить некоторое условие и в зависимости от результато

Билет 5
Оператор вариантов CASE Если количество разветвлений программы больше двух, то используется оператор вариантов Case, который является более общим случаем условного оператора.

Билет 6
Цикл с предусловием WHILE Оператор while выполняет оператор или блок операторов, пока определенное выражение не примет значение false. Поск

Цикл с постусловием REPEAT
При выполнении while оператора компьютер вычисляет значение условия. Если условие истинно, то исполнительная часть оператора while будет выполняться до тех пор, пока это условие не примет значение

Индекс массива
Номер элемента массива называется индексом. Индекс – это значение порядкового типа, определенного, как тип индекса данного массива. Очень часто это целочисленный т

Управляющие символы
Различные операционные системы придерживаются своего представления перевода строки и конца файла. В UNIX перевод строки состоит из одного символа LF (код 10), в Mac OS — из символа CR (код 13), а в

Билет14 Способы передачи параметров
1. по значению - при вызове подпрограммы выделяется память для формального параметра. Вычисляется значение фактического параметра и результат записывается в указанную память. Далее

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

Представление символов строки
До последнего времени один символ всегда кодировался одним байтом (8 двоичных битов; применялись также кодировки с 7 битами на символ), что позволяло представлять 256 (128 при семибитной кодировке)

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги