Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_всем

.pdf
Скачиваний:
75
Добавлен:
03.03.2016
Размер:
5.42 Mб
Скачать

begin

writeLn('первая и последняя цифры не

равны');

if x1>x4 then begin

Y:=x1;

x1:=x4;

x4:=Y; end

else begin

Y:=x2;

x2:=x3;

x3:=Y; end

end;

X:= 1000*x1 + 100*x2 + 10*x3 + x4;

writeLn('в результате преобразований получено число ', X);

end.

7. ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ (МАТЕМАТИЧЕСКИЕ РЯДЫ)

Трижды определить значение выражения, используя три различных

k

 

n2

цикла S

 

 

 

.

 

 

 

 

n 1

 

n x

19

Б л о к - с х е м ы к з а д а ч е № 7

 

 

 

 

 

 

 

Начало

 

 

 

Начало

 

 

 

 

 

 

 

Ввод k, x

 

 

 

Ввод k, x

 

 

 

 

 

 

 

S := 0

 

Начало

 

S := 0

 

 

 

 

 

 

 

n := 1

 

Ввод k, x

 

n := 1

 

 

 

 

 

 

 

 

S := 0

 

 

 

n ≤ k

 

 

 

 

 

 

 

 

S := S +

n2

 

 

n := 1 , k

 

n x

 

 

 

 

 

 

S := S +

n2

 

 

 

 

 

S := S +

n2

n := n + 1

 

n x

n x

 

 

 

 

 

 

 

 

n := n + 1

 

 

 

n > k

 

 

 

Вывод S

 

 

 

 

 

Конец

 

Вывод S

 

Вывод S

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

Конец

 

 

 

 

 

 

a)

 

 

использование

б)

в)

цикла for

использование

использование

 

 

цикла repeat

цикла while

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 7 ( в а р и а н т с ц и к л о м f o r )

program Z7_1_For; var n,k:integer; x,S:real;

begin cls;

writeLn('Введите k, x'); readLn(k,x);

for n:=1 to k do S:=S+sqr(n)/sqrt(n+x);

writeLn(' полученная сумма S= ' , S:8:3); end.

20

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 7 ( в а р и а н т с ц и к л о м r e p e a t )

program Z7_2_Repeat;

var n,k:integer; x,S:real;

begin cls;

writeLn('Введите k, x'); readLn(k,x);

S:=0;

n:=1; repeat

S:=S+sqr(n)/sqrt(n+x);

n:=n+1; until n>k;

writeLn(' полученная сумма S= ',S:8:3); end.

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 7 ( в а р и а н т с ц и к л о м w h i l e )

program Z7_3_While;

var n,k:integer; x,S:real;

begin cls;

writeLn('Введите k, x'); readLn(k,x);

S:=0;

n:=1;

while n <= k do begin

S:=S+sqr(n)/sqrt(n+x);

n:=n+1;

end;

writeLn(' полученная сумма S= ' ,S:8:3);

end.

21

8. ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

(ЗНАЧЕНИЯ ФУНКЦИИ)

 

 

Трижды протабулировать функцию, используя три различных цикла

2

 

x 2;3 x 0,3

f x x a на интервале

 

,

, указав при этом значения

функции с нечетной и четной целой частью.

 

Б л о к - с х е м ы к з а д а ч е № 8

 

 

 

 

 

Начало

 

Начало

 

 

 

 

 

 

 

Ввод a

 

Ввод a

 

 

 

 

 

 

 

x0:=-2

 

x0:=-2

 

 

 

N:=trunc((3-x0)/0.3)

 

 

f := (x+a)2

 

 

 

 

 

k := 0 , N

 

 

 

 

 

 

 

Вывод x, f

 

x:=x0+0.3*k

 

 

 

 

 

 

trunc(f) mod 2 ≠ 0

 

f := (x+a)2

 

 

 

 

 

 

‘Целая часть’

‘Целая часть’

 

 

 

trunc(f) ‘нечетная’

trunc(f) ‘четная’

 

Вывод x, f

 

 

 

trunc(f) mod 2 ≠ 0

 

 

x := x + 0.3

 

 

 

‘Целая часть’

‘Целая часть’

 

 

trunc(f) ‘нечетная’

trunc(f) ‘четная’

 

x > 3

 

 

 

 

Конец

 

Конец

 

 

 

a) использование цикла for

б) использование цикла repeat

 

 

 

22

 

 

Начало

 

Ввод a

 

x0:=-2

 

x ≤ 3

 

f := (x+a)2

 

Вывод x, f

trunc(f) mod 2 ≠ 0

‘Целая часть’

‘Целая часть’

trunc(f) ‘нечетная’

trunc(f) ‘четная’

 

x := x + 0.3

 

Конец

в) использование цикла while

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 8 ( в а р и а н т с ц и к л о м f o r )

program Z8_1_For;

var x0,f,x,a:real;

N,k:integer;

begin

cls;

writeLn('Введите a');

readLn(a);

23

x0:=-2;

N:=trunc((3-x0)/0.3); //Вычисляем число итераций for k:=0 to N do

begin

x:=x0+0.3*k; //Вычисляем очередной х f:=sqr(x+a);

write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then

writeLn(' - целая часть ',trunc(f) ,'

нечетная ') else

writeLn(' - целая часть ',trunc(f) ,'

четная'); end;

end.

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 8 ( в а р и а н т с ц и к л о м r e p e a t )

program Z8_2_Repeat; var f,x,a:real; begin

cls; writeLn('Введите a'); readLn(a);

x:=-2; repeat

f:=sqr(x+a); write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then

writeLn(' - целая часть ',trunc(f) ,'

нечетная ') else

24

writeLn(' - целая часть ',trunc(f) ,'

четная');

x:=x+0.3; until x>3;

end.

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 8 ( в а р и а н т с ц и к л о м w h i l e )

program Z8_3_While; var f,x,a:real; begin

cls; writeLn('Введите a'); readLn(a);

x:=-2;

while x <= 3 do begin

f:=sqr(x+a); write('f(',x:8:2,') =',f:8:2); if trunc(f) mod 2 <> 0 then

begin

writeLn(' - целая часть ',trunc(f) ,'

нечетная ')

end else

writeLn(' - целая часть ',trunc(f) ,'

четная');

x:=x+0.3;

end;

end.

25

N первых четных членов.

9. ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ (ПОСЛЕДОВАТЕЛЬНОСТИ).

Определить N ( N 3 ) первых членов рекуррентной последователь-

ности, для которой

a a a a

a 0

,

a 2

,

a 3

. Найти

k k1 k2

k ,

1

2

3

 

 

3

 

 

 

среднее арифметическое

Б л о к - с х е м а к з а д а ч е № 9

 

1

Начало

 

 

ak:=ak-1+ak-3+ak-2

Ввод N

 

 

ak-3:=ak-2; ak-2:=ak-1;

 

ak-1:=ak

 

k := k+1

N ≤ 3

 

 

Вывод k, ak

Ввод N

 

 

ak mod 2 = 0

ak-3:=0; ak-2:=2;

S:=S+ak;

ak-1:=3;

Kchet:=Kchet+1

k:= 3

 

Вывод ak-3; ak-2;

k = N

 

ak-1:=3;

 

S := 2

SrA:=S/Kchet

Kchet:=2

Вывод SrA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

Конец

 

26

Л и с т и н г п р о г р а м м ы н а P a s c a l к з а д а ч е № 9 program Z9;

var ak_3,ak_2,ak_1,ak:integer; SrA,S:real; k,N,Kchet:integer;

begin

writeLn('введите N'); readLn(N);

while N<=3 do begin

writeLn('введите N'); readLn(N);

end; ak_3:=0; ak_2:=2; ak_1:=3; k:=3;

writeln(1:5,' z=',ak_3); writeln(2:5,' z=',ak_2); writeln(3:5,' z=',ak_1);

//Задаем начальное значение для суммы S первых

//трех значений и Kchet - их количества.

//Четные 0 и 2, => S=0+2=2 и Kchet = 1+1 = 2 S:=2;

Kchet:=2; repeat

ak:=ak_1+ak_3+ak_2; ak_3:=ak_2; ak_2:=ak_1; ak_1:=ak;

inc(k);

27

writeln(k:5,' z=',ak); if ak mod 2=0 then

begin S:=S+ak;

Kchet:=Kchet+1;

end; until k=N; SrA:=S/Kchet;

writeLn('Среднее арифметическое четных равно ',

SrA);

end.

10. РАСЧЕТЫ В ОДНОМЕРНЫХ МАССИВАХ

Ввести одномерный массив A, состоящий из девяти элементов. Опре-

делить среднее арифметическое четных элементов.

Б л о к - с х е м а к з а д а ч е № 1 0

 

 

1

Начало

i := 1, 9

 

i := 1 , 9

A[ i ] mod 2 = 0

 

k:=k+1

 

Ввод A[ i ]

 

S:=S+A[ i ]

 

S := 0

 

k := 0

 

 

SrA := S/k

1

 

 

Вывод SrA

 

Конец

28