Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
брошюра по Pascal (ТУСУР).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
525.82 Кб
Скачать

Дополнительные задания

1.Заданы пять значений количества заболевших гриппом в классе за последние 5 лет : (2001),(2002),(2003),(2004) , (2005) . С помощью Bar3D постройте диаграмму , отражающую динамику (в высоте столбца ) заболеваемости. Под каждым столбцом укажите год. Исходные данные опишите в типизированном массиве.

Урок 9 Процедуры и функции

Цель

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

Задачи

  • Дать основное понятие назначения подпрограммы и её виды в Pascal (процедура, функция), знать принцип работы подпрограмм и их описание в самой программе.

  • Определиться в принципиальном отличии в:

  • назначении; описании; вызове процедуры и функции.

  • Дать понятие глобальным и локальным переменным.

  • Разобраться в механизме передачи данных между программой и подпрограммой.

  • Научиться описывать переменные, как в процедурах, так и в функциях.

Основные понятия

Описание процедуры:

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

var{раздел описания переменных}

begin

{операторы}

end;

Пример

procedure r (xa,ya,xb,yb:real; var d:real);

begin

d:=sqrt(sqr(xa-xb)+(ya-yb));

end;

Описание функции:

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

begin

<имя функции>:=<выражение>;

end;

Пример

fuction r (xa,ya,xb,yb:real;)real);

begin

r:= sqrt(sqr(xa-xb)+(ya-yb));

end;

Задания

Задачи сложности А

1.Написать процедуру ввода элементов матрицы Т.

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

3.Написать программу упорядочивание значений трех переменных a , b , c. Алгоритм упорядочивания написать процедурой.

Задачи сложности B

1Написать процедуру ввода и вывода элементов матрицы Т.

2.Написать функцию, которая находит сумму цифр целого числа.

3.Вычислить сумму 1!+2!. . . +n! , используя подпрограмму вычисления факториала.

Задачи сложности С

