АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Then begin. У другому варіанті розв’язування ми замість генерації числа будемо перебирати всі трицифрові числа від 111(всі попередні об

Читайте также:
  1. A COMPUTER COURSE FOR BEGINNERS
  2. Else begin
  3. Then begin
  4. Then begin
  5. Then begin
  6. Then begin

k:=k+1;

write (‘c, ‘ ‘);

End

End

writeln;

writeln (‘k=’, k);

End.

У другому варіанті розв’язування ми замість генерації числа будемо перебирати всі трицифрові числа від 111 (всі попередні обов’язково мали хоча б один 0 у своєму складі) до 999. Покажемо також використання для розв’язання циклу поки (читачам самостійно пропонуємо спробувати написати розв’язання з циклом для).

Алгоритм має вигляд:

АЛГ Варіант 1б (цілий k);

РЕЗ k

ПОЧ цілий i, c, d, e

k:=0

i:=111

поки

пц

c:=int(i/100)

d:=int(i/10) – c*10

e:=I – c*100 – d*10

якщо (c< >0) and (d< >0) and (e < > 0) and (i mod c=0) and (i mod d=0) and (i mod e=0)

то k:=k+1

ДРУКУВАТИ (і)

Все

і:=і+1

кц

ДРУКУВАТИ (k)

КІН

Розв’язання мовою Паскаль:

Program variant_1b;

var k, i: word; c, d, e: byte;

begin

k:=0;

i:=111;

while i<999 do

Begin

c:=i mod 10; { цифра одиниць }

d:=i div 10 mod 10; { цифра десятків }

e:=i div 10 mod 10; { цифра сотень }

if (i< >0) and (d< >0) and (e< >0)

then if (i mod c=0) and (i mod d=0) and (i mod e=o)

Then begin

k:=k+1;

write (‘i, ‘ ‘);

End

i:=i+1;

end;

writeln;

writeln (‘k=’, k);

end.

Наведемо ще один варіант розв’язування з використанням циклу повторювати. Ідея розв’язання при цьому повністю збігається з варіантом 1б, різниця тільки в оформленні циклу (адже це цикл з післяумовою) та дещо інших формулах для виділення цифр числа (до речі, пропонуємо читачеві подумати, чи можна ще якимось чином виділити цифри трицифрового числа).

Алгоритм має вигляд: Алгоритм-функція div:

АЛГ Варіант 1в (цілий k); АЛГ ціл div (ціл a, b)

РЕЗ k ПОЧ ціл r,k

ПОЧ цілий i, c, d, e r:=a; k:=0

k:=0 поки r=b

i:=111 пц

повторювати r:=r-b

пц k:=k+1

c:= div (I, 100) кц

d:= int (i/10) – c*10 div:=k

e:=i – c*100 – d*10 КІН

якщо (c< >0) and (d< >0) and (e< >0) and

(i mod c=0) and (i mod d=0) and (i mod e=0)

то k:=k+1

ДРУКУВАТИ (і)

Все

і:=і+1

кц

до і>999

ДРУКУВАТИ (k)

КІН

Алгоритм мовою Паскаль має вигляд:

Program Variant_1v;

var k, i: word; c, d, e: byte;

Begin

k:=0;

i:=111;

Repeat

c:=i mod 10; { цифра одиниць }

d:=i div 10 mod 10; { цифра десятків }

e:=i div 10 mod 10; { цифра сотень }

if (i< >0) and (d< >0) and (e< >0)

then if (i mod c=0) and (i mod d=0) and (i mod e=o)


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)