Практическая работа №3.  Составление программ с использование операторов цикла.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Цель работы: Использование операторов циклов (повторений).

Теоретические основы:

В языке ТР имеются три различных оператора, с помощью которых организуются циклические (повторяющиеся) фрагменты программ.

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

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

While <условие> Do <оператор>;

где <условие> - логическое выражение.

       Если логическое выражение принимает значение TRUE (истина), то выполняется оператор, стоящий после ключевого слова Do, в противном случае оператор While прекращает свою работу. На месте одного оператора может располагаться группа операторов, заключённых в операторные скобки (Begin ... end).

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

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

Repeat <Тело_цикла> Until <условие>

где <Тело цикла> - последовательность операторов ТР;

<условие> - логическое выражение.

  Операторы "тела цикла" выполняются хотя бы один раз, после чего вычисляется значение логического выражения и если это значение FALSE, то операторы "тела цикла" повторяются, в противном случае оператор цикла завершает свою работу.

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

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

For <параметр_цикла> := <нач.знач.> To < конеч.знач.> Do <оператор>;

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

<нач.знач.> - начальное значение - выражение того же типа;

<конеч.знач.> - конечное значение - выражение того же типа;

       На месте одного оператора может располагаться группа операторов, заключённых в операторные скобки (Begin ... end).

      Для более гибкого управления операторами циклов For, While, Repeat в ТР введены две процедуры:

       BREAK - реализует немедленный выход из цикла; действие процедуры заключается в передаче управления оператору, стоящему сразу за после последнего оператора цикла.

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

Типовой пример

Составить схему алгоритма и программу для вычисления значений функции Y для значений переменной х, изменяющейся в интервале от a до b с заданным шагом h.

Решение

  Так как в языке Pascal нет стандартной функции извлечения корня любой степени кроме квадратного, для вычисления функции Y воспользуемся переходом к функциям Exp и Ln.

       При программировании необходимо учесть, что выражение, стоящее под знаком Ln, может быть только положительным: (6x2-x3) > 0.

  Исходными данными в этой задаче являются значения a,b и h.

  Начальное значение х принимаем равным а (х:=а). Каждое следующее значение х вычисляется по формуле х:=х+h. Вычисления функции Y для новых значений х заканчиваются, когда значение х становится больше, чем заданное значение b.

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

  

{Программирование циклов с использованием оператора WHILE}

               {Студенты гр. ..... Фамилии …}

Uses crt; {Подключение стандартного модуля TP}

Var x,y,H,A,B: real;

BEGIN   Clrscr; { Очистка экрана}

Writeln(' Введите A B H'); read(A,B,H);

x:=A;

While x<=B Do

Begin 

   if (6*x*x-x*x*x)<=0 then

    Writeln('При x= ',x:5:3,' под знаком логарифма недопустимое значение')

                                     Else  begin

                                         y:= Exp (1.0/3.0* Ln(Abs(6*x*x-x*x*x)));

                                         Writeln('x=',x:8:3,' y=',y:8:3);

                                                    end; {Конец else}

   x:=x+H;

Еnd; {Конец while} Readkey; { Ожидание нажатия любой клавиши}

END.

 

{Программирование циклов с использованием конструкции REPEAT…UNTIL}

                   {Студенты гр. ... Фамилии ...}

Uses crt; {Подключение стандартного модуля TP}

Var x,y,A,B,H: real;

BEGIN         Clrscr; { Очистка экрана}

Writeln(' Введите A B H'); readln(A,B,H);

x:=A;

Repeat

    if (6*x*x-x*x*x)=<0 then

    Writeln('При x= ',x:5:3, ' под знаком логарифма недопустимое значение')

                                       Else begin

        y:= Exp(1.0/3.0* Ln(Abs(6*x*x-x*x*x)));

                                       Writeln(' x= ',x:8:3,' y= ',y:8:3);

                                               end;

   x:=x+H;

Until x>B;         Readkey;{Ожидание нажатия любой клавиши}

END.

 

{Программирование циклов с использованием оператора FOR}

                   {Студенты гр. ....}

Uses crt;

Var x,y,A,B,H:real;

n,i: integer;

BEGIN  Clrscr;

Writeln(' Введите A B H'); read(A,B,H);

n:= Round((B-A)/H)+1;

x:=A;

For i:=1 To n Do

