Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.11.2009, 22:12
Lewa Lewa вне форума
Прохожий
 
Регистрация: 29.11.2009
Сообщения: 2
Репутация: 10
Восклицание Лёгонькая Задачка.

У девушки лабораторная горит, сам в программировании не шарю.

Требуется ввести длину одномерного массива, состоящего из целых чисел, и его элементы.
Затем удалить все элементы, кроме имеющих заданное произведение цифр.

..т.е., число 28 следует прочесть как 2*8=16. При заданном произведении 16 оставим в массиве 28, 82, 44, 441...

Программа компилируется в FPC.

Последний раз редактировалось Admin, 29.11.2009 в 22:22.
Ответить с цитированием
  #2  
Старый 01.12.2009, 01:18
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Непонятно, зачем ты взялся за работу, если в программировании не шаришъ)
Желаемое определение массива:
Код:
type
  TIntegerArray = array of Integer;
функция определения, является ли число "производным")
Код:
function IsValidatedNum(const aNum, aProduct:Integer):boolean;
var
  str:string;
  tmpProduct, i:Integer;
begin
  str:=IntToStr(aNum);
  tmpProduct:=StrToInt(str[1]);
  if Length(str) > 1 then
    for i:=2 to Length(str) do
      tmpProduct:=tmpProduct*StrToInt(str[i]);
  Result:=tmpProduct=aProduct;
end;
Процедура очистки массива от "непроизводных" чисел:
Код:
procedure RemoveNonProductNumbers(var a:TIntegerArray; const aProduct:Integer);
var
  i,c:integer;
begin
  if Length(a)>0 then
    begin
    c:=Low(a);
    for i:=Low(a) to High(a) do
      if IsValidatedNum(a[i],aProduct) then
        begin
        a[c]:=a[i];
        Inc(c);
        end;
    SetLength(a,c);
    end;
end;
Сам вызов процедуры:
Код:
  ...
  RemoveNonProductNumbers(FIntegerArray,28);
  ...
FIntegerArray ( :TIntegerArray; ) - твой массив с числами.
С остальным думаю справишься)
Ответить с цитированием
  #3  
Старый 02.12.2009, 01:31
Lewa Lewa вне форума
Прохожий
 
Регистрация: 29.11.2009
Сообщения: 2
Репутация: 10
По умолчанию

эта, спасибо конечно!

компилятор FPC выводит 35 косяков..
девочка в ужасе. говорит, не проходили такое. речь о процедурах

Последний раз редактировалось Lewa, 02.12.2009 в 01:33.
Ответить с цитированием
  #4  
Старый 02.12.2009, 08:57
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Ну каждый косяк нужно по очереди обрабатывать...в большинстве случаев ошибки не страшные...забыл запятую, кавычки...присвоил неправильное значение переменной или вообще не объявил ее...
В данном случае если программа компилируется на Free Pascal, то просто нужно заменить некоторые процедуры Делфи на FPS...
Просто здесь написали алгоритмы работы, а реализация все равно за тобой...
Ты бы полный код подал в студию, авось и решил бы кто проблему...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025