Сызыктык және тармактаушы алгоритмдер
Автор: iamaltynbek • Март 15, 2021 • Реферат • 1,191 Слов (5 Страниц) • 331 Просмотры
РГР-№1
СЫЗЫҚТЫҚ ЖӘНЕ ТАРМАҚТАУШЫ АЛГОРИТМДЕР
Мысал: [pic 1],
формуласын x=2,444, y=0,00869, z=-130 болғанда есептеңіз.
Программа нәтижесі: -0.49871 болу керек.
Программа мәтіні:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define x 2.444
#define y 0.00869
#define z -130.0
void main(void)
{
double rezult,dop,a,b,c;
clrscr( ); /* экранды тазалау */
puts(" СЫЗЫҚТЫҚ АЛГОРИТМ ");
puts("=========================================");
dop=fabs(y-x);
a=pow(x,y+1)+exp(y-1);
b=1+x*fabs(y-tan(z));
c=0.5*pow(dop,2)-pow(dop,3)/3;
rezult=a/b*(1+dop)+c;
printf("\a\n ОТВЕТ: rezult=%lf, Press any key...", rezult);
getch( ); /* Кез келлген перне басылғанша кідіру */
}
IF шартты көшу операторын қолдану
Мысал: F функциясының мәнін есептеңіз. Программада есептеудің қай тармақ бойынша орындалып отырғаны жайлы мәлімет шағаруды қарастырыңыз.
[pic 2]
Программа мәтіні:
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define A 1
#define C 3
double max(double m,double n) /* Ең үлкен мәнді іздеуге арналған */
{ /* max функциясы, параметрлері m және n */
if (m>n) return m;
else return n;
}
double min(double m, double n) /* Ең кіші мәнді іздеуге арналған */
{ /* min функциясы, параметрлері m және n */
if (m<n) return m;
else return n;
}
void main()
{
double x,y,f; /* x,y,f айнымалыларын сипаттау */
clrscr();
puts("x және y мәндерін енгізу");
scanf("%lf %lf",&x,&y); * х және у-тің мәндерін енгізу */
if ((x>0)&&(y<0))
{
f=(A*x+tan(C*y))/(5-2*x);
puts("F=(а*x+tg(c*y))/(5-2*x)");
}
else if ((x<0)&&(y>0))
{
f=max(pow(x,2.0/3.0),cos(y*y)); /* max функциясын шақыру*/
puts("F=max(pow(x,2/3),cos(y*y))");
}
else if ((x>0)&&(y>0))
{
f=min(0.5*x-2*pow(sin(y),2),exp(y)); /* min функциясын шақыру */
puts("F=min(0.5*x-2*pow(sin(y),2),exp(y))");
...