Задача для паскаля. Во входном файле имеется массив из 10 целых чисел. Первые 9 элементов упорядочены. В выходной файл вставить 10-й элемент так, чтобы все элементы массива были упорядочены.
Ответы на вопрос
Ответил Аноним
0
const
n = 10;
var
i, k, j: integer;
a: array[1..n] of integer;
begin
Write('Введите через пробел девять целых чисел в порядке возрастания: ');
for i := 1 to n - 1 do Read(a[i]);
Write('Введите целое число для вставки: '); Read(k);
{Определим позицию для вставки}
i := 1;
while (k > a[i]) and (i < n) do i := i + 1;
{Выполним сдвиг бОльших элементов вправо}
for j := n - 1 downto i do a[j + 1] := a[j];
{Осуществим вставку}
a[i] := k;
{Контрольный вывод}
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовые решения:
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 25
Результирующий массив
3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 0
Результирующий массив
0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 13
Результирующий массив
3 6 8 10 13 14 15 17 19 24
n = 10;
var
i, k, j: integer;
a: array[1..n] of integer;
begin
Write('Введите через пробел девять целых чисел в порядке возрастания: ');
for i := 1 to n - 1 do Read(a[i]);
Write('Введите целое число для вставки: '); Read(k);
{Определим позицию для вставки}
i := 1;
while (k > a[i]) and (i < n) do i := i + 1;
{Выполним сдвиг бОльших элементов вправо}
for j := n - 1 downto i do a[j + 1] := a[j];
{Осуществим вставку}
a[i] := k;
{Контрольный вывод}
Writeln('Результирующий массив');
for i := 1 to n do Write(a[i], ' ')
end.
Тестовые решения:
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 25
Результирующий массив
3 6 8 10 14 15 17 19 24 25
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 0
Результирующий массив
0 3 6 8 10 14 15 17 19 24
Введите через пробел девять целых чисел в порядке возрастания: 3 6 8 10 14 15 17 19 24
Введите целое число для вставки: 13
Результирующий массив
3 6 8 10 13 14 15 17 19 24
Ответил k0shechka2002
0
А если с привязкой к файлу?
Ответил Аноним
0
Тогда эти данные надо поместить в файл, например, в текстовый (var f:file of Text), вбить их туда по одному на строчке, а затем, как обычно: Assign(f,'inpet.txt'); Reset(f) и в теле цикла вместо Read(a[i]) записать Readln(f,a[i]); Я сделал без файла, чтобы показать все три возможные варианта вставки. да после чтения файла, за циклом, его можно закрыть оператором Close(f);
Новые вопросы
Биология,
2 года назад
Алгебра,
2 года назад
Алгебра,
9 лет назад
Биология,
9 лет назад
Математика,
10 лет назад