Y, если Y = X1 + X2 + … + Xn, X = Z^3 - B + A^2 / tg^2?. Количество X вводятся пользователем программы. Для каждого X значения Z, B, А, ? разные (вводятся пользователем программы).Очередная математическая программа, для вычисления алгебраической суммы. Но здесь есть один интересный момент — в этой программе не обойтись без использования массивов. Можете ознакомиться с динамическими массивами в С++, и вместо обычных статических массивов организуете динамические, тогда ваша программа получится ещё более универсальной. Но это, как говорится, на ваше усмотрение. Сначала попробуйте сделать так, чтоб программа просто работала, а потом можно оптимизировать код. Приблизительный результат работы программы, который у вас должен получиться:
Введите количество иксов: 3
Введите значения Z, B, A, Betta для X1:
Z = 2.3
B = 45.1
A = 12.9
Betta = 3.67
Введите значения Z, B, A, Betta для X2:
Z = 3.3
B = 12.12
A = 7
Betta = 8
Введите значения Z, B, A, Betta для X3:
Z = 4
B = 3
A = 1.14
Betta = 2
y = 541.51
// algebraic_sum.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus");
cout << "Введите количество иксов: ";
int number_x = 0; // количество иксов
cin >> number_x;
float *arrayPtrZ = new float [number_x]; // динамический массив для значений Z
float *arrayPtrB = new float [number_x]; // динамический массив для значений B
float *arrayPtrA = new float [number_x]; // динамический массив для значений A
float *arrayPtrBe = new float [number_x]; // динамический массив для значений Betta
// инициализируем динамические массивы, введёнными с клавиатуры значениями
for (int counter = 0; counter < number_x; counter++)
{
cout << "Введите значения Z, B, A, Betta для X" << (counter+1) << ":\n";
cout << "Z = ";
cin >> arrayPtrZ[counter];
cout << "B = ";
cin >> arrayPtrB[counter];
cout << "A = ";
cin >> arrayPtrA[counter];
cout << "Betta = ";
cin >> arrayPtrBe[counter];
}
float x = 0, y = 0;
for (int counter = 0; counter < number_x; counter++)
{
x = pow(arrayPtrZ[counter], 3) - arrayPtrB[counter] + pow(arrayPtrA[counter], 2) / pow(tan(arrayPtrBe[counter]),2); // формула нахождения икса
y += x; // суммируем иксы
}
delete arrayPtrZ; delete arrayPtrB; delete arrayPtrA; delete arrayPtrBe; // высвобождаем память
cout << "\ny = " << y << endl; // ответ
system("pause");
return 0;
}
Для хранения значений Z, B, А, ? созданы динамические массивы, строки 13-16. После чего, в строках 18 -29 заполняем массивы элементами Z, B, А, ?, через клавиатуру. Во втором цикле for, строки 31 — 35 вычисляем х и y, согласно формулам, приведённым в условии задания. Смотрим результат:
Введите количество иксов: 3
Введите значения Z, B, A, Betta для X1:
Z = 2.3
B = 45.1
A = 12.9
Betta = 3.67
Введите значения Z, B, A, Betta для X2:
Z = 3.3
B = 12.12
A = 7
Betta = 8
Введите значения Z, B, A, Betta для X3:
Z = 4
B = 3
A = 1.14
Betta = 2
y = 541.51
Другое решение этой задачи нам прислал пользователь нашего сайта Алексей, причем в коде не использовались массивы. Смысл в том, что сразу после ввода нужных значений, они сразу суммируются. Комментировать бессмысленно, смотрите код:
#include <iostream>
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
float z, b, a, betta, x, y = 0;
int j;
cout << "Введите количество иксов: ";
cin >> j;
for(int i = 1; i <= j; i++)
{
cout << "Введите значения Z, B, A, Betta для X" << i << ":\n";
cout << "Z = ";
cin >> z;
cout << "B = ";
cin >> b;
cout << "A = ";
cin >> a;
cout << "Betta = ";
cin >> betta;
x = pow(z, 3) - b + pow(a, 2) / pow(tan(betta), 2);
y += x;
}
cout << "\ny = " << y << endl;
cin.get();
return 0;
}
Вывод данной программы аналогичен предыдущему.
Комментарии
Alexey Kutch
На Си:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { system("chcp 1251 > nul"); int j; int i; float a, b, z, betta; printf("Введите количество X: "); scanf("%d", &j); float zet[j]; float be[j]; float aa[j]; float tg[j]; for(i = 0; i <= j-1; i++) { printf("Введите значения Z, B, A, Betta для Х%d:\n", i + 1); printf("Введите значения Z: "); scanf("%f", &z); zet[i] = z; printf("Введите значения B: "); scanf("%f", &b); be[i] = b; printf("Введите значения A: "); scanf("%f", &a); aa[i] = a; printf("Введите значения Betta: "); scanf("%f", &betta); tg[i] = betta; } float y; float summ = 0; for (i = 0; i < j; i++) { y = pow(zet[i], 3) - be[i] + pow(aa[i], 2)/pow(tan(tg[i]), 2); summ += y; }QtUser
#include <iostream>
#include <locale>
#include «math.h»
using namespace std;
int main()
{
setlocale(LC_ALL,»rus»);
int a;
cout << «Введите кол-во иксов: «;
cin >> a;
int i;
float c;
float y=0;
float x[a][4];
for (i=0; i<a; i++)
{
cout << «Введите значения Z, B, A, Betta для Х» << i+1<<«:»<<endl;
cout << «Z = «;
cin >> x[i][0];
cout << «B = «;
cin >> x[i][1];
cout << «A = «;
cin >> x[i][2];
cout << «Betta = «;
cin >> x[i][3];
}
for (i=0; i<a; i++)
{
c = x[i][0]*x[i][0]*x[i][0] — x[i][1] + x[i][2]*x[i][2]/(tan(x[i][3])*tan(x[i][3]));
y = y + c;
}
cout << «Y = » << y;
return 0;
}
Abai Shapagatin
#include <iostream>
#include<math.h>
using namespace std;
double funX(double x1,double z1,double b1,double a1,double betta1){
x1=z1*z1*z1-b1+((a1*a1)/pow(tan(betta1),2));
return x1;
}
int main()
{
int xnum;
double b, a, z, betta;
double x=0;
double y=0;
cout<<«Enter X number\n»;
cin>>xnum;
double *arrX=new double[xnum];//динамический массив для хранения вычислений Х
for(int i=0;i<xnum;i++){
cout<<«Enter parameters z,b,a, betta for X»<<(i+1)<<«:\n»;
cin>>z>>b>>a>>betta;
arrX[i]=funX(x,z,b,a,betta);
y+=arrX[i];
}
cout<<endl;
cout<<«y: «<<y;
return 0;
}
Максим Назаренко
Не понял что такое tg^2. Понятней будет tg(Betta)^2 в условии. #include <iostream> #include <conio.h> using namespace std; int main() { setlocale(0, ""); double Z, B, A, Betta, x, X, Y = 0; cout << "Введите количество Иксов: " << endl; cin >> X; for (int i = 0; i < X; i++) { cout << "Введите значения Z, B, A, Betta для X" << i+1 << ": " << endl; cout << "Z = "; cin >> Z; cout << "B = "; cin >> B; cout << "A = "; cin >> A; cout << "Betta = "; cin >> Betta; x = pow(Z, 3) - B + pow(A, 2) / pow(tan(Betta), 2); Y += x; } cout << "y = " << Y << endl; _getch(); return 0; }sscys
Я не могу понять, что это за Betta?
В условии нечего не сказано…