Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 13:36   #1
Gh0sTuk
Новичок
Джуниор
 
Регистрация: 08.02.2011
Сообщений: 1
По умолчанию Удалить из последовательности натуральных чисел определённые элементы (Delphi)

ПРОГРАММА ДОЛЖНА БЫТЬ СОБРАНА ИЗ ПОДХОДЯЩИХ ПРОЦЕДУР И ФУНКЦИЙ!
Дана последовательность натуральных чисел {Aj}j=1...n (n<=10000). Удалить из последовательности числа, произведение цифр которых равно 120, а среди оставшихся продублировать числа, начинающиеся и заканчивающиеся одной и той же цифрой.

сделал только так, но она не работает ибо я нуб
Код:
{$apptype console}
program pizdec;
const
n=10000;
var
a:array[0..n] of integer;
b:array[0..n] of integer;
i,j,f,k,z,o,e,s,y,x:integer;
h,qk,q:integer;
begin
i:=1;
k:=0;
i:=1;
h:=1;
z:=1;
s:=1;
j:=1;
x:=0;
writeln('Vvedite kol-vo elementov:');

readln(y);
writeln('__________________');
randomize;
while z<=y do
begin
z:=z+1;
end;
while i<=y do
begin
a[i]:=random(n);
while (a[q] mod 10)<>0 do
begin

h:=h*a[q]mod 10;
writeln(h);
if h>=120 then qk:=qk+1;
q:=q+1;
end;

i:=i+1;
end;
writeln('________________');
while j<=y do
begin

j:=j+1;
end;
writeln('chisla:',qk);

writeln('_________________');
writeln('|Isxodnaiya posl:|');
writeln('_________________');
while x<y do
begin

writeln(a[x]);
x:=x+1;
end;
readln;

end.

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.



помогите плз
она должнп состоять из попрограмм
препод только так примет
надеюсь на помощь

Последний раз редактировалось Serge_Bliznykov; 09.02.2011 в 09:52.
Gh0sTuk вне форума Ответить с цитированием
Старый 09.02.2011, 08:37   #2
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Вам просто необходимо избавиться от вредной привычки писать весь код в главном модуле.
Рекомендую создать один дополнительный модуль (File->New->Unit) и в нём описать логику, потом подключить этот модуль к главному и вызовом пары-тройки методов или функций решить задачу.
Потому что, как сказал классик: "Так удобней, так скромней..."

Теперь, что касается алгоритма:
число 120 раскладывается на простые множетели в виде 2*2*2*3*5
1. Заводите массив целых чисел, в которые заностие указанные числа (или любые другие, если исходные данные задачи вдруг изменятся)
2. Реализуете функцию, у которой на вход подаётся целое число и Ваш массив, а на выходе true, если целое число состоит из цифр массива, и false - в противном случае. Пусть её имя будет Digitazing(AVal, AnArray);
3. Реализуете функцию, которая возвращает истину, только если совпадают первая и последняя цифра её единственного параметра. Пусть имя данной ф-ии будет Dublicator(AValue)

Подключаете модуль с этими ф-ями (или с классом, в зависимости от того, как Вы это реализуете) к главному модулю и в нём пишите что-то типа

Код:
// Динамический массив задаётся не так. 
// Это для краткости
myArr = [2,2,2,3,5]; 
// - - - - - - - - - - - - - - - - - - - 
n := 10000;
for i:=1 to n do begin
  if (not Digitazing(i, myArr)) begin
    // Произведение цифр i не равно 120, 
    //значит оно может быть напечатано
    writeln(i);
    if (Dublicator(i)) then begin
       // Первая и последняя цифры i совпадают. 
       // Необходимо продублировать число i
       writeln(i);
    end;
  end;
end;
В итоге имеем гораздо более читаемый код, который гораздо проще в отладке.
Т.о. Вам остаётся дописать две не очень сложные функции.
Greek9000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на последовательности чисел Delphi Lexey92 Помощь студентам 4 25.11.2010 02:51
Из числовой последовательности удалить элементы. Тарас1 Паскаль, Turbo Pascal, PascalABC.NET 2 19.09.2010 02:40
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. Med Помощь студентам 1 20.03.2009 11:40
Генерация последовательности псевдослучайных натуральных чисел с требуемым распределением вероятности elsin Фриланс 4 19.11.2008 08:57