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

4 Тесты

Истина или ложь?

Каждое из представленных ниже утверждений либо верно, либо нет.

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

  2. В Turbo Pascal, если многомерные массивы принадлежат одному типу и имеют одинаковую размерность, то скопировать все элементы из одного массива в другой можно единственным оператором присваивания.

  3. В Turbo Pascal к многомерным массивам можно применить стандартную процедуру write, при этом все элементы массива будут отделены друг от друга на экране символом пробел.

  4. В многомерных массивах в Turbo Pascal элементы могут иметь разный тип данных.

  5. Обращения к элементу массива a [x] [y] и а [х,у] в Turbo Pascal идентичны.

  6. В Turbo Pascal к массивам нельзя применять операции сравнения.

  7. Набор операций над элементами многомерного массива соответствует операциям допустимым для базового типа.

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

  9. При обращении к элементу n – мерного массива необходимо указать n его индексов.

  10. В Turbo Pascal не допускается существование массивов, элементами которых являются также массивы.

Работа №9

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

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

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

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

  • правила объявления процедур и их параметров;

  • назначение и синтаксис стандартных процедур языка Turbo Pascal;

  • назначение и синтаксис директивы external;

  • назначение и синтаксис директивы assembler;

  • назначение и синтаксис директивы inline.

2. Пример решения задачи

Разработка процедур подчиняется уже известному нам правилу: они должны быть описаны до того, как будут использоваться. Объявление процедуры производится в разделе описаний основной программы. Структура процедуры напоминает структуру программы и содержит такие же разделы, только вместо слова program указывается слово procedure, за которым могут следовать параметры (пока мы рассматриваем процедуры без параметров). Остальная часть процедуры практически не отличается от программы. В разделе описаний могут быть и описания переменных, и описания констант, и даже объявления своих процедур. После слова end, завершающего процедуру ставится точка с запятой.

Например: 5!=1·2·3·4·5=120

Вычислить C:= (n!+m!+5)/(n+5)!

Решение данной задачи будет состоять из трех этапов.

Первый этап – объявление переменных:

var

n,m:integer;

i:integer;

fn,fm,fnn:integer; { fn=n! fm=m!, fnn=n+5!}

c:real;

Второй этап – объявление процедуры в разделе описаний основной программы:

procedure factor(nn:integer; var p:integer);

begin

p:=1;

for i:=1 to nn do

p:=p*i;

end;

Третий этап – вычисление факториалов с помощью описанной процедуры:

begin

write('n='); readln(n);

write('m='); readln(m);

factor(n,fn);

factor(m,fm);

factor(n+5,fnn);

c:=(fn+fm+5)/fnn;

writeln('c=',c);

end.

Программа выглядит следующим образом.

Program Faktorial;

Var n,m:integer; i:integer;

fn,fm,fnn:integer; { fn=n! fm=m!, fnn=n+5!}

c:real;

procedure factor(nn:integer; var p:integer);

begin

p:=1;

for i:=1 to nn do

p:=p*i;

end;

begin

write('n='); readln(n);

write('m='); readln(m);

factor(n,fn);

factor(m,fm);

factor(n+5,fnn);

c:=(fn+fm+5)/fnn;

writeln('c=',c);

end.

Глобальная переменная - это переменная, объявленная во внешнем для данной процедуры блоке.

Локальная переменная - переменная, объявленная во внутреннем блоке.

В процедурно-ориентированных языках действуют следующие правила:

  • все объявления локальных переменных являются для внешнего блока невидимыми, эти переменные нельзя использовать во внешнем блоке;

  • все объявления глобальных переменных, имена которых не совпадают с именами локальных переменных, являются видимыми во всех внутренних блоках;

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

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