Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Задачи на Обработку одномерного массива
nerobolДата: Суббота, 10.05.2008, 17:30 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Здравствуйте, никак не могу решить задачи
1.Вставить минимальный элемент после первого равного нулю
2.Удалить первый четный элемент после минимального
если кто может помогите.
Заранее спасибо!!!
 
SeqularДата: Суббота, 10.05.2008, 20:22 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
nerobol, Привет!
1. Все просто. Пробегаешь массив 1 раз, ищешь минимальный. Начиная от первого, равного нулю - начинаешь сдвигать элементы вправо на 1. Находишь первый равный 0, вставляешь следующим минимальный.

2. Все просто. Пробегаешь массив 1 раз в поисках минимального. Тут вообще возможен вариант, что минимальный стоит в конце - тогда ничего не делаем (имхо). Иначе, сдвигаем все элементы влево на 1, начиная с i+1-го, если odd(i) = True и с i(+2)? если odd(i)=False.


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Суббота, 10.05.2008, 21:20 | Сообщение # 3
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
nerobol, Вроде бы вот первая:
Code
Program Arr1;
Uses CRT;
Const max = 10;
Var a: Array[1..max] of Byte; {Razmer na 1 menshe maksimalnogo}
     i, j: byte;
     min: byte;
     f: Boolean;
Begin
ClrScr;
Randomize;
Writeln('Ishodnyiy massiv: ');
For i := 1 to max-1 do
     Begin
     a[i] := Random(8);
     Write(a[i]:4);
     End;
min := a[1]; Writeln;
For i := 2 to max-1 do
     If (a[i] < min) then min := a[i];

Writeln(#13#10,'Minimum: ', min);
For i := 1 to max-1 do
     Begin
     If (a[i] = 0) then
        Begin
        For j := max downto i+1 do
            Begin
            a[j] := a[j-1];
            End;
        a[i+1] := min;
        f := True;
        Break;
        End;
     End;
Writeln(#13#10, 'Novyiy massiv: ');
For i := 1 to max do
     Begin
     if (f = False) and (i = max) then Break;
     Write(a[i]:4);
     End;
ReadKey;
End.


Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;