Меню

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

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

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

Авторизация




Назад...

Цикл с параметром. FOR



Этот цикл хорошо использовать, когда мы знаем сколько раз нужно выполнить повторение.


1. Конструкции цикла for на языке Pascal


В этом цикле используется переменная целого типа (счетчик цикла), в котором ведется учет количества входов в цикл. При каждом новом входе значение счетчика изменяется на 1 (увеличивается или уменьшается). Как только значение выходит за пределы конечного значения, работа цикла прекращается и программа выполняется далее.


По возрастанию значения счетчика цикла


for <счетчик цикла> := < начальное значение > to < конечное значение> do

< тело цикла >


Пример:

for   i:=1  to  5   do

< тело цикла >


Цикл выполнится 5 раз.

Переменная цикла (счетчик цикла) - i

Начальное его значение - 1, конечное - 5. При выполнении команд значение счетчика увеличивается на 1.

На каждом шаге выполняется проверка значения счетчика. Если оно больше конечного значения, то вход в цикл прекращается. Программа выполняется дальше, пропуская цикл.




По убыванию значения счетчика цикла


for := <начальное значение > downto <конечное значение> do

< тело цикла >



Пример:

for   i:=5  downto  1   do

< тело цикла >


Начальное его значение - 5, конечное - 1. При выполнении команд значение счетчика уменьшается на 1. Здесь проверка на значение счетчика цикла не меньше 1.



2. Рассмотрим примеры.


Пример 1. Выведем слово "Компьютер" 7 раз. Программа без цикла и с использованием цикла.


Begin

writeln('Компьютер');

writeln('Компьютер');

writeln('Компьютер');

writeln('Компьютер');

writeln('Компьютер');

writeln('Компьютер');

writeln('Компьютер');

End.

Var

i : integer;

Begin

for i:=1 to 7 do

writeln('Компьютер');

End.


Преимущества очевидны. А если надо вывести слово 100 раз? Меняем 7 на 100. И ВСЁ!!!

 


Пример 2. Найдем сумму 10 чисел, введенных с клавиатуры.


Для решения нам необходимы три переменные:

a - для ввода значения числа с клавиатуры,

s - значения суммы,

i - переменная цикла  for


Алгоритм решения:

Начальное значение суммы равно 0.

Выполняем десять раз:

вводим число с клавиатуры

прибавляем это число к значению суммы.

Выводим результирующую сумму.


Тело цикла состоит из двух команд. Так ка после do выполняется только одна команда, то используем операторные скобки begin ... end;


Var

s, a : integer;

Begin

s:=0;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

read(a);

s:=s+a;

writeln(s);

End.

Var

i, s, a : integer;

Begin

s:=0;

for i:=1 to 10 do

begin

read(a);

s:=s+a;

end;

writeln(s);

End.

 


 

 

3. Цикл в цикле.

 

Рассмотрим использование цикла в цикле.

Нарисуем прямоугольник размером 5 на 7, состоящий из символов '0'.


0000000

0000000

0000000

0000000

0000000


Что у нас повторяется?


1. Повторяем прорисовку всей строки 5 раз.

2. Внутри каждого цикла повторяем:

- семь раз прорисовываем символ 0

- переводим курсор на новую строку.

 

Так заметим, что более маленькое действие - прорисовка строки (это внутренний цикл). Более крупное действие - прорисовка пяти строк (внешний цикл).

Внешний цикл состоит как бы из двух команд: 1) цикл по j и 2) команда writeln; поэтому тело внешнего цикла (по i) берем в операторные скобки (begin ... end;).


Var

i, j : integer;

Begin

for i:=1 to 5 do

begin

for j:=1 to 7 do

write('0');

writeln;

end;

End.


 

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

Application afterLoad: 0.001 seconds, 0.30 MB
Application afterInitialise: 0.035 seconds, 0.97 MB
Application afterRoute: 0.043 seconds, 1.22 MB
Application afterDispatch: 0.088 seconds, 1.98 MB
Application afterRender: 0.142 seconds, 2.35 MB

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

2498016

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

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

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

•Нет•

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

•Нет•