Меню

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

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

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

Авторизация




Назад...

Использование условий. Алгоритмы с ветвлением.


В линейных алгоритмах все команды выполняются по порядку, как записаны в программе.

Рассмотрим второй тип алгоритма – алгоритм с ВЕТВЛЕНИЕМ.

 

Ветвление в выполнении команд алгоритма возникает в случае, если существует выбор: какую команду выполнить в зависимости от условия.


В жизни мы постоянно сталкиваемся с условиями и к ним так привыкаем, что не обращаем внимания или вообще не замечаем их.


Например:


1) Мы проходим через дверной проем. Если дверь открыта, мы просто идем, если закрыта, то выполняем команду ОТКРЫТЬ ДВЕРЬ.


2) Подходим к пешеходному переходу, который регулируется светофором. Если свет красный, останавливаемся, иначе продолжаем движение.


3) Если возможен дождь, то при выходе на улицу мы берем зонтик, иначе ничего не делаем.


Примеры заданий из программирования (обязательно не забываем про математику):


1) Вводим число. Если оно положительное, то возводим в квадрат, иначе ничего не делаем. Выводим результат.

Ввод 12 -5
Вывод 144 -5

 

2) Из введенных целых положительных чисел суммируем только двухзначные.

Ввод 12     5     456    1   32     2     2     6
Вывод 44

 


 

Рассмотрим конструкцию на Pascal. Существуют две формы.


1) Полная форма. Она используется, если при верном условии выполняется одна команда, иначе вторая. По правилам синтаксиса перед else точка с запятой не ставится.

if   условие then

команда1

else

команда2;

если   условие то

команда1

иначе

команда2;

 

Блок-схема

Пример1: Дано  однозначное число. Если оно четное, то выведем количество десятков, определенное этим числом (цифрой). Иначе - количество сотен.


Program Prim1;

Var

a : integer;

Begin

read(a);

if    a  mod  2  =  0   then

writeln(a*10)

else

writeln(a*100);

End.

 


Tecт 1

5

500



Tecт 2

8

80



2) Краткая форма. Она используется, если нужно выполнить команду при верном условии.

if   условие then

команда;

если   условие то

команда;

 

Блок-схема

Пример2: Изменим введенное с клавиатуры число по правилу: если оно отрицательное, то изменим его знак.


Понятно, что в случае положительности числа мы ничего не делаем.


Program Prim2;

Var

a : integer;

Begin

read(a);

if    a  <  0   then

a:=abs(a);

writeln(a);

End.

 


Tecт 1

5

5



Tecт 2

-8

8


 


 

Что такое "условие" в программе?


Есть условия простые и составные.

Простое условие - это два выражения, связанные знаками >, <, =, <=, >=.

 

x > 0 (x больше нуля)

a < b (a меньше b)

r = 10 (r равно 10)

x >= 10 (x больше или равно 10)

a mod 2 = 0 (число а четное)

a mod 2 = 1 (число а нечетное)

a mod 3 = 0 (число а кратное трем)


Составное условие - это условие, состоящее из простых, связанных логическими and (и), or (или), not (не).

(x > =10) and (x<=99)      - x больше или равно 10 и меньше или равно 99. Если x целое число, то это

условие его двузначности.

(y > 0) or (x<0)             - условие правильно при отрицательных х или при положительных y.

(x mod 3 = 0) and (x mod 7 = 0)     - x кратно трем и кратно семи.

 





 

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

Application afterLoad: 0.002 seconds, 0.29 MB
Application afterInitialise: 0.018 seconds, 0.96 MB
Application afterRoute: 0.021 seconds, 1.20 MB
Application afterDispatch: 0.036 seconds, 1.92 MB
Application afterRender: 0.114 seconds, 2.27 MB

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

2417784

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

  1. SELECT *
      FROM jos_session
      WHERE session_id = '0qk5cv78205q9mt8ld4p20nom5'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1732179643' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = '0qk5cv78205q9mt8ld4p20nom5'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( '0qk5cv78205q9mt8ld4p20nom5','1732183243','','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/140.html%' OR sefurl LIKE '2015-01-05-23-14-32/2015-01-05-23-57-10/140.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 = 140
      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 10:00:43' )
      AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2024-11-21 10:00:43' )   )    OR  ( a.state = -1 )  )
  10. UPDATE jos_content
      SET hits = ( hits + 1 )
      WHERE id='140'
  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

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

•Нет•

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

•Нет•