Программирование разветвленных алгоритмов. 


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



ЗНАЕТЕ ЛИ ВЫ?

Программирование разветвленных алгоритмов.



Операторы передачи управления

 

Структура условного оператора передачи управления:

if (<выражение>) <оператор 1> else <оператор 2>;

        (Если)                                        (иначе) - ключевые слова,

где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE);

<оператор> - любой оператор языка СИ, заканчивается точкой с запятой.

Сокращенная форма условного оператора:

if (<выражение>) <оператор>;

Оператор безусловного перехода: goto <идентификатор-метка>;

Меткой является идентификатор. Метка размещается перед оператором С/С++, к которому выполняется переход и отделяется двоеточием (:).

Пример 1. Составить программу для начисления базовой зарплаты согласно следующему правилу: если стаж работы сотрудника менее трех лет, то зарплата равна 100$, при стаже работы от трех до 5 лет - 150$, свыше 5 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 20 лет, она составляет 300$.

 Для программирования решения этой задачи определим математичес­кую формулировку задачи:

       100,                 если ST < 3;

ZP=            150,                 если 3 ≤ST £ 5;

150+ (ST -5)*10, если 5 < ST≤ 20;

300,                если ST > 20;

где ZP - зарплата, ST - стаж работы. Далее построим СА (рис.2,а), ей соответствует следующая программа:

#include <stdio.h>

#include <conio.h>

Void main ()

{   int ST; // ST - стаж (байтовый (целый) тип беззнаковый)

              float ZP;                  // ZP - зарплата (плавающий тип)

printf ("\n Введите стаж ");

scanf ("%d",&ST);

if (ST<3) ZP = 100;

          else if (ST<5) ZP = 150;

              else if (ST>=20) ZP=300;

                  else ZP=150+(ST- 5)*10;

printf ("\n Зарплата = %10.2f$\n",ZP);

getch();

}

Оператор выбора switch позволяет в зависимости от значения ка­кой-либо переменной или выражения (ключа выбора) выполнить те или иные операторы, помеченные соответствующими константами.

Структура оператора:

switch (<выражение>)

{       

       case<константа 1>: <группа операторов 1>;

case <константа 2>: <группа операторов 2>;

...

case <константа N>: <группа операторов N>

    default: <операторы>;


                     }

где <выражение> - выражение (переменная) любого порядкового типа;

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

<оператор> - произвольный оператор C/C++.

 

Пример 2.Напечатать в зависимости от числа углов название фигуры (треугольник, четырехугольник, пятиугольник, шестиугольник, многоугольник).

 Вариант реализации задачи с применением оператора выбора представлен СА (рис.2,б) и следующей программой:

#include <stdio.h>

#include <conio.h>

Void main ()

{                                                               

int T;                                        // T – число углов

clrscr();                                  // очистка экрана

printf ("Введите число углов ");

scanf ("%d",&T);

Switch (T)

{

     case 1: case 2: printf ("Это не фигура\n ");       break;

     case 3: printf ("С %d углами - треугольник\n ", T);       break;

     case 4: printf ("С %d углами - четырехугольник\n ", T);  break;

     case 5: printf ("С %d углами - пятиугольник\n ", T);  break;

     case 6: printf ("С %d углами - шестиугольник\n ", T);  break;

   default: printf ("С %d углами - многоугольник\n ", T);

   }

getch();

}

Задание 1 (программа 2_1)

Вычислить значение функции в зависимости от интервала, в который попадает вводимый с клавиатуры аргумент:

 

1. Для t [0,3],                a t2 ln t            при 1 ,

где a=-0.5,b=2       z =         1                      при t<1,

                                              e a t cos b t       при t>2,   

 

2. Для x [0,4],                                       при x>2,

где а=2.3               f =     х                         при 0.3< x £ 2,

                                      cos(x-a)              при x ,

 

3. Для x [0,7],             (a+b)/(ex+cosx)    при 0 £ x<2.3,

где a=-2.7,b=-0.27  z =   (a+b)/(x+1)          при 2.3£ x<5, 

                                              ex+sinx                при 7 ,

 

4. Для i [7,12],                   a i4 + b i              при i< 10,

где a=2.2,b=0.3.      y =    tg(i + 0.5)           при i = 10,

                                                 e2i +           при i >10,

 

5. Для x [0.9,5],         x2 - 7/x2                  при x<1.3,

где a=1.5                y =    ax3 + 7          при 1.3 £ x<3,

                                     lg(x + 7 )         при x ,                                   

 

6. Для t [-1.4],                                при t<0.1,

