Задачи для 9 класса на цикл for

Задачи для 9 класса на цикл for thumbnail

Ë#߆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-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; .

Решение задачи.

  1. program example_while;
  2. var
  3. i, N: integer; { объявляем переменные }
  4. begin
  5. i := 1; { Присваиваем i значение 1 }
  6. readln(N); { Считываем последнее число }
  7. while i
  8. begin {Открываем операторные скобки}
  9. write(i, ‘ ‘); {Выводим i}
  10. Inc(i); {увеличиваем i на один.}
  11. end; { закрываем скобки }
  12. end.

Repeat, или цикл с постусловием

Repeat – полная противоположность while. Repeat – это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.

Repeat имеет формат:

repeat { повторяй … }

;

;

until {до…}

Begin и end не требуются.

Решение задачи.

  1. program example_repeat;
  2. var
  3. i, N: integer;{ объявляем переменные }
  4. begin
  5. i := 1; { Присваиваем i значение 1 }
  6. readln(N); { Считываем последнее число }
  7. repeat {после repeat не требуется begin и end }
  8. write(i, ‘ ‘); {Выводим i}
  9. Inc(i); {увеличиваем i на один.}
  10. until i = N + 1; {Например,i = 11,а N = 10. Цикл прекратится, так условие стало true.}
  11. end.

For, или цикл с параметром

For – это цикл, в котором тело выполняется заданное количество раз.

Существует две формы записи этого цикла:

Первая форма

for := to do ;

После каждой итерации значение будет увеличиваться на 1.

– это начальное значение счетчика. Это может быть переменная или число.

: как только значение станет больше , выполнение цикла прекратится.

Если требуется написать несколько операторов в теле цикла, используем begin и end.

И , и , и – переменные целого типа.

Чаще всего в качестве счетчика используется переменная i.

Вторая форма

  1. for := downto do ;

После каждой итерации значение будет уменьшатся на 1.

– это начальное значение счетчика.

: как только значение станет меньше , выполнение цикла прекратится.

Два важных примечания:

  1. Цикл повторяется, пока значение значение счетчика лежит в отрезке [значение ; конечное_значение].
  2. Изменять значение счетчика внутри тела нельзя!

Решение задачи:

  1. program example_for;
  2. var
  3. i, N: integer;
  4. begin
  5. read(N); {предположим, что мы ввели 10}
  6. for i := 1 to N do write(i, ‘ ‘); {количество итераций – 10 – 1 + 1 = 10}
  7. end.

Давайте разберем несколько задач.

For1. Даны целые числа K и N (N > 0). Вывести N раз число K.

Организовываем простой цикл от 1 до требуемого числа.

  1. program for1;
  2. var
  3. K, N, i: integer;
  4. begin
  5. read(K, N);
  6. for i := 1 to N do write(K, ‘ ‘); {Пишем К через пробел }
  7. end.

For2. Даны два целых числа A и B (A

Так как A – + 1.

  1. program for2;
  2. var
  3. A, B, i, count: integer;
  4. begin
  5. read(A, B);
  6. for i := A to B do write(i, ‘ ‘); {выписываем числа от меньшего к большему}
  7. count := B – A + 1; {считаем количество чисел}
  8. writeln;
  9. write( ‘Количество чисел – ‘, count);
  10. end.

For9. Даны два целых числа A и B (A

Организовываем такой же цикл, как и в предыдущей задаче, но одновременно суммируем квадраты всех чисел. Чтобы высчитать квадрат, используем функцию Sqr.

  1. program for9;
  2. var
  3. A, B, i, S: integer;
  4. begin
  5. read(A, B);
  6. S := 0; {PascalABC делает это автоматически, но если у вас другой компилятор советуем обнулять переменные вручную}
  7. for i := A to B do S := S + Sqr(i); {складываем все квадраты}
  8. writeln;
  9. write( ‘Сумма квадратов – ‘, S);
  10. end.

For13°. Дано целое число N (> 0). Найти значение выражения 1.1 – 1.2 + 1.3 – … (N слагаемых, знаки чередуются). Условный оператор не использовать.

Для того, чтобы поменять знак, каждую итерацию цикла меняем значение специальной переменной на противоположное.

  1. program for13;
  2. var
  3. N, A, i: integer;
  4. S: real;
  5. begin
  6. Write(‘N = ‘);
  7. readln(N);
  8. S := 1.1;
  9. A := 1; {Сначала положительное}
  10. for i := 2 to N do {первую итерацию цикла мы уже произвели, поэтому начинаем отсчет с 2}
  11. begin
  12. A := -A; {Теперь отрицательное}
  13. S := S + A * (1 + i / 10); {Складываем}
  14. end;
  15. Writeln(S:5:1); {Отдадим под дробную часть одно знакоместо}
  16. end.

While1°. Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Каждый раз вычитаем B из А, пока А – В >= 0.

  1. program while1;
  2. var
  3. A, B: integer;
  4. begin
  5. readln(A,B);
  6. while (A – B) >= 0 do A := A – B; {Пока разница положительная, вычитаем. Необходимо предусмотреть вариант с кратностью А и B, поэтому >=}
  7. write(A);
  8. end.

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является – вывести False.

Действуем следующим образом: пока N делится нацело на три, делим N нацело. Затем, если N = 1 – число является степенью тройки; если N 1, тогда число – не степень тройки. Для того чтобы решить эту задачу, требуется знать, что такое div и mod, и как работают логические выражения.

  1. program while4;
  2. var
  3. N: integer;
  4. begin
  5. readln(N);
  6. while N mod 3 = 0 do N := N div 3; {Пока остаток от деления на три равен нулю, делим N нацело }
  7. writeln(N = 1); {логическое выражение}
  8. end.

Repeat .

Источник