DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu

Podczas rozwiązywania zdecydowanej większości zadań (w tym bardzo prostych) w programie, prawie niemożliwe jest jawne ustawienie wszystkich operacji, które należy wykonać. W rzeczywistości niech będzie konieczne obliczenie sumy pierwszych n elementów szeregu harmonicznych:

Y \u003d 1+ 1/2 + 1/3 + ... + 1 / n

Oczywiście, używając tylko typów operatorów omówionych powyżej, możesz utworzyć program tylko dla stałej wartości n. Na przykład przy n \u003d 5 wymagane obliczenia można określić za pomocą operatora przypisania formularza:

Y: \u003d 1 + 1/2 + 1/3 + 1/4 + 1/5

Jeśli wartość n nie jest stała, ale dane początkowe są wprowadzane podczas wykonywania programu (a nawet stałej opisanej w programie), to nie można zapisać podobnego operatora przypisania. Dla rekordu postaci Y: \u003d 1 + 1/2 + 1/3 + ... + 1 / n jest niedozwolony w językach programowania.

Aby wyeliminować pojawiające się trudności operatory pętli. Pozwalają na powtórzenie wykonania poszczególnych części programu. Można wyróżnić cztery operator cykluobecne w takiej lub innej formie we wszystkich językach programowania: prosty operator pętli arytmetycznej (cykl z parametrem co 1), złożony operator arytmetyczny pętli (pętla z dowolnym parametrem kroku) iteracyjny operator pętli z warunkiem wstępnym, iteracyjny operator pętli z warunkiem.

Prosty operator arytmetyczny cyklu Pascala (cykl z parametrem)

Wróćmy do powyższego problemu obliczania sumy pierwszych n elementów szeregu harmonicznego, których reguł nie można ustawić w postaci wyrażenia arytmetycznego, jeśli wartość n nie zostanie z góry ustalona.

W rzeczywistości obliczenie tej sumy można przeprowadzić zgodnie z bardzo prostym i zwartym algorytmem: najpierw wstaw y \u003d 0 (używając operatora przypisania y: \u003d 0), a następnie wykonaj operator przypisania y: \u003d y + 1 / i dla kolejnych wartości i \u003d 1 , 2, ..., n. Przy każdym kolejnym wykonaniu tego operatora następny termin zostanie dodany do bieżącej wartości y. Jak widać, w tym przypadku proces obliczania będzie miał charakter cykliczny: operator y: \u003d y + 1 / i należy wykonać wiele razy, tj. cyklicznie, dla różnych wartości i.

Ten przykład cyklicznego procesu obliczeniowego jest bardzo typowy; są to jego charakterystyczne cechy

  • liczba powtórzeń cyklu jest znana na początku jego wykonania (w tym przypadku jest równa wartości n, która ma być podana do tego czasu);
  • kontrola pętli odbywa się za pomocą zmiennej typ porządkowy, który w tym cyklicznym procesie przyjmuje wartości sekwencyjne od danej wartości początkowej do określonej wartości końcowej (w naszym przypadku jest to zmienna całkowita i, która przyjmuje wartości sekwencyjne od 1 do n).

Do kompaktowego zadania tego rodzaju procesów obliczeniowych i służy operator pętli z parametrem. Najczęściej w Pascal używany jest następujący typ tego operatora:

Dla V: \u003d E1 do E2 do S,

gdzie dla (dla), do (rośnie do) i zrobić (perform, do) - słowa serwisowe, V. - zmienna typu porządkowego zwana parametrem pętli, E1 i E2 - wyrażenia tego samego typu co parametr pętli, S. - operator wykonywany wielokrotnie w cyklu, zwany treścią cyklu.

Zauważ, że w Pascal po zrobić powinien istnieć jeden operator, jeśli konieczne jest wykonanie kilku działań, należy je połączyć w jeden operator złożony, umieszczając go w nawiasach operatora.

Ten operator cyklu Pascal zapewnia przypisanie do parametru cyklu wartości sekwencyjnych od wartości początkowej równej wartości wyrażenia E1 do wartości końcowej równej wartości wyrażenia E2, tj. każde powtórzenie wykonuje operator przypisania V: \u003d succ (V)oraz wykonanie operatora S dla każdej wartości parametru cyklu V. Ponadto wartości wyrażeń E1 i E2 są obliczane jednokrotnie po wejściu do operatora cyklu, a wartość parametru cyklu V nie powinna ulec zmianie w wyniku wykonania operatora S. Jeśli określona wartość końcowa jest mniejsza niż wartość początkowa (co jest dopuszczalne), wówczas operator S nigdy nie jest wykonywany.

W Pascal uważa się, że gdy operator pętli zakończy się normalnie, wartość parametru pętli nie jest zdefiniowana.

Za pomocą instrukcja pętli z parametrem algorytm obliczania sumy pierwszych n elementów szeregu harmonicznych można zdefiniować w następujący sposób:

Przykładowy kod programu do zsumowania pierwszych n elementów szeregu harmonicznych

Readln (n);
Y: \u003d 0;
Dla i: \u003d 1 do n do y: \u003d y + 1 / i;

W niektórych przypadkach wygodnie jest, aby parametr cyklu Pascala przyjmował wartości sekwencyjne, ale nie rosnące, ale malejące. W takich przypadkach Pascal udostępnia operatorowi pętli parametr o następującej postaci:

Dla V: \u003d E1 do E2 do S,

gdzie aż do (maleje do) jest słowem serwisowym, a wszystkie inne słowa i wyrażenia mają to samo znaczenie. Zmiana parametru pętli z większej na mniejszą następuje, gdy wykonywane jest przypisanie V: \u003d pred (V). Zauważ, że wartość początkowa może być mniejsza niż wartość końcowa. W takim przypadku operator S nigdy nie zostanie wykonany. Wartość parametru pętli po zakończeniu takiej pętli jest również uważana za niezdefiniowaną.

Należy pamiętać, że w przypadku obu opcji nagrywania pętla z parametrem true: jeśli wartości początkowa i końcowa są równe, wówczas ciało cyklu (operator S) zostanie wykonane raz.

Zauważamy również, że parametr pętli nie może być stosowany w treści cyklu, więc jego głównym celem jest kontrolowanie liczby powtórzeń cyklu. Na przykład wartość y \u003d x n, gdzie n\u003e \u003d 0 jest liczbą całkowitą, można obliczyć za pomocą następującego algorytmu: najpierw wstaw y \u003d 1, a następnie pomnóż tę wartość n razy x przez x:

