Главная страница
Навигация по странице:

  • ___________________________________________________________________________

  • Лабораторная работа № 6 РЕЖИМ ПРОГРАММИРОВАНИЯ: ОРГАНИЗАЦИЯ РАЗВЕТВЛЕНИЙ И ЦИКЛОВ

  • Организация разветвлений с одним условием.

  • Организация разветвлений с несколькими условиями.

  • ЛР6. Лабораторная работа 6 режим программирования организация разветвлений и циклов ст гр. Икт801 Каримов Рустам


    Скачать 124.18 Kb.
    НазваниеЛабораторная работа 6 режим программирования организация разветвлений и циклов ст гр. Икт801 Каримов Рустам
    Дата21.12.2020
    Размер124.18 Kb.
    Формат файлаdocx
    Имя файлаKarimov_lab06.docx
    ТипЛабораторная работа
    #162538

    ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

    Федеральное государственное бюджетное образовательное

    учреждение высшего образования

    «Санкт-Петербургский государственный университет телекоммуникаций

    им. проф. М. А. Бонч-Бруевича»

    ___________________________________________________________________________

    Кафедра радиосистем и обработки сигналов
    Дисциплина «Прикладные пакеты моделирования»

    Лабораторная работа № 6

    РЕЖИМ ПРОГРАММИРОВАНИЯ: ОРГАНИЗАЦИЯ РАЗВЕТВЛЕНИЙ И ЦИКЛОВ

    Выполнил: ст. гр. ИКТ-801

    Каримов Рустам

    Проверил: доцент А.С. Леонюк

    _____________________

    Санкт-Петербург

    2020
    1. Организация разветвлений с одним условием.

    Содержимое function-файла(y1.m):

    function y1 = y1(a, b)

    x=[-4:0,1:4];

    if and (a!= 0, b!= 0)

    y1 =a*sin(b*x);

    plot (x,y1)

    grid

    title ('y1=a*sin(b*x)');

    else

    y1 = (a+2)*x +b;

    plot (x,y1)

    grid

    title ('y1=(a+2)*x+b');

    end

    endfunction

    Содержимое командного окна:

    >> p=y1(0,0);

    >> p=y1(3,-1);

    Пояснение:

    2. Организация разветвлений с несколькими условиями.

    Содержимое function-файла(y2.m):

    function y2 = y2(a, b)

    x = [-4:0,1:4];

    if and (a!= 0, b!= 0)

    y2 =a*sin(b*x);

    plot (x,y2)

    grid

    title ('y2=a*sin(b*x)');

    elseif and(a>-2,b>0)

    y2 = (a+2)*x +b;

    plot (x,y2)

    grid

    title ('y2=(a+2)*x+b');

    else

    y2=(2-a)*(x.^2) + b;

    plot (x,y2)

    grid

    title ('y2=(2-a)*(x.^2) +b');

    end

    endfunction

    Содержимое командного окна:

    >> z=y2(0,0);

    >> z=y2(-3,8);

    >> z=y2(0,1);





    Пояснение:

    • if elseif else использованы для организации разветвления

    3. Организация цикла с заранее известным числом повторений.
    Содержимое function-файла(Fibonacci.m):

    function F=Fibonacci(i)

    F1=0;

    F2=1;

    disp(strcat(num2str(F1,F2)))

    for i=3:10

    F=F1+F2;

    F1=F2; F2=F;

    disp(strcat(num2str(F)))

    end

    endfunction

    Содержимое командного окна:

    >> F=Fibonacci

    0

    1

    2

    3

    5

    8

    13

    21

    34

    F = 34

    Пояснение:

    4.Организация цикла с заранее неизвестным числом повторений.

    Содержимое function-файла(GeomProgression.m):

    function [s,s1,s2] = GeomProgression(q)

    n=0;

    s0=0;

    q=input('q= ')

    e=input('e= ')

    while e>1e-4

    s=s0+q.^n;

    e=abs(s-s0);

    s0=s;

    n=n+1;

    end

    s1=1/(1-q)

    s2=abs(s-abs(s1))

    disp(strcat(['s= ', num2str(s),'s1= ', num2str(s1), 's2= ', num2str(s2)]))

    endfunction

    Содержимое командного окна:

    >> GeomProgression

    q= 0.56

    q = 0.56000

    e= 57

    e = 57

    s1 = 2.2727

    s2 = 0.00011905

    s= 2.2726s1= 2.2727s2= 0.00011905

    ans = 2.2726

    Пояснение:

    • while использован для организации цикла

    • s,s1,s2-выходные параметры, q,e-входные

    5. Организация разветвлений в зависимости от значения выражения.

    Содержимое function-файла(DifferentFunctions.m):

    % script DifferentFunctions

    clc

    clear

    disp('0-y1')

    disp('1-y2')

    disp('2-Fibonacci')

    disp('3-GeomProgression')

    variant=input('variant= ');

    switch (variant)

    case 0

    disp('Исполняется файл y1')

    a=input('a= ')

    b=input('b= ')

    y=y1(a,b);

    case 1

    disp('Исполняется файл y2')

    a=input('a= ')

    b=input('b= ')

    y=y2;

    case 2

    disp('Исполняется файл Fibonacci')

    y=Fibonacci;

    case 3

    disp('Исполняется файл GeomProgression')

    y=GeomProgression;

    otherwise

    disp('Неправильный ввод')

    end

    Содержимое командного окна:

    0-y1

    1-y2

    2-Fibonacci

    3-GeomProgression

    variant= 3

    Исполняется файл GeomProgression

    q= 0.5

    q = 0.50000

    e= 57

    e = 57

    s1 = 2

    s2 = 0.000061035

    s= 1.9999s1= 2s2= 6.1035e-05

    0-y1

    1-y2

    2-Fibonacci

    3-GeomProgression

    variant= 0

    Исполняется файл y1

    a= 2

    a = 2

    b= 3

    b = 3

    0-y1

    1-y2

    2-Fibonacci

    3-GeomProgression

    variant= 6

    Неправильный ввод


    Пояснение:

    • switch использован для организации разветвления

    • при организации разветвления проверяется значение выражения

    • переменная variant может принадлежать к типу данных int


    написать администратору сайта