Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
а и п СИ.doc
Скачиваний:
57
Добавлен:
07.06.2015
Размер:
2.32 Mб
Скачать

Задание к лабораторной работе

Вычислите таблицу значений функции

для значений аргумента х в интервале от Хн до Хк с шагом X. Исходные данные приведены в таблице 4.

Таблица 4

Вар.

f1(x)

f2(x)

а

Хн

X

1

3,2

1,3

6,5

0,5

2

4,1

1,2

3,6

0,2

3

2,8

1,4

4,2

0,3

4

16

10

20

0,5

5

2,4

0,7

3,8

0,2

6

10,3

9

12

0,3

7

ax2+ex

2,1

0,8

3,6

0,2

8

5,4

2,3

8,9

0,4

9

1,7

0,4

2,8

0,3

10

14,2

11,6

1,6

0,2

11

1,1

0,2

1,8

0,2

12

5,4

2,2

7,3

0,3

13

2,5

1,9

3,8

0,2

14

5,1

3,3

6,9

0,3

15

0,7

0,6

0,9

0,05

16

3,8

1,2

5,3

0,4

17

2,7

1,8

4,2

0,3

18

2,1

0,4

3,9

0,2

19

3,4

0,5

4,6

0,5

20

asin(x3)+x

2,8

1,6

4,8

0,3

21

x4sin(ax)

4,2

2,8

5,6

0,2

22

ax+tg(ax)

2,6

0,5

3,5

0,5

23

6,3

2,5

7,5

0,5

24

5

1

10

0,5

25

0

2

/4

26

/4

-

/3

27

3,9

2,8

4,6

0,2

28

0,1

2

/6

29

-1

-4,2

3,8

0,5

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

Оператор switch, оператор break, оператор goto

(2 часа)

Цель работы: Научиться писать программы, используя операторы переключения switch в паре с оператором break, оператор перехода goto.

Теоретические сведения

Оператор варианта switch

Оператор выбора варианта switch заменяет несколько операторов ifelse. Обычно оператор switch используется тогда, когда требуется выбор и выполнение только одной последовательности операторов из нескольких возможных, хотя возможности оператора switch не ограничиваются этим случаем.

Синтаксис оператора switch:

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

{

case <константное_выражение_1>:

<оператор 1>

[case <константное_выражение_2>:

<оператор 2>]

...

[case <константное_выражение_n>

<оператор n>]

[default:

<оператор>]

}

После вычисления выражения типа int в ( в заголовке оператора switch) результат сравнивается последовательно с константными_выражениями, стоящими после зарезервированных слов case, которые вместе с константными_выражениями являются внутренними метками оператора, После константных_выражений обязательно ставится признак метки ":". Сравнение значения выражения начинается с самого верхнего константного_выражения и далее, пока не будет установлено их соответствие. Тогда выполняются операторы после соответствующей метки case, на которую передается управление. Для того чтобы прекратить последовательное выполнение операторов и выйти из оператора switch, необходимо после группы операторов, принадлежащих выбранному case, поставить оператор break. Если break отсутствует, то последовательно выполняются все операторы, а метки не учитываются.

Последовательность операторов, стоящих после слова default (умолчание), выполняется тогда, когда значение выражения не совпадает ни с одним константным_выражением. Пример показывает возможности оператора switch. Функция error_message выводит одно из трех сообщений в зависимости от значения, когда ошибки (параметр error_code).

Пример

void error_message(int error_code)

{ switch(error_code)

{ case 1: printf("\nсообщение1");break;

case 2: printf("\nсообщение2");break;

case 3: printf("\nсообщение3"); break;

default : printf("\n неверный код ошибки");

}

}

Пример

/* ЗАНЯТИЕ N 5

Выполнил студент группы ......... Петров Ю.В.

Применение операторов if, switch, тернарной операции (? :)

на примере простого калькулятора. Более сложные условия

для оператора switch приведены в тексте программы */

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main(void)

{ float a,b,rez;

int s,p,h;

char oper, flag=' ';

clrscr();

printf("\n Введите через пробел два числа: ");

scanf(" %f %f ", &a, &b);

printf(" Введите знак операции (+ - * /): ");

oper1: oper=getche();

switch(oper)

{ case '+': rez=a+b; break;

case '-': rez=a-b; break;

case '*': rez=a*b; break;

case '/': rez=a/b; break;

default : printf("\n Повторите ввод знака: ");

goto oper1;

}

printf("\n Результат операции: %5.2f\n",rez);

oper2: printf("\n Введите цифру в интервале (-9...+9) : ");

scanf("%d",&s); //Условия для оператора switch:

if(s<0) //если s=0, то - a++, p++, h++

{ s=abs(s); //если s=1, то - p++, h++

flag='-'; //если s=2, то - h++

} //если s=3, то - a--

else flag=' '; //если s=4, то - p--

if(s<=9) //если s=5, то - h--

//если s=6..7, то - a=1, p=1, h=1

switch(s) //если s=8, то - a=0, p=0, h=0

{case 0: a++;

case 1: p++;

case 2: printf("\tВы ввели %c%d",flag,s); h++; break;

case 3: printf("\tВы ввели %c%d",flag,s); a--; break;

case 4: printf("\tВы ввели %c%d",flag,s); p--; break;

case 5: printf("\tВы ввели %c%d",flag,s); h--; break;

case 6: case 7: printf("\tВы ввели %c%d",flag,s);

a=1; p=1; h=1; break;

case 8: printf("\tВы ввели %c%d",flag,s);

a=0; p=0; h=0; break;

default: printf("\tВы ввели %c%d \n\

на границе интервала",flag,s);

goto oper2;

}

else { printf("\tВы ввели число вне интервала (-9...+9)\n");

goto oper2;

}

printf("\n Результат switch: a=%5.2f p=%2d h=%2d\n",a,p,h);

getch();

if (p==0) {b=10; a=10;}

else {b+=b/p; a+=a/p;}

printf("\n Результаты вычислений: a=%5.2f b=%5.2f",a,b);

rez=(b<a)?b:a;

printf("\n Результат тернарной операции: res=%5.2f",rez);

getch();

return 0;

}

/*Введите через пробел два числа: 54 32

Введите знак операции (+ - * /): /

Результат операции: 1.69

Введите цифру в интервале (-9...+9) : -9

Вы ввели -9 на границе интервала

Введите цифру в интервале (-9...+9) : -6

Вы ввели -6

Результат switch: a= 1.00 p= 1 h= 1

Результаты вычислений: a= 2.00 b=64.00

Результат тернарной операции: res= 2.00 */

Соседние файлы в предмете Алгоритмизация и программирование