Помощь - Поиск - Пользователи - Календарь
Полная версия: создать массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
jenka
Есть вот такая задача:

Дана последовательность натуральных чисел A[N]. создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.

Помогите с решением, плиз.
Lapp
Цитата(jenka @ 15.11.2006 6:36) *
Дана последовательность натуральных чисел A[N].

Что означют эти слова? Как она дана?
Она может (в принципе) :
- вводиться с клавы (по одному числу, скажем),
- читаться из файла,
- сниматься с датчика (например, время),
- быть задана общей формулой (типа An = 3*n^2 ),
- быть заданной словесно (типа: все единицы, кроме целых тысяч, а те равны 2)
- ...
Думаю, можно изобрести еще способы. Так что тебе нужно определиться с этим.

Второе.
Ответить на заданный вопрос можно только либо если есть общая формула (но тогда это задача скорее не для программы, либо прога будет сильно зависеть от общего вида последовательности..), либо перебрав все члены последовательности, что невозможно в случае бесконечной последовательности. Поэтому видится наиболее разумным ограничить номер последовательности каким-то (большим) числом, типа 10000. Тебя это устраивает?

Lapp
jenka, вот программа в предположении, что последовательность задана формулой
An = [n/3]
- то есть целая часть от деления номера на три.
Количество тестируемых членов последовательности задается константой M
{for jenka }

const
M=100; {maximum tested number}

var
A2:array[1..M]of integer; {Array of even numbers}
i,j,An:integer;

function A(n:integer):integer;
begin
{Here goes a rule to compute An}
A:=n div 3
end;

begin
j:=0; {current number of even numbers}
for i:=0 to M do begin
An:=A(i);
if not Odd(An) then begin
j:=j+1;
A2[j]:=An
end
end;
WriteLn('Total of ',j,' even numbers found.');
for i:=1 to j do Write(A2[i]:8);
ReadLn
end.

Приходи, говори, что не совсем понятно - объясним smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.