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

4 Тесты

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

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

  1. Можно ли использовать в условных операторах при формировании условия логические операторы NOT, AND, OR?

  2. Верно ли, что после зарезервированных слов THEN и ELSE в операторе ветвления может быть указан только один оператор?

  3. В Turbo Pascal предусмотрен единственный условный оператор – IF.

  4. Оператор ветвления позволяет осуществить выбор одной из двух альтернатив.

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

  6. В Turbo Pascal допускается вложенность условных операторов.

  7. Используемые в операторе CASE константы выбора являются метками.

  8. В качестве условия в операторе ветвления может быть переменная логического типа.

  9. Оператор выбора имеет полную и сокращенную форму записи.

  10. Результат сравнения в условии оператора ветвления не всегда представляет собой значение логического типа.

Работа №2

Тема: Программирование циклического процесса

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

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

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

  • с назначением, синтаксисом и особенностью оператора for;

  • с назначением, синтаксисом и особенностью оператора while;

  • с назначением, синтаксисом и особенностью оператора repeat;

  • c синтаксисом и назначением составного оператора;

  • c синтаксисом и назначением оператора перехода.

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

В задачах вычислительной математики часто встречаются обозначения типа , и т.д. В первом случае это означает, что выражение следует просуммировать (m-n) раз, а во втором случае – выражение необходимо перемножить (m-n) раз.

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

Вычислить факториал заданного числа.

Факториалом называется произведение всех натуральных чисел от 1 до заданного числа. В математике факториал числа n обозначается следующим образом: n!. Эту же запись можно представить в виде .

Представим решение этой задачи четырьмя способами.

Способ 1: использование цикла с возрастающим параметром.

for i=1 to n do

fact:=fact*i;

{в этой строе происходит задание специальному параметру (переменной i) начального (1) и конечного (n) значений. Зарезервированное слово to означает, что параметр i будет постепенно увеличиваться на 1}

{последовательное домножение результирующего значения на промежуточное натуральное число .}

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

program factor;

uses crt;

var n,i: integer;

fact: longint; {при вычислении факториала получающиеся значения часто выходят за диапазон типа integer}

begin

writeln(‘введите натуральное число n’);

readln(n);

fact:=1;

for i=1 to n do fact:=fact*i;

writeln(‘Ответ’,n);

end.

Способ 2: использование цикла с убывающим параметром.

for i=n downto 1 do

fact:=fact*i;

{в этой строе происходит задание специальному параметру (переменной i) конечного (n) и начального (1) значений. Зарезервированное слово downto означает, что параметр i будет постепенно уменьшаться на1}

{последовательное домножение результирующего значения на промежуточное натуральное число .}

program factor;

uses crt;

var n,i: integer;

fact: longint;

begin

writeln(‘введите натуральное число n’);

readln(n);

fact:=1;

for i:=n downto 1 do fact:=fact*i;

writeln(‘Ответ’,fact);

end.

Способ 3: использование цикла с предусловием.

while i<=n do

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

begin

{поскольку необходимо произвести умножение и перейти к следующему натуральному числу, на которое необходимо домножить переменную fact (результирующее значение), т.е. выполнить два оператора присваивания, а в теле цикла while может быть только один оператор, используется открывающая скобка begin составного оператора}

fact:=fact*i;

{происходит домножение переменной fact на натуральное число}

i:=i+1;

{осуществляется переход к следующему натуральному числу}

end;

{закрытие тела оператора}

program factor;

uses crt;

var n,i: integer; fact: longint;

begin clrscr;

writeln(‘введите натуральное число n’); readln(n);

fact:=1; i:=1;

while i<=n do begin fact:=fact*i; i:=i+1; end;

writeln(‘Ответ’,fact);

end.

Способ 4: использование цикла с постусловием.

repeat

{открывающая скобка составного оператора}

fact:=fact*i;

i:=i+1;

until i>n;

{последовательность операторов (тело) выполняется до тех пор пока условие ложно}

program factor;

uses crt;

var n,i: integer; fact: longint;

begin

clrscr;

writeln(‘введите натуральное число n’);

readln(n);

fact:=1; i:=1;

repeat fact:=fact*i; i:=i+1; until i>n;

writeln(‘Ответ’,n);

end.