Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
88
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
      1. Пример выполнения лабораторной работы «Вычисление значения функции»

ПРИМЕР 20:

Задание

Дано: k,l,m Если k+l≠m вычислить и напечатать Если k+l=m вычислить и напечататьЕсли r < 0 вычисления закончить Если r = 0 напечатать “r=0” Если r > 0 вычислить и напечатать

Решение

Блок-схема

Псевдокод

Ввод k

Ввод l

Ввод m

Pi=3.14;

Если k+l≠m вычислить r = sqrt ( pow ( k , 3 ) + 1 ) - m печать r

Если r < 0 вычисления закончить Если r = 0 печать “r=0” Если r > 0 вычислить d = 1 / tan ( 2 * l ) – 3 * sin ( m )

Печать d

Если k+l=m вычислить z = sin ( Pi*pow (l , 3)) + pow ( m , 3 )

Печать z

Программа

# include <stdio.h>

# include <math.h>

# include <conio.h>

#define Pi 3.14

void main ( )

{ float k, l, m, r, d, z;

clrscr( );

printf(“\n k=”); scanf(“%f”,&k);

printf(“\n l=”); scanf(“%f”,&l);

printf(“\n m=”); scanf(“%f”,&m);

if (k+l ! = m) { r = sqrt ( pow ( k , 3 ) + 1 ) – m;

printf(“\n r=% .2 f”, r);

if ( r > 0 ) { d = 1 / tan ( 2 * l ) – 3 * sin ( m );

printf(“\n d=%f”, d);

}

else if (r = = 0) puts (“\n r=0”);

}

else{ z = sin ( Pi*pow ( l , 3 ) ) + pow ( m , 3 );

printf(“\n z=%f”, z);

}

puts (“Нажмите любую клавишу. Конец программы “);

getch( );

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/

/*11*/

/*12*/

/*13*/

/*14*/ /*15*/ /*16*/ /*17*/ /*18*/ /*19*/ /*20*/ /*21*/

/*22*/

/*23*/

Пояснение

Первая строка - это директива препроцессора, подключающая к программе средства связи с библиотечными функциями обмена ввода-вывода.

Вторая строка - это директива препроцессора, подключающая к программе средства связи с библиотечными математическими функциями.

Третья строка - это директива препроцессора, подключающая к программе средства связи с библиотечными функциями обмена консольного ввода-вывода.

В строке 4 в результате директивы определения осуществляется связывание, а затем замена символа Рi на значение 3.14.

Пятая строка является заголовком функции с именем main. Спецификатор типа - void - указывает, что функция main в данной программе не возвращает никакого значения. Вся дальнейшая программа представляет собой тело функции и заключена в фигурные скобки.

В строке 6 определены переменные действительного типа, используемые в программе.

В строке 7 используется функция очистки экрана, являющаяся функцией обмена консольного ввода-вывода.

В строках 8,9 и 10 осуществляется ввод с клавиатуры действительных переменных k, l и m.

В строке 11 находится оператор условия. Используется полная форма записи (в 18 строке находится ветвь «иначе»). Группа действий, относящихся к ветви «да» взята в фигурные скобки (до строки 17). В случае выполнения условия в строке 11, будут выполняться следующие действия:

Строка 11 – вычисление значения переменной r.

Строка 12 – вывод значения переменной r действительного типа на экран. Для вывода числа указано поле, ограничивающее при выводе только 2 знака после запятой.

Строки 13- 17 –Т.к. рассматривается возможность, что переменная r может принимать три вида значений (положительное, отрицательное и равное нулю), используется вложенная форма записи оператора условия.

В строках 13 и 15 указана группа операторов, прописывающая действия, если r примет положительное значение – вычисление значения d и вывод значения d на экран.

В строке 16 указано действие, выполняемое в том случае, если r примет значение равное нулю – вывод на экран комментария r=0”.

Если r примет отрицательное значение – вычисления нужно прекратить. Поэтому ветвь со вторым оператором else осталась пустой.

В 18 строке раскрывается ветвь «иначе» для условия из строки 11.

В 18 -20 строках вычисляется значение переменной z и её значение выводится на экран.

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

В 22 строке находится функция неформатированного ввода одного символа, используемая для приостановки программы до нажатия любой клавиши.

ПРИМЕР 21:

Задание

Дано: a,b.

Если вычисления закончить. Еслинапечатать «»

Если вычислить.

где изменяется от –1 до 3 с шагом 0,3.

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

Решение

Блок-схема

Псевдокод

Ввод а

Ввод b

Если вычисления закончить

Если печать «»

Если k=0

Нц

от x=-1 до 3 шаг 0.3

Если a=2 y=pow(tan(x+5),2)

Если a<2 y=pow(x,2)-8*x

Если a>2 y=1/sin(2*x)

Если y<0 печать y

Если y>0 k=k+1

кц

печать k

Программа

# include <stdio.h>

# include <stdlib.h>

# include <math.h>

# include <conio.h>

void main ( )

{ float a, b, x, y;

int k;

clrscr( );

printf(“\n а=”); scanf(“%f”,&a);

printf(“\n b=”); scanf(“%f”,&b);

if (a= = b) printf (“Нажмите любую клавишу. Конец программы “);

else if (a> b) printf (“\n a>b”);

else { k=0;

for(x=-1; x<=3; x+=0.3)

{ if (a= = 2) y= pow(tan(x+5),2);

else if (a<2) y=pow(x,2)-8*x;

else y=1/sin(2*x);

if(y<0) printf(“\n При x=%5.2f y=%f”, x, y);

else if(y>0) k++;

}

printf(“\n Количество значений переменной y>0 равно %d”,k);

}

getch( );}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/

/*11*/

/*12*/

/*13*/

/*14*/ /*15*/ /*16*/ /*17*/ /*18*/ /*19*/ /*20*/ /*21*/

/*22*/

/*23*/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]