1.Составьте программу вычисления числа сочетаний из N по M. Число сочетаний определяется по формуле : N!/(M!*(N-M)!, где N-количество перебора. Используйте подпрограмму вычисления факториала.

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

9+9+9+9+9+9+9=63

6+3=9

3.Написать программу вычисления значения. Создать функцию Step которая бы позволяла находить степень числа.

Контрольные вопросы

1.Что называют подпрограммой? В чем состоит сходство и различие процедур и функций?

2.В чем различие между стандартными и нестандартными процедурами? Можно привести пример.

3.Опишите последовательность событий при вызове процедуры или функции?

4.Чем отличаются локальные и глобальные переменные. Какова область их действия?

5.Формальные и фактические переменные ? их взаимосвязь?

6. Рассмотрите нижеследующие примеры подпрограмм. Определите, какие из них относятся к функциям и какие – к процедурам. Вставьте соответствующие служебные слова.

  1. _________ Sum(a,b:integer; var c:integer);

begin

c:=a+b;

end;

  1. __________ Sum(a,b:integer):integer;

begin

Sum:=a+b;

end;

  1. ___________ MIN(a,b:integer):integer;

begin

if a>b then MIN:=a

else MIN:=b;

end;

  1. _____________ MIN(a,b:integer);

begin

if a>b then write(a)

else write(b);

end;

Дополнительные задания

1.Составить программу перевода двоичной записи числа в десятичную

Урок 10 Множественный тип данных. Комбинированный тип данных (Записи)

Цель

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

Задачи

  • Дать основное понятие множественного типа и его описание, а также разобрать работу операций над множествами.

  • Дать основное понятие комбинированного типа и его описание.

  • Дать анализ применения.

Основные понятия

Структура описания множественного типа:

var

<идентификатор >: set of <элемент1,…..,элемент n >;

Структура описания комбинированного типа:

Type

< имя типа > = record

<идентификатор поля >:< типа компонента >;

end;

var

<идентификатор>:<имя типа>;

Задания

Задачи сложности А

1.Написать программу, демонстрирующую все возможные операции над множествами.

Задачи сложности B

1.Написать программу, позволяющую удалять из диапазона чисел от 1 до 25, числа кратные 2.

Задачи сложности С

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

Стандартные библиотечные модули

Crt

Содержит средства управлением дисплеем и клавиатурой.

Graph

Содержит пакет графических средств.

Арифметические процедуры и функции

Abs(x)

Функция определения модуля числа x , где x переменная целого или вещественного типа, значение совпадают с типом аргумента.

ArcTan(x)

Вычисление угла, тангенс которого равен x радиан.

Cos(x)

Вычисление косинуса X параметр задает значение угла в радианах.

Exp(x)

Экспонента в степени x , аргумент и значение всегда вещественного типа.

Frac(x)

Вычисление дробной части X.

Int(x)

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

Ln(x)

Натуральный логарифм x , аргумент и значение вещественного типа.

Pi

Возвращает значение числа Пи.

Sin(x)

Вычисление синуса X. Параметр задает значение угла в радианах .

Sqr(x)

Возведения в квадрат, где x- переменная целого или вещественного типа, значение функции совпадает с типом аргумента.

Sqrt(x)

Извлечения квадратного корня ,где x - переменная целого или вещественного типа, значение функции всегда вещественного типа.

Random

Генерирует значение случайного числа из данного диапазона.

Randomize

Изменение базы случайного числа.

Mod

Вычисляет целую часть от частного, дробная откидывается.

Div

Целочисленное деление.

Скалярные процедуры и функции

Dec(x,{n})

Процедура уменьшает значение целочисленной переменной X на величину N.

Inc(x,{n})

Процедура увеличивает значение целочисленной переменной X на N.

Pred(s)

Функция возвращает элемент предшествующий S в списке значений

(например ,pred(‘9’)=’8’).

Succ(s)

Возвращает значение , следующее за S ( например, succ(‘b’)=’a’).

Odd(I:integer):boolean

Возвращает True если I нечетное и False если Iчетное.

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

Ord(c)

(С-переменная символьного типа) вычисляет порядковый номер символа c ( например, ord('r')=82 ).

Chr(i)

(i-переменная целого типа) выдает символ с порядковым номером I (например 1, chr(68=’d’).

Trunc(x)

Отбрасывание вещественной части x, x- вещественное значение trunc(5.67)=5

Round(x)

Операция округления вещественного числа x до ближайшего целого

round(5.67)=6;

round(5.47)=5;

Frac(x)

Получение дробной части вещественного числа Frac(5.67)=0.67.

Процедуры управления программой

Delay(i:word)

Задержка выполнения программы на 1 Мсек.

Exit

Выход в окружающую среду.

AssignCrt(F)

Связывает текстовый файл F с устройством Crt.

Строковые процедуры и функции

Delete(st,poz,n)

Удаление N символа строки St начиная с позиции Poz.

Insert(str1,str2,poz)

Вставка строки str1 в строку str2 начиная с позиции poz.

Str(ibr,st)

Преобразование числового значения величины ibr и помещение результата в строку st.

Val(St,ibr, code)

Преобразует значение St в величину целочисленного или вещественного типа и помещает результат ibr.

Copy(st,poz,n)

Выделяет из st подстроку длиной n символов, начиная с позиции poz.

Concant(Str1,str2..strn)

Выполняет сцепление строк Str1,str2..strn в том порядке в каком они указаны в списке параметров.

Length(St)

Вычисляет текущую длину в символах строки St . Результат имеет целочисленный тип.

Pos(Str1,Str2)

Обнаруживает первое появление в строке Str2подстроки Str1.

UpCsae(Ch)

Преобразует строчную букву в прописную.

Операции отношения

A=b

Числа равны.

A<>b

Числа не равны

a>b

Первое число больше второго.

a>=b

Первое число меньше второго.

A<b

Первое число меньше второго.

A<=b

Первое число не больше второго.

Логические выражения

Or

Логическое сложение (ИЛИ).

And

Логическое умножение (И).

Not

Логическое отрицание (НЕ).

Процедуры задания режимов работы

TextMode(t)

Задание текстового режима.

HighVideo

Устанавливает высокую яркость символов (заменяет цвета 0-7 на цвета 8-15), выводимых далее на экран.

LowVideo

Устанавливает малую яркость символов.

NormVideo

Устанавливает первоначальную яркость символов, выводимых далее на экран

TextBackGround(color) TextColor(color)

Задаёт цвет фона. Color может принимать значение только 0-7

Процедуры работы с экраном

ClrEol

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

ClrScr

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

DelLine

Удаляет строку, в которой находится курсор.

GotoXY(X,Y)

Перемещает курсор к элементу окна с заданными координатами. Если хотя бы одна из координат недопустима, процедура не выполняется.

InsLine

Вставляет пустую строку на экране в месте расположения курсора и заполняет её текущим цветом фона.

Window(X1,Y1,X2,Y2)

Задаёт размеры окна на экране и помещает курсор в левый верхний угол окна с координатами (1,1). Если хотя бы одна из координат недопустима, процедура не выполняется

.

Функции работы с экраном.

WhereX :integer

Возвращает текущую координату X курсора.

WhereY :integer

Возвращает текущую координату Y курсора.

Функции работы с клавиатурой.

ReadKey :char

Считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа.

Процедуры управления звуком.

Sound(Hz)

Запускает источник звука с частотой Hz герц.

NoSound

Выключает источник звука.

Обратите внимание!

* в конце каждого оператора ставится знак ;

* читаемые строки заключаются в ‘ ‘

Пример программы, которая считает сумму двух целых чисел.

Var

x1, x2, sum : integer;

Begin

x1 := 3;

x2 := 7;

sum := x1 + x2;

writeln(‘ вывод результата сумму двух целых чисел X1 и Y2 ’, sum);

End.

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

В результате выполнения данной программы в переменную sum присвоили сумму двух чисел x1 и x2, таким образом, в переменной sum теперь хранится число 10.

    • Чтобы увидеть результат:

      • нажать Alt+F5 (переход в пользовательский экран Debug → User Screen)

    • Чтобы всегда видеть результат:

      • выполнить Debug → Output;

      • выполнить Window → Tile.

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

    • Сохранение:

      • F2 или File → Save

    • Автоматическое сохранение при запуске программы:

Options → Environment → Preferences, в разделе Auto save включить Editor files

9