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

Использование псевдографики для оформления результатов

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

Например, чтобы оформить результаты вычисления функции у=sin(x) для x=[0,1;1] с шагом h=0,1, можно написать программу

program prim2;

var i:integer; x,y:real;

begin

x:=0.1;

{рисуем заголовок таблицы}

write('|');

for i:=1 to 21 do write('-'); writeln('|');

writeln ('|','x':5,'|':6,'y':5,'|':6);

write('|');

for i:=1 to 21 do write('-'); writeln('|');

{заполняем таблицу}

for i:=1 to 10 do begin

y:=sin(x);

writeln('|',x:6:2,'|':5,y:6:3,'|':5);

x:=x+0.1;

end;

{закрываем рамку таблицы}

write('|');

for i:=1 to 21 do write('-'); writeln('|');

end.

1.5. Разветвляющиеся алгоритмы и их реализация

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

Вычислим значение

для a = 0,5; x = [0,3;1] с шагом Δx = 0,1

тогда требуется проверить условие x-a = 0, и если оно истинно, то вывести сообщение «деление невозможно», иначе вычислить Y и вывести его на экран.

Для этого используются условные операторы, которые имеются во всех алгоритмических языках. В Паскале условных операторов 2. Полный условный оператор имеет вид

IF {условие} THEN {оператор 1} ELSE {оператор 2};

где { условие } – это логическое выражение, в простейшем случае это – операция сравнения,

{оператор 1} – выполняется, если {условие} истинно,

{оператор 2} – выполняется, если {условие} ложно.

Например,

If x > 0 then y := SQRT(x) else writeln (‘результата нет’);

Краткая форма условного оператора не содержит альтернативного варианта и имеет вид

IF {условие} THEN {оператор 1};

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

If x > 0 then y := SQRT(x);

Сообщения об отрицательном подкоренном выражении не будет. Заметим, если не использовать условный оператор, то при отрицательном значении x ошибку обнаружит ПК и прервет выполнение программы.

Тогда для приведенного примера блок-схема и программа будут иметь вид (см. рис.1.4).

Вычислим число проходов цикла N = (1-0,3)/0,1+1 = 8.

Начало Program VETVI;

a=0,5 x=0,3 var a,x,y: real; I: integer;

i от 1 до 5 begin a:=0.5; x:=0,3;

x ≠ a for I := 1 to 8 do BEGIN

IF x< > a THEN

Y =(x+a)/(x-a) BEGIN y := (x+a)/(x-a);

Вывод x, Y writeln ( ’ x = ’,x:5:1, ’ y = ’,y:6:3);

END ELSE

Деление невозможно writeln (’ Деление невозможно ’);

x = x + 0,1 x := x + 0.1;

END;

Конец end.

Рис 1.4

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

CASE {} of

{константа 1}: {оператор 1};

{константа 2}: {оператор 2};

{константа N}: {оператор N};

END;

Например, вычислим значения функции

для b = 0,8; a = [0,2;1,4] с шагом Δa = 0,2

Предварительно вычислим число проходов цикла N = 7 и определим, на каких шагах должны выполняться определенные вычисления. Если ввести счетчик цикла i от 1 до 7, тогда:

- при a=0,2; 0,4; 0,6 вычисление производится по первой формуле, т.е. при i=1,2,3;

- аналогично при i=4 вычисление производится по второй формуле,

- а при i=5,6,7 вычисление производится по третьей формуле.

Тогда программа будет иметь вид:

Program VETV2;

Const b=0.8;

Var i:integer; a,y:real;

Begin a:=0.2;

For i:=1 to 7 do begin

Case i of

1,2,3: y:= ;

4: y := a*sqr(a) ;

5,6,7: y:=cos (a-b);

end; {конец оператора выбора}

writeln (‘ a= ’, a:5:1, ‘ y=’,y:6:3);

a := a + 0.2; end; {конец цикла}

end.

Схема алгоритма для этой программы приведена на рис. 1.5

Начало

b=0,8 a=0,2

i от 1 до 7

i

1 ,2,3 4 5,6,7

y = a sin(b-a) y = a3 y = cos(a-b)

Вывод а, у

a = a + da

Конец

Рис. 1.5