|
Вопрос # 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): Спасибо за ответы. Задача решена
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|