Применение функций и процедур
Определить число положительных элементов до первого отрицательного в массивах X(40), Y(50) и Z(N). (N<=50)
Другие языки программирования и технологии
пожалуйста помогите с паскалем)))
kx:=0; ky:=0; kz:=0;
for j:=1 to 40 do
begin
if X[j] > 0 then kx:=kx+1;
else break;
end;
for j:=1 to 50 do
begin
if Y[j] > 0 then ky:=ky+1;
else break;
end;
for i:=1 to N do
begin
if Z[j] > 0 then kz:=kz+1;
else break;
end;
for j:=1 to 40 do
begin
if X[j] > 0 then kx:=kx+1;
else break;
end;
for j:=1 to 50 do
begin
if Y[j] > 0 then ky:=ky+1;
else break;
end;
for i:=1 to N do
begin
if Z[j] > 0 then kz:=kz+1;
else break;
end;
Доброго времени суток.
Ребят, вы в вопрос вчитайтесь: "Применение функций и процедур". Так что ближе всего 1_and_0. Рискну предложить и свое решение. Т. к. не сказано, что за тип элементов в массиве, то предполагаю, что целые.
Функция получилась такой. Если в массиве нет отрицательных, возвращает число положительных. Чтобы функция могла работать с массивами разной размерности, в качестве параметра используется открытый массив.
function PosElemCount(A: array of Integer): Integer;
var
i, n : Integer;
begin
n := 0;
for i:=Low(A) to High(A) do begin
if A[ i ] > 0 then Inc(n); {считаем только положительные}
if A[ i ] < 0 then Break; {выходим при первом отрицательном}
end;
PosElemCount := n;
end;
Обращаться после инициализации массивов так
WriteLn(PosElemCount(X));
WriteLn(PosElemCount(Y));
WriteLn(PosElemCount(Z));
Удачи!
Ребят, вы в вопрос вчитайтесь: "Применение функций и процедур". Так что ближе всего 1_and_0. Рискну предложить и свое решение. Т. к. не сказано, что за тип элементов в массиве, то предполагаю, что целые.
Функция получилась такой. Если в массиве нет отрицательных, возвращает число положительных. Чтобы функция могла работать с массивами разной размерности, в качестве параметра используется открытый массив.
function PosElemCount(A: array of Integer): Integer;
var
i, n : Integer;
begin
n := 0;
for i:=Low(A) to High(A) do begin
if A[ i ] > 0 then Inc(n); {считаем только положительные}
if A[ i ] < 0 then Break; {выходим при первом отрицательном}
end;
PosElemCount := n;
end;
Обращаться после инициализации массивов так
WriteLn(PosElemCount(X));
WriteLn(PosElemCount(Y));
WriteLn(PosElemCount(Z));
Удачи!
пишешь функцию (процедуру) , входящие параметры котором, массив, и размерность массива.
Делаешь цикл по массиву, и ищешь первый отрицательный элемент, запоминаешь ИНДЕКС элемента, и делаешь экстренный выход из цикла через break, после чего считаешь все положительные элементы до запомненного ИНДЕКСА.
P.S.: соглашусь с Bender, это эффективнее способ.
Делаешь цикл по массиву, и ищешь первый отрицательный элемент, запоминаешь ИНДЕКС элемента, и делаешь экстренный выход из цикла через break, после чего считаешь все положительные элементы до запомненного ИНДЕКСА.
P.S.: соглашусь с Bender, это эффективнее способ.
h tt p://borlpasc.narod.ru/faq.htm
Bender +1, только у тебя нули тоже будут считаться отрицательными и счёт будет останавливаться. Нужно сравнение делать ">=". А вообще, должно быть что-то типа:
nx:=0; ny:=0; nz:=0;
for i:=1 to 40 do
begin
if X[ i] > 0 then nx:=nx+1;
if X[ i] < 0 then break;
end;
for i:=1 to 50 do
begin
if Y[ i] > 0 then ny:=ny+1;
if Y[ i] < 0 then break;
end;
for i:=1 to N do
begin
if Z[ i] > 0 then nz:=nz+1;
if Z[ i] < 0 then break;
end;
так нули не будут считаться за положительные, но и не будет прерывать счёт, будто они относятся к отрицательным числам
nx:=0; ny:=0; nz:=0;
for i:=1 to 40 do
begin
if X[ i] > 0 then nx:=nx+1;
if X[ i] < 0 then break;
end;
for i:=1 to 50 do
begin
if Y[ i] > 0 then ny:=ny+1;
if Y[ i] < 0 then break;
end;
for i:=1 to N do
begin
if Z[ i] > 0 then nz:=nz+1;
if Z[ i] < 0 then break;
end;
так нули не будут считаться за положительные, но и не будет прерывать счёт, будто они относятся к отрицательным числам
Похожие вопросы
- Пожалуйста! Помогите с Паскалем! Обещаю 10 баллов!
- Пожалуйста помогите по паскалю!!!
- Помогите с паскалем пожалуйста!!!!
- Помогите с паскалем
- Сделайте пожалуйста программу на Паскале. Заранее спасибо!!!!
- Ааааа....помогите с Паскалем (Pascal)!!!!Срочно!!!!
- помогите с паскалем!!! ужас а не задание!!
- Помогите с Паскалем
- Помогите с паскалем. Помогите написать программу переводящую из 10-ой в 16-ую систему счисления на паскале
- Помогите с паскалем!