begin

    if (6*x*x-x*x*x)<=0 then

      Writeln('При x= ',x:5:3,' под знаком логарифма недопустимое значение')

                                      else

                                                 begin

        y:= Exp(1.0/3.0*Ln(Abs(6*x*x-x*x*x)));

        Writeln('   x= ',x:8:3,' y= ',y:8:3);

                                                 end;

   x:=x+H;

end; { Конец For}

END.

Варианты самостоятельных заданий

Задание №1

Вычислить значение выражения при n равном от 1 до 10.


 

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.




Задание №2

Составить программу для вычисления значений функции F (х) на отрезке [а, Ь] с шагом h. Результат представить в виде таблицы, первый столбец которой — значения аргумента, второй — соот­ветствующие значения функции.


1. F(x)=

2. F(x)=x-sin x

3. F(x)=2cosx-1

4. F(x)=tgx

5. F(x)=ctg x+1

6. F(x)=sinx-cosx

7. F(x)=x sinx

8. F(x)=x-sin x

9. F(x)=

10. F(x)=cosx+2х

11. F(x)=2х2+10х

12. F(x)=ctg x+1

13. F(x)=sinx-cosx

14. F(x)=x2 +sinx

15. F(x)=5x-sin x

16. F(x)=

17. F(x)=2ctgx-1

18. F(x)=2x2+4x+3

19. F(x)= x+1

20. F(x)=x2-2

 




Задание № 3

1. Последовательно вводится N целых чисел. Найдите сумму всех введенных положительных чисел.

2. Выведите на экран список квадратов чисел от 1 до 20 (1, 4, 9, 16, …).

3. Выведите на экран в три столбца список чисел от 1 до N, их квадратов и кубов. Число N вводите с клавиатуры. Например, для N=5 на экране должно быть:

1 1 1
2 4 8
3 9 27
4 16 64
5 25 125

4. Напишите программу вычисления выражения (3-х)(6-х)(9-х)…(21-х), где х-действительное число.

5. Определите среднюю зарплату сотрудника фирмы за год, если известна его зарплата за каждый месяц.

6. Последовательно вводится N целых чисел. Найдите минимальное и и максимальное из введенных чисел.

7. Последовательно вводится N целых чисел. Найдите сумму всех введенных положительных чисел.

8. Выведите на экран список квадратов чисел от 1 до 20 (1, 4, 9, 16, …).

9. Вычислите сумму S и произведение P всех целых чисел от N1 до N2. Пример: для N1=3, N2=7 получим S=25, P=2520.

10. Напишите программу вычисления выражения (3-х)(6-х)(9-х)…(21-х), где х-действительное число.

11. Определите среднюю зарплату сотрудника фирмы за год, если известна его зарплата за каждый месяц.

12. Последовательно вводится N целых чисел. Найдите минимальное и и максимальное из введенных чисел.

13. Последовательно вводится N целых чисел. Найдите сумму всех введенных положительных чисел.

14. Последовательно вводится N целых чисел. Найдите сумму всех введенных положительных чисел.

15. Дана последовательность чисел, состоящих только из цифр 0 и 5, в порядке возрастания: 0 5 50 55 500 505 5000 5005 5050 и так далее. Найти k-ое по порядку в этой последовательности число.

16. Для каждого натурального числа в промежутке от m до n вывести все делители, кроме единицы и самого числа. m и n вводятся с клавиатуры

17. Написать программу, в которой вводятся два операнда Х и Y и знак операции (+, –, /, *). Вычислить результат Z в зависимости от знака. Предусмотреть реакции на возможный неверный знак операции, а также на ввод Y=0 при делении. Организовать возможность многократных вычислений без перезагрузки программа (т.е. построить цикл). В качестве символа прекращения вычислений принять ‘0’

18. Написать программу, подсчитывающую количество четных и нечетных цифр в числе.

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

20. Ввести число. Если количество его разрядов меньше пяти, то вывести его на экран, дописав нули перед числом так, чтобы в итоге получилось пять знаков. Если количество разрядов больше пяти, то вывести только первые пять разрядов. Если число пятизначное, то вывести его как есть.

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

1. Какой вычислительный процесс называется циклическим?

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

3. Объясните порядок выполнения цикла с предусловием

4. Что представляет собой тело цикла оператора цикла с постусловием?

5. Как осуществляется выход из цикла с постусловием?

6. Объясните порядок выполнения цикла с постусловием

7. Сколько раз выполняется цикл с параметром?

8. Сколько существуют вариантов цикла с параметром?

9. Объясните порядок выполнения цикла с параметром

10. Объясните назначение и применение процедур Break и Continue

 

Дата: 2019-11-01, просмотров: 326.