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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2009, 12:03   #1
BeaU
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 35
По умолчанию Сделайте, пожалуйста прогу!!!! Оч оч надо

Дано натуральное число, в котором все цифры различны. Определить порядковые номера двух его минимальных цифр, считая номера:
-считая от конца числа;
-считая от начала числа.
(Использовать только один оператор цикла)

Последний раз редактировалось BeaU; 05.06.2009 в 12:26.
BeaU вне форума Ответить с цитированием
Старый 06.06.2009, 12:47   #2
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Простая ведь задача:

Код:
var 
  s, min1, min2: String;
  v: Longint;
  i, p1, p2: Word;
begin
  v := 491823567;
  Str(v, s);
  p1 := 1;
  p2 := 1; { считаем, что есть хотя бы одна цифра }

  for i := 2 to Length(s) do begin
    if s[i] < s[p1] then begin
        if s[p1] < s[p2] then
          p2 := p1;
      p1 := i;
    end
    else
    if s[i] < s[p2] then
      p2 := i;
  end;

  writeln('positions:');
  writeln('p1 = ',p1, '  p2 = ', p2);
  writeln('values:');
  writeln('p1 = ',p1, '  p2 = ', p2);

end.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".
Daramant вне форума Ответить с цитированием
Старый 06.06.2009, 17:25   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Daramant, задачка, конечно, не очень сложная. но и не элементарная.
попробуйте вашу программу на таком "сложном" числе, как:
1234567

p.s. и, мне кажется, Вы хотели вывести значения чисел, тогда в последнем Вашем WriteLn описка.
должно быть, Вы хотели написать так:
Код:
  writeln('values:');
  writeln('p1 = ',s[p1], '  p2 = ', s[p2]);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.06.2009, 18:40   #4
Daramant
Форумчанин
 
Регистрация: 06.01.2009
Сообщений: 340
По умолчанию

Да, виноват.
должно быть:
Код:
...
p1 := 1;
p2 := 2;  { <--- }
 for i := 3 to Length(s) do begin
...
Ну и число должно содержать минимум 2 знака.

при выводе конечно:
Код:
  
  writeln('values:');
  writeln('min1 = ', s[p1], '  min2 = ', s[p2]);
P.S. Serge_Bliznykov +1 за внимательность)
Цитата:
задачка, конечно, не очень сложная. но и не элементарная.
Простая - это немного сложнее чем элементарная.
Истинный успех – это то, что Вы сделали в сравнении с тем, что могли бы сделать.
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. Профессионалы построили "Титаник".

Последний раз редактировалось Daramant; 06.06.2009 в 18:43.
Daramant вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста ей богу надо! opsi Помощь студентам 1 31.05.2009 19:54
Помогите пожалуйста,очень надо Тем@ Паскаль, Turbo Pascal, PascalABC.NET 1 07.05.2009 18:21
Помогите пожалуйста! Очень надо grodman Помощь студентам 1 13.10.2007 08:01