где a=2.1,b=0.37.    z =     at + b                 при 0.1£ t< 2,

                                                        при t ,

7. Для x  [0,6],                 a esin x +2.5       при x<0.3,

где a=1.5.            y =     ecos x + a                 при 0.3£ x<4,

 

                                                      (sin x)/ (a + ex)         при x ³ 4,

8. Для x [1,2],     y =           a/x + b x2 - c          при x ,

где a=1.8,b=-0.5, c=3.5             (a + bx)/        при x>1.2,  

  

9. Для t [1,5],              t              при t>a,

где a=2.5                 z =   t sin a t                при t=a,

                                               e-at cos a t           при t<a,

 


10. Для x [0,4],                     e-bx sin b x           при x<2.3,

где a=1,b=3.              y=    сos bx                 при 2.3 ,

                                                e-ax cos b x          при x

 

11. Для t [0.5,3],                 a t2 – b              при t<a,

где a=1.3,b=6.5        z=    a - b               при a

                                              a t2/3 -                при t>b,

 


12. Для x [0,2],                  |e-2x sin bx|          при   x >1,

где b=-2.9               y =    cos bx                 при x = 1,

                                               e-x cos bx            при x < 1,

 


13. Для x [0.5,2]                 sin (cos a x)        при x >1,

где  a=-0.8                z =    tg ax                   при x = 1,

                                                        a2 x                     при x < 1,

 

14. Для x [1,2],           ln bx - 1/(bx+1)       при x < 1.3,

где b=1.3.                  y =  bx + 1                при 1.3 ³ x ³ 1.7,

                                                 ln bx +1/(bx+1)    при x > 1.7,

 


15. Для x [-1,1],                   ax2+bx2/3           при x<0.1,   

где a=2.5,b=-0.9.         z= a x2                       при x=0.1,

                                               b x2/3                  при x>0.1.

 

16. Ввести координаты точки (x, y). Напечатать, в каком квадранте или на какой оси координат находится эта точка.

17. Ввести радиусы R1, R2 и высоту. Вычислить объем усеченного конуса: , где S- площадь оснований. Если R1 = R2 - объем и площадь цилиндра, если R1 = 0 или R2 = 0 - объем (hπr2) и площадь πr() поверхности конуса.

18. Ввести с клавиатуры цифру. Определить, какой системе счисления она может принадлежать.

19. Ввести число. Определить, делится ли оно нацело на два, три или пять.

20. Ввести a, b, h. Если h=0, вычислить площадь прямоугольника; при a = b, найти площадь квадрата; в противном случае подсчитать площадь трапеции.

Задание 2 (программа 2_2)

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

2. По цифре, введенной с клавиатуры, напечатать название этой цифры.

3. С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число - понедельник.

4. Ввести число и номер месяца. Напечатать дату прописью.

5. Идет k секунда суток. Вычислить, сколько прошло часов и полных минут к этому моменту, при этом согласовать со значением слова (час, часа, часов, минута, минуты, минут).

6. В зависимости от номера (N) типа фигуры, организовать ввод необходимых данных и вычислить при N = 1 - площадь круга, N = 2 - объем шара (4/3πR3), N=3 -объем цилиндра, N = 4 - площадь поверхности сферы 4πr2.

7. Ввести число N (0 ≤ N ≤ 15). Определить и напечатать шестнадцатеричную цифру, ему соответствующую.

8. Для целого числа К (1…99) напечатать фразу «Мне К лет», при определенных значениях К слово «лет» заменить словом «год» или «года».

9. В зависимости от номера (N) типа фигуры, организовать ввод необходимых данных и вычислить при N = 1 - площадь прямоугольника, при N=2 - площадь параллелограмма, при N = 3 - площадь трапеции 1/2(a+b)h. В последнем случае напечатать: является ли трапеция параллелограммом или ромбом.

10. Перевести  число 0 ≤ х ≤ 31 в шестнадцатеричную систему счисления.

11. Напечатать прописью остаток от деления любого целого числа на пять.

12. По введенному номеру напечатать нужный цвет в радуге.

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

14. Разработайте программу, которая доказывает, что квадрат двузначного числа k5 (последняя цифра - 5), равен k * (k + 1) * 100 + 25 (т.е. может быть получен умножением старшей цифры k на следующую по порядку и припиской «25»). Например, 35 * 11 = 3*4*100 + 25.

Для задания 2 номер варианта определяется остатком от деления индивидуалного варианта на число 12.

Лабораторная работа 3



Поделиться:


Последнее изменение этой страницы: 2021-07-18; просмотров: 134; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.36.30 (0.027 с.)