Порядок работы оператора WHILE

Практическая работа № 4

Разработка программ циклической структуры (операторы цикла с предусловием)

Цель работы:

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

2. Получить навыки использования операторов цикла с предусловием при составлении программ.

3. Закрепить навыки работы с переменными простых типов.

 

Краткие теоретические сведения

Циклический алгоритм – это алгоритм, который реализует повторение некоторых действий.

В языке Турбо Паскаль имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программы: оператор цикла с предусловием; оператор цикла с параметром; оператор цикла с постусловием.

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

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

Оператор цикла FOR можно использовать в двух вариантах.

Форматы оператора цикла с параметром:

Вариант 1 (с увеличением счетчика):

For <параметр>:=<начальное значение> to <конечное значение> do

<оператор>;

Вариант 2 (с уменьшением счетчика):

For <параметр>:=<начальное значение> downto <конечное значение> do

<оператор>;

For, to, downto, do - зарезервированные слова («для», «до», «уменьшая до», «делать»)

For … do – заголовок цикла

<параметр> – параметр цикла - переменная любого порядкового типа;

< начальное значение> – выражение того же типа, что и параметр;

<конечное значение> – выражение того же типа, что и параметр;

<оператор> - тело цикла. Тело цикла может быть произвольным оператором Turbo Pascal, в том числе составным.

Порядок работы оператора FOR

При первом обращении к оператору цикла FOR вначале вычисляются выражения <начальное значение> и <конечное значение> и осуществляется присваивание <параметр>:=<начальное значение>.

После этого циклически повторяются следующие действия:

1. Проверяется условие <параметр> <конечное значение>

2. Если условие принимает значение TRUE (истина), то выполняется тело цикла, если условие принимает значение FALSE (ложь), то оператор FOR завершает работу, и происходит переход на оператор, следующий за циклом

3. Значение переменной-параметра изменяется на 1 (to) или – 1 (downto) и далее с п.1.

Блок -схема оператора For … to

              

 

 

          Нет                                                                                  Да

 

 

Блок-схема оператора For … downto

 

 


Оператор цикла с предусловием

Формат оператора цикла с предусловием:

While <условие> do <тело цикла>;

While, do   – зарезервированные слова («пока», «делать»);

While… do – заголовок цикла

<условие> – выражение логического типа (условие продолжения цикла);

<тело цикла> – произвольный оператор Турбо Паскаля (может быть составным).

Порядок работы оператора WHILE

Сначала проверяется <условие>. Если оно равно TRUE (истина), то выполняется тело цикла, и снова проверяется <условие>. Так продолжается до тех пор, пока значение условия не станет равно FALSE (ложь), т.е. пока условие не нарушится. Если значение условия равно FALSE, то происходит выход из цикла и переход к следующему после While оператору.

Блок-схема оператора цикла WHILE :

 

 

               нет                                      да

 

Подготовка к практической работе:

1. изучить конспект по теме «Программирование алгоритмов циклической структуры»;

2. изучить краткие теоретические сведения данной работы;

3. ответить на контрольные вопросы.

 

Контрольные вопросы (допуск к работе):

1. Что такое программа (алгоритм) циклической структуры?

2. Какие виды циклов можно использовать в языке Pascal?

3. Формат оператора цикла с параметром.

4. Правила выполнения оператора цикла с параметром.

5. Почему переменную-параметр называют счетчиком?

6. Возможны ли ситуации, когда тело цикла с параметром не выполнится ни разу?

 

Задание 1

Составить программу вычисления функции y =  с использованием операторов цикла с предусловием..

Порядок выполнения работы

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

2. Загрузите Pascal.

3. Наберите текст программы.

4. Выполните отладку программы.

5. Запустите программу на выполнение и проверьте результаты тестовых примеров.

Содержание отчета:

1. постановка задачи

2. список используемых переменных

3. блок-схема алгоритма с указанием типа алгоритма

4. текст программы на Pascal

5. тестовый пример

6. протокол работы программы

Пример оформления отчета:

Постановка задачи.

Составить программу вычисления функции y = с использованием оператора цикла с параметром.

Список используемых переменных.

Исходные данные: N – количество слагаемых (повторений) – целого типа

Результат: y – функция – вещественного типа.

Промежуточные переменные: i – номер слагаемого (повторения) – целого типа.

Тип алгоритма: циклический.

Блок-схема:

                                                                                 

                                                                                      

                                                                                      

                                                                                      

                                                                                      

                                                                                      

                                             

                                                                                      

                                            

      

                                            

                                                                                      

                                                                                      

                                                                                      

                                  Нет                            Да           

                                                                                      

                                                                                      

 

Текст программы на Turbo Pascal:

Program Example1;                               

Uses CRT;                                             

