Какво означава до в паскал. Тема: Цикъл с постусловие REPEAT. Задачи за самостоятелно решаване

Тема:Цикъл с постусловие REPEAT.

Вече знаете как да организирате цикъл с декларация while. Спомнете си, че когато този оператор се изпълни, компютърът оценява стойността на условието. Ако условието е вярно, тогава изпълняващата се част от оператора while ще бъде изпълнена, докато условието не бъде оценено на False. Ако стойността на условието е False в самото начало, тогава изпълняващата част на оператора while изобщо няма да бъде изпълнена.

Една от важните функции, които могат да се използват при използването на компютрите, е именно способността му да повтаря изпълнението на последователности от команди с висока скорости с висока степен на надеждност. За тези цели в езиците за програмиране се дефинират точно итеративни управляващи структури. Целта на тези структури е да позволят изразяването на повторението на последователност от инструкции, като тези структури се наричат ​​цикъл, цикъл или цикъл.

Итеративни контролни структури

В ежедневието има ситуации, които често се решават чрез следване на последователност от стъпки, които могат да се повтарят много пъти, например.

  • Процес, който продължаваме да ядем, докато не приключим с яденето.
  • Процесът на вкарване на монети до изплащане на необходимата сума.
  • Операциите, които извършваме при телефонно обаждане до установяване на връзка.
Както можете да видите, това са алгоритми, които се изпълняват ежедневно, но имат тази особеност, че изпълнението на някои от стъпките му може да се повтаря многократно, докато целта бъде достигната.

Понякога при решаване на задачи се налага тялото на цикъла да се изпълни поне веднъж и след това да се провери условието дали да се повтори отново. Тази задача ще бъде изпълнена от друг вид цикъл на повторение.

повторетеповторете
оператори оператори
до <условие>; докато условието е вярно

Има малка разлика в организацията на повторения цикъл в сравнение с while: за изпълнение в повтарящ се цикълмножество изрази, не поставяйте тези изрази в начални ... крайни скоби. Запазените думи се повтарят и докато действат като скоби.

Този тип алгоритъм е известен като итеративни или итеративни алгоритми. Във всеки случай командният блок се изпълнява и оцененото условие се оценява като вярно. Подчертава се, че всяка от трите команди изпълнява една и съща задача, която е да изпълни последователност от стъпки няколко пъти.

За по-нататъшно разбиране изгледът е показан в диаграмата на дейността. Струва си да се отбележи, че в този оператор условието се оценява в началото на цикъла, така че ако първото оценяване на условието е невярно, цикълът няма да бъде изпълнен. В тази повтаряща се структура блокът от команди винаги се изпълнява поне веднъж, защото условието се оценява в края. Единствената разлика е как да контролирате контура. Изборът на една инструкция пред друга е личен избор.

Конструкцията repeat ... until работи подобно на цикъла while. Разликата е в това докато цикъл repeat проверява условието, преди да предприеме действия, докато repeat проверява условието след предприемане на действия. това гарантира поне едно изпълнение на действия, преди цикълът да приключи.

Например,

а) повторете
четене (число);
Сума:= Сума+число;
докато Число = -1

Силно важен аспектЕдно нещо, което трябва да имате предвид при условните цикли, е необходимостта да обмислите в рамките на блок от команди поне една, която по някакъв начин променя - в даден момент - резултата от булев израз. Обяснението се обяснява просто с факта, че ако тази инструкция не съществува, когато влезе в цикъла, той никога няма да приключи, защото ще се окаже в безкраен цикъл. Итеративните процеси, които бяха наблюдавани досега, завършват с едно условие. В много ситуации итерациите се извършват определен брой пъти, много автори ги наричат ​​цикли на броене, тъй като предварително се знае колко пъти ще се извърши повтарящият се процес.

б) повторете
i:=i+1;
writeln(Sqr(i))
докато Число = -1

Задача . Определете дали даденото число е просто.