Przykład kodu programu z pętlą pascal

Readln (n);
Readln (x);
Y: \u003d 1;
Dla i: \u003d 1 do n wykonaj y: \u003d y * x;

Jak widać, tutaj parametr pętli i służy jedynie do zapewnienia, że \u200b\u200btreść pętli (operator y: \u003d y * x) zostanie wykonana wymaganą liczbę razy.

Operator arytmetyczny cyklu Pascala z dowolnym krokiem

Naturalną komplikacją prostego cyklu arytmetycznego Pascala jest cykl, w którym parametr cyklu zmienia się nie o 1, ale o dowolną wartość - przyrost. Ponadto w trakcie wykonywania cyklu krok zmienia się zgodnie z danym prawem. Istnieją standardowe operatory do wdrażania takiego cyklu w forcie, w innych językach muszą być one zorganizowane od najprostszego cyklu arytmetycznego.

Operatory iteracji Pascala

Pętle iteracyjne różnią się od pętli parametrem tym, że liczba powtórzeń w nich nie jest wcześniej znana.

Chodźmy zbierać grzyby i wracać do domu, gdy kosz jest pełny. Wszystkie zbieracze grzybów są podzielone na 2 kategorie:

  • Sprawdzają, czy w koszu jest miejsce, i dopiero wtedy zbierają grzyby, jeśli można je umieścić w koszu. (To prawda, że \u200b\u200bw życiu takich zbieraczy grzybów nie było potrzeby się spotykać)
  • Najpierw zbierają grzyby, a dopiero potem zastanawiają się, jak je umieścić w koszu.

Daje to dwie opcje implementacji pętli iteracyjnych:
z warunkiem wstępnym i późniejszym.

W cyklu z warunkiem wstępnym warunek jest najpierw sprawdzany, a następnie wykonywany jest krok. Zbieracz grzybów będzie dostarczany z pełnym lub prawie pełnym koszem. W cyklu z postcondition, najpierw krok, a następnie czek. Jak każdy normalny zbieracz grzybów, ten przyniesie pełny lub lekko przepełniony kosz.

Który algorytm wybrać? To zależy od konkretnego zadania.

Jeśli, robiąc krok bez weryfikacji, możesz wpaść do dziury, lepiej najpierw sprawdzić (jak ślepiec z różdżką). Cóż, jeśli krok bez weryfikacji Cię nie przeraża, możesz go odłożyć do czasu ukończenia kroku.

Konieczne jest również przeanalizowanie oczekiwanego wydarzenia. Jeśli może się to zdarzyć przed pierwszym krokiem, potrzebujesz cyklu z warunkiem wstępnym. A jeśli wydarzenie nie może się zdarzyć przed pierwszym krokiem, potrzebujemy cyklu z dodatkowym warunkiem.

Operator cyklu Pascala z postcondition

Rozważamy teraz problem matematyczny. Musimy obliczyć sumę pierwszych elementów szeregu harmonicznych spełniających warunek 1 / i\u003e \u003d e, gdzie 0< e<1, а i=1,2,3…...Эту задачу можно решить по следующему алгоритму: положить предварительно y=0 и i=0, а затем в цикле увеличивать i на 1, к значению y добавлять очередное слагаемое 1/ i до тех пор, пока текущее значение 1/ i впервые окажется больше заданного значения 0< e<1.

Oczywiście liczba powtórzeń tego cyklu nie jest znana z góry. W takich przypadkach możemy jedynie sformułować warunek, w którym proces dodawania do sumy następnego terminu powinien zostać zakończony.

Aby określić takie procesy obliczeniowe, służy operator cyklu Pascala z warunkiem dodatkowym. Ten operator ma postać:

Powtórz S1; S2; ...; Si do B,

gdzie powtarzać (powtórz) i aż do (do) \u200b\u200b- słowa serwisowe, przez Si każdy operator Pascal jest oznaczony i przez Wwyrażenie logiczne.

Po wykonaniu tej instrukcji pętli sekwencja instrukcji między słowami się powtarza i dopóki nie zostanie wykonana raz lub więcej razy. Proces ten kończy się, gdy po następnym wykonaniu danej sekwencji instrukcji logiczne wyrażenie B przyjmuje (po raz pierwszy) prawdziwe. Zatem za pomocą wyrażenia logicznego B określa się warunek zakończenia wykonywania operatora pętli. Ponieważ w tym przypadku warunek jest sprawdzany po wykonaniu sekwencji operatorów (korpusu cyklu), operator cyklu nazywany jest operatorem cyklu z warunkiem dodatkowym.

Korzystając z tej formy operatora cyklu Pascala, problem sumowania pierwszych elementów szeregu harmonicznych spełniających dany warunek można zrealizować w następujący sposób:

Readln (e);
i: \u003d 0;
y: \u003d 0;
Powtarzać
i: \u003d i + 1;
y: \u003d y + 1 / i;
Do 1 / i

Należy zauważyć, że operator cyklu z warunkiem dodatkowym jest bardziej ogólny niż operator cyklu z parametrem - każdy cykliczny proces określony za pomocą cyklu z parametrem może być reprezentowany jako cykl z warunkiem dodatkowym. Odwrotna sytuacja nie jest prawdą. Na przykład problem sumowania pierwszych n elementów serii harmonicznych, omówiony wcześniej, z operatorem pętli z warunkiem dodatkowym będzie wyglądał następująco:

Przykład kodu operatora pętli pascala z warunkiem dodatkowym

Readln (n);
i: \u003d 0;
y: \u003d 0;
Powtarzać
i: \u003d i + 1;
y: \u003d y + 1 / i;
Aż do\u003e n;

Operator cyklu Pascal z warunkiem wstępnym

W przypadku operatora cyklu Pascala z warunkiem dodatkowym sekwencja operatorów wchodzących do niego z pewnością zostanie wykonana co najmniej raz. Tymczasem takie cykliczne procesy są dość powszechne, gdy liczba powtórzeń cyklu również nie jest z góry znana, ale w przypadku niektórych wartości danych początkowych czynności przewidziane w cyklu nie powinny być wcale wykonywane, a nawet pojedyncze wykonanie tych działań może prowadzić do niepoprawnych lub niepewnych wyników.

Podajmy na przykład liczbę rzeczywistą M. Konieczne jest znalezienie najmniejszej nieujemnej liczby całkowitej k, dla której 3 k\u003e M. Problem ten można rozwiązać za pomocą następującego algorytmu: najpierw wstaw y \u003d 1 i k \u003d 0; następnie w cyklu pomnóż wartość y przez 3 i zwiększaj wartość k przez 1, aż aktualna wartość y będzie po raz pierwszy większa niż wartość M. Na pierwszy rzut oka możesz tutaj użyć operatora pętli z warunkiem:

