Помощь - Поиск - Пользователи - Календарь
Полная версия: Нечетное место
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Gl00M
Опять массивы.. smile.gif
Как определить, что элемент массива стоит на нечетном месте (т.е. i=1,3,5...)?
forMator
Я бы определил это следующим образом:
Код

if i mod 2 <> 0 then

И после then то что тебе нужно. Элементы будут стоять как раз на нечетном месте.
mod-это остаток от целого деления.
klem4
Еще есть ф-я odd(i), она возвращает true, если i - _не_четное.

А вообще, елси тебе надо в массиве работать только с четными/нечетными элементами, чтобы не делать лишних проверок, используй цикл while (например) с шагом 2.
Gl00M
Вот я создаю программу:
 uses crt;
const n=15;
var a:array[1..n] of integer;
i:word;
Begin
clrscr;
randomize;
For i:=1 to n do begin
a[i]:=50-random(100);
write(a[i]:5);
end;
writeln;
For i:=1 to n do begin
if i mod 2<>0 then a[i]:=sqr(a[i]); { <--- }
write(a[i]:5);
end;
readln;
End.

... и способ forMator'а не прокатывает... sad.gif
volvo
Gl00M, глаза наверх подними:
Цитата(Правила Раздела)
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ - для этого есть отдельный раздел!


Теоретически тебе подсказали, что делать. Не получается практически - я перенесу тему в Задачи... НО!!! В следующий раз, если ты на 100% уверен, что после подсказки у тебя ВСЕ РАВНО не получится - создавай ее в "Задачах" сразу!
Gl00M
Хорошо. Перенисе в задачи. а код я выложил для примера, чтобы посмотрели для наглядности... smile.gif
volvo
uses crt;

const
n = 15;

var
a: array[1..n] of integer;
i: word;

begin
clrscr;
randomize;
for i := 1 to n do begin
a[i]:= 50 - random(100);
write(a[i]:5);
end;
writeln;

for i := 1 to n do begin
if odd(i) then a[i] := sqr(a[i]);
write(a[i]:5);
end;
readln;
end.
Что именно не работает?
Gl00M
volvo, спасибо! Я уже решил так же.. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.