| 
| 
 | Вопрос # 4 848/ вопрос закрыт / | 
 |  Доброго времени суток, уважаемые эксперты!Прошу помочь мне со следующей задачей:
 В одномерном массиве, состоящем из п вещественных элементов, вычислить:
 1.	Максимальный элемент массива.
 2.	Сумму элементов массива, расположенных до последнего положительного элемента.
 Сжать  массив,  удалив  из  него  все  элементы,  модуль  которых  находится  в  интервале [а   b]. Освободившиеся в конце массива элементы заполнить нулями.
 
|  |   Вопрос задал: skipper102 (статус: Посетитель)Вопрос отправлен: 21 декабря 2010, 20:22
 Состояние вопроса: закрыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 22 декабря 2010, 14:14; участников в обсуждении: 4. 21 декабря 2010, 23:18: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором Ерёмин А.А. 
|   | AlexMPEI (статус: 1-ый класс), 21 декабря 2010, 23:39 [#1]:1) переменные и массив опишешь сам. массив real'ов mas размера masCount. 
 current: real;
 i: integer;
 
 current := mas[0];
 for i:=1 to masCount-1 do
 if (current < mas[i]) then
 current := mas[i];
 
 в итоге current - максимальный элемент массива.
 |  
|   | min@y™ (статус: Доктор наук), 22 декабря 2010, 08:56 [#2]: Цитата (skipper102): Прошу помочь мне со следующей задачей Так помочь или написаль лабу полностью?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | skipper102 (статус: Посетитель), 22 декабря 2010, 11:00 [#3]:полностью не надо. Обьясни как сжать массив и элементы массива удалять, остальное сам дошарю |  
|   | min@y™ (статус: Доктор наук), 22 декабря 2010, 11:13 [#4]: Цитата (skipper102): полностью не надо. Обьясни как сжать массив и элементы массива удалять, остальное сам дошарю  Дык объяснять всё это:
 а) дольше, чем писать саму программу;
 б) работа твоего препода (ему за это бабки плотють).
 Элементы массива удалять не получится, ибо массив - это непрерывный участок памяти. Конечно, можно воспользоваться массивом указателей, но это вы ещё не проходили.
  Поэтому элементы массива надо перемещать. Вообще, мои педагогические способности стремятся к нулю, так что мне проще готовую прогу написать. 
 З.Ы. Сессия, да?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | mirt.steelwater (статус: Посетитель), 22 декабря 2010, 13:05 [#5]:самый простой выход здесь использовать не массив а список TList или потомок, в котором есть метод Remove если список использовать нельзя, то тебе прийдется использовать два массива:
 обходишь первый массив - если элемент не нулевой, то добавляешь его во второй массив. перед тем как это делать тебе нужно пройтись по первому массиву один раз и найти количество ненулевых элементов, а затем установить размер второго массива.
 
 var
    my_array  : array of Integer;
    new_array : array of Integer;
    my_count  : Byte;
    new_count : Byte;
    I, J      : Integer;
begin
    { тут ты заполняешь первый массив как тебе захочется
      SetLength (my_array,my_count);
      for I := 0 to my_count do
          my_array := random (255) 
    }
    new_count := 0;
    for I := 0 to High (my_array) do
        if ( my_array [I] <> 0 ) then
            Inc (new_count);
    SetLength (new_array, new_count);
    J := 0;
    for I := 0 to High (my_array) do
        if ( my_array [I] <> 0 ) then
        begin
            new_array [J] := my_array [I];
            Inc (J);
        end;
end;Ⓐ свобода сопротивление солидарность |  
|   | min@y™ (статус: Доктор наук), 22 декабря 2010, 13:20 [#6]:2mirt.steelwater: Тыкни ссылку "Преобразовать в ответ на вопрос". Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | mirt.steelwater (статус: Посетитель), 22 декабря 2010, 13:46 [#7]:2min@y™ не вижу( Ⓐ свобода сопротивление солидарность |  
|   | min@y™ (статус: Доктор наук), 22 декабря 2010, 14:14 [#8]: Цитата (mirt.steelwater): не вижу(  Странно... А ты зарегитсрировался как эксперт?
 Возможно, у тебя ещё не хватает полномочий.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  28 декабря 2010, 10:16: Вопрос закрыт (решение принял автор вопроса — skipper102): Спасибо за ответы. Задача решена Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |