Инфоурок Информатика Другие методич. материалыОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С РАЗВЕТВЛЕНИЕМ

ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С РАЗВЕТВЛЕНИЕМ

Скачать материал

ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С РАЗВЕТВЛЕНИЕМ

 

Цель:

- Ознакомиться с понятием составного оператора, оператором завершения программы и вводом данных с клавиатуры;

  - Изучить структуру оператора условного перехода (IF...THEN...ELSE) и оператора безусловного перехода (GOTO) и приобрести навыки составления разветвляющихся программ с их использованием.

 

Пример1.

 

Вычислить и вывести на печать корни квадратного уравнения  ax2+bx+c=0 ,

выполнив проверки :           - если а=0 , то выдать сообщение и остановить программу;

- если дискриминант уравнения отрицательный, то выдать

сообщение и выйти из программы.

Коэффициенты уравнения ввести с клавиатуры по запросу программы.

 

Программа расчета :

 

Program Pr1; LABEL

Start;                    {Описание метки}

VAR

a,b,c: real;              {Описание типов коэффициентов}

x1,x2,d: real;

 BEGIN

Write('Задайте коэффициенты уравнения a,b,c > ');

Readln(a,b,c);            {Ввод коэффициентов с клавиатуры}

IF a<>0 THEN GOTO Start;  {Проверка условия а<>0}

Writeln('Это не квадратное уравнение (а<>0)');

HALT;                     {Завершение программы}

Start: d:=sqr(b)-4*a*c;   {Вычисление дискриминанта}

   IF d>0 THEN            {Проверка положительности дискриминанта}

           begin

x1:=(-b+sqrt(d))/(2*a);   {Вычисление корней уравнения}

