Входные выходные параметры программирование

Терминология. Входные и выходные параметры

Что за термины такие: входные параметры и выходные параметры? Что они из себя представляют? Откуда взялись? Или это просто разговорные слова? В официальной Документации таких терминов я не встречал, однако Метанит (и некоторые другие сайты) иного мнения. Со слов метанита:
Входные параметры: (int x) и/или (ref int x) (я так и не понял какой из них, или оба вместе), а также (in int x)
Выходные параметры: (out int x)

Лично мое мнение на этот счет: данных терминов не существует в данном языке и вот мои аргументы:
1) Раз в документации не упоминается об этом ничего — значит так оно и есть (разработчикам своего детища C# лучше знать)
2) Создатель метанита знает более 10 языков, и если такие термины есть в других языках — это не значит они есть в C#. Возможно автор всю терминологию смешал в одну кучу
3) Если вам попадется задача «добавить в метод входной и выходной параметр» — что вы будете делать? Да ничего, вы просто не поймете что от вас хотят. А если задача будет такова — «значение переменной изменилось в метода, но извне осталось без изменений, как это исправить» — вы сразу поймете что речь идет про модификатор ref
4) Что значит входной параметр? А что бывают и другие? Типа «случайно занесенный» или «втиснутый» или «запиханный»? Параметр он и в Африке параметр.
5) Что значит выходной параметр? Возвращаемые значения — тут согласен.
6) Какой параметр на это коде? Входной или выходной или просто параметр?

Читайте также:  Структурное программирование снизу вверх

Почему так важно знать термины языка? Например потому что одно измененное слово в задании может сыграть решающую роль и 100 строк написанного кода можно смело закидывать в корзину (и все потому что не знал как объяснить или неправильно объяснил). А оно нам надо?
Если взять термины операнд или оператор то они не вызывают вопросов, потому что ясно что есть что. Но эти «параметры» явно вводят путаницу.
Что вы думаете на этот счет?

Источник

Входные и выходные параметры

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

Входные параметры – это переменные, в которые передаются значения переменных или констант основной программы в Процедуру, и не предназначены для возврата.

Procedure printkvadr (i:integer);

Var x :real;

writeln(‘квадрат числа ‘, x:5:2);

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

Procedure kub (var x,у :real);

Var x :real;

Procedure fakt(n:integer; Var rez:integer);

Var i:integer;

For i:=1 to n do

writeln (‘Факториал ‘,n:2, ‘!=’,rez)

. Fakt(1,f1); Fakt(3,f3); Fakt(5,f5); Fakt(7,f7); Данный фрагмент программы из 4-х строк позволяет вычислить значения факториалов простых чисел первого десятка. После завершения процедуры fakt в основной программе переменные f1, f3, f5, f7 будут равны факториалу их индекса.

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

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

y:=funMin(a,b); — вызов функции funMin

Структура Функции полностью аналогична структуре Процедуры и располагается перед «главным» оператором BEGIN.

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

Работа со строками

Строковые переменные

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

Строка (символьная/литерная константа) – это последовательность любых символов из кодовой таблицы персонального компьютера (в том числе и пробелов). При использовании в выражениях строка заключается в апострофы.

‘summa’ ‘Строка’ ‘Монета достоинством в 2 рубля’

Количество символов в строке может меняться от 1 до 255.

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

St: string[20]; — максимальная длина 20 символов

s1: string – максимальная длина 255 символов

Во избежание ошибок ввода рекомендуется задавать строковые константы отдельным оператором Readln(‘. ‘) в отдельной строке.

К отдельным символам строки можно обращаться как к элементам массива следующим образом:

Действия со строковыми переменными

Над строковыми переменными можно выполнить следующие операции:

· Преобразование в число и обратно

Присваивание

st:=’Иванов Константин Петрович’;

Stroka:=’Информатика наука современная’;

Readln(st); строка будет введена с клавиатуры

Обычно сравниваются строки одинаковой длины. В противном случае большей считается строка большей длины

If kisa=kot. If kisa>kot2.. If kisa Например, если Kisa:=’Мурка’; Kot1:=’Тузик’; Kot2:=’Барсик’; тоKot2 > Kisa(по количеству символов) и Kot1 < Kisa(по коду 1-го символа) Примечание. При совпадении первых символов рассматриваются вторые, третьи и.т.д

Для обозначения действия сложения используются знаки +, & или функция Concat

Gruppa:= Kisa + Kot1 + Kot2;

или Gruppa:= Concat( Kisa,Kot1,Kot2);

переменная Gruppa будет иметь значение «МуркаТузикБарсик ». При необходимости между словами вставляют дополнительные символы Пробел, «подчерк », «плюс », «запятая » что делает восприятие более удобным.

Gruppa:= Kisa + ‘, ‘+ Kot1 + ‘, ‘+ Kot2;