Var N,y,i:integer;

Begin                                                     

Write(‘Введите количество слагаемых N=’);

Readln(N);                                            

y:=0;                                    {значение суммы у принимает значение 0}

For i:=1 to N do                  {цикл для вычисления суммы, выполняемый N раз}

  y:=y+sqr(i);                  {тело цикла, выполняемое N раз – вычисление суммы}

Writeln(‘Сумма y=’,y);

Readln;                                                  

End.

Тестовый пример:

Если N=4, тогда y=30

Протокол работы программы:

Введите количество слагаемых N=4

Сумма у= 30

 

Задание 2

Составить программу, которая определяет, является ли целое четырёхзначное число "перевёртышем", т.е. записывается одинаково слева направо и справа налево.

 

Список используемых переменных.

Исходные данные: N – вводимое целое число;

                            M – дубликат числа n;

Результат: текстовое сообщение

Промежуточные переменные:

 i – параметр цикла для создания «перевертыша» (счетчик количества цифр от 1 до 4)

А – число, записанное цифрами числа n в обратном порядке;

К – переменная для запоминания последней цифры числа М.

Типы используемых алгоритмов: циклический, ветвящийся.

Текст программы на Turbo Pascal:

Program Example2;

Var M,N,A,i:integer;  

Begin

Writeln(‘Введите целое число: ’);

Readln(N);        

M:=N; A:=0;

{создание числа А, записанного цифрами числа N в обратном порядке}     

for i:=1 to 4 do        {цикл для записи числа в обратном порядке, выполняемый 4 раза}

begin

K:= M mod 10;   {в переменную К записывается последняя цифра числа М}

A:=A*10+K;      {к числу А «дописывается» справа последняя цифра числа М}  

M:=M div 10      {из числа M отбрасывается последняя цифра}

end;

if A=N then writeln (‘Число ‘,N:6,’ является перевертышем’)

       else writeln (‘Число ‘,N:6,’ не является перевертышем’);

Readln;

End.          

Тестовый пример:

1. Если N=12321, тогда N является перевертышем

2. Если N=3994, тогда N не является перевертышем

 

i N K A M
--- 3994 --- 0 3994
1   3994 mod 10 = 4 0*10+4 = 4 399
2   399 mod 10 = 9 4*10+9 = 49 39
3   39 mod 10 = 9 49*10+9 = 499 3
4   3 mod 10 = 3 499*10+3 = 4993 0

 

Протокол работы программы:

Введите целое число: 12321

Число 12321 является перевертышем

Введите целое число: 1234

Число 1234 не является перевертышем

 

Контрольные вопросы:

1. Что обозначают зарезервированные слова FOR, TO, DOWNTO, DO?

2. Что такое параметр в операторе цикла FOR?

3. Что такое тело цикла в операторе цикла FOR?

4. Какое значение примет переменная S после выполнения следующих операторов:

1) S:=1; For i:=1 to 5 do S:=S+i*2;

2) S:=0; For i:=6 downto 2 do S:=S+i;

5. Сколько раз выполниться тело цикла для следующих операторов:

1) S:=1; For i:=3 to 7 do S:=S+i*2;

2) S:=2; For i:=5 downto 8 do S:=S*i;

3) S:=1; For i:=3 to 1 do S:=S+sqr(i);

4) S:=0; For i:=5 downto 0 do S:=S+i;

5) S:=0; For i:=6 downto 3 do begin S:=S+i; S:=3 end;

6. Какой оператор цикла будет бесконечным:

1) F:=0; For i:=0 to 2 do F:=F+i-1;

2) F:=0; For i:=4 downto 2 do F:=F+i-1; inc(i);

3) F:=0; For i:=4 downto 2 do begin F:=F+i-1; inc(i) end;

7. Что обозначают зарезервированные слова WHILE, DO?

8. Условие в цикле While является условием для продолжения цикла или для его завершения?

9. Какое значение примет переменная S после выполнения следующих операторов:

3) i:=1; S:=2; while i<5 do i:=i+1; S:=S+i*2;

4) i:=1; S:=2; while i<5 do begin i:=i+1; S:=S+i*2 end;

10. Из каких команд состоит тело цикла в каждом из следующих операторов:

a. i:=1; S:=2; while i<5 do i:=i+1; S:=S+i*2;

b. i:=1; S:=2; while i<5 do begin i:=i+1; S:=S+i*2 end;

 

 

