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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2012, 08:29   #1
hakas-1995
Новичок
Джуниор
 
Регистрация: 15.11.2012
Сообщений: 2
Печаль дано случайное число определить сколько в нем четных цифр и вывести их (паскаль)

дано случайное число определить сколько в нем четных цифр и вывести их (паскаль)
hakas-1995 вне форума Ответить с цитированием
Старый 24.12.2012, 09:15   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, это несложно.

вариант 1 (самый простой, но цифры будут выводится в обратном порядке)
Код:
var N : longint;
   k : integer;
begin
   Randomize;
   N := Random(MaxInt);
   WriteLn('Chislo N = ', N);
  
   {подсчёт чётных цифр с одновременным выводом (печатью) их}
   if N=0 then begin Write('0 '); K := 1 end
   else begin
       K := 0;
       while N>0 do begin
         {если очередная цифра числа чётная, то напечатаем её и увеличим счётчик}  
         if not odd( N mod 10 ) then begin
            Write(N mod 10,' ');
             Inc(K);
         end;   
         N := N div 10; {уменьшим число в 10 раз. Тем самым мы отбрасываем последную, уже обработанную цифру числа}
       end;
   end;
   WriteLn;
   WriteLn(' Vsego chetnyh cifr v chisle: ', K);
   Readln
end.
второй вариант. Переводим число в строку и дальше обрабатываем её.
Код:
var N : longint;
   s : string;
   i, k : integer;
begin
   Randomize;
   N := Random(MaxInt);
   WriteLn('Chislo N = ', N);
  
   {подсчёт чётных цифр с одновременным выводом (печатью) их}

   {сначала переводим число в строку}
   Str(N, s);
   K := 0;
   for i:=1 to Length(s) do
      {если очередная цифра числа чётная, то напечатаем её и увеличим счётчик}  
      if not odd( ord(s[i])-ord('0') ) then begin
           Write(s[i],' ');
           Inc(K);
       end;   
   WriteLn;
   WriteLn(' Vsego chetnyh cifr v chisle: ', K);
   Readln
end.
третий вариант. Все цифры числа поместить в массив (каждая цифра - отдельный элемент массива) и дальше обработать массив, отобразив чётные.
расписывать уже лень...

есть и чётвертый, пятый и т.д. варианты...

Вам выбирать.

Последний раз редактировалось Serge_Bliznykov; 24.12.2012 в 09:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.12.2012, 09:16   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Во-первых, научитесь говорить хотя бы "Здравствуйте" для начала, а "Пожалуйста, помогите! потом осилите

Во-вторых, вот Ваш код. Переменные объявляйте сами.

Код:
begin
  Randomize;
  a:=Random(32500);
  WriteLn(a);
  col:=0;
  while (a div 10>0) do begin
    b:=a mod 10;
    if not odd(b) and (b<>0) then begin
      WriteLn(b);
      inc(col);
    end;
    a:=a div 10;
  end;
  if not odd(a) then WriteLn(a);
  WriteLn(col);
  ReadLn;
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано предложение. Определить, сколько в нем одинаковых соседних букв. mimit Помощь студентам 9 07.12.2012 20:36
Дано натуральное число N. Найти сумму цифр его четных разрядов (задача на Си) Александрq Помощь студентам 1 06.12.2012 10:12
Дано натуральное число n. Определить, сколько парных цифр в числе n. Чему равна сумма нечетных его цифр? pahanzona Microsoft Office Excel 4 27.02.2011 15:46
Си. Задано натуральное число. В нем выделить максимальную по длине группу подряд идущих четных цифр Veina Помощь студентам 20 23.11.2009 17:00
дано трехзначное число.вывести число,полученное при перестановки цифр десятков и сотен исходдного числа. Kenny_mackormik Помощь студентам 7 12.03.2009 15:18