ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.07.2024
Просмотров: 26
Скачиваний: 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)n−1 |
+ |
(−1)n |
||||||||||||||
S = å |
i ! |
= |
1! |
|
2! |
|
3! |
(n -1) ! |
n ! |
|||||||||||||||
i = 1 |
|
|
|
|
|
|
|
|
||||||||||||||||
a |
= |
(−1)1 |
, a |
|
= |
|
(−1) |
2 |
, ... a |
|
= |
(−1)n−1 |
|
, a |
n |
= |
(−1)n |
|
||||||
|
1! |
|
|
|
2! |
|
|
(n -1)! |
|
n ! |
||||||||||||||
1 |
|
|
|
2 |
|
|
|
|
|
|
|
n-1 |
|
|
|
|
a х = ехр(х* ln( a))
(-1) i = ехр(i* ln( -1))