Варианты заданий

 

  Вариант 1 1. Составить программу вычисления функции 2. Найти количество трехзначных чисел, кратных числу 23.   Вариант 2 1. Составить программу вычисления функции 2. Определить сумму двухзначных чисел, сумма цифр которых больше заданного числа.     Вариант 3 1. Составить программу вычисления функции 2. Найти количество четных целых чисел из промежутка от А до В.  
  Вариант 4 1. Составить программу вычисления функции 2. Найти все двузначные числа, в которых есть заданная цифра.     Вариант 5 1. Составить программу вычисления функции 2. Найти сумму целых положительных чисел из промежутка от Х до У, кратных 4.     Вариант 6 1. Составить программу вычисления функции 2. Определить количество двухзначных чисел, произведение цифр которых равно заданному числу N.  
  Вариант 7 1. Составить программу вычисления функции 2. Найти все двузначные числа, квадрат суммы цифр которых делится на 15.     Вариант 8 1. Составить программу вычисления функции 2. Найти сумму трехзначных чисел, кратных числу 6.     Вариант 9 1. Составить программу вычисления функции 2. Найти произведение целых чисел из промежутка от Х до У, кратных 8.  

 

  Вариант 10 1. Составить программу вычисления функции 2. Определить количество трехзначных чисел, кратных заданному числу.     Вариант 11 1. Составить программу вычисления функции 2. Найти количество двузначных чисел, сумма цифр которых больше числа 10.     Вариант 12 1. Составить программу вычисления функции 2. Даны натуральные числа A и B. Найти сумму четных чисел, меньших A*B.
  Вариант 13 1. Составить программу вычисления функции 2. Даны натуральные числа M и N. Найти все числа, кратные числу N, меньшие M*N.     Вариант 14 1. Составить программу вычисления функции 2. Найти количество двузначных чисел, произведение цифр которых кратно заданному числу.     Вариант 15 1. Составить программу вычисления функции 2. Даны натуральные числа X и Y. Найти количество нечетных чисел, меньших X+Y.
  Вариант 16 1. Составить программу вычисления функции 2. Найти сумму нечетных целых чисел из промежутка от M до N.     Вариант 17 1. Составить программу вычисления функции 2. Найти количество двузначных чисел, кратных сумме двух заданных натуральных чисел.     Вариант 18 1. Составить программу вычисления функции 2. Найти произведение целых чисел из промежутка от A до B, кратных числу А.  

 

 

  Вариант 19 1. Составить программу вычисления функции 2. Найти количество трехзначных чисел, в которых есть цифры больше 7.     Вариант 20 1. Составить программу вычисления функции 2. Найти сумму трехзначных чисел, кратных произведению двух заданных натуральных чисел.     Вариант 21 1. Составить программу вычисления функции 2. Найти количество двухзначных чисел, в которых разность цифр по модулю равна 11.
  Вариант 22 1. Составить программу вычисления функции 2. Найти количество целых чисел из промежутка от X до Y, кратных заданному числу.     Вариант 23 1. Составить программу вычисления функции 2. Найти все двухзначные числа, кратные заданному числу.   Вариант 24 1. Составить программу вычисления функции 2. Найти сумму двухзначных чисел, в которых есть цифры, меньше заданной.  
  Вариант 25 1. Составить программу вычисления функции 2. Найти произведение целых чисел из промежутка от A до B, кратных числу 6.     Вариант 26 1. Составить программу вычисления функции 2. Найти количество двухзначных чисел, в которых произведение цифр меньше 15.     Вариант 27 1. Составить программу вычисления функции 2. Найти сумму двухзначных чисел, в которых есть цифры больше 7.  

 

 

  Вариант 28 1. Составить программу вычисления функции 2. Найти произведение двухзначных чисел, в которых есть цифра 1.     Вариант 29 1. Составить программу вычисления функции 2. Найти сумму двухзначных чисел, кратных сумме двух заданных целых чисел.   Вариант 30 1. Составить программу вычисления функции 2. Найти количество трехзначных чисел, в которых последняя цифра больше 6.  
  Вариант 31 1. Составить программу вычисления функции 2. Найти сумму трехзначных чисел, в которых последняя цифра равна заданной.   Вариант 32 1. Составить программу вычисления функции 2. Найти количество трехзначных чисел, кратных произведению двух заданных целых чисел.     Вариант 33 1. Составить программу вычисления функции 2. Найти все двухзначные числа, в которых сумма цифр больше 7.  

 

Дополнительные задачи:

1. Квадрат трехзначного числа оканчивается тремя цифрами, которые равны исходному числу. Найти все такие числа.

2. Определить количество трехзначных чисел, сумма цифр которых равна заданному числу N.

3. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на 13.

4. Даны натуральные числа А и В. Вычислить произведение А*В, не используя в программе операцию умножения.

5. Дано натуральное число. Найти все его натуральные делители.

6. Составить программу возведения данного числа А в степень N. Использовать только операцию умножения.

 


Дата добавления: 2019-02-22; просмотров: 389; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!