Примеры использования языка Си

Слайд 2

Рис. 1. Блок-схема алгоритма

Рис. 1. Блок-схема алгоритма

Слайд 3

Программа 1: #include #include void main (void) { float m1, m2,

Программа 1:
#include
#include
void main (void)
{
float m1, m2,

m3, m, x1, x2, x3, x, y1, y2, y3, y;
clrsrc ();
printf ("Введите m1, m2, m3: ");
scanf ("%f %f %f",&m1,&m2,&m3);
printf ("Введите x1,y1,x2,y2,x3,y3: ");
scanf ("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
m = m1+m2+m3;
x = (m1*x1+m2*x2+m3*x3)/m;
y = (m1*y1+m2*y2+m3*y3)/m;
printf ("\nx = %f y = %f",x,y);
}
Слайд 4

Задача 2. Определить, попадает ли точка с координатами (x0, y0) в

Задача 2. Определить, попадает ли точка с координатами (x0, y0)

в круг
радиуса r. Уравнение окружности . Вывести на печать сообщение:
точка попадает внутрь круга; точка не попадает внутрь круга.
Из анализа алгоритма решения поставленной задачи следует, что вопрос о
выводе того или иного сообщения зависит от значения логического выражения:
Блок-схема алгоритма решения сформулированной ранее задачи приведена на
рис. 2.
Слайд 5

Рис. 2. Блок-схема алгоритма

Рис. 2. Блок-схема алгоритма

Слайд 6

Программа 2: #include #include #include void main (void) { float x0,

Программа 2:
#include
#include
#include
void main (void)
{
float x0,

y0, r;
clrsrc ();
printf ("Введите x0,y0,r: ");
scanf ("%f %f %f", &x0,&y0,&r);
if (pow(r,2) < (pow(x0,2)+pow(y0,2))
printf ("Точка попадает внутрь круга");
else
printf ("Точка не попадает внутрь круга");
}
Слайд 7

Задача 3. Округлить действительное положительное число x, меньшее 5, до ближайшего

Задача 3. Округлить действительное положительное число x, меньшее 5, до


ближайшего целого числа:
Анализ алгоритма решения задачи показывает, что необходимо использовать
вложенные операторы условия. Блок-схема алгоритма представлена на
следующем рисунке.
Слайд 8

Рис. 3. Блок-схема

Рис. 3. Блок-схема

Слайд 9

Программа 3: #include #include void main (void) { float x; int

Программа 3:
#include
#include
void main (void)
{
float x;
int

nx;
clrsrc();
m1:printf ("Введите x = ");
scanf ("%f",&x);
if ((x<0)||(x>=5))
goto m1;
else
{
if (x<0.5)
{
nx=0;
goto m2;
}
else
Слайд 10

if ((x>=0.5)&&(x { nx=1; goto m2; } else if ((x>=1.5)&&(x {

if ((x>=0.5)&&(x<1.5))
{
nx=1;
goto m2;
}
else
if ((x>=1.5)&&(x<2.5))

{
nx=2;
goto m2;
}
else
if ((x>=2.5)&&(x<3.5))
{
nx=3;
goto m2;
}
else
Слайд 11

if ((x>=3.5)&&(x { nx=4; goto m2; } else nx=5; m2: printf

if ((x>=3.5)&&(x<4.5))
{
nx=4;
goto m2;
}
else
nx=5;
m2: printf

("\nnx = &d",nx);
}
}
Задача 4. Дано действительное число x. Вычислить с точностью ε=0.000001 сумму и указать количество учтенных слагаемых:
Данная задача решается с помощью операторов цикла. Необходимо ввести
значения величины x и точности ε. Выделить переменную для вычисления суммы
и еще одну переменную для определения количество учтенных членов ряда.
Суммирование прекращается если прибавляемое слагаемое по модулю будет
меньше точности ε. Блок схема алгоритма имеет вид
Слайд 12

Рис. 4. Блок-схема

Рис. 4. Блок-схема

Слайд 13

Программа 4: #include #include #include void main (void) { int n;

Программа 4:
#include
#include
#include
void main (void)
{
int n;

float a,s,eps,s;
clrsrc ();
printf ("Введите x,eps:");
scanf ("%f %f",&x,&eps);
s = 0;
a = 1;
n = 1;
a = a*x;
Слайд 14

while (fabs(a)>eps) { if (n%2!=0) s -= a/n; else s +=

while (fabs(a)>eps)
{
if (n%2!=0)
s -= a/n;
else

s += a/n;
n++;
a = a*x;
}
printf ("\nКол-во слагаемых = %d\nСумма = %f",n-1,s);
}
Задача 5. Написать программу для вычисления и печати таблицы значений
функции двух переменных
если x∈[0, 1] и меняется с шагом 0.1, а y∈[0,3] и меняется с шагом 0.3. При этом
константа a=-3.1.
Слайд 15

Программа 5: #include #include #include #define PI 3.1415926535 void main (void)

Программа 5:
#include
#include
#include
#define PI 3.1415926535
void main (void)
{

float a, x, y, f;
clrsrc ();
printf ("Введите a = ");
scanf ("%f",&a);
for (x=0.0; x<=1.0; x+=0.1)
for (y=0.0; y<=3.0; y+=0.3)
{
f = a*exp(2*x*y)*cos(0.5*PI+y);
printf ("\nx = %f y = %f f(x,y) = %f",x,y,f);
}
}