x2:=(-b+sqrt(d))/(2*a);

        Writeln('Корни уравнения x1=',x1,' x2=',x2);

        Readln;

        HALT;             {Завершение программы}

 End

               ELSE

 Writeln('Kopни мнимые');

                  Readln; {(Ожидание нажатия клавиши ввода}

  END.

 

Результаты расчета :

 

Задайте коэффициенты уравнения а,b,с > (введем, например) 1_-7_10 <ввод>

Корни уравнения x1=5.0000000000E+00  x2=2.0000000000E+00

              В случае мнимых корней:

Задайте коэффициенты уравнения a,b,c > (введем, например) 1_-7_15 <ввод>

Корни мнимые.

 


Пример 2.

 

Пусть даны два числа. Если первое больше второго по абсолютной величине, то необходимо уменьшить первое в пять раз. Иначе оставить числа без изменения.

 

Программа:

 

     Program pr2 (input, output);

           var x, y: real;

           begin read (x, y);

            if abs (x) > abs (y) then x:= x / 5;

            write (x, y);

       end.

Пример 3.

 

Даны три числа x, y, z. Требуется найти max (x, y, z) - наибольшее из этих чисел (среди x, y, z могут быть и равные числа: например, max (3, -1, 3) = 3, max (7, 7, 7) = 7 и т. д.).

 

Программа:

 

     Program M (input, output);

           var x, y, z, t: real;

           begin read (x, y, z); t:=x;

            if t < y then t:= y;

            if t < z then t:= z; write (t);

end.

Задание:

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

Даны действительные числа  a, b, c, d. Если a £ b £ c £ d, то каждое число заменить наибольшим из них; если a > b > c > d, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.

 

 

ФУНКЦИИ И ПРОЦЕДУРЫ

Цель :

-          Ознакомиться с понятием процедуры и особенностями процедуры-функции;

-          Ознакомиться с обменом данными между основной программой и процедурой;

-          Изучить различия между формальными и фактическими параметрами между глобальными и локальными описаниями переменных;

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

Пример 1.

 

Написать процедуру-функцию, которая возводит произвольное число b в произвольную вещественную степень X, и использовать ее в программе для вычисления суммы k членов обобщенного гармонического ряда :

 . Параметры k и a вводить по запросу программы.


 

Программа расчета :

 

Program Pr1;                            

      VAR                     {a,res,i,k – глобальные переменные}

            a,res : real;     {Переменные для показателя степени и суммы сленов ряда}

            i,k: integer;     {Переменная цикла и число членов ряда}

Function  Pocfun (b,x:real) : real; {b и x – формальные параметры-значения}

Begin             {Начало процедуры функции}

                  If b>0 then POCFUN:=exp(x*ln(b))

                  Else

                  If b<0 then POCFUN:=exp(x*ln(abs(b))) {Показ. Ф-ция. Определена для b>0}       

                  Else

                         If x=0 then POCFUN:=1

                        Else POCFUN:=0

            End;

      BEGIN                                    {Начало основной программы}       

            Res:=0;

            Write('Введите показатель степени = '); 

            Readln(a);

            Write('Введите число членов = ');

            Readln(k);

            FOR i:=1 to k DO

                  Res:=res+1/POCFUN(i,a);       {i и a фактические параметры}

            Writeln('res = ',res);

            Readln;

      END.

Результаты расчета:

 

Введите показатель степени = 1.765 <ввод>

Введите число членов ряда = 10 <ввод>

Res = 1.7209260727E+00

Пример 2.

 

Заданы координаты вершин плоского выпуклого шестиугольника (x1,y1),(x2,y2),…,(x6,y6). Определить периметр и площадь этого многоугольника. Для определения длин сторон использовать процедуру вычисления расстояния между двумя досками. Для определения площади многоугольника использовать процедуру вычисления площади треугольника по заданным координатам его вершин.

 

Программа расчета:

 

Program Pr2;

      CONST                               {Ввод координат вершин многоугольника}

            x :array[1..6]of real = (1,1,4,7,7,4);         {в виде одномерных массивов констант}

            y :array[1..6]of real = (1,4,6,6,3,1);

      VAR                           {edge,perim,art,arpol,i – глобальные переменные}

            edge,perim : real;                  {Сторона и периметр многоугольника}

            art,arpol : real;             {Площади треугольника и многоугольника}

            i : integer;                  {Переменная цикла}

                              {Процедура DIST вычисляет расстояние между двумя

                              точками (x1,y1); (x2,y2) и присваивает его параметру len}

      PROCEDURE DIST(x1,y1,x2,y2 : real; var len : real);  {x1,y1,x2,y2 – формальные параметры значения, а len – параметр-переменная}

            begin

                  len:=sqrt(sqr(x2-x1)*sqr(y2-y1)); end;

      PROCEDURE AREA(x1,y1,x2,y2,x3,y3 : real; var st : real);

            var p : real;                       {Полупериметр  - локальная переменная}

                  begin

                        p:=(sqrt(sqr((x2-x1)+(sqr(y2-y1))+sqrt(sqr((x3-x2)+(sqr(y3-y2))+sqrt(sqr((x3-x2)+(sqr(y3-y2)))/2))))));

st:=sqrt(p*(p-sqrt(sqr(x2-x1)+sqr(y2-y1)))*(p-sqrt(sqr(x3-x2)+sqr(y3-y2)))*(p-sqrt(sqr(x3-x1)+sqr(y3-y1))));

end;

      BEGIN

            Perim:=0; arpol:=0;                      {Начало основной программы}

FOR i := 1 to 6 DO                       {Начало цикла     вычисления периметра}

begin

if i<=5 then

DIST(x[i],y[i],x[i+1],y[i+1],edge)

      else         DIST(x[i],y[i],x[1],y[1],edge);

perim:= perim+edge;

         end;                                  {Конец цикла вычисления периметра}

writeln('Периметр многоугольника = ',perim);

FOR i := 1 to 4 DO                                          {Начало цикла    вычисления площади}

begin

AREA(x[1],y[1],x[i+1],y[i+1],x[i+2],y[i+2],art);

arpol := arpol+art;

end;                                                  {Конец цикла     вычисления площади}

writeln( 'Площадь многоугольника = ',arpol);

END.

Результаты расчета :

 

Периметр многоугольника = 1.9211102551Е+01

Площадь многоугольника = 2.4000000000Е+01

 

Пример 3.

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

 

Программа:

 

Program pr3 (input, output);

      var AB, BC, CD, DA, AC, s1, s2: real;

      procedure str3 (var a, b, c, s: real);

      var p: real;

      begin p := (a + b + c)/2;

           s := sqrt (p*(p - a)*(p - b)*(p - c))

      end;

      begin read (AB, BC, CD, DA, AC);

str3 (AB, BC, AC, s1);

str3 (CD, DA, AC, s2)

       end.


 

Пример 4.

 

Для вычисления величин  и  может быть использована процедура.

 

Программа:

 

     Procedure pr4 (a: T;   var s, t: real);

           var i: integer;   u: real;

           begin

                 s := sqr (a[1]);   t := abs (a[1]);

                 for i := 2 to n do

                       begin s := s + sqr (a[i]);

                             u := abs (a[i]);

                             if u > t then t := u;

                       end;

           end.

Пример 5.

 

       Программа вычисления площади четырехугольника:

 

Программа:

 

     Program pr5 (input, output);

           var AB, BC, CD, DA, AC: real;

           function triangl (a, b, c: real): real;

                 var p: real;

                 begin p := (a + b + c)/2;

                       triangl := sqrt (p*(p - a)*(p - b)*(p - c));

                 end;

           begin read (AB, BC, CD, DA, AC);

                 write (triangl(AB, BC, AC) + triangl (CD, DA, AC))

          end.

Пример 6.

Пусть даны действительные s, t,  (n - некоторая константа) и пусть требуется вычислить , где . Программа  (считаем,  что n = 7).

 

Программа:

 

     Program pr6 (input, output);

           const n = 7;

           type T = array[0..n] of real;

           var a: T;   s, t, u: real;   i: integer;

           function p (x: real): real;

                 var y: real;   i: integer;

                 begin y := a[n];

                       for i := n - 1 downto 0 do

                             y := y*x + a[i];

                       p := y;

                 end;

           begin read (s, t);

                 for i := 0 to n do read (a[i]);

                 u := p (0,2);

                 write (u - p (t) + sqr (p(s -t)) - 1,7*u*u*u);

          end.

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С РАЗВЕТВЛЕНИЕМ"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист по коллекторской деятельности

Получите профессию

Методист-разработчик онлайн-курсов

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

ОРГАНИЗАЦИЯ ВЫЧИСЛЕНИЙ С РАЗВЕТВЛЕНИЕМ

Цель:

- Ознакомиться с понятием составного оператора, оператором завершения программы и вводом данных с клавиатуры;

- Изучить структуру оператора условного перехода (IF...THEN...ELSE) и оператора безусловного перехода (GOTO) и приобрести навыки составления разветвляющихся программ с их использованием.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 662 680 материалов в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 14.02.2016 908
    • DOCX 68 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Бамбуркин Сергей Петрович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Бамбуркин Сергей Петрович
    Бамбуркин Сергей Петрович
    • На сайте: 8 лет и 3 месяца
    • Подписчики: 2
    • Всего просмотров: 8673
    • Всего материалов: 2

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Няня

Няня

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Теоретические и методологические основы преподавания информатики с учётом требований ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 151 человек из 49 регионов
  • Этот курс уже прошли 1 717 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания в профессиональном образовании

Преподаватель информатики

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 21 региона
  • Этот курс уже прошли 151 человек

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 618 человек из 77 регионов
  • Этот курс уже прошли 956 человек

Мини-курс

Эффективные стратегии успешного взаимодействия: от понимания до саморазвития

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

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

2 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 23 человека из 14 регионов
  • Этот курс уже прошли 19 человек

Мини-курс

Развитие предметно-практических действий, игровых навыков и математических представлений у детей раннего возраста

6 ч.

780 руб. 390 руб.
Подать заявку О курсе