Алгоритъмът за решаване на този проблем ще бъде както следва. С помощта на операцията mod проверяваме всички цели числа от 2 до въведеното число Number . Проверяваме дали следващото проверявано число е делител на нашето число (което означава, че остатъкът от деленето на въведеното число на проверяваното число е нула). Ако се намери такъв делител, тогава цикълът прекратява предсрочно на някаква i-та стъпка. Ако делителят не бъде намерен, тогава цикълът е проверил всички числа и стойността на променливата i ще бъде равна на крайната стойност, т.е. номер. Следователно, след като цикълът е написан, стойността на променливата i се анализира и се показва съответното съобщение.

При този тип итерация винаги се нуждаете от променлива, която следи колко пъти е повторен процесът, поради което те се наричат ​​също цикли с контролна променлива. Семантиката на инструкцията е следната. Той ще бъде изпълнен само веднъж в началото на цикъла, обикновено инициализация и декларации на променливи, защото, както беше посочено по-рано, той се изпълнява само веднъж. Оценява се при всяка итерация и в зависимост от върнатата стойност ще зависи от това дали цикълът продължава да се изпълнява или не. Винаги се изпълнява във всеки цикъл, когато всички инструкции, свързани с въпросния цикъл, са завършили изпълнението. По същия начин, ако искате да изпълните повече от една инструкция наведнъж, те трябва да бъдат разделени със запетаи. Обикновено може да съдържа някои актуализации за контролни променливи. . Обърнете внимание, че е задължително компилаторът да показва грешка в семантичен тип за всеки термин, който съставлява израз, за ​​да използва точка и запетая.

Забележка . Спомнете си, че просто число е число, което няма делители, различни от 1 и себе си.

Цикълът не може да продължи безкрайно, тъй като всяко число винаги се дели на себе си.

Когато изграждате цикли, трябва да бъдете много внимателни: уверете се, че няма грешки както във фазата на влизане в цикъла, така и във фазата на завършване на цикъла.

За по-добро разбиране на горното е представен следният казус, в който ще работим с всяка от повтарящите се структури. Имайте предвид, че стъпки 1, 2 и 3 се повтарят и стъпка 4 се състои точно от връщане към стъпка 1, това повторение е известно като итерация, имайте предвид, че това не е безкрайно, това е първата стъпка, която показва, че следващите стъпки трябва се изпълняват, ако не отговарят на условието числата да са равни. Това условие е булев израз.

Стартирайте алгоритъма за двойка стойности. . За да определите броя на цифрите на число, първо разделете числото на 10, ако съотношението на делене е 0, вземете 1 като отговор, но вземете този фактор и го разделете на 10, този процес ще бъде итеративен, докато новият фактор е различен от. За прилагане на метода трябва да се вземе предвид следното.

Упражнение . Изберете два проблема, които сте решили с цикъла на предусловието, и ги решете с цикъла на постусловието.

Задачи за независимо решение:

  1. Напишете програма за определяне на N!-M! Н! = 1*2*3*4*.........*n
  2. Поискайте потребителско име и напишете "Здравей Вася!" 10 пъти. (ако Вася е потребителско име)
  3. Програмата трябва да изчисли произведението на две числа и да попита дали да прекрати програмата или не, ако не, тогава да продължи да изисква данни, да изчисли продукта и да го отпечата.
  4. Отпечатайте всички трицифрени естествени числа, чиято сума от цифри е равна на даденото число N. (Не използвайте операциите div и mod.)
  5. Напишете програма, която отпечатва всичко прости числане надвишава този брой.
  6. Населението на града се увеличава с 3% всяка година. През 1983 г. населението на града е 65 000. Напишете програма, която ще показва прогнозираното население на града за всяка година до 1999 г.
  7. Намерете всички естествени числа от 1 до 1000, които са кратни на 3.
  8. Съставете програма за планиране на покупката на стоки в магазин за сума, която не надвишава зададена стойност.
  9. Напишете програма за искане на парола, докато бъде въведена правилната парола. Осигурете брояч за въведени неправилни пароли в програмата.
  10. Произведението на първите N нечетни числа е равно на p. Колко фактора се вземат?
  11. Числата на Фибоначи (fn) се определят по формулите: f0=f1=1; fn=fn-1+fn-2 за n=2,3,...
    Съставете програма:
    а) определения f - 40-то число на Фибоначи;
    б) търсене на f - първото число на Фибоначи, по-голямо от m (m>1);
    в) изчисляване на S - сумата от всички числа на Фибоначи, които не надвишават 1000.
  12. Независимо измислете и решете задача за прилагане на цикъл с постусловие.

Алгоритъмът с циклична структура е алгоритъм, при който една и съща част от програмата се повтаря многократно. Такива повтарящи се участъци от изчислителния процес се наричат ​​цикли. Програмата за структура на цикъла съдържа един или повече цикъла. Има детерминистични цикли с предварително определен брой повторения и итеративни цикли, при които броят на повторенията не е известен предварително. Променливата, която се променя в цикъла, се нарича параметър на цикъла.

Този метод ще изглежда така. Не забравяйте, че факториелът на число е резултат от умножаване от 1 по определеното число. Методът ще изглежда така. В много случаи от ежедневието не е достатъчно да се повтори група от инструкции няколко пъти, но тези повторения трябва да се извършват едновременно няколко пъти. Този тип проблеми пораждат алгоритми със съставни цикли или вложени цикли. Вложените или съставните цикли са просто цикли, които изпълняват други цикли в рамките на блок от изрази.

Този начин за композиране на един или повече цикли, комбиниран с някои структури за съхранение, е много полезен за решаване на някои от алгоритмите за търсене и подреждане, които ще бъдат разгледани по-късно в курса. Обикновено циклите, предназначени за решаване на определен алгоритъм, са цикли за контролна променлива, което не означава, че не може да се направи с условни цикли или комбинация от двете, които са по-рядко срещани в тези случаи.

За да организирате цикъл, трябва да изпълните следните стъпки:
1) задайте първоначалната стойност на параметъра на цикъла преди цикъла;
2) промяна на параметъра преди всяко ново повторение на цикъла;
3) проверка на условието за повторение на цикъла;
4) управлявайте цикъла, т.е. отидете до началото му, ако не е завършено, или излезте от него, когато приключи.

Кесада; Програмиране с Паскал, Хора и образование, Авторски колектив. . Представяме една относително обширна книга – учебник популярен езикПрограмиране на Паскал. Заглавието е предназначено като учебник за начинаещи програмисти. Във въведението той описва основните принципи и функции и постепенно преминава към по-сложни процедури и алгоритми.

Тема: Цикъл с постусловие REPEAT

Тази книга е базирана на наскоро издаден учебник по алгоритмизация - всъщност това е практическа част. Целта на книгата не е да научи читателя на конкретен език за програмиране, а да го запознае в дълбочина с правилата на програмирането, за да може бързо да усвои всички други езици за програмиране в бъдеще. Развитието на информационните технологии напредва толкова бързо, че не е важно да се преподават енциклопедични знания, които са остарели преди учениците да дойдат на практика, а да се научат учениците да мислят по определен начин.

В Pascal има 3 вида цикли:

1) цикъл с параметър или тип цикъл за,

2) цикъл с предварително условие или подобен на цикъл докато,

3) цикъл на постусловие или тип цикъл повторете ... докато.

В цикъл for броят на повторенията е известен предварително; в циклите while и repeat ... until броят на повторенията на цикъла не е известен предварително; условието за повторение на цикъла се проверява: в цикъл while , преди цикъла; окончания.
В циклите от типове for и while, повтарящата се част (тялото на цикъла) се състои от един оператор, ако искате да изпълните няколко оператора в цикъла, те се ограждат в операторни скоби begin ... end, образувайки съставен оператор. В цикл от тип repeat ... until тялото на цикъла се поставя между запазените езикови думи (лексеми) repeat и until, операторните скоби не са необходими, в името на цикъла тялото му условно се обозначава с три точки.
С помощта на цикъл от тип for е удобно да намирате суми, продукти, да търсите максимални и минимални стойности и т.н. При намиране на сумата на някаква променлива, например S, се присвоява стойност 0, след което в цикъла към тази променлива се добавя съответният член на дадената последователност. Когато продуктът бъде намерен, на променливата се присвоява стойност 1, след което в цикъла тази променлива се умножава по общия член на последователността.

