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




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

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

Procedure printkvadr (i:integer);

Var x :real;

Begin

X:= i*i;

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

end;

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

Procedure kub (var x,у :real);

 

Var x :real;

Begin

y:= x*x*x;

writeln('куб числа ', y:5:2);

end;

 

 

Пример:

{Процедура вычисления факториала}

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

Var i:integer;

Begin

rez:=1;

For i:=1 to n do

Begin

rez:=rez*i;

end;

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

end;

 

{Вызов в основной программе}

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

 


Функции

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

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

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

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

 

Function < имя Функции >( список переменных:< тип > ): < тип >;

Параметры функции
Var

…< описание внутр.переменных >

Begin

< тело функции >

< имя функции >:=<значение>;

end;

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


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

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

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

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

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

 

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

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

Var

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

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

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

 

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

< переменная >[< №символа >]

Kis:=’Мурка’;

writeln(Kis[3],); {На экране будет напечатана третья буква «p »}

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

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

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

· Сравнение

· Сложение

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

· Обработка

 

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

Kot:=’Барсик’;

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

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

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


Сравнение

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

 

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

 

 

Сложение

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

Kisa:=’Мурка’;

Kot1:=’Тузик’;

Kot2:=’Барсик’;

Gruppa:= Kisa + Kot1 + Kot2;

или 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г

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

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

Издание 2. Исправленное.

Тираж – по требованию.

 
 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: