Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Целочисленная арифметика ⇐ ПредыдущаяСтр 2 из 2
Алгоритмы по работе с целыми числами подробно рассмотрены в [2]. Поэтому рассмотрим следующий пример как напоминание и основу для реализации подобных задач. Необходимо обратить внимание, что при решении задач по теме “распаковка целых чисел” также можно работать с числами, представленными как строки символов; иногда это значительно упрощает решение задачи. Задача. Даны натуральные числа и . Проверить, есть ли в записи числа цифра . Форма имеет следующий вид (рис. 15): Рис.15 Фрагмент кода: {***********************************************************} procedure Tfrm_Z4.bBtn_OKClick(Sender: TObject); var N, k, m, i, z: Byte; p, p_ish: Longword; f: Boolean; begin N: =StrToInt(edt_N.Text); k: =StrToInt(edt_k.Text); m: =StrToInt(edt_m.Text); p: =N; for i: =2 to k do p: =p*N; {накопление степени} p_ish: =p; {дублируем полученное N в степени k} f: =false; {f - «флажок», его значение изначально ложно в предположении, что цифра m не входит в запись N в степени k} while p< > 0 do begin z: =p mod 10; if z=m {если цифра z совпала с m} then begin f: =true; p: =0 {обнуляем р, чтобы не продолжать цикл} end; p: =p div 10; end; if f then lbl_Result.Caption: ='Цифра '+edt_m.Text+' встречается в записи числа '+IntToStr(p_ish) else lbl_Result.Caption: ='Цифра '+edt_m.Text+' не встречается в записи числа '+IntToStr(p_ish); end; {***********************************************************}
|