Задачи за самостоятелно решаване

Софтуер и неговият жизнен цикъл: първо сте запознати с общия жизнен цикъл на продукта, след това общият цикъл се прилага към жизнения цикъл софтуер. В края на главата са изложени принципите за създаване на училищни задачи и проекти, които са резултат от кръговат на животасофтуер.

Програмни езици и методи за програмиране. Какво трябва да знаете, преди да започнете да програмирате. Първо се запознайте с най-грубата структура на програмата. След това обърнете внимание на всичко, което може да се появи в програмата и къде може да се появи. Синтаксисът на езика е обяснен просто и само в дълбочина, така че можете да започнете. Подробностите са обяснени в следващите глави, където също следват примери. - След това кратка инструкция за типовете данни - колко ще ви трябват в близко бъдеще.

Пример за цикъл

Изчисляване на n числа на Фибоначи:
F1=1; F2=1;…; Fn=Fn-1+Fn-2,
например F3=F2+F1=1 + 1 = 2; F4 = 2 + 1 = 3 и т.н.

програма fib; (Намиране на числата на Фибоначи)
променлива x, y, z, i, n: цяло число;
започвам
writeln('Въведете n'); четене(n);
x:=1; y:=0;
за i:=1 до n направи
започвам
z:=x; x:=x+y ; y:=z
write(" ", x);
край;
readln;
край.

Пример за цикъл while

Компилация на функционална таблица y \u003d a 3 / (a ​​​​2 + x2) за x, принадлежащ на сегмента [-1; 1] със стъпка 0,1. Тъй като параметърът на цикъла for трябва да е цяло число, по-удобно е да се използва цикъл while, в който стойността на x може да се променя на всяка стъпка с Dx = 0,1

програма cycl_while;
usescrt; (извикване на Crt модула за управление на режима на екрана)
вар
a, x, y: реални; i: цяло число;
започвам
clrscr; (програма за изчистване на екрана от Crt модул)
writeln("Въведете a");
readln(a);
x:= -1.; writeln('x', 'y');
докато правите x<1.05 begin
y:= sqr(a)*a/ (a*a+x*x);
writeln(x:6:2, y:8:4);
x:=x+0,1
край;
readln;
край.

Условие х<1.05 соответствует каждому значению х плюс половина шага.

Пример за цикъл като repeat ... until

Определете числото n, за което сумата от квадратите на естествената редица от числа от 1 до n не превишава стойността K, въведена от клавиатурата. Тези.
S >= K, където S=

програма sum_sq; (Сума от квадратите на естествения ред)
usescrt;
var k, s, n: цяло число;
започвам
clrscr;
writeln("Въведете K");
readln(k);
s:=0; n:=1;
повторете
s:=s+n*n;
n:= n+1;
докато s > k;
writeln("N= ", n: 3, "s= ", s: 5);
readln;
край.

Цикълът се повтаря, докато условието, написано след ключовата дума until стане false (не се изпълнява). Веднага след като това условие е изпълнено, цикълът излиза. След края на цикъла резултатът се отпечатва (операторът writeln). Обърнете внимание, че цикъл с предусловие (като while) може да не бъде изпълнен дори веднъж, цикъл с постусловие repeat ... until ще бъде изпълнен поне 1 път. Когато броят на итерациите на цикъл не е известен предварително, се използват цикли с предварително или изходящо условие. Когато броят на повторенията на един цикъл е известен предварително, обикновено се използва for цикъл. Но всеки for цикъл може да бъде заменен от цикъл с предусловие или постусловие.