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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2008, 20:57   #1
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию Циклы с произвольным количеством шагов

Вечер! Изучать Делфи начал совсем недавно, и вот уже столкнулся с первой проблемой. С моим количеством знаний, эт задачка кажется не постяжимой, если можете помогите... Очень нужно.
А задачка следущая "Дано число. Отбросить в нём цифры, стоящие левее самой правой единицы". Заранее благодарен.
Walter вне форума Ответить с цитированием
Старый 03.11.2008, 21:31   #2
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

если я правильно все понял то тут все легко ...
переводим в строку InttoStr, а теперь обычным перебором ищем 1 и отсекаем не нужную часть ...
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.11.2008, 21:39   #3
Stepler
Форумчанин
 
Аватар для Stepler
 
Регистрация: 03.02.2008
Сообщений: 213
По умолчанию

Код:
i:=0;
rez:=0;
while(n<>0)do
 begin
 o:=n mod 10;
 rez:=rez+o+i;
 if(o=1)then break;
 if(i=0)then i:=1;
 i:=i*10;
 n:=n div 10;
end;
n:=rez;
o- остача от деления на 10
n- собственно само число
rez- результат
Пишу программы на заказ, контакты под аватаром!
Отзывы тут

Последний раз редактировалось Stepler; 03.11.2008 в 21:43.
Stepler вне форума Ответить с цитированием
Старый 03.11.2008, 22:07   #4
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

Спс за помощь... может для кого то эт и легко, но для меня, это кажется кошмаром... может быть програмирование и не слишком сложная вещь, но я прост не могу понять иногда, или хотя бы представить в голове, как эт задание бует выглядет наяву

Вот что у меня получилось, но выдаёт ошибку на последнем end. Обьясните, что я не так сделал?

Код:
Код:
 
procedure TForm1.Button1Click(Sender: TObject);
var i,n,rez,o:integer;
begin
 n:=StrToInt(Edit1.Text);
 i:=0;
 rez:=0;
  while (n<>0) do;
    begin
      o:=n mod 10;
      rez:=rez+o+i;
        if(o=1) then break;
        if(i=0) then i:=1;
      i:=i*10;
      n:=n div 10;
    end;
  n:=rez;
end.

Последний раз редактировалось Walter; 03.11.2008 в 22:33.
Walter вне форума Ответить с цитированием
Старый 03.11.2008, 22:47   #5
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

надо поставить ; вместо точки
если и тогда будет ошибка, то надо дописать еще end. в самом конце всего
Упс...
L_M вне форума Ответить с цитированием
Старый 04.11.2008, 13:06   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну и надо куда то вывести ответ, в Label или в Edit.
puporev вне форума Ответить с цитированием
Старый 08.11.2008, 19:50   #7
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

Кст, по поводу кода к задачке, тут походу алгоритм не совсем верный (хотя и mod, div и i:=i*10; нужны), мож прост рассположение их не такое, кто может разобраться и подправить, т.к. я пока не силён исправить. Заранее спасибо огромное!
Walter вне форума Ответить с цитированием
Старый 08.11.2008, 19:57   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот нормальный код, я его из паскалевской программы выдернул, лень переменные менять, доделай сам.
Код:
var n,m,k,t:integer;
begin
//здесь ввод N
m:=1;t:=n;
repeat
   k:=N mod 10;
   m:=m*10;
   n:=n div 10;
until k=1;
//здесь вывод('m=',t mod m)
end;
end.
Цитата:
while (n<>0) do;
Кстати, что это у тебя в коде так и написано, если да убери точку с запятой.

Последний раз редактировалось puporev; 08.11.2008 в 20:01.
puporev вне форума Ответить с цитированием
Старый 08.11.2008, 20:27   #9
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

Спс, попробую доделать надо же чему то обучаться самому ^^

Последний раз редактировалось Walter; 09.11.2008 в 16:19.
Walter вне форума Ответить с цитированием
Старый 09.11.2008, 16:19   #10
Walter
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 43
По умолчанию

Так а у меня вопрос, а в этой задачке, тока мона с repeat или же while тож пойдёт? Пупорев, еси можешь покажи на премере с while. Спс заранее
Walter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ГСЧ с большим количеством нулей Frog25 Общие вопросы C/C++ 6 26.06.2008 18:22
Напечатать строку с наибольшим количеством слов. jenja Помощь студентам 9 07.03.2008 05:28
Массив структур с заранее неизвестным количеством элементов, С++ PersonaGrata Общие вопросы C/C++ 8 24.02.2008 16:34
как вывести число с ограниченным количеством цифр после запятой? delphi Ensoph Помощь студентам 1 02.10.2007 07:50