Результат: «Мурка, Тузик, Барсик»

8.2.4 Преобразование строка ↔число

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

Число ‑2,75 Строка ‘12924’ ‘‑2,75’

Str (X,Str) – преобразует число в его строковое представление;

Val (Str,X,Code) – преобразует строковое выражение в число, если это невозможно, то в Code выдается номер символа с которого преобразование невозможно

Обработка строк

Стандартные процедуры и функции обработки строк приведены в табл.3. Они позволяют выполнить:

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

· удаление начальных и конечных пробелов

Примечание. Если команда является процедурой, то ее применяют без оператора присваивания

Insert (gruppa, ‘Васька’,17); это процедура.
Нет оператора Присваивания.
Результат «МуркаТузикБарсикВаська»

St:= Copy (gruppa,10,4) это функция.
Есть опрератор Присваивания. Результат «Барс»

Рекомендации

1. Пишите программы так, чтобы их можно было понять не только Вам, а и иным людям. Для этого:

· Предоставляйте переменным такие имена, которые отвечают названию именованной величины.

· Каждый оператор старайтесь писать с новой строки.

· Делайте отступы перед вложенными операторами.

· Не ленитесь вставлять комментарии

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

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

4. При анализе входных данных постарайтесь выделить особые случай и аномалии.

Например, при решении простой задачи «Найти периметр треугольника по трем сторонам» необходимо учесть не только неотрицательность вводимых значений длин сторон, но и варианты

· «Наибольшая сторона равна сумме двух других» – особый случай

· «Наибольшая сторона меньше суммы двух других» – аномалия.

5. Помните, что для того, чтобы научиться решать задачи по программированию, нужно их решать. , т.е. программировать и отлаживать!

Удачи и терпения!

Список используемой литературы

1. Язык программирования ТурбоПаскаль (под ред.Павленка И.А.), СПЛ, 2005г.

2. Шаньгин В.Ф., Поддубная Л.М. Программирование на языке ПАСКАЛЬ. – М.: Высш.шк., 1991 – 143с.

3. Гусева А.И. Учимся программировать: Pascal70. – М.: «Диалог-МИФИ», 1998. – 272с.

4. Зубов В.С. Программирование на языке ТURBO PASCAL. – М.: «Филинъ», 1997. – 320с.

5. Вирт Н., Йенсен К.. PASCAL. Руководство для пользователя и описание языка /Пер. с англ. – М.: Финансы и статистика,1992, ‑ 152с.

6. Пильщиков В.Н. Сборник упражнений по языку Паскаль: Учеб. Пособие для вузов. – М.: Наука, 1989. ‑160с.

7. https://sunschool.math.rsu.ru, https://it.mmcs.rsu.ru Ресурсы разработчиков среды PascalABC

PascalABC. Часть I.Основные конструкции. СПЛ, 2007г

Составитель: Кашеварова В.А.

Апробация: Иванова Н.Ю., Ермоловский С.А.

Источник

5.Передача параметров в подпрограмму,параметры входные и выходные,параметры,передаваемые по значению и по адресу.

Формальные — Параметры, указанные в описании программы.

Фактические — В обращении к программе.

Формальные: 1)Входные (должны быть известны до обращения подпрограмме, передаются по значению)

2)Выходные (получают значения в подпрограмме, передаются по адресу)

Void fun f(int I; int *j;int &h)< i++;(j*)++;k++;>;

6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.

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

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

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

Достоинства подпрограмм: 1) Избежание дублирования одинаковых частей программы. 2) Делает структуру программы более четкой и понятной. 3) Отдельные подпрограммы можно хранить в отдельных файлах. 4) позволяет расширить язык программирования. 5) позволяет повторно использовать раннее разработанные программы.

Формальные — параметры, указанные в описании подпрограммы.

Фактические — указанные в обращении к ней

Локальные — все величины, описанные в подпрограмме, область действия — тело ф-ии.

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

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

7.Рекурсивные подпрограммы, примеры рекурсивных функций в С/С++.

Рекурсия — вызов функции из нее же самой, непосредственно.

Глубина рекурсии — количество вложенных вызовов функции или процедуры.

Функция Рекурсивная — если она вызывает сама себя в качестве вспомогательной.

Подпрограмма Рекурсивная — если содержит обращение к самой себе.

n!=1 при n=0 и n!=1*2*3*. *n при n>0 – итерационное(итеративное) определение

n!=1 при n=0 и n!=(n-1)!*n при n>0 — рекурсивное определение

Рекурсия Прямая — подпрограмма обращается сама к себе.

Рекурсия Косвенная — несколько подпрограмм обращается друг к другу.

#include using namespace std;

unsigned long F(short n)//рекурсивный метод

//шаг рекурсии — повторный вызов функции с другим параметром.

unsigned long f=F(n); //нерекурсивный вызов функции F

Источник

Оцените статью