Przykład kodu operatora pętli pascala z warunkiem dodatkowym

Y: \u003d 1; k: \u003d 0;
Powtarzać
y: \u003d y * 3;
k: \u003d k + 1;
Aż y\u003e M;

Łatwo to jednak zweryfikować w przypadku M.<1 будет получен неправильный результат k=1, тогда как должно быть получено k=0: в этом случае предварительно сформированное значение k=0 является окончательным результатом и действия, предусмотренные в цикле, выполняться не должны.

Aby określić ten rodzaj procesu obliczeniowego, gdy liczba powtórzeń cyklu nie jest z góry znana, a działania przewidziane w cyklu mogą w ogóle nie zostać wykonane, a operator cyklu z warunkiem wstępnym służy. Ten operator pętli w Pascal ma następującą postać:

gdzie podczas (do), zrobić (do, perform) - słowa serwisowe, W Jest logicznym wyrażeniem S. - operator. Tutaj instrukcja S jest wykonywana zero lub więcej razy, ale przed każdym kolejnym wykonaniem obliczana jest wartość wyrażenia B, a operator S jest wykonywany tylko wtedy, gdy wartość wyrażenia B jest prawdziwa. Instrukcja pętli kończy się, gdy wyrażenie B po raz pierwszy ma wartość false. Jeśli wyrażenie B przyjmuje tę wartość przy pierwszym obliczeniu, operator S nie zostanie wykonany ani razu.

W rozważanym problemie poprawną wartość k dla dowolnej wartości M można uzyskać w następujący sposób:

Przykład kodu operatora cyklu Pascala z warunkiem wstępnym

Y: \u003d 1; k: \u003d 0;
Podczas gdy ty zaczynasz
y: \u003d y * 3;
k: \u003d k + 1;
Koniec;

Operator cyklu Pascala z warunkiem wstępnym można uznać za najbardziej uniwersalny - za pomocą takich operatorów można określić procesy cykliczne zdefiniowane przez operatorów cyklu za pomocą parametru i warunku końcowego.

Uwaga różnice i cechy dobrego stylu pracy z uwzględnieniem operatorów cyklicznych.

Pętla z warunkiem wstępnym While (gdy warunek jest spełniony) Cykl z powtórzeniem warunku końcowego (do momentu spełnienia warunku)
  • Przed rozpoczęciem cyklu należy dokonać wstępnych ustawień zmiennych sterujących stanem cyklu w celu poprawnego wejścia w cykl
  • Treść pętli musi zawierać operatory zmieniające zmienne warunku, aby pętla kończyła się po kilku iteracjach
  • Pętla działa, gdy warunek jest spełniony (podczas gdy prawda)
  • Pętla działa, gdy warunek jest fałszywy (podczas gdy False)
  • Pętla kończy się, gdy warunek staje się fałszywy (przed False)
  • Pętla kończy się, gdy warunek się spełni (przed Prawdą)
  • Cykl nigdy nie może zostać wykonany, jeśli wartość warunku początkowego przy wejściu do cyklu False
  • Cykl należy wykonać co najmniej raz
  • Jeśli w treści pętli należy wykonać więcej niż jedną instrukcję, należy użyć instrukcji złożonej
  • Bez względu na liczbę instrukcji w treści pętli użycie instrukcji złożonej nie jest wymagane
Pętla z licznikiem (z parametrem) Dla
  • Wstępne ustawienie zmiennej licznika pętli w nagłówku nie jest wymagane
  • Zmiana wartości zmiennych w nagłówku w treści pętli jest niedozwolona
  • Liczba iteracji cyklu jest niezmiennie i dokładnie określona przez wartości dolnej i górnej granicy oraz przyrost
  • Normalny przebieg pętli może zostać naruszony przez instrukcję goto lub procedury Break and Continue.
  • Cyklu nigdy nie można wykonać, jeśli krok cyklu zmienia wartość licznika od dolnej granicy w kierunku przeciwnym do górnej granicy

Operator wykonujący się w pętli może sam być pętlą. Dotyczy to wszystkich rodzajów pętli. W rezultacie otrzymujemy pętle zagnieżdżone. Mechanizm działania zagnieżdżonych pętli najwygodniej rozpatrywać na przykładzie zagnieżdżonych pętli z parametrem. Załóżmy, że musimy opisać działanie zegara elektronicznego, zaczynając od godziny 0 godzin, 0 minut, 0 sekund. Wartość minut stanie się równa 1 dopiero po sekundach „przejścia” przez wszystkie kolejne wartości od 0 do 59. Zegar zmieni swoją wartość na 1 dopiero po minutach „przejścia” przez wszystkie kolejne wartości od 0 do 59. Zatem wynik wszystkich wartości czasu od początku dnia do końca dnia mogą być reprezentowane przez następujący fragment programu:

Dla h: \u003d 0 do 23 do
Dla m: \u003d 0 do 59 do
Dla s: \u003d od 0 do 59 do
Writeln (h, ":", m, ":", s);

Dla wygody wdrożenie cyklicznych struktur w Pascal w najnowszych wersjach języka wprowadziło operatorów złamać i kontyntynujużywane wewnątrz pętli. Rozszerzają możliwości korzystania z pętli i poprawiają strukturę programu.

Podczas wykonywania treści cyklu, aż do zakończenia cyklu, mogą pojawić się dodatkowe warunki wymagające zakończenia cyklu. W takim przypadku pętla może zostać zakończona przez instrukcję break.

Podczas wykonywania cyklu może pojawić się stan, w którym konieczne jest pominięcie wszystkich lub niektórych działań przewidzianych w cyklu bez zatrzymywania działania cyklu. Aby to zrobić, użyj instrukcji kontynuacji, która przenosi kontrolę do punktu w programie, w którym sprawdzany jest warunek kontynuacji lub zakończenia cyklu.

Witajcie drodzy czytelnicy! Tak więc doszliśmy do badania cykli. Cykle w Pascal. Co to jest? Jak tego użyć? Do czego są potrzebne? Na te pytania odpowiem dzisiaj.
Jeśli czytasz, wiesz, że istnieją trzy rodzaje algorytmów: liniowy, rozgałęziony i cykliczny. Wiemy już, jak zaimplementować algorytmy Pascal. Przechodzimy do badania tego drugiego rodzaju algorytmów.
W Pascal, podobnie jak w większości języków programowania, istnieją trzy typy konstrukcji cyklicznych.

Każdy cykl składa się z treści i nagłówka. Ciało cyklu jest zbiorem powtarzających się operatorów, a warunek jest logicznym wyrażeniem, w zależności od wyniku, który cykl się powtarza.

Bierzemy jeden problem, który rozwiążemy za pomocą różnego rodzaju cykli.

Zadanie 1 Wydrukuj wszystkie liczby od 1 do liczby wprowadzonej z klawiatury.

Podczas lub pętla warunku wstępnego

Jak zapewne już zrozumiałeś z nazwy, podczas Jest to cykl, w którym stan znajduje się przed ciałem. Co więcej, ciało cyklu jest spełnione wtedy i tylko wtedy, gdy warunek prawdziwe; jak tylko stan się stanie fałszywe

Chociaż ma format:

podczas < условие> zrobić<оператор 1>; (Na razie ... zrób ....)

Ten cykl jest odpowiedni tylko dla jednego operatora, jeśli chcesz użyć kilku operatorów w swoim kodzie, powinieneś umieścić je w nawiasach operatora - zaczynaći koniec;.

Rozwiązanie problemu.

Program example_while; var i, N: liczba całkowita; (deklarowanie zmiennych) zaczyna się i: \u003d 1; (Ustaw i na 1) readln (N); (Przeczytaj ostatni numer), podczas gdy ja<= N do {Как только i станет больше N, цикл прекратится (можно было бы написать просто <, но пришлось бы добавлять 1 к N) } begin {Открываем операторные скобки} write(i, " "); {Выводим i} Inc(i); {увеличиваем i на один.} end; { закрываем скобки } end.

Powtórz lub pętla postcondition

Powtarzać - całkowite przeciwieństwo podczas. Powtarzać - To jest cykl, w którym stan jest po ciele. Co więcej, jest spełniony wtedy i tylko wtedy, gdy wynik warunku fałszywe; jak tylko pojawi się wyrażenie logiczne prawdziwe, pętla kończy się.

Powtarzanie ma format:

powtarzać (powtórz…)
<оператор 1>;
< оператор 2>;

aż do (przed…) <условие>

Zaczynać i koniec nie wymagane.

Rozwiązanie problemu.

Program example_repeat; var i, N: liczba całkowita; (deklarowanie zmiennych) początek i: \u003d 1; (Ustaw i na 1) readln (N); (Przeczytaj ostatnią cyfrę) powtórz (po powtórzeniu nie jest wymagane rozpoczęcie i zakończenie) napisz (i, „”); (Wyjście i) Inc (i); (zwiększaj i o jeden.), aż i \u003d N + 1; (Na przykład, i \u003d 11, a N \u003d 10. Cykl się skończy, więc warunek się spełni.) Koniec.

For lub pętla z parametrem

Dla - Jest to cykl, w którym ciało jest wykonywane określoną liczbę razy.

Istnieją dwie formy pisania tej pętli:

Pierwsza forma

dla<счетчик1> := <значение1> do<конечное_значение> zrobić<оператор1>;

<счетчик1> wzrośnie o 1.

<значение1> Jest wartością początkową licznika. Może to być zmienna lub liczba.
<конечное_значение> : jak tylko wartość<счетчик1> będzie większy<конечное_значение>

Jeśli chcesz napisać kilka instrukcji w treści pętli, użyj zaczynać i koniec.

I<счетчик1>, i<конечное_значение>, i<значение1> - zmienne cały rodzaj.

Najczęściej zmienna i jest używana jako licznik.

Druga forma

dla<счетчик2> := <значение2> aż do<конечное_значение> zrobić<оператор1>;

Po każdej iteracji wartość<счетчик2> zmniejszy się o 1.

<значение2> Jest wartością początkową licznika.
<конечное_значение> : jak tylko wartość<счетчик2> stanie się mniej<конечное_значение>, pętla zatrzymuje się.

Dwie ważne uwagi:

  1. Cykl powtarza się, a wartość licznika leży w przedziale [wartość; wartość_końcowa].
  2. Zmień wartość licznika wewnątrz ciała nie dozwolony! Oto dane wyjściowe kompilatora:

Rozwiązanie problemu:

Program example_for; var i, N: liczba całkowita; zacznij czytać (N); (załóżmy, że wprowadziliśmy 10) dla i: \u003d 1 do N pisz (i, „”); (liczba iteracji to 10-1 + 1 \u003d 10) koniec.

Zgadzam się, ten kod jest prostszy i bardziej zwięzły niż wszystkie poprzednie. I jeździć na rowerze dla - nie jest to zwykły cykl, nie ma w nim logicznego warunku. Dlatego cykl z parametrem w programowaniu nazywa się cukrem syntaktycznym. Cukier syntaktyczny jest dodatkiem do składni języka programowania, który nie dodaje nowych funkcji, ale sprawia, że \u200b\u200bkorzystanie z języka jest wygodniejsze dla ludzi.

Rozwiążmy kilka problemów.

Za 1. Podane liczby całkowite K i N (N\u003e 0). Drukuj N razy K.

Organizujemy prosty cykl od 1 do wymaganej liczby.

Program dla 1; var K, N, i: liczba całkowita; zacznij czytać (K, N); dla i: \u003d 1 do N pisz (K, „”); (Piszemy K ze spacją) koniec.

Dla 2. < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.

Ponieważ< B, то цикл должен будет выводить все числа от А до B. Чтобы сосчитать количество чисел, используем формулу: <конечное_значение> — <начальное_значение> + 1.

Program for2; var A, B, i, count: integer; zacznij czytać (A, B); dla i: \u003d A do B pisz (i, „”); (piszemy liczby od najmniejszej do największej) liczba: \u003d B - A + 1; (policz liczbę cyfr) writeln; napisz („Liczba liczb -”, policz); koniec.

For9. Biorąc pod uwagę dwie liczby całkowite A i B (A< B). Найти сумму квадратов всех целых чисел от A до B включительно.

Organizujemy ten sam cykl, co w poprzednim zadaniu, ale jednocześnie sumujemy kwadraty wszystkich liczb. Aby obliczyć kwadrat, użyj funkcji.

Program dla 9; var A, B, i, S: liczba całkowita; zacznij czytać (A, B); S: \u003d 0; (PascalABC robi to automatycznie, ale jeśli masz inny kompilator, radzimy ręcznie zresetować zmienne) dla i: \u003d A do B do S: \u003d S + Sqr (i); (dodaj wszystkie kwadraty) writeln; zapisz („Suma kwadratów -”, S); koniec.

Dla 13 °. Podana liczba całkowita N (\u003e 0). Znajdź wartość wyrażenia 1.1 - 1.2 + 1.3 - ... (terminy N, znaki naprzemiennie). Operator warunkowy nie używaj.

Aby zmienić znak, przy każdej iteracji cyklu zmieniamy wartość zmiennej specjalnej na przeciwną.

Program dla 13; var N, A, i: liczba całkowita; S: prawdziwy; rozpocznij zapis („N \u003d”); readln (N); S: \u003d 1,1; Odp .: \u003d 1; (Na początku dodatnie) dla i: \u003d 2 do N do (zakończyliśmy już pierwszą iterację pętli, więc liczymy od 2) zaczynamy A: \u003d -A; (Teraz ujemne) S: \u003d S + A * (1 + i / 10); (Dodaj) koniec; Writeln (S: 5: 1); (Podajmy jedną znajomość części ułamkowej).

Podczas 1 °. Podano liczby dodatnie A i B (A\u003e B). Na odcinku o długości A umieszczana jest maksymalna możliwa liczba odcinków o długości B (bez nakładek). Bez korzystania z operacji mnożenia i dzielenia znajdź długość niezajętej części segmentu A.

Za każdym razem odejmujemy B od A, podczas gdy A - B\u003e \u003d 0.

Program while1; var A, B: liczba całkowita; rozpocząć czytanie (A, B); podczas gdy (A - B)\u003e \u003d 0 do A: \u003d A - B; (Dopóki różnica jest dodatnia, odejmujemy. Konieczne jest zapewnienie opcji o wielokrotności A i B, dlatego\u003e \u003d) napisz (A); koniec.

Podczas 4 °. Podana liczba całkowita N (\u003e 0). Jeśli jest to potęga 3, wydrukuj True, jeśli nie, wydrukuj False.

Postępujemy w następujący sposób: podczas gdy N jest całkowicie podzielony przez trzy, dzielimy N całkowicie. Zatem, jeśli N \u003d 1 - liczba jest potęgą trzech; jeśli N<> 1, to liczba nie jest potęgą trzech. Aby rozwiązać ten problem, musisz wiedzieć, co to jest i jak działa.

Program while4; var N: liczba całkowita; rozpocznij readln (N); podczas gdy N mod 3 \u003d 0 do N: \u003d N div 3; (Podczas gdy reszta dzielenia przez trzy wynosi zero, podziel N całkowicie) writeln (N \u003d 1); (wyrażenie logiczne) koniec.

To wszystko na dzisiaj! Nie zapomnij częściej odwiedzać naszej witryny i klikaj przyciski znajdujące się przed komentarzami.

Bardzo często zachodzi potrzeba wykonania tej samej instrukcji (lub grupy instrukcji) kilka razy. Do tego w językuPascal są zapewnione operatory pętli.

1. Operator pętli z warunkiem wstępnym.

Formularz zapisu: podczas<условие> zrobić<оператор>;

Tutaj podczas(do),zrobić (zrobić)- słowa zastrzeżone.

Operator może być dowolnym operatorem prostym lub złożonym. Tutaj<оператор> wykonywane tylko wtedy, gdy jest prawdziwe<условие>, który jest sprawdzany za każdym razem po wykonaniu instrukcji. Jeśli od samego początku warunek ma znaczeniefałszywe , instrukcja pętli nigdy nie zostanie wykonana.

Schemat blokowy algorytmu działania takiego operatora pokazano na ryc. 1.

Figa. 1. Operator pętli z warunkiem wstępnym

Przykład

ja droga

. Obliczanie silni liczby p.(tj. produkty 1 2 ...p.):

Program Fact_1;

Stała n \u003d 5;

Var i, fakt: liczba całkowita;

Zaczynać

i: \u003d 1; Fakt: \u003d 1;

podczas gdy ja<=n do {заголовок цикла}

start (początek pętli)

fakt: \u003d fakt * i;

i: \u003d i + 1

koniec; (koniec cyklu)

WriteLn („silnia”, n, „\u003d”, Fakt: 10)

Koniec.

2. Operator pętli z warunkiem dodatkowym. Schemat blokowy algorytmu operatora pokazano na ryc. 2.

Formularz zapisu:

Powtarzać

<оператор1>; <оператор2>;

Aż do<условие>;

Tutaj powtórz (powtarzać dopóki) Aż do (do momentu spełnienia warunku) - słowa zastrzeżone.

Sekwencja instrukcji może składać się z jednej lub większej liczby instrukcji. W przeciwieństwie do poprzedniego, w tym cyklu warunek jest zawsze sprawdzany po wykonaniu instrukcji (lub sekwencji instrukcji), jeśli jest fałszywy, instrukcja jest wykonywana ponownie, w przeciwnym razie cykl jest kręci się. Dzięki tej strukturzeoperator przynajmniej raz zobowiązanycałkowicie wykonane.

Przykład:

II droga

. Obliczanie silni liczby p.(tj. produkty 1 2 ...p.):

Program Fakt_2;

Stała n \u003d 5;

Var i, fakt: liczba całkowita;

Zaczynać

i: \u003d 1; Fakt: \u003d 1;

Powtarzać

start (początek pętli)

fakt: \u003d fakt * i;

i: \u003d i + 1

koniec; (koniec treści cyklu)

Aż do\u003e n; (stan: schorzenie)

WriteLn („Factorial”, n, „\u003d”, Fakt: 10)

Koniec.

Tutaj ja - Jest to licznik powtórzeń, który należy ręcznie zmienić w pętli.

3. Operator pętli z parametrem.

Ten cykl pozwala powtarzać działania o znanej liczbie razy.

Licznik jest zmienną, która zlicza liczbę powtórzeń pętli. W tym cyklu licznik automatycznie wzrasta o dokładnie 1.

Formularz zapisu:

DLAcounter \u003d wartość_początkowaDOwartość_końcowaZROBIĆ

ZACZYNAĆ

. . . .

Koniec;

Jeśli konieczne jest zmniejszenie parametru o 1, użyjzadzwoń do słowa Aż do(wartość początkowa jest większa niż wartość końcowa).

Przykład:

III droga

Obliczanie silni liczby p.(tj. produkty 1 2 ...p.):

Program Fakt_3;

Stała n \u003d 5;

Var i, fakt: liczba całkowita;

Zaczynać

Fakt: \u003d 1;

dla i: \u003d 1 do n zrobić

start (początek pętli)

fakt: \u003d fakt * i;

koniec; (koniec cyklu)

WriteLn („Faktorowy”, n, „\u003d”, Fakt: 10)

Koniec.

Możesz użyć dowolnego prostego luboperator stały.

Korzystając z tego operatora pętli, pamiętaj o następujących zasadach:

1) jako parametr możesz użyć prostej zmiennej,opisane w tym samym bloku;

2) parametr musi być typu dyskretnego;

3) wartości początkowe i końcowe muszą być tego samego typu coparametr;

4) w treści pętli (operator), wyraźna zmiana wartości parametru(np. operator przypisania) może prowadzić do nieskończonościcykl;

5) niemożliwa jest zmiana początkowych i końcowych wartości pa w ciele cyklurozmiar, jeśli są ustawione przez zmienne;

6) po zakończeniu cyklu wartość parametru staje się równa końcowej wartości parametru, jeśli cykl nie został przerwanyoperator przejścia.

NIEZALEŻNIE

1. Napisz program, który wyświetla liczby w formacie strefy:

7 49

5 25

3 9

1 1

2. Istnieją trzy sposoby rozwiązania problemu. (przy użyciu różnych rodzajów cyklu):

Po ilu latachL. kwota wkładu osiąga żądaną kwotęS. (rub.), przy początkowym depozycieV. (rub.), jeśli roczny procent gwarantowany przez bank wynosi 10% kwoty depozytu.

Uruchom algorytm, gdyS \u003d 100 000 rubli., V \u003d 10 000 rubli.

Operatory pętli wymuszają wykonanie instrukcji, które je tworzą.

wielokrotnie.

W Pascal istnieją trzy typy operatorów pętli: operator pętli z parametrem, operator pętli z warunkiem wstępnym, operator pętli z warunkiem dodatkowym.

Operator pętli z parametrem

Format instrukcji loop z parametrem:

dla V: \u003d E1 do E2 do S

gdzie V jest zmienną typu rzędu, E1, E2 są wyrażeniami tego samego typu, S jest operatorem zwanym ciałem cyklu. Wyrażenia E1 i E2 są obliczane jeden raz po wejściu w cykl. Parametr V przyjmuje najpierw wartość E1, a następnie bezpośrednio po niej (SUCC (V)) itp. przed osiągnięciem E2. Dla każdej wartości V wykonywany jest operator S. Jeśli w ciele pętli trzeba wykonać kilka instrukcji, są one łączone w jedną za pomocą operatora złożonego. Jeżeli końcowa wartość E2 jest mniejsza niż początkowa E1, to operator S nie jest wykonywany ani razu.

Operator pętli z parametrem jest również używany w następujący sposób:

dla V: \u003d E1 do E2 do S

W przeciwieństwie do pierwszego przypadku, V zmienia się od E1 do E2, przechodząc z V do pred (V).

Zauważ, że jeśli V, E1, E2 jest typu INTEGER, to w pierwszym przypadku jest to cykl z krokiem +1, aw drugim z krokiem -1.

Operator pętli wstępnej

Format operatora pętli z warunkiem wstępnym:

gdzie B jest wyrażeniem logicznym, S jest operatorem. Operator S będzie spełniony, dopóki warunek B będzie spełniony. Instrukcja pętli kończy się, gdy wyrażenie B po raz pierwszy ma wartość false.

Operator pętli postcondition

Format instrukcji pętli z warunkiem dodatkowym:

powtarzaj S, aż B

gdzie B jest wyrażeniem logicznym, S jest operatorem. Operator S jest wykonywany, dopóki B nie stanie się prawdą. Instrukcja REPEAT jest wykonywana co najmniej raz, ponieważ warunek B jest sprawdzany po instrukcji S.

Słowa serwisowe REPEAT i UNTIL już odgrywają rolę nawiasów, więc nawiasy operatora BEGIN i END są opcjonalne.

Przykłady programów

Jako przykład użycia operatorów cyklu, rozważ program obliczeń czynnikowych.

Program 2.1.1. Pętla z parametrem (krok +1)

PROGRAM FACTORIAL1;

VAR I, N: INTEGER;

WRITE („ENTER N”);

READLN (N); F: \u003d 1;

DLA I: \u003d 1 DO N DO F: \u003d F * I;

Program 2.1.2. Pętla z parametrem (krok -1)

PROGRAM FACTORIAL2;

VAR I, N: INTEGER;

WRITE („ENTER N”);

READLN (N); F: \u003d 1;

DLA I: \u003d N W DÓŁ 1 DO F: \u003d F * I;

WRITELN („FACTORIAL FROM”, N, „EQUAL”, F)

Program 2.2. Warunek wstępny

PROGRAM FACTORIAL3;

VAR I, N: INTEGER;

WRITE („ENTER N”);

READLN (N); F: \u003d 1; I: \u003d 1;

PODCZAS GDY JA<=N DO

WRITELN („FACTORIAL FROM”, N, „EQUAL”, F)

Operator jest niepodzielnym elementem programu, który umożliwia wykonywanie określonych działań algorytmicznych. Różnica między operatorem a innymi elementami polega na tym, że zawsze implikuje jakieś działanie. W Pascal operatory składają się ze słów serwisowych. Operatory używane w programie są oddzielone między sobą i od innych elementów programu za pomocą symbolu (;). Wszystko operatorzy języka Pascal Można podzielić na dwie grupy:

  1. prosty;
  2. zbudowany.

Proste operatory - Są to operatory, które nie zawierają innych operatorów. Obejmują one:

  • operator przypisania (: \u003d);
  • operator procedury;
  • operator skoku bezwarunkowego (GOTO).

Instrukcje ustrukturyzowane - Są to operatory zawierające inne operatory. Obejmują one:

  • instrukcja złożona
  • operatory warunkowe (IF, CASE);
  • instrukcje pętli (FOR, WHILE, REPEAT);
  • instrukcja join (Z).

Proste operatory

Instrukcja procedury

Instrukcja procedury służy do wywołania procedury.

Format: [nazwa_procedury] (lista parametrów wywołania);

Operator procedury składa się z identyfikatora procedury, po którym bezpośrednio znajduje się lista parametrów wywołania w nawiasach. Pascal ma procedury bez parametrów. W takim przypadku po wywołaniu brakuje listy parametrów. Wykonanie operatora procedury prowadzi do aktywacji działań opisanych w jej ciele. Pascal ma dwa rodzaje procedur:

  • Standard, które są opisane w samym języku i są powiązaniem języka;
  • Procedury użytkownika tworzone przez użytkownika.

