Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ Информатика 2 часть.docx
Скачиваний:
5
Добавлен:
22.09.2019
Размер:
2.18 Mб
Скачать
  1. Инструкция выбора Case.

Инструкция выбора Case используется при множественном разветвлении алгоритма, например, если необходимо по числовому значению дня недели указать его название (1 - понедельник, 2 - вторник, 3 – среда и т.д.).

Инструкция выбора case позволяет реализовать множественный выбор и записывается:

Case выражение of

списокконстант 1: begin

{ последовательность инструкций 1 }

end;

списокконстант 2: begin

{ последовательность инструкций 2 }

end;

список констант N: begin

{ последовательность инструкций N }

end;

else

begin

{ последовательность инструкций, выполняемая }

{ в случае, если значение выражения не попало }

{ ни в один из списков констант }

end;

end;

Если между begin и end находится только одна инструкция, то их можно не писать.

Блок-схема алгоритма, соответствующая инструкции case представлена на рисунке Д.2.

Рисунок Д.2 – Блок-схема, соответствующая инструкции case

Приложение е

(информационное)

Пример выполнения лабораторной работы 3

Задание: Дано действительное а. Для функций f(a), график которой представлен на рисунке Е.1, вычислить f(a).

Рисунок Е.1 - График функции f(a)

Этапы решения задачи:

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

  1. Блок схема программы приведена на рисунке Е.2.

Рисунок Е.2 – Схема алгоритма программы

  1. Листинг программы.

Program example2;

Var a,f:real;

begin

readln(a);

if a<-1 then f:= -a-1 else

if (a>=-1) and (a<0) then f:= a+1 else

if (a>=0) and (a<1) then f:= -a+1 else f:= a+1;

writeln('F= ', f:4:2);

readln;

end.

  1. Результаты тестирования программы.

Приложение ж

(информационное)

Циклические структуры

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

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

  1. Цикл с параметром - инструкция for,

  2. Цикл с предусловием - инструкция while,

  3. Цикл с постусловием - инструкция repeat.

1. Цикл с параметром. Инструкция for используется, если некоторую последовательность действий надо выполнить несколько раз, причем число повторений заранее известно.

Существует две структуры данного оператора.

В общем виде инструкция for записывается:

1) Увеличение счетчика по возрастанию:

forсчетчик: =нач.значение to кон.значение do

begin

{ последовательность инструкций}

end;

2) Увеличение счетчика по убыванию

forсчетчик: =нач.значение downto кон.значение do

begin

{ последовательность инструкций}

end;

гдесчетчик — имя переменной-счетчика числа повторений инструкций цикла;

нач_значение — выражение, определяющее начальное значение переменной-счетчика циклов;

кон_значение — выражение, определяющее конечное значение переменной-счетчика циклов.

Если между begin и end находится только одна инструкция, то слова beginи end можно не писать. Блок-схема цикла с параметром For представлена на рисунке Ж.1.

Рисунок Ж.1 - Блок схема, соответствующая инструкции for

2. Цикл с предусловием. Инструкция while используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно и может быть определено только во время ее работы, т. е. определяется ходом вычисления. Проверка условия осуществляется перед циклом, цикл выполняется, если условие принимает значение True (истина).

В общем виде инструкция whileзаписывается так:

Whileусловиеdo

Begin

{последовательность инструкций}

end;

где условие – выражение логического типа, определяющее условие выполнения цикла – инструкций, находящихся между Beginи end.

Блок-схема цикла представлена на рисунке Ж.2, логика алгоритма приведена на рисунке Ж.3.

Рисунок Ж.2 –Схема алгоритма, соответствующая инструкции while

Рисунок Ж.3–Логика алгоритма, соответствующая инструкции while

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

  • для того чтобы инструкции цикла while были выполнены хотя бы один раз, необходимо, чтобы перед выполнением инструкции while условие выполнения цикла было истинно;

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

3. Цикл с постусловием. Инструкция repeat, как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов во время разработки программы неизвестно и может быть определено только во время работы программы, т. е. определяется ходом вычисления. Первоначально условие принимает значение False (ложь). Цикл выполняется до тех пор, пока условие не станет True (истина).

В общем виде инструкция repeat записывается:

repeat

{ инструкции }

untilусловие;

где условие — выражение логического типа, определяющее условие завершения цикла.

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

  • инструкции цикла, находящиеся между repeat и until, всегда будут выполнены хотя бы один раз;

  • для того чтобы цикл завершился, необходимо, чтобы инструкции цикла находящиеся между repeat и until, изменяли значения переменных входящих в выражение «условие». Блок-схема – рисунок Ж.4, логика инструкция приведена на рисунке Ж.5.

Рисунок Ж.4–Схема алгоритма, соответствующая инструкции repeat

Рисунок Ж.5–Логика алгоритма, соответствующая инструкции repeat

Пример.

Задание: Вычислить сумму натурального ряда чисел от 1 до N, т.е. найти сумму .

Решение. Программа с использованием оператора цикла с предусловием while.

Program Natur1;

Var a, Summa: integer;

Begin

write('N=');

readln(N);

{Цикл с предусловием}

a:=l;

Summa:=0;

while a<=N do

begin

Summa:=Summa+a;

a := a + 1

end;

Writeln(' Результат = ', Summa);

end.

Решение. Программа с использованием оператора цикла с постусловием repeat.

Program Natur2;

Var a, Summa: integer;

Begin

write('N=');

readln(N);

{Цикл с постусловием}

а:=1;

Summa:=0;

repeat

Summa:=Summa+ a;

а:=а+1

until a>N;

Writeln(' Результат = ', Summa);

end.

Решение. Программа с использованием оператора цикла с параметром for.

Program Natur3;

Var a, Summa: integer;

Begin

write('N=');

readln(N);

{Цикл с параметром}

Summa:=0;

for а := 1 to N do

Summa: =Summa+a;

Writeln(' Результат = ', Summa);

end.