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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2016, 18:29   #1
Gandr
 
Регистрация: 05.12.2016
Сообщений: 5
По умолчанию Динамический массив !?

Напечатать в возрастающем порядке все цифры,не входящие в запись данного натурального числа .
---------------------------------------
Помогите плиз , препод сказал ему нужно что бы это было через динамический массив
P.s За ранее спасибо !!!
Gandr вне форума Ответить с цитированием
Старый 05.12.2016, 22:58   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Алгоритм:
Создаем динамический массив на 10 элементов.
А) С помощью оператора MOD получаем младшую цифру числа.
Используем младшую цифру числа как индекс элемента массива и увеличиваем элемент на единицу.
С помощью оператора DIV удаляем младшую цифру числа.
Если число больше нуля, то переходим к пункту А)
В цикле просматриваем массив либо слева направо, либо справа налево и если элемент равен нулю, то печатаем индекс этого элемента.
Пример:
Код:
type TWordMas = array of word;
var k, i: longint;
   mas : TWordMas;
begin
   randomize;
   SetLength(mas, 10);
   for i := 0 to 9 do
      mas[i] := 0;
   k := random(2000000000);
   writeln(k);
   while k > 0 do
   begin
      i := k MOD 10;
      mas[i] := mas[i] + 1;
      k := k DIV 10;
   end;
   for i := 0 to 9 do
      if mas[i] = 0 then
         write(i, '  ');
   writeln;
   readln;
end.
PS: Тут анализируемое число формируется случайным образом.

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.12.2016, 23:19   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А паскаль то какой? Не в каждом SetLength есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.12.2016, 23:50   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

У меня FPC, а Turbo уже давно не пользую.
В том случае, если Turbo, то надо
Код:
getmem(mas, 10*sizeof(word));
и затем, например,
Код:
mas^[i] := mas^[i] + 1;
В конце не забыть freemem(mas);
В частности, в моем примере массив не освобождается, а надо бы
Код:
mas := nil;

Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический массив frixer Общие вопросы Delphi 7 26.09.2013 20:58
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив tony_vies Помощь студентам 0 20.02.2011 21:18
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Динамический массив zumm Свободное общение 3 18.07.2010 13:59