Aby wywołać standardowe procedury, musisz połączyć w sekcji USES nazwę modułu (biblioteki), w którym opisano tę procedurę. Wiele procedur znajdujących się w module SYSTEM jest zawsze automatycznie podłączanych do programu, a ich połączenie w sekcji UŻYTKOWANIE nie jest konieczne. Standardowymi procedurami Pascala są CZYTANIE, PISANIE, PISANIE, ZAMYKANIE, RESET.

CZYTAJ ([zmienna_pliku], [lista wejściowa])

CZYTAJ (x, y)

Procedury użytkownika (niestandardowe) muszą zostać utworzone przed użyciem ich w programie i znajdują się w sekcji opisu samego programu lub w osobnych jednostkach programu modułu. Jeśli procedura jest w module, nazwa tego modułu musi być wymieniona w aplikacji USES.

GOTO bezwarunkowa instrukcja skoku

Format: GOTO [etykieta];

GOTO to słowo zastrzeżone w języku Pascal. [etykieta] to dowolny identyfikator, który pozwala oznaczyć określonego operatora programu, a następnie odwołać się do niego. W Pascal dozwolone jest używanie niepodpisanej liczby całkowitej jako etykiet. Etykieta jest umieszczana przed zaznaczonym operatorem i oddzielana od niej (:). Jeden operator może być oznaczony kilkoma etykietami. Są również oddzielone od siebie (:). Przed użyciem etykiety w sekcji dla operatora należy ją opisać w sekcji ETYKIETA (sekcja opisu).

Działanie GOTO przenosi kontrolę do odpowiedniego otagowanego operatora. Korzystając z etykiet, należy kierować się następującymi zasadami:

  • etykieta powinna być opisana w sekcji opisów i należy stosować wszystkie etykiety;
  • jeśli liczby całkowite są używane jako etykiety, nie są deklarowane.

Jest to sprzeczne z zasadami technologii programowania strukturalnego. Współczesne języki programowania nie obejmują takiego operatora i nie trzeba go używać. Ponadto współczesne komputery stosują tak zwaną metodę przenośnika. Jeśli program zawiera bezwarunkowy operator przejścia, wówczas taki operator psuje cały potok, zmuszając go do ponownego utworzenia, co znacznie spowalnia proces obliczeniowy.

Instrukcje ustrukturyzowane

Instrukcje warunkowe IF

Operator warunkowy jest wykorzystywany w programie do implementacji struktury algorytmicznej - rozgałęzienia. W tej strukturze proces obliczeniowy może być kontynuowany w jednym z możliwych kierunków. Wybór kierunku jest zwykle dokonywany przez sprawdzenie warunku. Istnieją dwa rodzaje struktury rozgałęzień: struktura widelca i obejście.

W Pascalu warunkowa instrukcja IF jest sposobem na zorganizowanie rozgałęzionego procesu obliczeniowego.

Format: JEŻELI [wyrażenie boolowskie] Następnie [wyrażenie_1]; W przeciwnym razie [operator_2];

JEŻELI, W przeciwnym razie - słowa usługi. [operator_1], [operator_2] - zwykłe operacje Pascala. Część Else jest opcjonalna (może jej brakować).

Instrukcja IF działa w następujący sposób: po pierwsze sprawdzany jest wynik wyrażenia logicznego. Jeśli wynikiem jest Prawda (PRAWDA), wówczas wykonywana jest [instrukcja_1], a następnie słowo serwisowe Wtedy, a [instrukcja_2] jest pomijana. Jeśli wynikiem jest FAŁSZ, wówczas [instrukcja_1] zostanie pominięta, a [instrukcja_2] zostanie wykonana.

Jeśli brakuje części Else, instrukcja IF nie jest kompletna:

JEŻELI [wyrażenie logiczne] Następnie [instrukcja];

W takim przypadku, jeśli wynikiem jest Prawda (PRAWDA), wówczas wykonywana jest [instrukcja], jeśli Fałsz (FAŁSZ), wówczas kontrola jest przekazywana do instrukcji następującej po instrukcji JEŻELI.

są 2 liczby A i B. Znajdź maksymalną liczbę.

Oświadczenie złożone

Operator złożony to sekwencja dowolnych operacji w programie zawarta w tak zwanych nawiasach operatora (początek-koniec).

Format: Rozpocznij [operatorzy]; Koniec;

Instrukcje złożone umożliwiają reprezentowanie grupy instrukcji jako pojedynczej instrukcji.

Instrukcja wyboru CASE

Zaprojektowany do implementacji wielu gałęzi, ponieważ operator IF może implementować tylko dwa kierunki procesu obliczeniowego, użycie go do implementacji wielu gałęzi nie zawsze jest wygodne. Rozgałęzienie wielokrotne jest realizowane przez instrukcję CASE.

Format: CASE [select_key] OF

[select_constant_1]: [operator_1];

[select_constant_2]: [operator_2];

[select_ constant_N]: [statement_N];

ELSE [instrukcja];

CASE, OF, ELSE, END - słowa serwisowe. [select_key] jest parametrem jednego z typów porządkowych. [select_constants] - stałe tego samego typu co klawisz wyboru, które realizują wybór. [operator_1 (N)] jest zwykłym operatorem. ELSE może być nieobecny.

Operator selekcji działa w następujący sposób: zanim operator zacznie działać, określa się wartość parametru klucza wyboru. Ten parametr może być wyrażony jako zmienna w programie lub w inny sposób. Następnie klawisz wyboru parametru jest kolejno porównywany ze stałą wyboru. Jeśli wartość klucza wyboru pokrywa się z jedną ze stałych wyboru, następuje wykonanie instrukcji następującej po tej stałej, a wszystkie inne operatory są ignorowane. Jeśli klawisz wyboru nie pokrywa się z żadną ze stałych, wykonywana jest instrukcja po Else. Często Else jest opcjonalne, a jeśli klawisz wyboru nie pasuje do żadnej ze stałych selekcji, a jeśli Else nie jest obecny, kontrola jest przekazywana do operatora zgodnie z instrukcją CASE.

Instrukcja CASE nie sprawdza wyraźnie warunku specyficznego dla instrukcji IF. W tym samym czasie wykonywana jest niejawna operacja porównania. CASE wprowadza dysonans do programu Pascal, ponieważ instrukcja danych kończy się słowem End, które nie ma pary Begin.

