Практическое занятие № 3

ТЕМА: Создание программ с операторами циклов

ЦЕЛЬ РАБОТЫ: получить практические навыки по использованию операторов цикла в программах на TURBO PASCAL

 

Ход работы

1. Составить программу для нахождения значения функции вида:

2. Результат вывести с точностью до 3 знаков;

3. Провести табулирование функции Y=SIN X на отрезке [a,b] с шагом 0,2. Начало и конец отрезка задать с клавиатуры. При этом программу оформить со следующими параметрами:

3.1. На экран выдать заголовок в виде:

Аргумент (Х)    Функция (Y);

3.2. Ниже в два столбца выдать значения аргумента и функции с точностью до 3 знаков;

3.3 Задачу решить с помощью всех возможных видов цикла;

4. Найти значение суммы ряда с заданной точность E.

 

Расчет выполнить с помощью цикла с предусловием и цикла с постусловием.

 

 

Пример выполнения задания

 

{Подключаем модуль по работе с экраном}

uses crt;

{Описываем переменные}

var a,b,e,x,y,r:real;

    c,k:integer;

begin

    {======================

     Считаем первую функцию

     ======================}

 

    {Очищаем экран}

    clrscr;

    writeln('Первая функция');

    {Вводим исходные данные}

    write ('Введите a: ');

    readln (a);

    {Если a>0, то считаем х как сумму}

    if a>0 then

    begin

        {В начале сумма равна 0}

        x:=0;

        {В цикле суммируем значения ряда}

        for c:=0 to 3 do

            x:=x+(c+5*a)

    end

    {Если a не больше 0, то считаем произведение}

    else

    begin

        {В начале произведение равно 1}

        x:=1;

        {В цикле считаем произведение}

        for k:=2 to 6 do

            x:=x*(4*k-a);

    end;

    {Выдаем результаты на экран}

    writeln ('x= ',x:6:3);

    r:=4*sqr(cos(x*Pi/180))-abs(sqr(x));

    writeln ('R= ',r:6:3);

    {Делаем паузу для просмотра}

    writeln('Для продолжения нажмите любую клавишу...');      

    readln;

 

    {======================

     Считаем вторую функцию

     ======================}

 

    clrscr;

    writeln('Вторая функция');

    {Вводим отрезок}

    write ('Введите отрезок a,b: ');

    readln (a,b);

 

    {Цикл с предусловием}      

    {Выдаем заголовок и шапку таблицы}

    writeln('Цикл с предусловием');

    writeln ('   ┌─────────────────────┬────────────────────┐  ');

    writeln ('       Аргумент (х)         Функция (у)       ');

    writeln ('   ├─────────────────────┼────────────────────┤  ');

    {В начале аргумент равен началу отрезка}

    x:=a;

    {Пока аргумент не стал больше конца отрезка}

    while x<=b do

    begin

        {Считаем значение функции}

        y:=sin(x*Pi/180);

        {Выводим строку таблицы}

        writeln ('   │',x:14:3,'       │',y:14:3,'      │');

        {Увеличиваем аргумент на шаг}

        x:=x+0.2

    end;

    {Подчеркиваем таблицу}

    writeln ('   └─────────────────────┴────────────────────┘  ');

    writeln;

 

    {Цикл с постусловием}      

    {Выдаем заголовок и шапку таблицы}

    writeln('Цикл с предусловием');

    writeln ('   ┌─────────────────────┬────────────────────┐  ');

    writeln ('       Аргумент (х)         Функция (у)       ');

    writeln ('   ├─────────────────────┼────────────────────┤  ');

    {В начале аргумент равен началу отрезка}

    x:=a;

    repeat

        {Считаем значение функции}

        y:=sin(x*Pi/180);

        {Выводим строку таблицы}

        writeln ('   │',x:14:3,'       │',y:14:3,'      │');

        {Увеличиваем аргумент на шаг}

        x:=x+0.2

    {Если аргумент не превысил конец отрезка, то действие повторяется}

    until x>=b;

    {Подчеркиваем таблицу}

    writeln ('   └─────────────────────┴────────────────────┘  ');

    {Делаем паузу для просмотра}

    writeln('Для продолжения нажмите любую клавишу...');      

    readln;

 

    {======================

     Считаем третью функцию

     ======================}

    

     clrscr;

 

     writeln('Третья функция');

     {Вводим точность для расчета}    

     write('Введите точность: ');

     readln(e);

 

     {Цикл с предусловием}

     {обнуляем сумму}

     y:=0;

     {Задаем начальное значение счетчика цикла}

     i:=2;

     {Считаем значение первого члена ряда}

     a:=(sqrt(i)-1)/(sqr(i)-2*i+5);

     {Повторяем цикл пока очередной член ряда не станет меньше точности}

     while a>=e do

     begin

          {Наращиваем сумму}

          y:=y+a;

          {Печатаем промежуточные значения всех переменных}

          writeln(i:2,a:7:3,y:7:2);

          {Увеличиваем счетчик цикла}

          i:=i+1;

          {Считаем значение следующего члена ряда}

          a:=(sqrt(i)-1)/(sqr(i)-2*i+5);

     end;

     {Выводим результат}

     writeln('В цикле с предусловием y=',y:6:2);

 

     {Цикл с постусловием}

     {Обнуляем сумму}

     y:=0;

     {Устанавливаем счетчик цикла на единицу меньше начального значения}

     i:=1;

     {Вначале ни один член ряда не посчитан}

     a:=0;

     repeat

           {Наращиваем сумму}

           y:=y+a;

           {Выводим промежуточные значения переменных}

           writeln(i:2,a:7:3,y:7:2);

           {Увеличиваем счетчик цикла}

           i:=i+1;

           {Подсчитываем значение очередного члена ряда}

           a:=(sqrt(i)-1)/(sqr(i)-2*i+5);

     until a<e;

     {Выводим результат}

     writeln('В цикле с постусловием y=',y:6:2);

   

    {Делаем паузу для просмотра}

    writeln('Для продолжения нажмите любую клавишу...');      

    readln;

 

 

 

 end.

 

Решить самостоятельно:

 

1.      Вычислить сумму N первых натуральных чисел.

 

2.      Найти произведение n первых нечетных чисел.

 

3.      Даны натуральные числа от a до b. Напечатать те из них, которые делятся на 3, но не делятся на 5.

 

4.      Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту, для значений от 15 до 30, шаг 1 градус. Формула перевода из Цельсия в Фаренгейты F=(c*1.8)+32.

 

5.      Написать программу, которая выводит на экран таблицу умножения на 7.

 

6.      Найдите сумму 1 + ½ + 1/3 + …+ 1/N.

 

7.      Посчитать итоговую сумму денег на банковском вкладе за N лет при P процентах годовых.

 

8.      Составить программу вывода таблицы стоимости поездки на такси в рублях, в зависимости от расстояния (1 км стоит 1,2$; доллар равен курсу по ЦБ).

 

9.      Написать программу, которая выводит табличные значения функции у=|x|+2. Диапазон изменения аргумента  от – 4 до 4, приращение аргумента  = 0.5

 

10.  Провести табулирование функции:             на отрезке [a;b], если а = −2, h = 0,2, n = 11.