- •Алгоритмы, структуры данных и программирование
- •Қасымқанұлы Бөрібай, к.Ф.-м. Н., доцент кафедры высшей математики Костанайского государственного педагогического института
- •Работа №1
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •1 Способ:
- •2 Способ:
- •3 Задачи
- •4 Тесты
- •Работа №2
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №3
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Примеры решения задач
- •3 Задачи
- •4 Тесты
- •Работа №4
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №5
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №6
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №7
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы.
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №8
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Тесты
- •Работа №9
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №10
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №11
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №12
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №13
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №14
- •1. Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2. Пример решения задачи
- •3. Задачи
- •4. Тесты
- •Работа №15
- •1 Перечень знаний и умений, необходимых для выполнения лабораторной работы
- •2 Пример решения задачи
- •3 Задачи
- •4 Контрольные вопросы
- •Ответы к тестовым заданиям
4 Тесты
Истина или ложь?
Каждое из представленных ниже утверждений либо верно, либо нет.
К многомерным массивам, если они принадлежат одному типу и имеют одинаковую размерность, в Turbo Pascal можно применять арифметические операции.
В Turbo Pascal, если многомерные массивы принадлежат одному типу и имеют одинаковую размерность, то скопировать все элементы из одного массива в другой можно единственным оператором присваивания.
В Turbo Pascal к многомерным массивам можно применить стандартную процедуру write, при этом все элементы массива будут отделены друг от друга на экране символом пробел.
В многомерных массивах в Turbo Pascal элементы могут иметь разный тип данных.
Обращения к элементу массива a [x] [y] и а [х,у] в Turbo Pascal идентичны.
В Turbo Pascal к массивам нельзя применять операции сравнения.
Набор операций над элементами многомерного массива соответствует операциям допустимым для базового типа.
Квадратной матрицей называется двумерный массив, количество строк и столбцов которого совпадает.
При обращении к элементу n – мерного массива необходимо указать n его индексов.
В 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.
Глобальная переменная - это переменная, объявленная во внешнем для данной процедуры блоке.
Локальная переменная - переменная, объявленная во внутреннем блоке.
В процедурно-ориентированных языках действуют следующие правила:
все объявления локальных переменных являются для внешнего блока невидимыми, эти переменные нельзя использовать во внешнем блоке;
все объявления глобальных переменных, имена которых не совпадают с именами локальных переменных, являются видимыми во всех внутренних блоках;
если имена глобальных и локальных переменных совпадают, то во внутреннем блоке используется локальная переменная.
Это связано с тем, что при каждом вызове процедуры локальные переменные создаются заново, а при возврате из нее - уничтожаются.
