Программирование алгоритмов разветвляющейся структуры

Программирование.

Вывод информации.

Бесформатный вывод.

Write(P1,P2…Pn ) // (константы, переменные или выражения стандартного или строкового типа)

При бесформатном выводе информация выводится в форме определенной компилятором. Вещественные числа в показательной форме.

Поэтому чтобы управлять формой вывода используют форматный вывод.

Форматный вывод.

1)Целых, литерных, булевских значений

Write(P1:N1,P2:N2,……,PN:NN);

Writeln(P1:N1,P2:N2,……,PN:NN);

Ni-ширина поля при выводе(можем обозначить const,переменной, выражение типа Word,byte,integer)(выводится 80 позиций)

2)вещественных переменных в форме с порядком x.x….xE +-{dddd}

- В Ni позициях число размещаяется в крайних правых позициях слева пробелы.

- Если Ni отрицательно, то формирование по левому краю.

- Если Ni недостаточно. То оно игнорируется.

Пример:

Программирование алгоритмов разветвляющейся структуры - student2.ru

Информация в апострофах не анализируется , а выводиться как есть.

Если Mi<0 – то игнорируется.

Mi = 0 – выводится только целая часть.

Mi – недостаточно, то мантиса округляется.

Mi больше, чем дробная часть , то справа нули.

Ni >0 , форматирование по правому краю

Ni <0 форматирование по левому краю

Программирование алгоритмов разветвляющейся структуры - student2.ru

Программирование алгоритмов разветвляющейся структуры

Составной оператор- это совокупность операторов, заключенных в операторные скобки «Begin, end» которые воспринимаются как единое неделимое целое.

Оператор условного перехода

- IF b Then s1 {полная форма}

Else s2

- IF b Then s1 {сокращенная форма}

b- булевское выражение, S1,S2 простые или составные операторы.

Программирование алгоритмов разветвляющейся структуры - student2.ru

S – один оператор или группа операторов которые можно не заключать в операторные скобки.

1)Полная форма оператора условного перехода.

B?
S2
S1

Оператор варианта

Case N of

M1:s1;

M2:s2;

……

Mk:sk

Else s

End:

Где N- переключатель варианта(порядковый тип);

M1,M2,….Mk – константы выбора (тип совместим с типом переключателя);

S1,s2,…sk –простые или составные операторы.

Задача:

Составить программу выполняющее любое из арифметических действий с вещественными числами : Исходные данные задавать в следующем виде – A_+B (<число>< пробел>< знак операции> <число> )

A –B

A /B

A *B

Пример:

Var

R,A,B : real;

Z : char;

Begin

Writeln(‘Enter A_ZB’);

Readln(A,Z,Z,B);

Case Z of

‘+’: R=A+B;

‘-‘: R=A-B;

‘/’:R=A/B;

‘*’:R=A*B;

End;

Writeln(‘R=’,R);

End.

В операторе вариантов можно указывать список меток.

Case k of

m11,m12,m13:s1;

m21,m22:s2;

end;

В списке меток может присутствовать диапазон. (‘A’..’Z’)

Оператор безусловного перехода.

Goto N;(N – должен быть объявлен в label);

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

Ограничения накладыающиеся на использование оператора “GOTO”

1)Переходы можно осуществлять внутри одного уровня или при передаче управления из внутреннего во внешний но не наоборот.

2)Нельзя передавать во внутрь составного оператора(If , case, и цикла)

3)Нельзя передавать управление с одной альтернативы на другу в операторах If, Case.

4) Можно выйти из процедуры или функции но нельзя войти в них.

Программирование алгоритмов с циклической структурой.

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

- циклы с заданным числом повторений

- итерационные циклы

Итерационным циклом называют цикл, число повторений которого заранее неизвестно, но может быть определенно в ходе его работы.

Примером итерационного цикла является алгоритм построения последовательности a1,a2,…..,an,…..по правилу: для заданного x

An:=((-1)^n*x^n)/(n(n+1!))

И вычисления следует закончить, если |an|<ὲ(ὲ<10^-2)

Указанные циклы можно реализовать с помощью операторов IF и GOTO, но в любом языке программирования всегда имеются специальные операторы, называемы операторами цикла.

В языке Паскаль реализовано три типа операторов цикла :

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

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

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

Программирование алгоритмов разветвляющейся структуры - student2.ru

Программирование алгоритмов разветвляющейся структуры - student2.ru

Программирование алгоритмов разветвляющейся структуры - student2.ru

Задача 1:

Распечатать буквы латинского алфавита в следующем порядке:

A

B

C

D

*Выбрать параметр цикла:

1)не целый тип. Тип Char.

2)начальное значение A, конечное значение Z.

Пример:

programp1;

Var

c:char; n:byte;

Begin

n:=1;

forc:='A' to'Z' do

Begin

writeln(c:n);

inc(n)

end;

end.

_____________

При использовании оператора цикла for (обе формы) нельзя изменять параметры N1, N2, I внутри цикла.

Выход из цикла можно осуществить и до завершения цикла с помощью операторов if, goto, case.Такой выход называется специальным. При специальном выходе значение параметров цикла сохраняется.

Задача 2:

Вычислить следующее значение sqrt(3+sqrt(6+….sqrt(3*(n-1)+sqrt(3*n)))).

Пример:

Fori:=n downto1 dos:=sqrt(3*i+s);

_____________

Организация циклов с шагом:

Цикл с параметром I=1,n с шагом 2

I:=1;

whileI <= n do

Begin

S;

Inc(I,2);

end;

Наши рекомендации