|
|
zadach507.PAS |
|
{* Задача 507 *}Unit ZADACH507;Interface Implementation Begin writeln('Дано натуральное число n, действительные числа a1,...,an. Преобразовать последовательность a1,...,an, расположив в начале отрицательные члены, а затем - неотрицательные. При этом: а) Порядок как отрицательных, так и неотрицательных членов сохраняется прежним; б) Порядок отрицательных членов изменяется на обратный, а порядок неотрицательных членов сохраняется прежним; в) Порядок отрицательных членов сохраняется прежним, а порядок неотрицательных членов изменяется на обратный; г) Порядок и тех и других чисел меняется на обратный.'); End. Program zadach507; Uses zadach507.pas; {* Эту строку можно удалить *} {Дано натуральное число n, действительные числа a1,..., an. Преобразовать последовательность a1,..., an, расположив в начале отрицательные члены, а затем - неотрицательные. При этом : а) Порядок как отрицательных, так и неотрицательных членов сохраняется прежним; б) Порядок отрицательных членов изменяется на обратный, а порядок неотрицательных членов сохраняется прежним; в) Порядок отрицательных членов сохраняется прежним, а порядок неотрицательных членов изменяется на обратный; г) Порядок и тех и других чисел меняется на обратный. } Var {* Необходимые переменные *} n : byte; {Размер последовательности} {Исходная последовательность} A : Array[0..255] Of real; B : Array[0..255] Of real; C : Array[0..255] Of real; D : Array[0..255] Of real; {Последовательности, преобразованные по ссответствующим алгоритмам} i : byte; {Счётчик цикла} {Описание алгоритмов, реализующих пункты задания} Var {* В работе нам потребуются переменные: *} mas : Array Of real); {Сохраняет порядок следования чисел} Var {Счётчик цикла} Ind : byte; {Индекс элемента для вставки} TmpMas : Array[0..255] Of real; Begin Ind := 0; For i := 0 To n Do {* Переменная i увеличивается с 0 до n *} TmpMas[i]; {Расстановка отрицательных чисел} For i := 0 To n Do {* Увеличиваем i от 0 до n с шагом 1 *} If TmpMas[i] = 0 Then Begin mas[Ind]; {Item_a} {-------------------} Var {* Объявление переменных *} mas : Array Of real); {Обратный порядок следования отрицательных чисел} Var {Счётчик цикла} Ind : byte; {Индекс вставляемого элемента} TmpMas : Array[0..255] Of real; Begin Ind := 0; For i := 0 To n Do {* Увеличиваем i от 0 до n с шагом 1 *} TmpMas[i]; {Расстановка отрицательных чисел} For i := n Downto 0 Do If TmpMas[i] = 0 Then Begin mas[Ind]; {Item_b} {-------------------} Var {* Необходимые переменные *} mas : Array Of real); {Обратный порядок следования неотрицательных чисел} Var {Счётчик цикла} Ind : byte; {Индекс вставляемого элемента} TmpMas : Array[0..255] Of real; Begin Ind := 0; For i := 0 To n Do {* Увеличиваем i от 0 до n с шагом 1 *} TmpMas[i]; {Расстановка отрицательных чисел} For i := 0 To n Do {* Переменная i увеличивается с 0 до n *} If TmpMas[i] = 0 Then Begin mas[Ind]; {Item_c} {-------------------} Var {* Объявление переменных *} mas : Array Of real); {Обратный порядок следования всех чисел} Var {Счётчик цикла} Ind : byte; {Индекс вставляемого элемента} TmpMas : Array[0..255] Of real; Begin Ind := 0; For i := 0 To n Do {* Цикл для i => [0 .. n] *} TmpMas[i] := Mas[i]; {Расстановка отрицательных чисел} For i := n Downto 0 Do If TmpMas[i] = 0 Then Begin mas[Ind] := TmpMas[i]; Dec(Ind) {* Вычтем из Ind единицу *} End End; {Item_a} {---------------------} Begin {Главная часть} {Вводим размер массива} write('Укажите размер массива n: '); readln(n); {Вводим массив} For i := 0 To n Do {* Цикл для i => [0 .. n] *} Begin write('Введите элемент mas[', i, ']='); readln(mas[i]) End; {Готовим массивы} A := mas; B := mas; C := mas; D := mas; {Применяем алгоритмы} Item_a(A); Item_b(B); Item_c(C); Item_d(D); {Распечатыванм результаты} For i := 0 To n Do {* Цикл для i => [0 .. n] *} writeln('A[', i, ']=', A[i] : 0:3, 'B[' : 5, i, ']=', B[i] : 0:3, 'C[' : 5, i, ']=', C[i] : 0:3, 'D[' : 5, i, ']=', D[i] : 0:3) End.. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|