Лабораторный практикум по информатике. Гурьяшова Р.Н - 32 стр.

UptoLike

32
5.
Листинг C-программы
Внимание.
При вводе программы следует иметь в виду, что C различает
регистр букв, т.е., «x» и «X» − это две разные переменные.
//
Табулирование функции с различным шагом
#
include<stdio.h> // Файлы заголовков
#include<conio.h>
#include<math.h>
void main()
{
double s = 0,xmin,xcr,xmax; // Объявление данных
double dx,dx1,dx2,x,y;
// Ввод данных с клавиатуры
по запросу с экрана,
//
числа при вводе разделяются запятой
(" Input XMIN,XCR,XMAX,DX1,DX2 ?\n ");
scanf
("%f,%f,%f,%f,%f",&xmin,&xcr,&xmax,&dx1,&dx2);
x = x
min;
dx = dx1;
do // Цикл с постусловием
{
y = sinh(x)-sqrt(x);
s + = y; // Вычисление суммы S
printf(" X = %.1lf Y = %6.3lf \n",x,y);
if(abs(x - xcr)<=0.001) // Если X = Xср
{
printf("-------------------- \n");
dx = dx2;
}
x = x + dx; // Увеличение аргумента на шаг
}
while(x<=xmax + dx/3); // Конец цикла
printf(" R e s u l t \n ");
// Определение знака суммы S
if(s > 0) // Если S > 0
printf(" Sum: S = %.3lf S > 0 ",s);
else // Иначе,если S < 0
printf(" Sum: S = %.3lf S < 0 ",s);
getch();
return;
}
Примечание.
При выполнении оператора while (x<=xmax) в результате
накопления ошибки может произойти «потеря» значения функции при X = X
max
.
Поэтому значение xmax следует увеличить, например: while (x<=xmax + dx/3).
                      5. Листинг C-программы
    Внимание. При вводе программы следует иметь в виду, что C различает
регистр букв, т.е., «x» и «X» − это две разные переменные.
// Табулирование функции с различным шагом
#include // Файлы заголовков
#include
#include
void main()
{
 double s = 0,xmin,xcr,xmax; // Объявление данных
 double dx,dx1,dx2,x,y;
// Ввод данных с клавиатуры по запросу с экрана,
// числа при вводе разделяются запятой
printf(" Input XMIN,XCR,XMAX,DX1,DX2 ?\n ");
scanf("%f,%f,%f,%f,%f",&xmin,&xcr,&xmax,&dx1,&dx2);
x = xmin;
 dx = dx1;
 do // Цикл с постусловием
   {
     y = sinh(x)-sqrt(x);
     s + = y; // Вычисление суммы S
     printf(" X = %.1lf Y = %6.3lf \n",x,y);
     if(abs(x - xcr)<=0.001) // Если X = Xср
       {
         printf("-------------------- \n");
         dx = dx2;
       }
     x = x + dx; // Увеличение аргумента на шаг
   }
  while(x<=xmax + dx/3); // Конец цикла
 printf("        R e s u l t \n ");
// Определение знака суммы S
  if(s > 0) // Если S > 0
      printf(" Sum: S = %.3lf     S > 0 ",s);
 else // Иначе,если S < 0
      printf(" Sum: S = %.3lf     S < 0 ",s);
getch();
return;
}
    Примечание. При выполнении оператора while (x<=xmax) в результате
накопления ошибки может произойти «потеря» значения функции при X = Xmax.
Поэтому значение xmax следует увеличить, например: while (x<=xmax + dx/3).

                                   32