Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fort-_-minor
6 / 6 / 2
Регистрация: 30.07.2010
Сообщений: 87
#1

2 разных интервала - C++

31.07.2010, 16:50. Просмотров 393. Ответов 6
Метки нет (Все метки)

Получается что я код написал для 2 одинаковых интервалов, а как сделать чтобы было правильно для 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
#include <stdafx.h>
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
    float x, y ,a;
    for (x=1; x<=8; x+=.5)
    {
        cout<<endl;
        for (a=2; a<=10; x+=1)
        {
            if (a>x)
            {
                y=pow(a,2)+x;
                cout<<"x="<<fixed<<setprecision(2)<<x<<"   a="<<a<<"   y="<<y<<endl;
            }
            else if (a=x)
            {
                y=pow(x,2);
                cout<<"x="<<x<<"   a="<<a<<"   y="<<y<<endl;
            }
            else 
            {
                y=pow(a,2)-x;
                cout<<"x="<<x<<"   a="<<a<<"   y="<<y<<endl;
            }
        }
    }
    cin.get();
}
Миниатюры
2 разных интервала  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
31.07.2010, 16:55     2 разных интервала #2
else if (a==x)

Как минимум

Ну и по условию задачи (если я верно понял) y=pow(a,2);
fort-_-minor
6 / 6 / 2
Регистрация: 30.07.2010
Сообщений: 87
31.07.2010, 17:08  [ТС]     2 разных интервала #3
Сделал, как вы сказали (a==x)
Код
#include <stdafx.h>
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
	float x, y ,a;
	for (x=1; x<=8; x+=.5)
	{
		cout<<endl;
		for (a=2; a<=10; x+=1)
		{
			if (a>x)
			{
				y=pow(a,2)+x;
				cout<<"x="<<fixed<<setprecision(2)<<x<<"   a="<<a<<"   y="<<y<<endl;
			}
			else if (a==x)
			{
				y=pow(a,2);
				cout<<"x="<<x<<"   a="<<a<<"   y="<<y<<endl;
			}
			else 
			{
				y=pow(a,2)-x;
				cout<<"x="<<x<<"   a="<<a<<"   y="<<y<<endl;
			}	
		}
	}
	cin.get();
}
Тогда получается что программа будет считать до бесконечности( или это не так но очень долго). Можно вставить (return) но тогда на экран выводится только по 1 значению x, y,z... (других вариантов не знаю ) На счет 1 замечания спс, на счет 2 не знаю правы вы или нет... Вот писал до этого что то подобное там со знаками (=) , (!=) вроде работает нормально....
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
31.07.2010, 17:17     2 разных интервала #4
fort-_-minor, В С/С++
= - присваивание.
== - сравнение.
Если учитывать что вам все таки надо сравнивать a и x, то логично что a==x. П.С. насчет второго - нз. По заданию у вас если a=x, тогда a^2.

Добавлено через 4 минуты
Эммм...
А такое условие цикла - нормально? оО
for (a=2; a<=10; x+=1)
Может все же a++?
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,434
31.07.2010, 17:44     2 разных интервала #5
Все как и сказал Lavroff.
Сделал по-своему, вроде работает, выдает результат в виде таблицы:
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
#include <iostream>
#include <iomanip>
#include <string>
 
double f(double x, double a)
{
    return (a > x ? a*a + x : (a == x ? a*a : a*a - x));
}
 
int main()
{
    const double xMin = 1;
    const double xMax = 8;
    const double aMin = 2;
    const double aMax = 10;
    const double hx = .5;
    const double ha = 1;
    double x = xMin;
    double a = aMin;
    std::string line(34, '-');
    std::cout << std::setiosflags(std::ios::left) << '|'
        << std::setw(10) << "x" << '|'
        << std::setw(10) << "a" << '|'
        << std::setw(10) << "y(x, a)" << '|' << std::endl
        << line << std::endl;
    do
    {
        a = aMin;
        do
        {
            double y = f(x, a);
            std::cout << '|' 
                << std::setw(10) << x << '|'
                << std::setw(10) << a << '|'
                << std::setw(10) << y << '|' << std::endl;
            a+=ha;
        }
        while(a <= aMax);
        x+=hx;
    }
    while(x <= xMax);
    std::cout << line << std::endl;
    system("pause");
    return EXIT_SUCCESS;
}
fort-_-minor
6 / 6 / 2
Регистрация: 30.07.2010
Сообщений: 87
31.07.2010, 18:23  [ТС]     2 разных интервала #6
Спасибо за советы ,ребят, просто писал код быстро, поэтому так невнимательно. На счет программы все таки нельзя ли как то сделать без строк (я так поимаю в последнем посте именно они используются). Просто с++ учу буквально с понедельника до строк пока не дошел...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2010, 18:28     2 разных интервала
Еще ссылки по теме:

C++ Вывести все простые числа из интервала
C++ Вычислить сумму чисел из интервала
C++ Отсчет временного интервала
Найти два максимальных элемента из интервала C++
Дан файл чисел. Определите длину наибольшего интервала возрастания, и среднее арифм-е чисел этого интервала C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,434
31.07.2010, 18:28     2 разных интервала #7
Цитата Сообщение от fort-_-minor Посмотреть сообщение
На счет программы все таки нельзя ли как то сделать без строк (я так поимаю в последнем посте именно они используются). Просто с++ учу буквально с понедельника до строк пока не дошел...
Конечно же можно. Здесь строка используется для вывода 34 символов '-' (в принципе, это и есть ее содержимое), что сделано только для более "красивого" табличного вывода программы. Это строка отделяет "шапку" таблицы от собственно табличных данных. Так что можно безболезненно удалить из программы объявление и все упоминания строки line.
Yandex
Объявления
31.07.2010, 18:28     2 разных интервала
Ответ Создать тему
Опции темы

Текущее время: 01:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru