Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задачник по программированию.doc
Скачиваний:
25
Добавлен:
03.11.2018
Размер:
1.94 Mб
Скачать

Результаты работы Pascal-программы

Введите натуральное M>0 : 10 <Enter>

Числа Фибоначчи, не превосходящие 10 : 1 1 2 3 5 8

О т в е т : Сумма этих чисел равна 20

Пример 4.5. Включить заданное число D в массив A(N), упорядоченный по

возрастанию, с сохранением упорядоченности.

Система тестов

Номер

теста

Проверяемый

Случай

Данные

Результат

D

Массив А

1

D <= a1

0

A=(1, 3, 5)

A=(0, 1, 3, 5)

2

a1< D <= aN

4

A=(1, 3, 5)

A=(1, 3, 4, 5)

3

aN < D

6

A=(1, 3, 5)

A=(1, 3, 5, 6)

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

алг Включение (арг цел N, арг вещ D, арг рез вещ таб A[1:N+1])

дано | А – упорядоченная по возрастанию последовательность

надо | в А включено число D с сохранением упорядоченности

нач цел i Блок-схема (фрагмент)

i:=N

нц пока (i>=1) и (A[i]>D)

A[i+1] := A[i] | сдвиг очередного элемента вправо на одну позицию

i := i–1

кц

A[i+1] := D | включение числа D в последовательность

кон

Turbo Pascal

Program Insertion;

Uses Crt;

Var A : Array [1..20] of Real;

D : Real;

N, i : Integer;

{--------------------------------------------}

Procedure InputOutput; {описание процедуры ввода-вывода}

Begin ClrScr;

Write(’Количество элементов массива - ’); ReadLn(N);

WriteLn(’Введите элементы массива, упорядоченные по

возрастанию:’);

For i := 1 to N do

begin

Write(’A[’ , i , ’] = ’);

ReadLn(A[i])

end; WriteLn;

Write(’Введите число, которое требуется включить в массив: ’);

ReadLn(D);

ClrScr; Write(’Исходный массив :’);

For i := 1 to N do Write(A[i] : 5 : 1); WriteLn;

WriteLn(’Включаемый элемент – ’, D : 5 : 1);

End; { of InputOutput }

{--------------------------------------------}

Procedure Insert; {описание процедуры включения нового элемента}

Begin

i:=N;

While (i>=1) and (A[i]>D) do

begin A[i+1] := A[i]; {сдвиг очередного элемента вправо}

i:=i–1

end;

A[i+1] := D {включение числа D в последовательность}

End;

{--------------------------------------------}

Procedure Result; {описание процедуры вывода результатов}

Begin WriteLn;

Write(’О т в е т : массив с включенным элементом ’);

For i := 1 to N+1 do Write( A[i] : 5 : 1); WriteLn;

ReadLn;

End;

{--------------------------------------------}

BEGIN

InputOutput; {вызов процедуры ввода-вывода }

Insert; {вызов процедуры включения нового элемента}

Result; {вызов процедуры вывода результатов }

END.