Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация ЭВМ, история.doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
6 Мб
Скачать
☆

9.5 Алгоритмизация

Задача.

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

A=8769;

N=3;

Del=(1000,100,10,1);

Алг Сумма(арг цел A,арг цел N,арг цел таб del[0:N],рез цел S)

нач цел I,K,цел таб М[0:N], цел таб R[0:N]

нц для I от 0 до N

M[I]:=A/del[I];

A:=A-(A/del[I])*del[I];

кц

нц для K от 0 до N

R[K]:=M[3-K];

кц

S:=R[1]+R[3];

вывод S

кон

При выполнении задания учесть:

операция / означает целочисленное частное, если делимое и делитель – целые числа.

РЕШЕНИЕ:

Составим трассировочную таблицу.

Выполнение первого цикла со счетчиком I

A

I

M[0]

M{1]

M[2]

M[3]

8769

0

8769/1000=8

8769-8*1000=769

1

769/100=7

769-7*100=69

2

69/10=6

69-6*10=9

3

9/1=9

9-9*1=0

Итак, M=(8,7,6,9)

Выполнение второго цикла со счетчиком K

K

R[0]

R{1]

R[2]

R[3]

0

M[3]=9

1

M[2]=6

2

M[1]=7

3

M[0]=8

Итак, R=(9,6,7,8).

Тогда S=R[1]+R[3]=6+8=14.

ОТВЕТ: S=14.

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

M=(2,3,5,7);

N=3;

A=231;

алг Сумма(арг таб цел M[0:N], арг цел N,A, рез цел S)

нач цел K

S:=0;

нц для K от 0 до N

если A mod M[K]<>0

то S:=S+M[K];

кц

вывод S

кон

При выполнении задания учесть:

операция mod – остаток от деления, если делимое и делитель – целые числа.

РЕШЕНИЕ:

Исполнение алгоритма.

Обозначим (1) проверяемое условие (A mod M[k]<>0)

A

K

M[K]

(1)

S

231

0

0

2

нет

1

3

да

S=0+3=3

2

5

нет

3

7

да

S=3+7=10

-КЦ

ОТВЕТ: S=10.

Выполнить самостоятельно.

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

N=3;

Т=(( 6 6 6 5),( 2 5 3 3),( 7 5 3 2),( 7 5 7 1))

алг Сумма(арг цел N,арг цел таб Т[0:3,0:3],рез цел S)

нач цел I, цел j, цел таб М[0:N]

нц для I от 0 до N

S:=0;

нц для J от 0 до I

S:=S+T[I,J];

кц

если S mod T[I,0]=0 то M[I]:=S div T[I,0]

иначе

M[I]:=S mod T[I,0];

все

кц

S:=0;

нц для I от 0 до N

если T[I,I]>M[I] то S:=S+M[I]

иначе S:=S-M[I];

все

кц

Кон

При выполнении задания учесть:

операция div означает целочисленное частное, а операция mod – остаток от деления, если делимое и делитель – целые числа.

OTBET s=-3

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

N = 3

U0 = 0

U1 = 1

алг Сумма(арг цел N, рез цел S)

нач цел I,K,U, цел таб М[0:N]

нц для I от 0 до N

U:=U0+U1;

M[I]:=2*U;

U0:=U1;

U1:=U;

кц

S:=0;

нц для K от 0 до N

S:=S+M[K]mod U;

кц

вывод S

кон

При выполнении задания учесть:

операция mod – остаток от деления, если делимое и делитель – целые числа.