- •Кафедра Естественно-научных дисциплин учебно-методическое пособие по программированию
- •Глава 1. Алгоритмы линейной и разветвляющейся структуры
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •Система тестов
- •Результаты работы Pascal-программы:
- •Задачи для самостоятельного решения
- •Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа для
- •Пример 3.3. В заданной матрице a(n, m) поменять местами строки с номерами p и
- •Задачи для самостоятельного решения
- •Глава 4. Алгоритмы, реализуемые с помощью циклов типа пока
- •Цикл типа пока с прерыванием
- •Цикл типа пока без прерывания
- •Пример 4.1. Определить, является ли заданная последовательность чисел a1, a2, ..., aN монотонно убывающей. Система тестов
- •Система тестов
- •Результаты работы Pascal-программы
- •Система тестов
- •Задачи для самостоятельного решения
- •Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа пока
- •Система тестов
- •Система тестов
- •Система тестов
- •Система тестов
- •Блок-схема (фрагмент)
- •Задачи для самостоятельного решения
- •Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа для и пока
- •Система тестов
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 7. Алгоритмы обработки символьной информации
- •Типы данных, используемые для обработки символьной информации
- •Функции и команды обработки строк
- •Система тестов
- •Исполнение алгоритма
- •Исполнение алгоритма
- •Система тестов
- •Задачи для самостоятельного решения
Результаты работы 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.