Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
#1

Циклические вычислительные процессы. Затабулировать функцию Z=f(x,y) с шагами x и y внутри прямоугольника и области существования данной функции - C++

08.12.2013, 00:29. Просмотров 586. Ответов 1
Метки нет (Все метки)

Добрый вечер! Прошу помощи!
Выполняю данное задание:
Кликните здесь для просмотра всего текста

Затабулировать функцию Z=f(x,y) с шагами x и y внутри прямоугольника и области существования данной функции. Составить универсальную программу для произвольных значений параметров a, b, c, d, dx и dy.

 Значения функции Z округлить до двух знаков после десятичной точки.
 Результаты вывести на экран и в файл (по выбору пользователя) в виде двумерной таблицы, вместо несуществующих значений вывести астериск (*).

Рекомендуется решать задачу с использованием вложенных циклов с параметром. Для горизонтальной табуляции рекомендуется использовать манипулятор setw(n) (подключить заголовочный файл iomanip.h директивой #include <iomanip>). «Лишние» знаки после запятой можно отбросить, используя функцию floor, а можно использовать манипулятор setprecision

Вид функции y = f(x) и рабочий набор исходных данных приведены в таблице

Программа должна осуществлять
 ввод данных с клавиатуры или из файла;
 проверку входных данных на корректность и обработку некорректных данных таким образом, чтобы не происходило аварийного завершения программы;
 вывод результатов работы на экран или в файл в заданном формате
Программный код должен сопровождаться комментариями, поясняющими назначение констант, переменных, функций и других блоков программы.
Программа должна работать таким образом, чтобы точно соблюдались условия задания.

Циклические вычислительные процессы.  Затабулировать функцию Z=f(x,y) с шагами x и y внутри прямоугольника   и области существования данной функции

Мой пример и рабочие данные:
z=sqrt((x/y)-(y/x))
a=-1
b=1
c=-1
d=1
dx=0.2
dy=0.2


Мои попытки выполнить задание:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iomanip>
 
using namespace std;
int main()
{ 
    setlocale(LC_ALL, "Russian"); // функция локализации вызывается только один раз
    cout<<" Задание: Затабулировать функцию Z=f(x,y) с шагами dx и dy внутри прямоугольника и области существования данной функции. Составить универсальную программу   для произвольных значений параметров   a, b, c, d, dx и dy. "<<endl;
    cout<<" "<< endl;
    cout<<" Мое задание: Вид функции: sqrt((x-y)-(y-x)). "<< endl;
    cout<<" Рабочий набор исходных данных: a=-1; b=1; c=-1; d=1; dx=0.2; dy=0.2; "<< endl;
    cout<<" "<< endl;
    cout<<" "<< endl;
    double a, b, c, d,dx, dy, x, y, z;
    cout << "Введите a: ";
    cin >> a;
    cout << "Введите b: ";
    cin >> b;
    if (a <= b)
        {
            cout << "Введите c: ";
            cin >> c;
            cout << "Введите d: ";
            cin >> d;
    if (c <= d)
        {
            cout << "Введите dx: ";
            cin >> dx;
            cout << "Введите dy: ";
            cin >> dy;
            system("cls");
            cout << "Выберите метод вывода (1- на экран, 2 - в файл) ";
            int num;
            cin >> num;
            ofstream out;
            switch (num)
                {
                    case 1:
                        out.open("out.txt");
                        cout  << setprecision(2) << "X = [" << a <<", " << b << "] Y = [" << c << ", " << d << "] dx = " << dx << " dy = " << dy<<endl;
                        //шапка таблицы
                        cout  << "\\       |"<<endl;
                        cout  << " \\ X    |";
                        for (x = a; x <= b;  x+=dx) 
                            {
                                cout <<fixed <<setw(6) << setprecision(2) << ceil(100*x)/100.0;
                            } 
                        cout  <<endl<< "   \\    |"<< endl;
                        cout  << "  Y \\   |" <<endl;
                        cout  << "     \\  |" <<endl;
                        cout  << "      \\ |" <<endl;
                        for (int i =0; i<80; i++)
                        cout<<"-";
                        cout<<endl;
                        for(y = c; y <= d; y+=dy);
                            {
                                //while (abs(x)>0.0001 || abs(y)>0.0001 || ((x/y)-(y-x)>0))                                     
                                //continue;         --------------------------  
                                if(y <0)
                                cout <<fixed<<setw(3) << setprecision(2) << "  "<< ceil(100*y)/100.0<<" |";
                                else
                                cout <<fixed<<setw(4) << setprecision(2) << "  "<< ceil(100*y)/100.0<<" |";
                                if (((x/y)-(y-x))>0)
                                z = sqrt((x/y)-(y/x));
                                if(z <0)
                                cout<<fixed <<setw(7) << setprecision(2) << ceil(100*z)/100.0<<"|";
                                 else
                                cout <<fixed<<setw(7) << setprecision(2) << ceil(100*z)/100.0<<"|";
                                cout <<fixed<<setw(3) << setprecision(2) << "   *   |";
                                out << endl;
 
                            }
 
 
    
                                
 
 
                    break;      
                    case 2: //на эту кнопку в будущем будет происходить сохранение в файл 
                    break;
                    default: cout<< "Данные введены неверно.";
                    break;
                }
            out.close();
        }
            else
            cout << "Некорректный диапазон для Y" << endl;
        }
            else
            cout << "Некорректный диапазон для X" << endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 00:29
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Циклические вычислительные процессы. Затабулировать функцию Z=f(x,y) с шагами x и y внутри прямоугольника и области существования данной функции (C++):

Затабулировать функцию внутри прямоугольника и области существования данной функции
Затабулировать функцию Z=f(x,y) с шагами x и y внутри прямоугольника и...

циклические вычислительные процессы: вычислить значение функции на отрезке
Помогите пожалуйста составить программу вычисления значения функции f(x) на...

Циклические вычислительные процессы
Вводится целое положительное число N. Вывести все возможные представления числа...

Циклические вычислительные процессы
Дано натуральное число N. с помощью операций деления нацело и взятия остатка от...

Циклические вычислительные процессы
Задание: необходимо решить задачу вычисления N значений функции y = f(x) для...

Циклические вычислительные процессы
Даны целые положительные числа n и k. Использую только операции сложения и...

1
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
08.12.2013, 22:37  [ТС] #2
Вроде таблица частично "нарисовалась", даже "х" посчитался, а вот с "у" проблемы. Не говоря еще о правильном заполнении таблицы и выполнения условий. Нужны ведь проверки можно ли считать "у" подходят ли данные для подсчета, если да то выводим, если нет то "*" и т.п.

скриншот задания
http://regfoto.ru/view.php?filename=276_.jpg

Добавлено через 12 часов 30 минут
ап!

Добавлено через 9 часов 27 минут
ап!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 22:37
Привет! Вот еще темы с решениями:

Циклические вычислительные процессы. Цикл
Вобщем требовалось написать программу, которая в зависимости от Х вычисляла...

Одномерные массивы. Циклические вычислительные процессы
Помогите пожалуйста написать программы... 1)Нужно вычислить сумму квадратов...

Циклические вычислительные процессы. Математические ряды
Используя три различных цикла, определить значение. S= \sum_{n=1}^{5}({n}^{3}+...

Циклические вычислительные процессы (Дано натуральное число N. Вывести на экран все шестизначные числа, сумма цифр которых равна N)
Задача предполагает использование целочисленной арифметики и должна быть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru