ЗАДАЧА 10. Составить таблицу значений функции y=esin(x)cos(x) на отрезке [xn;xk] с шагом dx. Найти сумму положительных значений y и произведение отрицательных y.
Входные данные: xn, xk,dx.
Выходные данные: множество значений x и y, S – сумма положительных значений y и P – произведение отрицательных значений y.
Блок-схема алгоритма решения задачи на рис. 13.
Рис. 13. Алгоритм решения задачи 10
Текст программы c соответствующими комментариями приведен далее.
#include <stdio.h>
#include <math.h>
int main()
{
//Описание всех переменных
float xn, xk, dx, x, y, s, p;
printf("Введите xn,xk,dx");
scanf("%f%f%f",&xn,&xk,&dx);
for(s=0,p=1,x=xn;x<=xk;x+=dx)
{
y=exp(sin(x))*cos(x);
printf("X=%g\tY=%g\n",x,y);
if (y<0) p*=y;
else s+=y;
}
printf("S=%g\tP=%g\n",s,p);
}
ЗАДАЧА 11. Вычислить значения z, которые соответствуют каждому значению х (x = 1; dx = 0.5) по формуле:
.
Считать z до тех пор, пока подкоренное выражение больше или равно 0.02. Определить k — количество вычисленных z.
Входные данные: xn, dx.
Выходные данные: множество значений x и y, k – количество выполненных итераций цикла.
|
|
Блок-схема алгоритма на рис. 14. Текст программы, соответствующий б/с алгоритма приведен далее.
Рис. 14. Алгоритм решения задачи 11
#include<stdio.h>
#include<math.h>
void main()
{
float x,dx,z; int k=0;
printf("x="); scanf("%f",&x);
printf("dx="); scanf("%f",&dx);
while (x/(x*x*x+1)>0.02)
{
z=log(x)*sqrt(x/(x*x*x+1));
printf("\n x=%f \t z=%f \n",x,z);
k++;
x=x+dx;
}
printf("\n k=%d",k);
}
Обработка массивов
Массив – структурированный тип данных, состоящий из фиксированного числа элементов одного типа.
Простой или одномерный массив это список данных одного и того же типа. Порядковый номер элемента массива называют индексом. Для доступа к данным, хранящимся в определенном элементе массива, необходимо указать имя массива и индекс этого элемента.
Описание массивов
Описать массив можно так:
тип имя_переменной [размерность];
где размерность это количество элементов в массиве. Например:
int х[10]; float a[20];
Размерность массива и тип его элементов определяют объем памяти, который необходим для хранения массива. Следовательно, размерность это целое положительное константное выражение. Например,
const int n=15;.
double B[n];
Элементы массива в С++ нумеруются с нуля (первый элемент, всегда имеет номер ноль, а номер последнего элемента на единицу меньше заданной при его описании размерности):
//Описан массив из 5 символов, нумерация от 0 до 4:
char C[5];