Задачи для 9 класса на цикл for
Ë#߆y ¢Vz¡ÚPöTÔ”” ¼j’ØÓP’ðRè¦z@í)(AXÌ 6ˆ=ý$ƒj› öÔ” 0®Iõôy»g)^”6~¾š¨§ø×áKžëÛ”ÅÈ™Â2],•T÷¢º,»))kZû .òóDš ¹l¦Mñ:-ÊÎÑܹÃ@X·aS=š^îöÄáç½`Y€‡ñ^ØÂáÈfLòD”;í0õ 6÷ ›^½éq®¬ð4R½-6¾k¿i¿ÅÚNö{ÞA¢%ÀzÛTn³§5¨¶hèÌû%_|Q(r .lÚöË:Ùª9ߪç’L:3oÕd©´kͼ|®?¸ÎËŠR~ŽÈý˜ýÀ-Ov³GסµPM§km¤¶ ¢ÆÕ:ØT´@Ô¸~k׸Oˆm5®Ö: hÊ/³×攑”¶õª¡¢MÞ4º†àhÛÆ^CNÖ hªíM-7•q”6µÀ¦-›JaÚ j¹£® ¢-›!I@D-7Q‡£lƒˆ§Ä¥L, ÌŒI€Pb¸õ,ädÃP fVÚù£°Z£ôA8÷%Ø’JU–y¤úŠ¥¾¸ùÃS²ÛDzÆÙT½”wÆ/iÿ˜È endstream endobj 5 0 obj > endobj 6 0 obj [ 7 0 R] endobj 7 0 obj > endobj 8 0 obj > endobj 9 0 obj > endobj 10 0 obj > endobj 11 0 obj > endobj 12 0 obj > endobj 13 0 obj [ 14 0 R] endobj 14 0 obj > endobj 15 0 obj > endobj 16 0 obj > endobj 17 0 obj > endobj 18 0 obj > endobj 19 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 23 0 R 25 0 R 28 0 R 31 0 R 34 0 R 36 0 R] /Box[ 0 0 595.32 841.92] /Contents 20 0 R/Group>/Tabs/S/StructParents 3>> endobj 20 0 obj > stream xœ˜Koâ0ÇïH|»¿²V»R¥JË õ€ºm·‡>´â²ß~ÇvBâCÓ òòüÇcÿfìP,þ^Ÿ÷4Ÿ‹Ãaÿøçé7ÚËÃáãí¡Øþû|*î÷/¯ïûÃëÇ»shy»BËítRl¢mŸ§ŠüSĬÀJÃk…¶oÓ A/þëût²»aßÐöçt²[o_qBR£Ý j5-6QŠ‰H½Ì¡ºÛïV÷>®»Õ[D’¾sDMª&@ˆ#m¶,êÍ K”!L®á³ó…› ¸¯ˆ£ŽrçÚ͸¿Ç|×îºh{âàIÚÄÓpÏi{ÔE÷Phûå~}îߊ,Q¤ýŠÒ`%êÑ nVE-×N”§šúàÃÀÂ¥ó8(eS¸×ÒÉ0FñP=Ý8ã/y¼”Ûþ©-ͧÁå(‰”í™è9à‡É$Ðüê¶3Ûl‹fŽ¶»|æ¯~èOü_)%ÃD”%%ÇB$”e¯A€9k¥´X¶úɇøç ]¥@*…å€û®¹9À%¦u ,b!Ь,ºâºD¶Ä];=/[ˆpê’å£&Ez+ÜÕƉy;[ª¼ÈH°÷¢ -³3@®ß1YóòB(ll3øþ´€zFy£éY)iâýÚ¤PÛ¢[fÓÝ3]p«¸Á›4_/ð±æúÕ±âL9^eÁÊ_'”-Ë3?.˜Þ¥¤l¥ Å^7Äëb_:UùÅ 4 ú,ÕuÛñ°núÿ×YJgÀnD˜GvÓ©B[g£Ý7#]l›L¶•1~=¼°r³â”YÏkI[¹Ù”0.Cä-Ð/Êíb~±¥Æb%”÷Nµ‹¤í† Oý_Ë%DÇØ(R’I¬z”†’nNÒ‰;”´ÍEºw2»¦$-i%°eC®I¬ªU5a×›-÷¼Lȃ¥SU”¨ZgKs_7’Õ>§½5w=u-ªÀ~˜ç™2íçíÂòΆW ¦Ôðì3¾mÛ÷sIÀ¼’¸>- N¡r¥ú°P¨EJ†…I É`CÉà{*ÍNŽÁÞtfHî+«à”]Zõ¯É†ÔbÌÍ7µÊÿÑe`=0~OÓh;Æz`±¶©ÿkfS3Š”ä,Ôê©3ä7F&ü¦Á’|:H~ö+êpoN…Eæo?ŠjÌ{wPÿ±Ãæ’ endstream endobj 21 0 obj > endobj 22 0 obj > endobj 23 0 obj >/F 4/Dest[ 24 0 R/XYZ 26 813 0] /StructParent 4>> endobj 24 0 obj >/XObject>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 38 0 R/Group>/Tabs/S/StructParents 1>> endobj 25 0 obj >/F 4/Dest[ 27 0 R/XYZ 26 813 0] /StructParent 5>> endobj 26 0 obj >/XObject>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 52 0 R/Group>/Tabs/S/StructParents 2>> endobj 27 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 67 0 R/Group>/Tabs/S/StructParents 10>> endobj 28 0 obj >/F 4/Dest[ 30 0 R/XYZ 26 813 0] /StructParent 6>> endobj 29 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 68 0 R/Group>/Tabs/S/StructParents 11>> endobj 30 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 69 0 R/Group>/Tabs/S/StructParents 12>> endobj 31 0 obj >/F 4/Dest[ 33 0 R/XYZ 26 813 0] /StructParent 7>> endobj 32 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 70 0 R/Group>/Tabs/S/StructParents 13>> endobj 33 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 76 0 R/Group>/Tabs/S/StructParents 14>> endobj 34 0 obj >/F 4/Dest[ 35 0 R/XYZ 26 813 0] /StructParent 8>> endobj 35 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 77 0 R/Group>/Tabs/S/StructParents 15>> endobj 36 0 obj >/F 4/Dest[ 37 0 R/XYZ 26 813 0] /StructParent 9>> endobj 37 0 obj >/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Box[ 0 0 595.32 841.92] /Contents 78 0 R/Group>/Tabs/S/StructParents 16>> endobj 38 0 obj > stream xœ¥[o·~ ÿ°r x¿ êÎE 4@Š¸èƒ”ÕuÜ °Ý~é¿/ïœár¹{´Ž¤#rH¿¹õpüýëo¿¾¼ÿ:=>>¿~}yÿ¯ÿœÞ=œ¾|ýúåÓ/oÿ÷Ÿ?¾|üíóË×ß¾|>¦ÓåtÞôôÃyš~ôçúáüÝe”hï|¢Q£JÎÆNÚªÙ²Hï’0A “G÷ï)~ÕîgÅ!Ü}Õá3÷ýáž¹±Jú’dŠÎ’·¤™HâùpÏýÏäAºoµôGÊâ1®¬üg÷ոǃÈÎîŸòS-ÏD{DáxÌÚǘe´½nÑ¿õr’rBrÒÌ2np”3q·ûþÝ P ÒÍ}”H”ùKLÑÎt%‡ÐtUó”îNh€ KPÈ÷~ãMøüÇ»Ëeò.Ñë?`Âý `¬ÿ@†‰Í‡ lEÙ°d^A[‹ƒñ™´ÉˆÅ/ñ37F«ð%m;O Ál ç?ö%xJëÁ˜Ð‡{ž6Î’çÎ[Xx{Ì8%fˆÊjØÌí!ŸÍó0âéùŸû’œÑ!*:ÂeùûåJÊV-8pbuÞ›Ž¿Ê%}n!ÎO9=A à¸zŽJ ß™:A^¹ÿÇ ÿãâ+2-å¬$:å{sÏï~¾{ycîþá¿þ4½î[q÷>~ûòþç7” /ÄÌ8&8T|¯¢`N±ŠFQ°ë$ñ EQ§¿×ETç2Ü!Íæ#H‹·*œ:B”eÉpÌÓ¢Œ•’1Æ4èHÁ) ¡’dÀu±íZúîÓè”% Y¡iCdˆ…öÕ»¦Ílea ‹4ÖÐÛgwVÓƒx-Ï£½›8á3µW0Àn2€S>Þ¢1› …¶â)û
Источник
7 010
Сборник примеров задач с решениями при использовании команды цикла For
Вывод на экран
Спросить имя пользователя и вывести его на экран 10 раз.
Спросить имя пользователя и вывести его на экран Р раз, указывая порядковый номер вывода.
Вывести на экран числа от -5 до 15 через пробел
Вывести на экран числа от 1 до А (A>1)
Вывести на экран числа от -A до А
Вывести на экран числа от А до В
Вывести на экран все цифры
Вывести на экран квадратный корень чисел от 1 до А. (A>1)
Вывести на экран квадраты чисел от А до В
Вывести на экран все 2-ух цифровые числа
Вывести на экран все отрицательные цифры
Вывести на экран все отрицательные 2-ух цифровые числа
Вывести на экран 2-ух цифровые числа от А до В по 4 в строке 1 способ (не всегда правильный)
Вывести на экран 2-ух цифровые числа от А до В по 4 в строке (2 способ)
Вывести на экран таблицу умножения на А
Вывод числовых последовательностей
Вывести на экран через пробел нечетные числа от 1 до 50
Вывести на экран четные числа от 2 до 60 по 5 в строке
Вывести на экран 2-ух цифровые числа кратные 5
Вывести на экран 2-ухцифровые числа кратные Н
Вывести на экран 2-ухцифровые числа кратные Н с промежутка (А..В)
Вывести на экран 2-ух цифровые числа у которых сумма цифр равна 9
Вывести на экран 2-ух цифровые числа у которых сумма цифр не равна 5
Вывести на экран 3-ох цифровые числа у которых сумма цифр равна произведению
Нахождение значения функции
Распечатать таблицу значений Y=x*x на промежутке от -10 до 10
Распечатать таблицу значений Y=3*x-5 на промежутке от -A до A
Распечатать таблицу значений Y=3*x-5 на промежутке от A до B
Функция Промежуток [-5;5]
Функция Промежуток [a;b]
Нахождение сумм числовых последовательностей
Найти суму чисел от 1 до 100
Найти суму парных двухцифровых чисел и вывести результаты промежуточных вычислений
Найти суму 2-ух цифровых чисел на промежутке от А до В
Найти суму непарных 3-oх цифровых чисел}
Найти суму чисел не кратных 3 на промежутке от 1 до А
Найти суму чисел кратных Н на промежутке от -А до А
Найти суму чисел не кратных Н на промежутке от А до В
Найти суму корней из чисел от 1 до Н
Найти суму кубов из чисел от A до B
Нахождение колличеств чисел
Найти количество парных двухцифровых чисел
Найти количество непарных 3-oх цифровых чисел
Найти количество цифр не кратных 3 от А до В
Найти количество чисел кратных Н на промежутке от -А до А
Найти количество чисел не кратных Н на промежутке от А до В
Нахождение произведения числовых последовательностей
Найти произведение чисел от 1 до 10
Найти произведение двухцифровых чисел кратных 20
Найти произведение 2-ух цифровых чисел на промежутке от А до В c выводом промежуточных вычислений
Найти произведение цифр не кратных 3
Найти произведение чисел кратных Н на промежутке от -А до А
Найти произведение чисел не кратных Н на промежутке от А до В c промежуточными вычислениями
Среднее арифметическое числовых последовательностей
Найти среднее арифметическое чисел от 1 до 100 c точностью 2 знака после запятой
Найти среднее арифметическое парных 2-ух цифровых чисел
Найти среднее арифметическое 2-ух цифровых чисел на промежутке от А до В (A>10, BB)
Найти среднее арифметическое трёхцифровых чисел кратных 100 с выводом промежуточных результатов
Найти среднее арифметическое цифр не кратных 3
Найти среднее арифметическое чисел не кратных Н на промежутке от -А до А
Найти среднее арифметическое чисел кратных Н на промежутке от А до В
Нахождение сумм и произведений значений функции
Найти суму значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти произведение значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти среднее арифметическое значений функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти минимальное значение функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти максимальное значение функции на промежутке от А до В
Y=x*x
Функция
Функция
Найти разницу между максимальным и минимальным значением функции на промежутке от А до В
Y=x*x
Функция
Функция
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Приветствуем читателей нашего сайта! Сегодня мы с вами решим for1-15 из вот этого задачника.
For1. Даны целые числа K и N (N > 0). Вывести N раз число K.
Организовываем простой цикл от 1 до требуемого числа.
program for1; var K, N, i: integer; begin read(K, N); for i := 1 to N do write(K, ‘ ‘); {Пишем К через пробел } end.
For2. Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.
Так как A < B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> – <начальное_значение> + 1.
program for2; var A, B, i, count: integer; begin read(A, B); for i := A to B do write(i, ‘ ‘); {выписываем числа от меньшего к большему} count := B – A + 1; {считаем количество чисел} writeln; write( ‘Количество чисел – ‘, count); end.
For3. Даны два целых числа A и B (A < B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.
Задача решается аналогично предыдущей. Только на этот раз используем downto, так как числа будут двигаться сверху вниз. Чтобы исключить А и В из списка выводимых чисел, от В отнимаем 1, а к А наоборот прибавляем.
program for3; var A, B, i, count: integer; begin read(A, B); for i := B – 1 downto A + 1 do write(i, ‘ ‘); {выписываем числа от большего к меньшему} count := (B – 1) – (A + 1) + 1; {считаем количество чисел} writeln; write( ‘Количество чисел – ‘, count); end.
For4. Дано вещественное число – цена 1 кг конфет. Вывести стоимость 1, 2, …, 10 кг конфет.
Каждую итерацию цикла выводим цену, умноженную на i.
program for4; var i: integer; price_one: real; begin read(price_one); for i := 1 to 10 do writeln(i, ‘ кг. стоит – ‘, price_one * i, ‘ ‘); end.
For5°. Дано вещественное число – цена 1 кг конфет. Вывести стоимость 0.1, 0.2, …, 1 кг конфет.
Такая же программа, как предыдущая, только теперь умножаем на i / 10.
program for5; var i: integer; price_one: real; begin read(price_one); for i := 1 to 10 do writeln(i / 10, ‘ кг. стоит – ‘, price_one * (i / 10), ‘ ‘); end.
For6.Дано вещественное число – цена 1 кг конфет. Вывести стоимость 1.2, 1.4, …, 2 кг конфет.
program for6; var i: integer; price_one: real; begin read(price_one); for i := 1 to 5 do writeln(1 + i / 5, ‘ кг. стоит – ‘, price_one + price_one * (i / 5), ‘ ‘); end.
For7. Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.
Организовываем цикл и складываем все числа.
program for7; var A, B, i, S: integer; begin read(A, B); S := 0; for i := A to B do S := S + i; write( ‘Сумма – ‘, S); end.
For8. Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.
Создаем цикл и умножаем все числа.
program for8; var A, B, i, P: integer; begin read(A, B); P := 1; for i := A to B do P := P * i; write( ‘Произведение – ‘, P); end.
For9. Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно.
Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.
program for9; var A, B, i, S: integer; begin read(A, B); S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную} for i := A to B do S := S + Sqr(i); {складываем все квадраты} writeln; write( ‘Сумма квадратов – ‘, S); end.
For10. Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + … + 1/N (вещественное число).
program for10; var N, i: integer; S : real; begin read(N); S := 0; for i := 1 to N do S := S + 1 / i; write( ‘Сумма – ‘, S:1:2); end.
For11.Дано целое число N (> 0). Найти сумму N2 + (N + 1)2 + (N + 2)2 + … + (2·N)2 (целое число).
program for11; var N, i: integer; S : integer; begin read(N); S := 0; for i := N to 2 * N do S := S + Sqr(i); write( ‘Сумма – ‘, S); end.
For12°.Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · …(N сомножителей).
program for12; var N, i: integer; P: real; begin read(N); P := 1; for i := 1 to N do P := P * (1 + i / 10 ); write( ‘Произведение – ‘, P:1:2); end.
For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.
Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.
program for13; var N, A, i: integer; S: real; begin Write(‘N = ‘); readln(N); S := 1.1; A := 1; {Сначала положительное} for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2} begin A := -A; {Теперь отрицательное} S := S + A * (1 + i / 10); {Складываем} end; Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо} end.
For14. Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу:
N2 = 1 + 3 + 5 + … + (2·N – 1).
После добавления к сумме каждого слагаемого выводить текущее значение суммы (в результате будут выведены квадраты всех целых чисел от 1 до N).
program for14; var i, N: integer; Pow: real; begin write(‘N = ‘); read(N); Pow := 0; for i := 1 to N do begin Pow := Pow + (2 * i – 1); writeln(Pow); end; end.
For15°. Дано вещественное число A и целое число N (> 0). Найти A в степени N: AN = A·A· … ·A (числа A перемножаются N раз).
program for15; var i, N: integer; A, Pow: real; begin write(‘A = ‘); read(A); write(‘N = ‘); read(N); Pow := 1; for i := 1 to N do Pow := Pow * A; write(Pow:1:2); end.
На сегодня все! Не забывайте кликать по кнопочкам и подписываться на обновления нашего сайта!
Источник
Переменной factorial сначала присваивается значение 1.
0! = 1 и 1! = 1.
Если вы ввели число больше единицы, то выполняется цикл, в теле которого на каждой итерации значение переменной factorial умножается на следующее натуральное число (переменную i).
Задача №2
Найти сумму n-го количества элементов ряда 1, -0.5, 0.25, -0.125, …
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.
Сохраните под именем summa.pas
2. Сумма ряда,как вы заметили уменьшается на -1/2.
Переменной а сначала присваивается значение 1.
Переменной sum (сумма) присваиваем значение ноль.
for i:=1 to n do4.После записи цикла, мы в перемееную sum вносим переменную a, и потом переменную a будем делить на -1/2
и опять вносить в sum.
Задача №3
Составить программу, позволяющую напечатать квадраты натуральных чисел от 1 до n.
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем kvadrat.pas
2. Квадрат числа- возведение натуральных чисел от 1 до n включительно во 2-ю степень.
Например, квадрат числа 7 выглядит так:
7^2=49
3. Алгоритм решения задачи:
Переменной k сначала присваивается значение 1.
i это число, которое будет возводиться в квадрат, а s это квадрат числа.
for i := 1 to n do
Задача №4
Составить программу, позволяющую напечатать кубы натуральных чисел от 1 до n.
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем kub.pas
2. Куб числа- возведение натуральных чисел от 1 до n включительно во 3-ю степень.
Например, куб числа 5 выглядит так:
5^3=125
3.Переменные i и j нужны в качестве переменных первого – внешнего и второго – внутреннего циклов. Переменная k для нечетных чисел (k:=1), а s для суммы чисел.
Тип этих переменных целый, но longint, так как могут быть достаточно большие целые числа, большие 32767.
4. Алгоритм решения задачи:
for i := 1 to n do
…………………….
for j := 1 to i do
Задача №5
Напечатать все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр.
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем desytzap.pas
2. Составить программу, где все четырехзначные числа состоят из разных цифр.
Например: 1023;1320,2130 и т.д.
3.Организовать цикл по числу тысяч, t от 1 до 9, а затем внутренние циклы: по числу сотен, s от 0 до 9; по числу десятков, d от 0 до 9; по числу единиц, e от 0 до 9; проверка условия: если цифры различны, тогда составленное из них четырехзначное число выдавать на экран.
4. Алгоритм решения задачи:
for t := 1 to 9 do
for s := 0 to 9 do
for d := 0 to 9 do
for e := 0 to 9 do
Задача №6
Двузначное десятичное число в сумме с числом, записанным теми же цифрами, но в обратном порядке, дает полный квадрат. Найти все такие числа.
1.Откройте программу Free Pascal,Turbo Pascal и т.д. Создайте новый документ.Сохраните под именем polnkvadr.pas
2. Сумма чисел должна давать полный квадрат.
Например: 29+92=121 и sqrt(121)=11.
3. Функция round(x) округляет вещественное число x до целого.
Извлечь квадратный корень из суммы это стандартная функция sqrt(x).
4. Алгоритм решения задачи:
for d := 1 to 9 do
for e := 1 to 9 do
Источник
Циклы в Pascal: repeat, while, for.
Вы уже знаете, что существует три вида алгоритмов: линейный, разветвляющийся и циклический. Вы уже знаем, как реализовывать линейные и разветвляющиеся алгоритмы на Паскале. Приступим к изучению последнего типа алгоритмов.
В языке Pascal, как и в большинстве языков программирования, существует три типа циклических конструкций.
Любой цикл состоит из тела и заголовка. Тело цикла – это набор повторяющихся операторов, а условие – это логическое выражение, в зависимости от результата которого и происходит повторное выполнение цикла.
Возьмем одну задачу, которую будем решать, используя различные виды циклов.
Задача 1. Вывести все цифры от 1 до числа, введенного с клавиатуры.
While, или цикл с предусловием
while – это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.
While имеет формат: while do ; {Пока … делай ….}
Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки – begin и end; .
Решение задачи.
- program example_while;
- var
- i, N: integer; { объявляем переменные }
- begin
- i := 1; { Присваиваем i значение 1 }
- readln(N); { Считываем последнее число }
- while i
- begin {Открываем операторные скобки}
- write(i, ‘ ‘); {Выводим i}
- Inc(i); {увеличиваем i на один.}
- end; { закрываем скобки }
- end.
Repeat, или цикл с постусловием
Repeat – полная противоположность while. Repeat – это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.
Repeat имеет формат:
repeat { повторяй … }
;
;
…
until {до…}
Begin и end не требуются.
Решение задачи.
- program example_repeat;
- var
- i, N: integer;{ объявляем переменные }
- begin
- i := 1; { Присваиваем i значение 1 }
- readln(N); { Считываем последнее число }
- repeat {после repeat не требуется begin и end }
- write(i, ‘ ‘); {Выводим i}
- Inc(i); {увеличиваем i на один.}
- until i = N + 1; {Например,i = 11,а N = 10. Цикл прекратится, так условие стало true.}
- end.
For, или цикл с параметром
For – это цикл, в котором тело выполняется заданное количество раз.
Существует две формы записи этого цикла:
Первая форма
for := to do ;
После каждой итерации значение будет увеличиваться на 1.
– это начальное значение счетчика. Это может быть переменная или число.
: как только значение станет больше , выполнение цикла прекратится.
Если требуется написать несколько операторов в теле цикла, используем begin и end.
И , и , и – переменные целого типа.
Чаще всего в качестве счетчика используется переменная i.
Вторая форма
- for := downto do ;
После каждой итерации значение будет уменьшатся на 1.
– это начальное значение счетчика.
: как только значение станет меньше , выполнение цикла прекратится.
Два важных примечания:
- Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
- Изменять значение счетчика внутри тела нельзя!
Решение задачи:
- program example_for;
- var
- i, N: integer;
- begin
- read(N); {предположим, что мы ввели 10}
- for i := 1 to N do write(i, ‘ ‘); {количество итераций – 10 – 1 + 1 = 10}
- end.
Давайте разберем несколько задач.
For1. Даны целые числа K и N (N > 0). Вывести N раз число K.
Организовываем простой цикл от 1 до требуемого числа.
- program for1;
- var
- K, N, i: integer;
- begin
- read(K, N);
- for i := 1 to N do write(K, ‘ ‘); {Пишем К через пробел }
- end.
For2. Даны два целых числа A и B (A
Так как A – + 1.
- program for2;
- var
- A, B, i, count: integer;
- begin
- read(A, B);
- for i := A to B do write(i, ‘ ‘); {выписываем числа от меньшего к большему}
- count := B – A + 1; {считаем количество чисел}
- writeln;
- write( ‘Количество чисел – ‘, count);
- end.
For9. Даны два целых числа A и B (A
Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.
- program for9;
- var
- A, B, i, S: integer;
- begin
- read(A, B);
- S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную}
- for i := A to B do S := S + Sqr(i); {складываем все квадраты}
- writeln;
- write( ‘Сумма квадратов – ‘, S);
- end.
For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.
Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.
- program for13;
- var
- N, A, i: integer;
- S: real;
- begin
- Write(‘N = ‘);
- readln(N);
- S := 1.1;
- A := 1; {Сначала положительное}
- for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2}
- begin
- A := -A; {Теперь отрицательное}
- S := S + A * (1 + i / 10); {Складываем}
- end;
- Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо}
- end.
While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.
Каждый раз вычитаем B из А, пока А – В >= 0.
- program while1;
- var
- A, B: integer;
- begin
- readln(A,B);
- while (A – B) >= 0 do A := A – B; {Пока разница положительная, вычитаем. Необходимо предусмотреть вариант с кратностью А и B, поэтому >=}
- write(A);
- end.
While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является – вывести False.
Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 – число является степенью тройки; если N 1, тогда число – не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.
- program while4;
- var
- N: integer;
- begin
- readln(N);
- while N mod 3 = 0 do N := N div 3; {Пока остаток от деления на три равен нулю, делим N нацело }
- writeln(N = 1); {логическое выражение}
- end.
Repeat .
Источник