ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.07.2024

Просмотров: 28

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Алгоритмический язык Pascal

Тема 6. «Управляющие структуры в языке Паскаль»

1.Процедуры ввода/вывода

2.Операторы в языке Паскаль

3.Выбирающий оператор.

3.1Оператор условия if

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

4.Операторы цикла в языке Паскаль

4.1Оператор цикла с предусловием

4.2Оператор цикла с постусловием

4.3Оператор цикла с параметром

4.4Примеры использования циклов

Тема 6. «Управляющие структуры в языке Паскаль»

Read (f, A1, A2, … AN )

 

 

Для ввода с клавиатуры f = input

или

Read (input, A1, A2, … AN )

 

 

 

 

 

 

 

 

 

Read ( A1, A2, … AN )

Readln ( A1, A2, … AN )

Write (f, A1, A2, … AN )

 

 

Для вывода на экран f = output

 

 

Write (output, A1, A2, … AN )

 

 

 

 

или

 

 

 

 

 

Write ( A1, A2, … AN )

Writeln ( A1, A2, … AN )

Здесь Ai – переменная или выражение следующих типов:

Целый, вещественный, символьный, логический, строковый

Управление форматом числа

 

 

 

 

 

 

 

Маска

Вид

 

Обращение

 

 

Пример

 

 

 

 

 

 

 

 

 

 

 

нет

А

 

Write (a)

 

 

- 0.1451000000E+002

 

 

 

 

 

 

 

 

 

 

 

:n

A:n

 

Write(a:8)

 

 

- 0.1451E+2

 

 

 

 

 

 

 

 

 

 

:n:m

A:n:m

 

Write (a:8:3)

 

-14.510

 

 

 

 

 

 

 

 

 

 

 

Организация диалога в программах

Writeln(’введи числа x и y’); Readln(x, y);

Writeln (‘ Значение суммы равно – ‘, s:6:3 )


Тема 6. «Управляющие структуры в языке Паскаль»

Операторы в языке Паскаль.

I. Простые (:=, goto, Ø, вызова процедуры или функции);

II. Сложные (составной, выбирающий, цикла, присоединения).

Составной оператор

Begin S1; S2; … SN end

операторные скобки

Выбирающий оператор

I.Условный оператор If

II.Оператор варианта Case

Тема 6. «Управляющие структуры в языке Паскаль»

Условный оператор

If A then S else ;

If A then S1 else S2; или

If notA then else S;

Например: x = max(a,b)

If a> b then x:= a else x:=b;

Тема 6. «Управляющие структуры в языке Паскаль»

ì x + 5,

при х ³10

ï

 

z = íx2 , при 5 < x <10

ï

при x £ 5

î sin x,

If x>= 10 then z:=x+5 else

If x<5 then z:=sin(x) else z:= x*x;

Тема 6. «Управляющие структуры в языке Паскаль»

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

Case <выражение> of

<список меток 1>: <оператор 1>; <список меток 2>: <оператор 2>;

<список меток N>: <оператор N>; else <оператор N+1>;

end;

Например:

Case c of

‘+’: Writeln(‘Сложение’); ‘-’: Writeln(‘Вычитание’); ‘*’: Writeln(‘Умножение’); ‘/’: Writeln(‘Деление’);

else Writeln(‘Такой арифметической операции нет’); end;


Тема 6. «Управляющие структуры в языке Паскаль»

Операторы цикла

1.While (c предварительной проверкой условия)

2.Repeat (с последующей проверкой условия)

3.

For-to

(с параметром)

4.

For – downto

 

While (c предварительной проверкой условия) Repeat (с последующей проверкой условия)

While A do S;

Repeat S1; S2; …SN; until A;

 

Тема 6. «Управляющие структуры в языке Паскаль»

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

For-to

For – downto

For X:= X1 to X2 do S

For X:= X2 downto X1do S

 

 

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

Составить программу на языке Turbo-Pascal для вывода таблицы функции y = f(x) на отрезке [a, b] c шагом h.

f (x) = x(1+ e - x2 ) , a = 2, b = 7, h = 0,5 .

Решение:

program tab1 (input,output); var a,b,x,y,h : real;

begin writeln('Введите значения a, b, h'); read(a,b,h);

x:=a;

While x <= b do begin y:=x*(1 + exp(-sqr(x))); writeln('x=',x,' y=',y); x:=x + h; end;

end.

program tab2 (input,output); var a,b,x,y,h : real;

begin writeln('Введите значения a, b, h'); read(a,b,h);

x:=a;

repeat y:=x*(1 + exp(-sqr(x))); writeln('x=',x,' y=',y);

x:=x + h; until x >= b end.


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

 

n

 

1

Составить программу на языке Turbo-Pascal для вычисления суммы

S =

 

 

i2

+ 5

 

åi =1

Program TASK1 (input, output);

Uses CRT;

Var s: real; i, n: integer;

Begin

Clrscr:

Writeln(’Программа расчета суммы’);

Writeln(Укажите необходимое число слагаемых);

Write(’n = ’); read(n);

S:= 0

For i:=1 to n do

S:= S+1/(sqr(i)+5);

Writeln(’Сумма равна, S = ’,S:6:4);

Repeat Until Keypressed;

End.


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

Составить программу на языке Turbo-Pascal для вычисления суммы

 

 

1

 

S = å

 

 

, с точностью ε = 0,001.

i

2

+ 5

i 1

 

 

=

 

 

 

 

Program TASK2 (input, output);

Uses CRT;

Сonst eps = 0.001;

Var a,s: real; i: integer;

Begin

Clrscr;

Writeln(’Программа расчета суммы’); i:= 1; S:= 0; a:= 1/(sqr(i)+5)

While a > eps do begin

S:= S +a; i:=i+1; a:= 1/(sqr(i)+5); end; Writeln(’Сумма равна, S = ’,S:6:4);

Repeat Until Keypressed; End.

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

n

(1)

i

Рассчитать сумму при заданном натуральном значении n S = å

 

i !

 

i =1

 

Решение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

(1)i

(1)1

+

(1)2

+

(1)3

+ ... +

(1)n1

+

(1)n

S = å

i !

=

1!

 

2!

 

3!

(n -1) !

n !

i = 1

 

 

 

 

 

 

 

 

a

=

(1)1

, a

 

=

 

(1)

2

, ... a

 

=

(1)n1

 

, a

n

=

(1)n

 

 

1!

 

 

 

2!

 

 

(n -1)!

 

n !

1

 

 

 

2

 

 

 

 

 

 

 

n-1

 

 

 

 

a х = ехр(х* ln( a))

(-1) i = ехр(i* ln( -1))