Меню

Обратная связь

Сейчас на сайте

•Сейчас• •33 гостей• •онлайн•

Авторизация




Назад...

Алгоритмы с повторением

ЦИКЛЫ


В этой статье познакомимся с третим типом алгоритма - Алгоритмы с повторением (циклический алгоритм).

Как часто в жизни мы используем повторение? Как и условие - ПОСТОЯННО!

 

Пример 1. Плотник забивает молотком гвоздь.

Гвоздь не забит. Удар.

Гвоздь не забит. Удар.

Гвоздь не забит. Удар.

...

И так до тех пор, пока гвоздь не забит. Понятно, что если гвоздь зайдет после первого удара, то второго не будет.

 

Пример 2. Человек выходит из класса.

Не дошел до двери. Шаг.

Не дошел до двери. Шаг.

Не дошел до двери. Шаг.

...

И так до тех пор, пока не дошли до двери. Понятно, что если человек стоит у двери, то эта команда не выполниться .

 

Пример 3. Пустая 100-литровая бочка стоит на берегу озера. Нужно наполнить ее водой. Имеется кружка объемом 1 литр.

Выполняем команды:

Зачерпнуть кружкой воду из озера. Вылить в бочку.

... и так еще 99 раз (Всего 100 раз).

В данном примере повторяются две команды.

 

Пример 4. Выведем на экран слово 'Родина' 10 раз.

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

writeln('Родина');

Есть повторение? Конечно ДА!

 

При программировании циклов нужно внимательно продумать набор команд, которые повторяются. Этот набор команд (одна или несколько) называется ТЕЛО ЦИКЛА.

Любой алгоритм цикла можно заменить линейным алгоритмом. Но в чем преимущество?


Первое: например нужно выпонить команду 1000 раз. В программе будет 1000 строк. ОЧЕНЬ длинная программа. С использованием цикла запись будет состоять из двух строк. КОМПАКТНОСТЬ записи алгоритма. Но скорость выполнения останеться прежней.


Второе: с использованием цикла можно запрограммировать выполнение разного количества тела цикла, а в линейном только конкретное число раз. Но это все потом...

 

В следующей статье рассмотрим цикл с параметром for ... to ... do


 

•Информация о профиле•

Application afterLoad: 0.001 seconds, 0.29 MB
Application afterInitialise: 0.014 seconds, 0.96 MB
Application afterRoute: 0.018 seconds, 1.20 MB
Application afterDispatch: 0.031 seconds, 1.82 MB
Application afterRender: 0.054 seconds, 2.15 MB

•Использование памяти•

2295336

•Зарегистрировано запросов: 22•

  1. SELECT *
      FROM jos_session
      WHERE session_id = 'gmik2s8q4rkk66vrd2ueu53eo1'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1732178316' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = 'gmik2s8q4rkk66vrd2ueu53eo1'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( 'gmik2s8q4rkk66vrd2ueu53eo1','1732181916','','0','1','0' )
  5. SELECT *
      FROM jos_components
      WHERE parent = 0
  6. SELECT folder AS type, element AS name, params
      FROM jos_plugins
      WHERE published >= 1
      AND access <= 0
      ORDER BY ordering
  7. SELECT *
      FROM jos_migration_backlinks
      WHERE url LIKE '2015-01-05-23-14-32/2015-01-05-23-57-10/146.html%' OR sefurl LIKE '2015-01-05-23-14-32/2015-01-05-23-57-10/146.html%'
  8. SELECT template
      FROM jos_templates_menu
      WHERE client_id = 0
      AND (menuid = 0 OR menuid = 130)
      ORDER BY menuid DESC
      LIMIT 0, 1
  9. SELECT a.*, u.name AS author, u.usertype, cc.title AS category, s.title AS section, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access 
      FROM jos_content AS a
      LEFT JOIN jos_categories AS cc
      ON cc.id = a.catid
      LEFT JOIN jos_sections AS s
      ON s.id = cc.section
      AND s.scope = "content"
      LEFT JOIN jos_users AS u
      ON u.id = a.created_by
      LEFT JOIN jos_groups AS g
      ON a.access = g.id
      WHERE a.id = 146
      AND (  ( a.created_by = 0 )    OR  ( a.state = 1
      AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2024-11-21 09:38:36' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2024-11-21 09:38:36' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='146'
  11. SELECT id, title, module, position, content, showtitle, control, params
      FROM jos_modules AS m
      LEFT JOIN jos_modules_menu AS mm
      ON mm.moduleid = m.id
      WHERE m.published = 1
      AND m.access <= 0
      AND m.client_id = 0
      AND ( mm.menuid = 130 OR mm.menuid = 0 )
      ORDER BY position, ordering
  12. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='mod_maximenu_CK'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  13. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  14. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='uth_proc'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  15. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  16. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='Olimp'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  17. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  18. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='obr_sv'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  19. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  20. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='raznoe'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  21. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  22. SELECT guest, usertype, client_id
      FROM jos_session
      WHERE client_id = 0

•Языковые файлы загружены•

  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.plg_system_debug.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.com_content.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.plg_content_pagebreak.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.tpl_MY_sh.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/en-GB/en-GB.tpl_MY_sh.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_maximenu_CK.ini
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/en-GB/en-GB.mod_maximenu_CK.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_whosonline.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_login.ini 1
  • /var/www/user13295/data/www/ssa.lel-gimnazia.by/language/ru-RU/ru-RU.mod_breadcrumbs.ini 1

•Диагностика непереведённых строк•

•Нет•

•Дизайнер непереведённых строк•

•Нет•