Селектор – выражение порядкового типа, которое может принимать одно из многих значений (селектор может быть целым числом и не может быть дробным числом).

Оператору варианта могут соответствовать фрагменты блок-схемы

  или 

В операторе варианта служебное слово else и ветвь «нет» могут отсутствовать.

Задача 2.

Условие задачи. Вычислить величину

Блок-схема.


Программа.

Program z2;

Var

a, b,c:real;

Begin

read(a, b);

if a>b

  then c:=a+b

  else c:=a-b;

writeln(c);

End.

Задача 3.

Условие задачи. Вычислить величину ,  где a и c – целые числа.

а) Использование вложенных условных переходов

Программа.

Program z3a;

Var

a, c:integer;

Begin

read(a);

if a=0 then c:=2

  else if (a>=1) and (a<=10) then c:=3

  else if (a=-1) or (a=11) then c:=4

  else c:=5;

writeln(c);

End.

б) Использование множественного ветвления

Программа.

Program z3b;

Var

a, c:integer;

Begin

read(a);

case a of

  0: c:=2;

  1..10: c:=3;

  -1,11: c:=4

  else c:=5

  end;

writeln(c);

End.

9.3. Программирование циклов

Для реализации алгоритма циклической структуры в языке Pascal используются следующие операторы.

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

Этот оператор имеет вид:

while U do Op

где  while  – пока,  do  – делать, U  – условие, Op  – оператор.

НЕ нашли? Не то? Что вы ищете?

Это означает, что пока условие U истинное, повторять оператор Op в цикле; как только условие станет ложным, выйти из цикла.

Оператору цикла с предусловием может соответствовать фрагмент блок-схемы

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

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

Этот оператор имеет вид:

repeat

Op1;

  …

OpN

until U

где  repeat  – повторять,  until  – до тех пор пока, Op1  – оператор 1-й,  OpN  – оператор N-й, U  – условие.

Это означает, что надо повторять операторы Op1, … OpN в цикле до тех пор, пока условие U не станет истинным; как только условие станет истинным, выйти из цикла.

Оператору цикла с постусловием может соответствовать фрагмент блок-схемы

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

Оператор цикла с параметром позволяет выполнять заранее известное количество повторений в цикле, определяемое параметром цикла. Этот оператор имеет 2 разновидности.

а) Оператор цикла с параметром (при увеличении параметра) имеет вид:

for Par := Nz to Kz do Op

где  for  – для,  to  – до,  do  – делать,  Par  – параметр цикла,  Nz  – начальное значение,  Kz  – конечное значение,  Op  – оператор.

Это означает, что для параметра Par, увеличивающегося от начального значения Nz до конечного значения Kz с шагом 1, повторять оператор Op в цикле.

б) Оператор цикла с параметром (при уменьшении параметра) имеет вид:

for Par := Nz downto Kz do Op

где  for  – для,  downto  – вниз до,  do  – делать,  Par  – параметр цикла,  Nz  – начальное значение,  Kz  – конечное значение,  Op  – оператор.

Это означает, что для параметра Par, уменьшающегося от начального значения Nz до конечного значения Kz с шагом (-1), повторять оператор Op в цикле.

Параметр цикла (счётчик циклов) – переменная порядкового типа, изменяющаяся в цикле от начального до конечного значения с каким-либо шагом (параметр цикла может быть целым числом и не может быть дробным числом).

Оператору цикла с параметром могут соответствовать фрагменты блок-схемы

  или 

Задача 4.

Условие задачи. Вычислить значения функции при x, увеличивающемся от xн до xк с шагом Δx

(Введём обозначения: xн → xn ;  xк → xk ;  Δx → dx ).

Блок-схема.

Программа.

Program z4;

Var

x, y,xn, xk, dx:real;

Begin

read(xn, xk, dx);

x:=xn;

while x<=xk do

  begin

  y:=sin(x)/cos(x);

  writeln('при x=',x:10:3,'  y=',y:7:2);

  x:=x+dx;

  end;

End.

Задача 5.

Условие задачи. Вычислить значения функции при x, изменяющемся от 0 до 10 с шагом 1.

а) Цикл с предусловием.

Блок-схема.


Программа.

Program z5a;

Var

x, y:real;

Begin

x:=0;

while x<=10 do

  begin

  y:=exp(x);

  writeln(x, y);

  x:=x+1;

  end;

End.

б) Цикл с постусловием.

Блок-схема.

Программа.

Program z5b;

Var

x, y:real;

Begin

x:=0;

repeat

  y:=exp(x);

  writeln(x, y);

  x:=x+1;

  until x>10;

End.

в) Цикл с параметром.

Блок-схема.


Программа.

Program z5c;

Var

x:integer;

y:real;

Begin

for x:=0 to 10 do

  begin

  y:=exp(x);

  writeln(x, y);

  end;

End.

г) Цикл с использованием безусловного перехода.

Блок-схема.

Программа.

Program z5d;

Label 20;

Var

x, y:real;

Begin

  x:=0;

20: y:=exp(x);

  writeln(x, y);

  x:=x+1;

  if x<=10 then goto 20;

End.

Тема № 10. Программирование задач с массивами

10.1. Одномерные массивы

Одномерный массив (вектор) – массив, элементы которого имеют один неповторяющийся номер.

Индекс одномерного массива – порядковый номер элемента в одномерном массиве.

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

Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:

Mas : array [ IMin.. IMax ] of T ;

где  array  – массив,  of  – из, Mas  – имя массива,  IMin  – минимальное значение индекса, IMax  – максимальное значение индекса, T  – тип элементов.

Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T.

Пример.

Var A : array [1..100] of real;

Это означает, что переменная A – массив, который может содержать от 1 до 100 элементов вещественного типа.

Доступ к элементу одномерного массива на языке Pascal имеет вид:

Mas [ Ind ]

где  Mas  – имя массива,  Ind  – индекс.

Это означает доступ к элементу массива Mas с индексом Ind.

Пример.

A[1]

b[3]

c[i]

d[n]

f[k+1]

Это означает 1-й элемент массива A и т. д.

Задача 1.

Условие задачи. Дан массив A, состоящий из n элементов (n ≤ 100). Найти сумму элементов массива:

.

Блок-схема.

Программа.

Program z1;

Var

A:array[1..100] of real;

i, n:integer;

s:real;

Begin

read(n);

s:=0;

for i:=1 to n do

  begin

  read(A[i]);

  s:=s+A[i];

  end;

writeln(s);

End.

Пусть A - одномерный массив, n - количество элементов в массиве, i - индекс элементов массива. Рассмотрим следующие фрагменты программ.

Фрагменты вычисления характеристик одномерного массива

Рассмотрим фрагменты программ в таблице 1.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13