Skomponować algorytm i program zadań symulujący pracę sygnalizacji świetlnej. Po wprowadzeniu znaku pierwszej litery kolorów sygnalizacji świetlnej program powinien wyświetlić komunikat o odpowiednim kolorze i działaniach.

Program działa w następujący sposób: z klawiatury procedura odczytu wprowadza symbol litery koloru sygnalizacji świetlnej. Jeśli zostanie wprowadzona litera „з” odpowiadająca kolorowi zielonemu, wówczas wartość wprowadzona do instrukcji CASE na liście wyboru znajdzie stałą wyboru „з” i wyświetlony zostanie komunikat „Zielony, dozwolony ruch”. Po wpisaniu litery „do” i „ж” zostaną wyświetlone podobne komunikaty. Jeśli wprowadzisz inny znak, zostanie wyświetlony komunikat „Sygnalizacja świetlna nie działa”, ponieważ w tym przypadku działa część Else, operatora CASE.

Instrukcje pętli

Cykliczna struktura algorytmiczna to struktura, w której niektóre akcje są wykonywane kilka razy. Istnieją dwa rodzaje struktur cyklicznych w programowaniu: pętla z parametrem i pętla iteracyjna.

W cyklu z parametrem zawsze występują tak zwane parametry cyklu: X, X n, X k, XX. Czasami pętla z parametrem nazywana jest zwykłą pętlą. Cechą charakterystyczną jest to, że liczbę cykli i powtórzeń można określić przed zakończeniem cyklu.

W pętli iteracyjnej nie jest możliwe określenie liczby pętli przed jej wykonaniem. Jest spełniony, dopóki nie zostanie spełniony warunek kontynuacji cyklu.

Pascal ma trzy operatory, które implementują cykliczne struktury obliczeniowe:

  • operator liczący DLA. Jest przeznaczony do implementacji pętli z parametrem i nie może być stosowany do implementacji pętli iteracyjnej;
  • pODCZAS predefiniowanej instrukcji pętli
  • operator pętli post-condition REPEAT.

Dwa ostatnie dotyczą implementacji cyklu iteracyjnego, jednak można ich również użyć do realizacji cyklu z parametrem.

Instrukcja FOR

Format: DLA [parametr_cyklu]: \u003d [n_z_p_ts] Do [k_z_p_ts] Wykonaj [operator];

FOR, To, Do - słowa serwisowe. [parametr_pętli] - parametr pętli. [n_z_p_ts] - początkowa wartość parametru pętli. [k_z_p_ts] - końcowa wartość parametru pętli. [operator] jest dowolnym operatorem.

Parametr pętli musi być zmienną typu porządkowego. Początkowe i końcowe wartości parametru pętli muszą być tego samego typu co parametr pętli.

Rozważamy pracę operatora nad jego algorytmem:

W pierwszym kroku wartość parametru cyklu zajmuje [n_z_p_ts], następnie parametr cyklu jest sprawdzany jako mniejszy lub równy [k_z_p_ts]. Ten warunek jest warunkiem kontynuowania cyklu. Po zakończeniu cykl kontynuuje pracę i wykonywana jest [instrukcja], po czym parametr cyklu zwiększa się (zmniejsza) o jeden. Następnie, przy nowej wartości parametru pętli, sprawdzany jest warunek kontynuacji pętli. Jeśli tak, działania są powtarzane. Jeśli warunek nie jest spełniony, cykl zatrzymuje pracę.

Instrukcja For różni się znacznie od podobnych operatorów w innych językach programowania. Różnice są następujące:

  • treść instrukcji For. Operatora nie można wykonać ani razu, ponieważ weryfikacja warunku kontynuacji cyklu jest wykonywana przed treścią cyklu;
  • krok zmiany parametru cyklu jest stały i równy 1;
  • treść pętli w instrukcji For jest reprezentowana przez pojedynczą instrukcję. W przypadku, gdy działanie korpusu pętli wymaga więcej niż jednego prostego operatora, wówczas operatory te muszą zostać przekształcone w jeden operator złożony za pomocą nawiasów operatora (BEGIN-END);
  • Parametr pętli może być tylko zmienną typu porządkowego.

Przykład użycia instrukcji FOR: skompiluj tabelę przeliczania rubli na dolary.

Instrukcja WHILE (instrukcja pętli z warunkiem wstępnym)

Format: WHILE [warunek] Do [oświadczenie];

PODCZAS, Do - słowa serwisowe. [warunek] jest wyrażeniem typu logicznego. [operator] jest zwykłym operatorem.

;

Instrukcja While działa w następujący sposób: po pierwsze, sprawdzany jest wynik warunku logicznego. Jeśli wynik jest prawdziwy, wykonywany jest operator, po czym warunek jest zwracany do weryfikacji z nową wartością parametru w logicznym wyrażeniu warunku. Jeśli wynik jest fałszywy, cykl się kończy.

Podczas pracy z While należy zwrócić uwagę na jego właściwości:

  • warunki zastosowane w While są warunkiem kontynuowania cyklu;
  • w treści pętli wartość parametru warunku zawartego w wyrażeniu zawsze się zmienia;
  • podczas gdy pętla może nie zostać wykonana nawet raz, ponieważ warunek jest sprawdzany podczas pętli, aż do jej treści.

Instrukcja REPEAT (instrukcja pętli z postcondition)

Format: POWTÓRZ [body_body]; DO [warunek];

Operator REPEAT działa w następujący sposób: najpierw uruchamiane są operatory treści pętli, po których wynik jest sprawdzany przez warunek logiczny. Jeśli wynik jest fałszywy, operator powraca do wykonania treści następnej pętli. Jeśli wynik jest prawdziwy, wówczas instrukcja kończy działanie.

Operator powtarzania ma następujące funkcje:

  • w Powtórz sprawdzany jest warunek zakończenia cyklu, a jeśli warunek jest spełniony, cykl przestaje działać;
  • ciało pętli jest zawsze wykonywane co najmniej raz;
  • parametr służący do sprawdzania zmian warunków w treści pętli;
  • operatorzy elementów pętli nie muszą być umieszczani w nawiasach operatora (BEGIN-END), podczas gdy Powtarzanie i Do pełnią rolę nawiasów operatora.

Oblicz y \u003d sin (x), gdzie xn \u003d 10, xk \u003d 100, krok wynosi 10.

DZWONEK

Są tacy, którzy czytają te wiadomości przed tobą.
Subskrybuj, aby otrzymywać świeże artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać Dzwon
Bez spamu