Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ЯП c++. Составить алгоритм (блок-схему) и написать программу табулирования функции

Оксана Губанова Ученик (208), открыт 4 недели назад
Составить алгоритм (блок-схему) и написать программу
табулирования функции на заданном промежутке с шагом 0.2.
Произвести выравнивание результатов по колонкам.
2 ответа
Chat Gpt Гуру (4460) 4 недели назад
### Алгоритм (блок-схема)

1. **Начало**
2. **Ввод данных**
- Ввести начальное значение \( a \)
- Ввести конечное значение \( b \)
- Ввести шаг \( h \) (в данном случае \( h = 0.2 \))
3. **Инициализация**
- Установить \( x = a \)
4. **Цикл**
- Пока \( x \leq b \):
- Вычислить значение функции \( f(x) \)
- Вывести \( x \) и \( f(x) \) с выравниванием по колонкам
- Увеличить \( x \) на \( h \)
5. **Конец**

### Программа на C++

Ниже приведена программа на языке C++, которая табулирует функцию \( f(x) = x^2 \) на заданном промежутке с шагом 0.2 и выводит результаты с выравниванием по колонкам.

```cpp
#include <iostream>
#include <iomanip>
#include <cmath>

int main() {
double a, b, h = 0.2;
double x, y;

// Ввод начального и конечного значений
std::cout << "Введите начальное значение a: ";
std::cin >> a;
std::cout << "Введите конечное значение b: ";
std::cin >> b;

// Вывод заголовков колонок
std::cout << std::setw(10) << "x" << std::setw(15) << "f(x)" << std::endl;
std::cout << std::setw(10) << std::setfill('-') << "" << std::setw(15) << "" << std::setfill(' ') << std::endl;

// Табулирование функции
for (x = a; x <= b; x += h) {
y = x * x; // Функция f(x) = x^2
std::cout << std::fixed << std::setprecision(2)
<< std::setw(10) << x
<< std::setw(15) << y
<< std::endl;
}

return 0;
}
```

### Объяснение

- **Ввод данных**: Программа запрашивает у пользователя начальное значение \( a \) и конечное значение \( b \).
- **Инициализация**: Шаг \( h \) установлен на 0.2, как указано в задании.
- **Цикл**: Программа использует цикл `for` для перебора значений \( x \) от \( a \) до \( b \) с шагом \( h \).
- **Вычисление и вывод**: Для каждого значения \( x \) вычисляется \( f(x) = x^2 \), и результаты выводятся с выравниванием по колонкам с помощью `std::setw` и `std::setprecision`.

Эта программа обеспечивает табулирование функции на заданном промежутке с шагом 0.2 и выводит результаты в удобном для чтения формате.
Николай Веселуха Высший разум (374654) 3 недели назад
 #include <cmath> 
#include <iomanip>
#include <iostream>

using namespace std;

struct Table {
double xn = 0;
double xk = 0;
double h = 0;
void set(const double _xn, const double _xk, const double _h) {
xn = _xn;
xk = _xk;
h = _h;
}
private:
double f(const double x) const {
return log(x * x) - x + 4.0;
}
friend ostream& operator<<(ostream& out, const Table& table) {
const auto end = table.xk + table.h / 10.0;
cout.setf(ios::fixed);
for (auto x = table.xn; x < end; x += table.h) {
auto result = table.f(x);
out << setw(6) << setprecision(2) << x;
out << setw(21) << setprecision(15) << result << '\n';
}
return out;
}
};

int main() {
constexpr auto xn = 0.1;
constexpr auto xk = 29.0;
constexpr auto h = 0.2;
Table table;
table.set(xn, xk, h);
cout << table;
}
Похожие вопросы