- •Текстовый редактор
- •Прогон и отладка программы
- •Справочная служба Турбо Паскаля
- •Строка
- •Строка
- •Задание 2. Разветвления
- •Простейшие циклы
- •Вложенные циклы
- •Примечания
- •Строка
- •Процедуры и функции
- •Процедуры ввода
- •Обозначение
- •Представим определение языка Показушка в расширенной форме Бэкуса-Наура
- •Предложение
- •Синтаксис Паскаля
- •Задание 14
- •Операторы Паскаля
- •Задание 15
- •Новые типы данных. Определение типа. Диапазоны.
10.j:=0;
11.rez:=0;
12.while j<n do
13.begin
14.rez:=rez+i*x*y;
15.j:=j+1;
16.end;
17.rez1:=rez1+rez/n;
18.i:=i+1;
19.end;
20.write (rez1)
21.End.
Входные данные 2 2 8
Строка |
Ход выполнения |
n |
x |
y |
i |
j |
rez |
rez1 |
4 |
вход в Prim3 |
? |
? |
|
? |
|
? |
|
5 |
|
2 |
2 |
8 |
|
|
|
|
6 |
|
|
|
|
1 |
|
|
|
7 |
|
|
|
|
|
|
|
0 |
8 |
(i<=n)=True |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
0 |
|
|
11 |
|
|
|
|
|
|
0 |
|
12 |
(j<n)=True |
|
|
|
|
|
|
|
14 |
|
|
|
|
|
|
16 |
|
15 |
|
|
|
|
|
1 |
|
|
12 |
(j<n)=True |
|
|
|
|
|
|
|
14 |
|
|
|
|
|
|
32 |
|
15 |
|
|
|
|
|
2 |
|
|
12 |
(j<n)=False |
|
|
|
|
|
|
|
17 |
|
|
|
|
|
|
|
16 |
18 |
|
|
|
|
2 |
|
|
|
8 |
(i<=n)=True |
|
|
|
|
|
|
|
10 |
|
|
|
|
|
0 |
|
|
11 |
|
|
|
|
|
|
0 |
|
Строка |
Ход выполнения |
n |
x |
y |
i |
j |
rez |
rez1 |
|
12 |
(j<n)=True |
|
|
|
|
|
|
|
|
14 |
|
|
|
|
|
|
32 |
|
|
15 |
|
|
|
|
|
1 |
|
|
|
12 |
(j<n)=True |
|
|
|
|
|
|
|
|
14 |
|
|
|
|
|
|
64 |
|
|
15 |
|
|
|
|
|
2 |
|
|
|
12 |
(j<n)=False |
|
|
|
|
|
|
|
|
17 |
|
|
|
|
|
|
|
48 |
|
18 |
|
|
|
|
3 |
|
|
|
|
8 |
(i<=n)=False |
|
|
|
|
|
|
|
|
20 |
Вывод: 48 |
|
|
|
|
|
|
|
|
21 |
Выход из prim3 |
|
|
|
|
|
|
|
|
Результат: 48 |
|
|
|
|
|
|
|
|
|
Рассмотрим вывод |
математического |
выражения для |
результата. Во внешнем цикле выражение rezl:=rezl+rez/n
соответствует rezli=rezli-1+rezi/n, i=1,..,n, то есть |
∑n |
rezi |
/ n , в свою |
|||||||||||
|
|
|
|
|
|
|
|
|
|
i=1 |
|
|
|
|
очередь |
внутреннему |
циклу |
соответствует rezj=rezj-1+i*x*y, j= |
|||||||||||
|
|
|
n−1 |
|
|
|
|
|
|
|
|
|
|
|
0,..,n-1, |
то есть ∑i * x * y . В |
итоге |
математическое |
выражение |
||||||||||
|
|
|
j =0 |
|
|
|
|
|
|
|
|
|
|
|
результата запишется так |
|
|
|
|
|
|
|
|
||||||
n |
1 |
n−1 |
n |
i * x |
* y |
n−1 |
n |
n |
|
|
n −1 |
|
||
∑ |
∑i * x * y = ∑ |
∑1 = ∑ |
ixy |
n = xy∑i |
= xy |
n . |
||||||||
|
n |
|
|
|
||||||||||
i =1 |
n j =0 |
i =1 |
|
j =0 |
i =1 n |
i =1 |
|
2 |
|
|
Вложенные циклы
Задание 6
Выполнить трассировку программы для заданных входных данных. Ввести программу в ЭВМ, сравнить результаты трассировки и работы программы. Записать математическое
27
выражение выдаваемого программой результата как функцию от |
end; |
|
входных данных. |
i:=i+1 |
|
№1 |
end; |
|
progran prim3(input,output); |
writeln(r) |
|
var m,n,i,j,r:integer; |
end. |
|
begin |
Входные данные |
2 2 |
read(m,n); |
№3 |
|
r:=0; i:=1; |
progran prim3(input,output); |
|
while i<=n do |
var m,n,i,j:integer; |
|
begin j:=1; |
r:real; |
|
while j <=m do |
begin |
|
begin |
read(m,n); |
|
r:=r+sqr(i+j); |
r:=0; i:=1; |
|
j:=j+1 |
while i<=n do |
|
end; |
begin |
|
i:=i+1 |
j:=1; |
|
end; |
while j <=m do |
|
writeln(r) |
begin |
|
end. |
r:=r+(j-i+1)/(i+j); |
|
Входные данные 2 2 |
j:=j+1 |
|
№2 |
end; |
|
progran prim3(input,output); |
i:=i+1 |
|
var m,n,i,j:integer; |
end; |
|
r:real; |
writeln(r) |
|
begin |
end. |
|
read(m,n); |
Входные данные |
2 2 |
r:=0; i:=1; |
№4 |
|
while i<=n do |
progran prim3(input,output); |
|
begin |
var n,i,j,p,r:integer; |
|
j:=1; |
begin |
|
while j <=m do |
read(n); |
|
begin |
r:=0; i:=1; |
|
r:=r+1/(2*i+j); |
while i<=n do |
|
j:=j+1 |
begin |
|
28
p:=i; j:=1; |
|
var n,i,j:integer; |
while j<=i do |
|
p,r:real; |
begin |
|
begin |
p:=p*(p+j); |
|
read(n); |
j:=j+1 |
|
r:=0; i:=1; |
end; |
|
while i<=n do |
r:=r+p; |
|
begin |
i:=i+1 |
|
p:=1; j:=1; |
end; |
|
while j<=sqr(i) do |
writeln(r) |
|
begin |
end. |
|
p:=p*j; |
Входные данные |
2 |
j:=j+1 |
№5 |
|
end; |
progran prim3(input,output); |
r:=r+p; |
|
var n,i,j,p,r:integer; |
i:=i+1 |
|
begin |
|
end; |
read(n); |
|
writeln(r) |
r:=0; i:=1; |
|
end. |
while i<=n do |
|
Входные данные 2 |
begin |
|
№7 |
p:=i; j:=1; |
|
progran prim3(input,output); |
while j<=i do |
|
var n,i,j,z:integer; |
begin |
|
p,r:real; |
p:=p*i; |
|
begin |
j:=j+1 |
|
read(n); |
end; |
|
r:=0; i:=1; z=-1; |
r:=r+p; |
|
while i<=n do |
i:=i+1 |
|
begin |
end; |
|
p:=1; j:=1; |
writeln(r) |
|
while j<=2*i-i do |
end. |
|
begin |
Входные данные |
2 |
p:=p*j; |
№6 |
|
j:=j+1 |
progran prim3(input,output); |
end; |
29
r:=r+z*p; |
|
while i<=n do |
|
z:=-z; |
|
begin |
|
i:=i+1 |
|
p:=1; p2:=1; j:=1; |
|
end; |
|
while j<=i do |
|
writeln(r) |
|
begin p:=p*i; p2:=p2*sqr(x);j:=j+1 end; |
|
end. |
|
r:=r+p*p2; |
|
Входные данные |
2 |
i:=i+1 |
|
№8 |
|
end; |
|
progran prim3(input,output); |
writeln(r) |
|
|
var n,i,j:integer; |
|
end. |
|
p,p2,r,x:real; |
Входные данные |
2 2 |
|
begin |
|
№10 |
|
read(n,x); |
|
progran prim3(input,output); |
|
r:=0; i:=1; |
|
var n,i,j:integer; |
|
while i<=n do |
|
r,x:real; |
|
begin p:=1; j:=1; |
begin |
|
|
while j<=2*i -1do |
read(n,x); |
|
|
begin p:=p*j; j:=j+1 end; |
r:=0; i:=1; |
|
|
p2:=p; p:=1; j:=1; |
while i<=n do |
|
|
while j<=i do |
|
begin j:=i; |
|
begin p:=p*j; j:=j+1 end; |
while j<=n do |
|
|
r:=r+(p2+abs(x))/p; |
begin r:=r+(x+i)/j;j:=j+1 end; |
||
i:=i+1 |
|
i:=i+1 |
|
end; |
|
end; |
|
writeln(r) |
|
writeln(r) |
|
end. |
|
end. |
|
Входные данные |
2 5 |
Входные данные |
2 3 |
№9 |
|
№11 |
|
progran prim3(input,output); |
progran prim3(input,output); |
||
var n,i,j:integer; |
|
var n,i,j,p,r:integer; |
|
p,p2,r,x:real; |
begin |
|
|
begin |
|
read(n); |
|
read(n,x); |
|
r:=0; i:=1; |
|
r:=0; i:=1; |
|
while i<=n do |
|
30
begin j:=1;p:=1; |
|
begin p:=p*j;j:=j+1 end; |
|
while j<=n do |
|
r:=r*p; |
|
begin p:=p*j;j:=j+1 end; |
i:=i+1 |
|
|
r:=r+p; |
|
end; |
|
i:=i+1 |
|
writeln(r) |
|
end; |
|
end. |
|
writeln(r) |
|
Входные данные |
2 |
end. |
|
№14 |
|
Входные данные |
2 |
progran prim3(input,output); |
|
№12 |
|
var n,i,j,k,p,r:integer; |
|
progran prim3(input,output); |
begin |
|
|
var n,i,j,k,p,r:integer; |
read(n,k); |
|
|
begin |
|
r:=0; i:=1; |
|
read(n,k); |
|
while i<=n do |
|
r:=0; i:=1; |
|
begin j:=1;p:=1; |
|
while i<=n do |
|
while j<=i do |
|
begin j:=1;p:=1; |
|
begin p:=p*(i+k);j:=j+1 end; |
|
while j<=i+k do |
|
r:=r+p; |
|
begin p:=p*j;j:=j+1 end; |
i:=i+1 |
|
|
r:=r+p; |
|
end; |
|
i:=i+1 |
|
writeln(r) |
|
end; |
|
end. |
|
writeln(r) |
|
Входные данные |
2 5 |
end. |
|
№15 |
|
Входные данные |
2 1 |
progran prim3(input,output); |
|
№13 |
|
var n,i,j,z:integer; |
|
progran prim3(input,output); |
p,p_x,p_n,r,x:real; |
||
var n,i,j,p,r:integer; |
begin |
|
|
begin |
|
read(n,x); |
|
read(n); |
|
r:=0; i:=1; z=:-1; p_n:=1; |
|
r:=1; i:=1; |
|
while i<=n do |
|
while i<=n do |
|
begin p:=1; p_x:=1; j:=1; |
|
begin j:=1;p:=1; |
|
while j<=i do |
|
while j<=n do |
|
begin p:=p*j; p_x:=p_x*x; j:=j+1 end; |
31