![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() дано натуральное число n(n>99)опредилить число сотен в нам.
|
#2
|
||||
|
||||
![]() В предыдущей своей теме ты дал хотя-бы какие-то собственные наработки. Почему же теперь мы должны делать за тебя всё с нуля? Показывай, что у тебя есть и где запутался.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
||||
|
||||
![]() Код:
c := (n div 100) mod 10 jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
![]() Цитата:
Вроде Код:
c := n div 100 откуда мод 10? |
#5
|
||||
|
||||
![]() 1 form, 2 edit, 1 button
Код:
procedure TForm1.Button1Click(Sender: TObject); var im,nh,kl,gh:integer; sd,vb:string; begin sd:=edit1.Text; kl:=0;gh:=1;im:=length(sd); for nh:=1 to im do if copy(sd,nh,gh)<>'' then kl:=kl+1; edit2.Text:=copy(sd,1,kl-2); end; Рабочий код. Помогаю платно. Помогаю иногда бесплатно. |
#6
|
|||
|
|||
![]() надо заметить, что решение от @Rafa3L более точно вписывается в требования задачи тк работает только для натуральных чисел n > 99, в отличии от других решений, которые не учитывают этого.
|
#7
|
||||
|
||||
![]() В задании сказано, что N>99. То есть это факт. Следовательно, и предыдущее решение работает. Вдобавок, для N<=99 ответ тоже будет верный - 0.
А в решении от @Rafa3L я не понял, зачем нужно делать copy(sd,nh,gh) при gh всегда равно 1, когда можно сделать sd[nh]. Также не ясно, как оно согласуется с решением задачи. Если рассмотреть число 12345, то 5 - это единицы, 4 - десятки, 3 - сотни, 2 - уже тысячи. Следовательно, на вопрос "Сколько сотен в 12345" будет ответ 3. Хотя конечно, задачу можно трактовать двояко. Ну и в-третьих, не понимаю смысла во всем этом цикле(после него все равно kl=im) Если уж делать через строки, то можно во много раз проще. Код:
delete(sd,length(sd)-1,2); edit2.text:=sd; Код:
edit2.text:=sd[length(sd)-2]; jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 16.11.2011 в 16:49. |
#8
|
|||
|
|||
![]() Идея в том что автор задачи, когда писал N>99, подразумевал что решение будет через copy/delete. А цикл выполняет декоративную функцию
|
#9
|
||||
|
||||
![]() Bargest похоже не "въехал" в суть вопроса.
Нужно смотреть шире ![]() |
#10
|
||||
|
||||
![]() И до сих пор не въезжаю.
![]() Задача же такая: Дано натуральное число n. Не строка ведь. jmp $ ; Happy End! The Cake Is A Lie. |
#11
|
|||
|
|||
![]() собственно, вопрос в том, что считать "числом сотен". Если, условно говоря, есть текоторая сумма (пусть 12345), и надо посчитать кол-во сотенных бумажек, то ответ будет 123. Если надо получить значение для разряда сотен (например при генерации суммы прописью), то ответ будет 3.
Соответсвенно: Код:
// Кол-во "бумажек" function NumOfHundred(n : Integer) : Integer; begin Result := n div 100; end; // Разряд function PosHundred(n : Integer) : Integer; begin Result := (n div 100) mod 10; end; |