Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Номер последнего нечётного члена последовательност

Автор: Giv 25.11.2003 10:21

Люди! Помогите!
Задание звучит так:
Даны натуральные число n? целые числа а1, ...an. Необходимо найти номер последнего  нечётного члена последовательности.
Help me, please!

Автор: fms 25.11.2003 13:51

так может.

Код
for i:=1 to n do
begin
if a[i]mod2<>0 then
nech:=i; {номер последнего нечетного.}
end;

Автор: trminator 25.11.2003 14:06

Лучше идти не с начала (так ты просматриваешь весь массив), а с конца. Да и короче получается - всего одна строчка :D

Код

i:=n; while not odd(A[i]) do dec(i);

Автор: fms 25.11.2003 14:38

тоже верно..)

Автор: Giv 26.11.2003 12:20

Всем спасибо, я тут вчера вечерком покумекал. И вот что я высидел!

Код
Program Nomer;
uses crt;
var
r:array[1..100] of integer;
x,n,i,nom:Integer;
begin
clrscr;
nom:=0;
writeln('Введите размерность массива');
read(n);
writeln('Введите элементы из ',n, ' чисел');
for i:=1 to n do
Read(r[i]);
writeln('Исходный массив:');
for i:=1 to n do
write(r[i]:4);
writeln;
for i:=1 to n do
begin
nom:=nom+1;
if (r[i]mod 2)<>0 then x:=nom;
end;
writeln('Номер последнего нечётного члена последовательности ->',x);
readln;
readln;
end.


Ваше мнение?

Автор: Giv 26.11.2003 13:20

дааа, всё гениальное просто. Действительно что-то я там понаворачивал, хотя можно сделать всё это гораздо проще. Сэнкью!
Вот только не понимаю  пример, который написал trminator. Объясните пожалуйста что делает "odd(A[i]) do dec(i)"  

Автор: fms 26.11.2003 13:22

молодец.. что сам! smile.gif
только слишком уж удлиненный вариант. задача не сложная, а наворотов в ней ты сделал слишком много.. :smile.gif

Код
writeln('Исходный массив:');
for i:=1 to n do
write(r[i]:4);
writeln;


а это зачем?! smile.gif если ты его вводишь, то зачем сразу же выводить?!

nom:=nom+1;
и в этом случае можно ведь не суммировать номер. а просто присваивать значению i и только в том случае, если число нечетное. а так получается лишняя операция.)

всего хорошего. :D

Автор: fms 26.11.2003 13:38

odd пмоему определяет четность/нечетность. smile.gif главное что работает..)

___
хотя может и нет.)

Автор: Giv 27.11.2003 8:25

я уже поменял nom:=nom+1 на x:=i. Ты прав! А что касается вывода массива, так это так... для наглядности, мало ли может какой-то пипл при пользовании прогой будет вводить элементы в строку, а я вывожу как положено (дл наглядности), хотя это конечно же и  совсем даже необязательно  ;)

Автор: fms 27.11.2003 21:03

Giv, угу.. все так.. только я она.. smile.gif

Автор: trminator 28.11.2003 0:11

Цитата
Вот только не понимаю  пример, который написал trminator.

Не получается мне это объяснить (пишу третий раз, перечитываю, понимаю, что не совсем понятно). Постучи в асю, там расскажу.