Другие языки программирования и технологии
Помогите составить задачу в Delphi
Сама задача. Найти сумму номеров отрицательных элементов массива H(8).
Доброго времени суток.
С разрешения syan чуток подправлю его текст.
function SumNum(H: Array of Integer): Integer; //передаем в функцию массив в виде параметра
var count: Integer; //управляющая переменная цикла
begin
Result:= 0; //обнуляем результат
for count:= Low(H) to High(H) do //запускаем цикл по элементам открытого массива
if H[count] < 0 then Result:= Result + count; //суммируем номера отрицательных элементов
end;
Использование Low(H) и High(H) в качестве границ цикла позволит применять эту функцию не только для массивов с размерностью 8.
Удачи!
С разрешения syan чуток подправлю его текст.
function SumNum(H: Array of Integer): Integer; //передаем в функцию массив в виде параметра
var count: Integer; //управляющая переменная цикла
begin
Result:= 0; //обнуляем результат
for count:= Low(H) to High(H) do //запускаем цикл по элементам открытого массива
if H[count] < 0 then Result:= Result + count; //суммируем номера отрицательных элементов
end;
Использование Low(H) и High(H) в качестве границ цикла позволит применять эту функцию не только для массивов с размерностью 8.
Удачи!
Артём Метлинский
Немного критики в адрес Вашего ответа: Во-первых, Ваш код повторяет мой... Единственное в чём отличия - добавлены комментарии и использовано другое имя переменной цикла. Во-вторых... Вы смотрели что делает компилятор в случае Вашего кода? Конечно во время гигабайт оперативной памяти это не существенно, но не надо забывать о том, что созданную программу могут запускать и на слабеньком компьютере, где эта погрешность будет заметна... Думаю взглянув на мой и Ваш код Вы найдёте о чём я говорю...
Если под номером отрицательного элемента Вы имеете ввиду его индекс в массиве, то функция будет следующей:
function NegativeSumNo(const Values: array of Integer): Integer;
var
Index: Integer;
begin
Result := 0;
for Index := Low(Values) to High(Values) do
if Values[Index] < 0 then
Result := Result + Index;
end;
А вот так эту функцию можно вызвать:
Caption := IntToStr(NegativeSumNo([1, 2, 3, 4, -5, -6, 7]));
function NegativeSumNo(const Values: array of Integer): Integer;
var
Index: Integer;
begin
Result := 0;
for Index := Low(Values) to High(Values) do
if Values[Index] < 0 then
Result := Result + Index;
end;
А вот так эту функцию можно вызвать:
Caption := IntToStr(NegativeSumNo([1, 2, 3, 4, -5, -6, 7]));
Андрей Самохвалов
Опередили, пока сам отвечал... :-) +5
Это ты имел в виду?
function SumNum(H: Array of Integer): Integer; //передаем в функцию массив в виде параметра
var count: Integer; //счетчик массива разм. 8
begin
Result:= 0; //обнуляем результат
for count:= 0 to 7 do //запускаем цикл на 8
if H[count] <> 0 then Result:= Result + i; //суммируем
end;
//Функция возвращает сумму номеров отрицательных элементов (т. е. count)
function SumNum(H: Array of Integer): Integer; //передаем в функцию массив в виде параметра
var count: Integer; //счетчик массива разм. 8
begin
Result:= 0; //обнуляем результат
for count:= 0 to 7 do //запускаем цикл на 8
if H[count] <> 0 then Result:= Result + i; //суммируем
end;
//Функция возвращает сумму номеров отрицательных элементов (т. е. count)
Ivan Polshkov
Ну во первых, Вы получаете на входе в функцию динамический массив и не учитываете, что может передаться менее 8 элементов массива... Во вторых, в Вашей функции неправильное условие, соответственно и результат неверен.
Похожие вопросы
- Помогите составить задачу в Delphi
- программисты помогите срочно задача на Delphi
- помогите составить калькулятор на Delphi ?
- Помогите решить задачу в Delphi срочно! буду очень благодарен.
- Помогите решить задачу на Delphi
- Помогите составить программу в Delphi 7!
- Помогите с задачей, пожалуйста! (Delphi) Дана строка символов, состоящая из букв, цифр, запятых, точек, знаков "+" и "-
- помогите решить задачи в delphi пожалуйста))
- Помогите составить задачу на языке VBA
- Язык VBA помогите составить задачу!