Remkomplekty.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как разложить паскаль

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Pascal: Занятие № 8. Подпрограммы: функции в Pascal

Стандартные функции языка Pascal

Арифметические функции (основные)

Функции преобразования типов

Пользовательские функции Pascal

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

  • Функция – это подпрограмма, результатом работы которой является определенное значение.
  • Функции используются для:
    • выполнения одинаковых расчетов в различных местах программы;
    • для создания общедоступных библиотек функций.
  • Синтаксис:
  • заголовок начинается служебным словом function

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

    параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)

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

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

    Pascal. Основы

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

    Алфавит языка Паскаль включает:

    • Латинские буквы;
    • Цифры;
    • Специальные символы (+ — * / = ^ ( ) < >[ ] . , : ; ‘# $ и др.).

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

    Константы – величины, не изменяющие своего значения в процессе выполнения программы.

    Переменные – величины, в ходе выполнения программы могут быть неоднократно переопределены.

    Типы констант и переменных

    Паскаль позволяет использовать следующие типы констант и переменных:

    • Простые
      • целочисленный тип (integer);
      • логический (boolean);
      • символьный (char);
      • перечисляемый (задается перечислением всех возможных значений переменной);
      • интервальный (задается с указанием наибольшего и наименьшего значений);
      • вещественный (real);
    • Строковые
      • строка (string);
    • Структурированные
      • массивы (array);
      • записи (record);
      • множества (set);
      • файл (file);
    • Ссылочные.

    Каждому из перечисленных типов соответствует свой набор операций по обработке данных. Так, для целочисленного и вещественного типов используются операции арифметических действий (сложение, вычитание, умножение, деление). Для логического типа выполняются операции and – логическое и, or – логическое или, xor – логическое исключающее или, not – логическое не.

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

    В данной таблице приведены стандартные арифметические функции.

    Вычисление косинуса числа

    Вычисление синуса числа

    Вычисление абсолютного значения числа

    Вычисление квадрата числа

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

    Вычисление арктангенса числа

    Вычисление экспоненты числа

    Вычисление натурального логарифма числа

    Вычисление четности числа

    Вычисление целой части числа

    Примечание: Во всех тригонометрических функциях число x указывают в радианах.

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

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

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

    • Объявления и соглашения;
    • Тексты процедур и функций;
    • Основной блок программы.

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

    Раздел объявлений и соглашений

    Кроме того, в программе могут использоваться комментарии – любой текст, ограниченный (*…*) или <…>. Комментарий может быть помещен в любом месте программы.

    Рассмотрим более подробно назначение каждой части программы.

    Заголовок программы состоит из зарезервированного слова Program и идентификатора – имени программы.

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

    • System – системный модуль низкоуровневых программ поддержки языка Паскаль; подключается автоматически, даже при отсутствии ссылки на него в строке uses;
    • Dos и WinDos – модули поддержки часто используемых функций MS DOS и Windows;
    • Crt – модуль управления режимами вывода информации на экран;
    • Printer – модуль управления выводом информации на печать;
    • Overlay – модуль управления оверлеями языка Паскаль; позволяет выполнять программы, которым требуются большие объемы памяти;
    • Strings – используется при написании программ, совместимых с Windows;
    • Graph – модуль для работы с графикой.

    В разделе описания меток содержатся сведения об используемых в программе метках. Переход по ним выполняется оператором goto. Метки отделяются от помечаемого оператора знаком “:”, должны быть описаны, могут быть целочисленными (от 0 до 9999) или идентификаторами. Каждая описанная метка обязательно должна появиться в программе.

    Для описания констант используется ключевое слово const, имя константы, знак “=” и значение константы:

    В разделе описания типов Type программист может задавать свои типы, сформированные на основе определенных правил с использованием стандартных типов.

    В разделе Var описываются переменные, используемые в программе:

    В списке переменных их имена отделяются запятой, в качестве имени типа можно использовать один из стандартных типов или идентификатор типа, объявленного в разделе Type. Описанные таким образом переменные могут использоваться в пределах блока, где они были описаны, а также во всех вложенных блоках, если в них эти переменные не описаны повторно.

    В разделе текстов процедур и функций в соответствии с определенными правилами производится описание процедур и функций.

    Процедура

    Процедура имеет следующую структуру:

    Раздел объявлений процедуры может включать подразделы Label, const, type, var для обявления локальных меток, постоянных, типов и переменных собственно. Слово «локальный» означает, что все перечисленные объекты могут быть использованы только в рамках данной процедуры или других подчиненных ей процедур.

    Функция

    Описание функций отличается по структуре от описания процедур только заголовком:

    Функция – это особый вид процедуры, результатом разботы которой является единственное значение. С этим значением связывается имя функции, в то время как име процедуры служит только для ее вызова.

    Основной блок программы состоит из ряда операторов и является выполняемой частью программы. Он начинается со слова Begin и заканчивается словом end, после которого должна стоять точка. Операторы языка Паскль не привязаны к определенной позиции строки. В одной строке можно указывать несколько операторов. Исполняемые операторы отделяются друг от друга знаком « ; ».

    Допускается перенос с одной строки на другую частей операторов (но без разделения ключевых слов).

    Как было указано выше, основной блок программы представляет собой некоторый набор операторов.

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

    Операторы должны записываться строго в соответствии с правилами, установленными для данного языка программирования. Рассмотрим основные операторы языка Паскаль.

    Оператор присваивания

    Данный оператор предписывает запомнить некоторое значение в переменной. Значение и индентификатор переменной разделены парой знаков « := ». Типы объектов с обеих сторон данного знака должны строго совпадать, за исключением того случая, когда тип переменной – real, а тип выражения – integer.

    Общий вид оператора:

    Операторы ввода/вывода

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

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

    При выполнении оператора read (readln) программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры. Вводимые числа разделяют пробелами или нажатием клавиши Enter. По завершении ввода данных следует нажать Enter, после чего компьютер перейдет к выполнению следующего оператора программы.

    Вывод данных на экран дисплея выполняется операторами:

    Выражения в списке разделяются запятыми. Значения выражений сначала вычисляются, а затем выводятся на экран. Буквы ln имеют то же значение, что и в операторе readln.

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

    займет для вывода числа 10 три позиции, а для вывода числа 55 – шесть позиций на экране.

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

    Если х =3,14159, то оператор

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

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

    При выполнении фрагмента программы

    На экран будет выведено:

    Приведем пример Паскаль-программы.

    Задача – составить программу для подсчета суммы двух заданных чисел. Для этого необходимо ввести текст в память компьютера и сохранить на диске под именем pr1. Далее запустить программу на выполнение. При наличии ошибок внести соответствующие исправления. Получить результаты работы программы.

    Введение в Pascal

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

    ✎ 1) program – по-английски «программа», пишется в самом начале кода, после чего идет название программы латиницей и точка с запятой. Например: program Summa; − программа под названием Summa. Но эту часть кода, называемую заголовком программы, можно и не писать − она присутствует только для наглядности и показывает, какую задачу решает данная программа. Здесь мы употребили слово «код» − так называется текстовая запись программы.

    ✎ 2) integer – по-английски означает «целое число» (или просто «целое») и в Паскале используется для обозначения 32-битных (8 байт) целых чисел со знаком с диапазона [-2147483648, 2147483647] . Что означают эти большие числа, мы потом разберем.

    ✎ 3) real – с английского «реальный», «настоящий», «вещественный», «действительный». В языке Паскаль этим термином обозначаются вещественные числа с диапазона [-1.8∙10 308 , 1.8∙10 308 ] . Это очень большие числа, но значащих цифр выводится 15 – 16. Кстати, типы данных integer и real в среде программирования PascalABC.Net всегда автоматически выделяются синим цветом.

    ✎ 4) const – аналог англ. «constant», означающее «постоянная», «константа». В Паскале это величина, которая не может изменяться. Записывается так:

    Эту запись надо воспринимать так, как она пишется: число N равно 12, S равно 5, «пи» равно 3,14 (как и в математике, только вместо запятой в Паскале используется точка). В последней строке мы использовали двойной слэш (две косые черты), после которых идет текст, – так в Паскале пишутся комментарии, и их программа не воспринимает. Всё, что начинается двойным слэшом и до конца строки – это комментарий, который пишется для пояснения к программе и всегда выделяется другим цветом (в PascalABC.Net — это зеленый , в Turbo Pascal не используется такой вид комментария). Существует и другой тип комментария – это <текст, заключенный в фигурные скобки, так же, как и здесь, тоже выделяющийся зеленым цветом>. Этот вид комментария может действовать несколько строк подряд – от начала скобки и до её закрытия, и всё, что находится в середине такой конструкции, компилятор не воспринимает как код и просто пропускает.

    В действительности формат записи const немножко сложнее. По правилам мы должны были записать:

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

    ✎ 5) var – происходит от англ. «variable» («переменная», или «изменчивый»), что в Паскале означает величину, которая в процессе программы может изменять свое значение. Записывается так:

    Как видно из записи, знака «=» здесь нет – пересчитываются переменные одного типа (через запятую) и после двоеточия указывается только тип. Переменные N, m (целые) и Q, r, t (вещественные) в программе могут изменять значения в пределах integer и real соответственно. Ещё одно замечание: описание переменных всегда стоит после описания констант (постоянных) – сначала идет конструкция const , а потом var .

    ✎ 6) begin – в переводе с английского означает «начинать» и Паскале означает начало основной программы, в которой записываются команды (операторы). После слова begin точка с запятой не ставится.

    ✎ 7) end – по-англ. «конец», и в языке Pascal означает то же (конец программы). После последнего слова end всегда стоит точка. Мы выделили слово «последнего», поскольку использование конструкции begin – end возможно ещё в одном случае: это так называемые операторные скобки, которые применяются для объединения нескольких операций под одним оператором. Но об этом потом. Таким образом, основная программа будет выглядеть так:

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

    ✎ 8) write – по-английски означает «писать». Этот оператор выводит на экран текст, помещенный в него, поэтому так и называется – оператор вывода. Текст, помещенный в него, выделяется синим и записывается так:

    write( ‘этот текст выведен на экране’ );

    Сообщение, находящееся в скобках и кавычках, будет показано в окне консоли (просто в скобках без кавычек нельзя). После выполнения этого оператора мы увидим на экране:

    этот текст выведен на экране

    В таком виде оператор write используется в том случае, когда надо показать подсказку, пояснение, комментарий и т. п. А от если необходимо вывести ещё и числовое значение, скажем, S = 50 кв. м, то используется формат:

    write( ‘Величина площади равна: S = ‘ , S);

    В результате получим на экране результат:

    Величина площади равна: S = 50

    А при необходимости вывести единицы измерения, надо после S снова вставить текст в кавычках:

    write( ‘Величина площади равна: S = ‘ , S, ‘ кв.м’ );

    После выполнения последнего оператора вывода получим вывод на экран:

    Величина площади равна: S = 50 кв.м

    ✎ 9) writeln – то же, что и write, но после выполнения курсор будет переведен на следующую строку.

    ✎ 10) read – в переводе с английского означает «читать», поэтому read называется оператором считывания, или ввода данных. Записывается как read(N), что означает необходимость ввода величины N, где N – любое число, или текст, или другой тип переменной. Например, если надо ввести возраст человека, которому 32 года, мы можем записать так:

    Выражения Паскаль

    Какую структуру имеют выражения Паскаль? Выражения Паскаль задают определенное правило, по которому вычисляется некоторое значение. В состав выражений входят:

    • знаки операций
    • константы
    • указатели функций
    • переменные
    • скобки

    Математические операции Паскаль:

    Приведем стандартные математические операции в Паскале:

    + — сложение (3+58=61)
    — — вычитание (4-42=-38)
    * — умножение (8*12=96)
    / — деление (46/23=2)

    Однако кроме этих стандартных операций в Паскале предусмотрены еще 2 математические операции:

    div — деление нацело (10/3=3)
    mod — деление с остатком (10/3=1)

    Логические операции Паскаль:

    В языке Паскаль присутствуют еще и логические операции над аргументами логического типа, например, у нас даны две логические переменные A и B. В таблице истинности запишем результат выполнения тех или иных логических операций:

    Под not понимается логическое отрицание («НЕ»), and означает логическое умножение («И»), or подразумевает логическое сложение («ИЛИ»), xor раскрывает логическое «исключающее ИЛИ».

    Операции отношения Паскаль:

    Теперь поговорим об операциях отношения в Турбо Паскаль:

    Уникальность операций отношения состоит в том, что их можно выполнять не только над числами, но и над строками, символами, множителями и указателями.

    Приоритет операций Паскаль:

    Как в математике, так и в программировании присутствует приоритет операций. В Турбо Паскале порядок вычисления выражения фиксируется по старшинству содержащихся в нем операций:

    В математике тем не менее возможно переопределить порядок выполнения операций при помощи скобок. Турбо Паскаль — не исключение:

    2*4-3 = 5, 2*(7-10) = -6

    Математические функции Паскаль:

    Приведем основные математические функции, которые разработчики Турбо Паскаль предусмотрели и вставили в системную библиотеку:

    abs(n) — абсолютное значение числа n,

    sin(n) — синус числа n, где n — угол в радианах,

    cos(n) — косинус числа n, где n — угол в радианах,

    В Турбо Паскале не предусмотрены функций тангенса и котангенса. Чтобы их вычислить, используют выражения sin(x)/cos(x), cos(x)/sin(x) соответственно.

    atan(n) — арктангенс числа n,

    exp(n) — число e = 2,718 в степени n,

    ln(n) — натуральный логарифм числа n,

    pi — число Пи = 3,14,

    sqr(n) — квадрат числа n.

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

    2^(1.33) = exp(1.33*ln(2))

    sqrt(n) — квадратный корень из числа n,

    trunc(n) — число, равное целой части числа n (отбрасывается дробная часть числа n, результатом выполнения будет число с типом longint),

    frac(n) — число, равное дробной части числа n,

    int(n) — число, равное целой части числа n (в результате получается число с типом real),

    round(n) — округление числа n (возвращаемое значение будет иметь тип longint),

    random(n) — генератор псевдослучайных чисел в диапазоне 0 до n (если аргумент отсутствует, т.е. просто random, то в результате выполнения этой функции появится вещественное число от 0 до 1).

    Если вы хотите использовать random в процессе выполнения программы, то нужно его инициализировать(другими словами, активировать) процедурой randomize, иначе при последующем запуске программы будет выводиться та же самая последовательность случайных чисел. Рассмотрим на примере программу, которая выводит на экран любые 7 чисел в диапазоне от -15 до 15:

    program chislo;

    var j: integer;

    begin randomize;

    for j:=1 to 7 do

    writeln(random(26)-10);

    end.

    inc(m,n) — увеличение значения числа m на n (если число n не указано, то число m увеличивается на единицу),

    dec(m,n) — уменьшение значения числа m на n (если число n не указано, то число m уменьшается на единицу).

    Pascal-Паскаль

    Программирование. Стандартные функции Pascal-Паскаль

    • Скачено бесплатно: 9311
    • Куплено: 414
    • Pascal-Паскаль->Программирование. Стандартные функции Pascal-Паскаль

    Программирование. Стандартные функции Pascal-Паскаль

    Стандартные функции Pascal-Паскаль

    Порядок вычислений в выражениях следующий:

    1. вычисляются подвыражения, заключенные в скобки;
    2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
      • возведение в степень;
      • мультипликативные операции: * , / , div , mod;
      • унарные операции: + , — , abs , not;
      • аддитивные операции: +, -;
      • операции отношения: = , <>, , =;
      • логические операции: and, or, not;
    3. операции с одинаковым приоритетом выполняются слева направо.

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

    • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: x y = e ylnx
    • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

    Математическое выражение: x 3/2 — 7x + tg (x+2)

    Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

    Операторы действия

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

    Пример оператора присваивания

    Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

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

    1. В каждый момент времени в ящике может храниться не более одного значения.
    2. Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение — это расценивается как ошибка в программе.
    3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) — при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
    4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
    5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

    Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это — пустой оператор (в Паскале он обознается знаком «;»). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия — оператор останова, который прерывает работу программы (в Паскале это оператор halt).

    Ввод и вывод данных

    Ввод данных с клавиатуры производится с помощью стандартной процедуры read( ) или ее разновидности readln( ). Элементы списка ввода — идентификаторы (имена) переменных, перечисляемые через запятую. При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами (это важно!).

    Пример ввода данных с клавиатуры

    read(a,b,c);

    readln(a,b,c);

    Вывод данных на экран производится с помощью стандартной процедуры write( ) или ее разновидности writeln( ).

    Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

    Пример вывода данных на экран

    write(a,b,c);

    writeln(a,b,c);

    Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.

    Программирование

    Исходники Pascal (127)

    Справочник

    Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

    Читать еще:  Очередь в си шарп
Ссылка на основную публикацию
Adblock
detector