Меню

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

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

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

Авторизация




Назад...

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


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

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

 

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


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


Например:


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.001 seconds, 0.30 MB
Application afterInitialise: 0.044 seconds, 0.97 MB
Application afterRoute: 0.051 seconds, 1.22 MB
Application afterDispatch: 0.067 seconds, 1.53 MB
Application afterRender: 0.102 seconds, 1.90 MB

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

2032352

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

  1. SELECT *
      FROM jos_session
      WHERE session_id = '78shhefrd7aoervv11nru02vb5'
  2. DELETE
      FROM jos_session
      WHERE ( time < '1743712673' )
  3. SELECT *
      FROM jos_session
      WHERE session_id = '78shhefrd7aoervv11nru02vb5'
  4. INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` )
      VALUES ( '78shhefrd7aoervv11nru02vb5','1743716273','','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 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
  10. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='mod_maximenu_CK'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  11. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  12. SELECT *
                           
      FROM jos_menu
                           
      WHERE menutype='uth_proc'
      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='Olimp'
      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='obr_sv'
      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='raznoe'
      AND published=1
                           
      ORDER BY sublevel DESC,ordering
                            ;
  19. SELECT *
                           
      FROM jos_modules
                           
      WHERE published=1
                           
      ORDER BY id
                            ;
  20. 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.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

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

•Нет•

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

•Нет•