Мегаобучалка Главная | О нас | Обратная связь


Процедуры пользователя



2018-07-06 419 Обсуждений (0)
Процедуры пользователя 0.00 из 5.00 0 оценок




Операции над множествами.

1. Объединением 2-х множеств A и B называется множество,состоящее из эелементов, входящих хотя бы в одно множество А и В. Знак операции объединения в Паскале «+».

A

BОбъединение

 

 

Примеры: 1)[1,2,3,4]+[3,4,5,6]=>[1,2,3,4,5,6]; 2)[ ]+[‘a’..’z’]+[‘A’..’E’,’k’]=>[‘A’..’E’,’a’,’z’]

2. Пересечением 2 множеств А и В называется множество, состоящее из элементов, одновременно входящих во множество А и во множество В. Знак операции пересечения в Паскале «*».

 
 

А В

 

 

[1,2,3,4]*[3,4,5,6]=>[3,4]; [‘a’..’z’]+[‘A’’E’,’k’]=>[‘k’]

 

3. Разностью 2-х множеств А и В называется множество, состоящее из элементов множества А, не входящих в множество В.

А

В А В

 

А-В В-А

Примеры: 1)[1,2,3,4]-[3,4,5,6]=>[1,2]: 2)[3,4,5,6]-[1,2,3,4]=>[5,6]; 3) [‘a’..’z’]+[‘A’’E’,’k’]=>[‘a’]

Операции вхождения

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

Если х-такая скалярная величина, а М-множество, то операция вхождения записывается так: xinM.

Результат-логическая величина true, если значение х входит во множество М и false – в противном случае. Например, 4 in [3,4,7,9]- -true,5 in [3,4,7,9]- -false

Задача. Дана строка Сохранить в ней только первые вхождения символов, удалив все остальные.

Program ss;

Var m:set of char;

s:string;

i:byte;

begin

write(‘Введитестроку ’);readln(s);

m:=_;

i:=1;

whilei<=….

Clrscr;//Очищаемэкран

 

22. Подпрограммы в языке Pascal: понятие подпрограммы, функция пользователя в языке Pascal.

Подпрограммы

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

Подпрограммы решают три важные задачи, значительно облегчающие программирование:

1)избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты, т. е. сократить объем программы;

2)улучшают структуру программы, облегчая понимание при разборе;

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

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

Сформулируем общие принципы выделения подпрограмм:

* Если вы в программе повторяются одни и те же последовательности команд, то стоит эту последовательность команд оформить в виде подпрограммы.

* Иногда слишком много мелочей закрывают главное. Стоит перенести в подпрограмму подробности, заслоняющие основной смысл программы.

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

* При решении задачи могут возникать слишком сложные подзадачи. Целесообразней отладить их отдельно в небольших программах. Добавление этих программ в основную задачу будет легким, если они оформлены как подпрограммы.

* Все, что вы сделали хорошо в одной программе, вам захочется перенести в новые программы. Для повторного использования частей кода лучше сразу выделять в программе полезные вам подзадачи в виде отдельных подпрограмм.

Подпрограммы могут быть:

1. встроенные (стандартные). Они входят в состав языка и вызываются для выполнения по строго фиксированному имени. Все стандартные средства располагаются в специализированных библиотечных модулях, которые имеют системные имена.

2.определенные пользователем. Они разрабатываются и именуются самим пользователем.

В языке Pascal механизм подпрограмм реализуется в виде ПРОЦЕДУР и ФУНКЦИЙ, которые вводятся в программу с помощью своего описания, но их структура такая же, как и структура программы. Они различаются назначением и способом их использования.

Функция пользователя

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

Функция, определяется пользователем, состоит из заголовка и тела функции. Заголовок состоит из зарезервированного слова function, далее идентификатор(имя) функции, заключенные в крупные скобки, необязательный список формальных параметров и тип возвращаемого функцией значения.

Функция сходна с процедурой, но имеет четыре отличия: (Отличие в том, что функция является выражением, которое присваивается какой-то переменной)

* Функция возвращает в точку вызова только единственный результат;

* в качестве формальных параметров у функции могут быть только параметры-значения;

* в теле функции имени функции обязательно нужно присвоить результат, которое является скалярным значением;

* вызов функции осуществляется только в выражениях.

Функция оформляется в следующем формате:

function<имя функции> (<формальные параметры>): <тип функции>;

label …;

const ...;

type ...;

var ...;

procedure … ;

function… ;

begin

<операторы> ;

<имя функции>:=<результат>;

end;

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

ПРИМЕР 1. Написать программу нахождения минимума 4-ех произвольных чисел, используя функцию нахождения минимума из двух чисел.

program m;
var f,x,y,i,n1,n2,n3:real;
function s(a,b: integer): real;
Begin
s:=(sin(a)-a)/b;
End;
begin
writeln('(sin(x)-x)/y=',s(3,4));
writeln('(sin(x)-x)/y=',s(11,5));
writeln('(sin(x)-x)/y=',s(19,8));
writeln('F=',s(3,4)+s(11,5)+s(19,8));
end.

ПРИМЕР 2

Program pr5;

Uses crt;

Varx,y:real;

Function min(a,b:real):real;

Begin

If a>b then min:=b else min:=a;

End;

Begin

Clrscr;

Write(‘Введитедвачисла: ’);readln(x,y);

y:=min(x,y);

writeln(‘Введитетретьечисло: ’); readln(x);

y:=min(x,y);

writeln(‘Введите четвертое число: ’); readln(x);

writeln(‘Минимум этих чисел =’,min (x,y):4:1);

readln;

end.

 

22. Подпрограммы в языке Pascal: понятие подпрограммы, процедура пользователя в языке Pascal.

Подпрограммы

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

Подпрограммы решают три важные задачи, значительно облегчающие программирование:

1)избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты, т. е. сократить объем программы;

2)улучшают структуру программы, облегчая понимание при разборе;

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

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

Сформулируем общие принципы выделения подпрограмм:

* Если вы в программе повторяются одни и те же последовательности команд, то стоит эту последовательность команд оформить в виде подпрограммы.

* Иногда слишком много мелочей закрывают главное. Стоит перенести в подпрограмму подробности, заслоняющие основной смысл программы.

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

* При решении задачи могут возникать слишком сложные подзадачи. Целесообразней отладить их отдельно в небольших программах. Добавление этих программ в основную задачу будет легким, если они оформлены как подпрограммы.

* Все, что вы сделали хорошо в одной программе, вам захочется перенести в новые программы. Для повторного использования частей кода лучше сразу выделять в программе полезные вам подзадачи в виде отдельных подпрограмм.

Подпрограммы могут быть:

1. встроенные (стандартные). Они входят в состав языка и вызываются для выполнения по строго фиксированному имени. Все стандартные средства располагаются в специализированных библиотечных модулях, которые имеют системные имена.

2.определенные пользователем. Они разрабатываются и именуются самим пользователем.

В языке Pascal механизм подпрограмм реализуется в виде ПРОЦЕДУР и ФУНКЦИЙ, которые вводятся в программу с помощью своего описания, но их структура такая же, как и структура программы. Они различаются назначением и способом их использования.

Процедуры пользователя

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

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

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

Процедура оформляется в следующем формате:

procedure<имя> (<формальные параметры>);

label …;

const ...;

type ...;

var ...;

procedure … ;

function … ;

begin

<операторы> ;

end;

Вызов процедуры:

<имя процедуры>(<фактические параметры>);

При вызове процедуры фактические параметры присваиваются соответствующим формальным параметрам.

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

Формальные параметры — это переменные, определенные в заголовке подпрограммы и определяющие тип и место подстановки фактических параметров.

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

ВНИМАНИЕ: число и тип формальных и фактических параметров должны совпадать с точностью до их следования!

Формальные параметры делятся на два основных вида: параметры-переменные и параметры-значения.

Параметры-переменные в языке Pascal - это те формальные параметры, перед которыми стоит служебное слово var. Они предназначены для передачи результатов, полученных в процедуре, в программу.

Параметры-значения - перед ними слово var не ставится, они передают данные из программы в процедуру.

Формальные параметры описываются внутри заголовка процедуры следующим

образом:

<имя>: <тип>, <имя>: <тип>, … ;var<имя>: <тип>, ...

где имя — имя формального параметра, тип — тип формального параметра. При этом тип формального параметра обязательно должен быть стандартным или типом, объявленным пользователем. Это означает, что нельзя в качестве формального параметра напрямую использовать массив. Например:

a: array [1..10] ofreal

Надо сначала объявить тип массива и затем описать формальный параметр типа массива. Например:

Type mas: array [1 .. 10] of real;

Procedure matrica(a: mas);

Если формальный параметр объявлен как параметр-значение, то фактическим параметром может быть или постоянная, или переменная, или выражение. А если формальный параметр объявлен как параметр-переменная, то фактическим параметром должна быть обязательно только переменная!.

ПРИМЕР 1. Написать программу нахождения максимума четырех произвольных чисел, используя процедуру нахождения максимума из двух чисел.

ВАРИАНТ 1. (процедура с параметрами-значений и параметрами-переменными)

Program pr3;

Uses crt;

Var a, b, m1, m2, m3: real;

procedure max( x, y : real; var m : real);

begin

if x>y then m:=x else m:=y

end;

Begin

Clrscr;

Write (' Введитедвачисла: ');

Readln(a,b); max(a,b,m1);

Write (' Введите третье число: ');

Readln(a); max(a,m1,m2);

Write ('Введите четвертое число: ');

Readln(a); max(a,m2,m3);

writeln('Максимум этих четырех чисел = ', m3:4:1);

Readln;

End.

ВАРИАНТ 2. (процедура без параметров)

Program pr1;

Uses crt;

Var a, b, m: real;

procedure max;

begin

if a>b then m:=a else m:=b

end;

Begin

Clrscr;

Write (' Введитедвачисла: ');

Readln (a,b); max; b:=m;

Write (' Введите третье число: ');

Readln (a); max; b:=m;

Write ('Введите четвертое число: ');

Readln (a); max;

writeln('Максимум этих четырех чисел = ', m:4:1);

Readln;

End.

24.Рекурсия - это такой способ организации вычислительного процесса, при котором процедура или ф-ция в ходе выполнения составляющих ее операторов обращается сама к себе . Объект, который частично определяется ч/з самого себя , н/ся –рекурсивным

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

Примером рекурсивной задачи может служить вычисление факториала числа.

Факториалом натурального числа n называют произведение чисел 1∙2∙…∙n. Это итеративное определение. Существует и другое определение(рекурсивное).

Используем эту формулу при написании ф-ции вычисления факториала:

Program Rekurs;

Var N:integer;

functionFakt(х:integer):longint ;

begin

if x=1 then Fakt:=1 else Fakt:=x*Fakt(x-1

end;

begin

Write (‘Введите натуральное число:’); Readln(N);

Writeln(N,’!=’,Fakt(N));

end.

 

 

16.

 

 

17. Вложенные циклы.

Цикл-это многократное выполнение одинаковой последовательности действий.

Очень часто в задачах требуется несколько раз повторить одно и тоже действие.

Например, вывести на экран 5 раз слово <школа>. В данном случае в программе придется использовать оператор вывода 5 раз.

Например, найти сумму всех натуральных чисел от одного до тысячи. Один из способов решения:

S:=1+2+3+4+5+6+7+...+1000

Но тут придется учитывать, что строка в программе не должна превышать 255 символов.

Поэтому лучше использовать другой способ решения:

S:=0;

S:=S+1;

S:=S+2;

...

S:=S+999;

S:=S+1000;

В данном случае сумма вычисляется пошагово. Первый раз значение суммы равно 0, далее к предыдущему значению суммы прибавляется 1, сумма стала равна 1. Следующий шаг повторяется – опять к предыдущему значению суммы (=1) прибавляется следующее число, т.е. 2 и.т.д. Здесь придется использовать 1001 раз оператор присваивания.

Однако подобные задачи удобно решать, используя операторы цикла. В языке PascalABC.NET имеется три оператора цикла:

оператор цикла c параметром (или со счетчиком);

оператор цикла с предусловием;

оператор цикла с постусловием.

Решение задачи без использования оператора цикла:

program pr8;

var s : integer;

begin

s:=1+2+3+4+5+6+7+8+9+10;

s:=s+11+12+13+14+15+16+17+18+19+20;

s:=s+21+22+23+24+25+26+27+28+29+30;

s:=s+31+32+33+34+35+36+37+38+39+40;

..................................

s:=s+981+982+983+984+985+986+987+988+989+990;

s:=s+991+992+993+994+995+996+997+998+999+1000;

writeln(' Суммапервых 1000 натуральныхчисел =', s);

end.

Здесь мы попытались упростить текст программы, но все равно в ней используется 100 операторов присваивания.

Решение задачи с использованием оператора цикла со счетчиком:

program pr9;

vari, s : integer;

begin

s:=0;

fori := 1 to 1000 do s:=s+i;

write('Сумма первых 1000 натуральных чисел = ', s)

end.

В это программе оператор цикла со счетчиком (For) занимает всего одну строку.



2018-07-06 419 Обсуждений (0)
Процедуры пользователя 0.00 из 5.00 0 оценок









Обсуждение в статье: Процедуры пользователя

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (419)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)