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

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

Войти
Регистрация
Восстановить пароль
 
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
#1

написал программу пользаясь этим форумом, но преподаватель забраковал её - C++

27.09.2012, 18:53. Просмотров 701. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста решить задачу. Я написал программу пользаясь этим форумом, но преподаватель забраковал её. Нужно,что бы табличка не разъезжалась, что бы не было переполнения, что бы программа не зацикливалась, и при очень маленьких числах(стремящихся к нулю) программа не считала их за ноль. Длинная арифметика не обязательна. Буду очень благодарен, если кто-то поможет.
Миниатюры
написал программу пользаясь этим форумом, но преподаватель забраковал её  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2012, 18:53     написал программу пользаясь этим форумом, но преподаватель забраковал её
Посмотрите здесь:

написал программу, ошибка! - C++
Info :Compiling C:\BC5\BIN\zadacha 3.cpp Warn : zadacha 3.cpp(25,3):'c' is assigned a value that is never used вот такая ошибка...

Правильно ли я написал программу? Оператор if - C++
Всем доброго дня, не моглы бы проверить правиьно ли написана программа? Задание : Все числа, о которых идет речь в индивидуальных...

программу почти написал осталось малец - C++
перегрузка операций и ф-ий. Ввести класс для работы с объектом "рациональная дробь"(вида m/n ). Выполнить операции: 1- сложения...

Написал программу на С++, надо переделать на С (пару строк!) - C++
Здравствуйте, пользователи форума! Я начал изучать программирование с языка С++, минуя С. Мне нужно исправить в исходном коде несколько...

Правильно ли я написал программу? Из книжки Павловская Щупак - C++
Задание во вложении, вот не могу разобраться, помогите, правильно ли написана программа? #include <iostream> #include <iomanip> ...

Написал программу, но не работает. Нужна небольшая отладка - C++
Задача была такая: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) среднее арифметическое всех положительных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Рыжий Лис
Просто Лис
264 / 211 / 56
Регистрация: 17.05.2012
Сообщений: 857
Записей в блоге: 4
28.09.2012, 09:33     написал программу пользаясь этим форумом, но преподаватель забраковал её #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <iostream>
using namespace std;
int main(){
  float a, b, с, xn, xk, dx, F;
  cout << "a= "; cin >> a;
  cout << "b= "; cin >> b;
//итд
  for(float i=xn; i<xk; i+=dx)
  { 
//здесь сравниваем и выводим
/*
//это пример
 if ((a+b)<0) y = (a*a*a-b*b)/(b*b*b);
  else if ((a+b)>1) y = (a+b)/b;
  else y = (a*a-b*b*b)/(a*a*a);
*/
  }
  system("pause>nul");
}
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
28.09.2012, 21:06  [ТС]     написал программу пользаясь этим форумом, но преподаватель забраковал её #3
Сейчас попробую.

Добавлено через 57 минут
Вообщем предыдущий способ не о чем. Вот мой вариант программы. Может, кто поможет доработать так, что бы не было зацикливания.
C++ (Qt)
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
99
#include "iostream"
#include <iomanip>
 
using namespace std;
 
void main()
{
    double a, b, c, x, xE, dx, F;
    int A, B, C;
    long F_integer;
 
    cout << "a: ";
    cin >> a;
 
    cout << "b: ";
    cin >> b;
 
    cout << "c: ";
    cin >> c;
 
    cout << "x (Begin): ";
    cin >> x;
 
    cout << "x (End): ";
    cin >> xE;
 
loop:
    cout << "dx: ";
    cin >> dx;
 
    if((x < xE & dx < 0) | (x > xE & dx > 0) | (x != xE & dx == 0))
    {
        cout << "Nevernoe znachenie dx\n";
        goto loop;
    }
 
    cout << "___________________________________" << endl;
    cout << "|        X       |        F       |" << endl;
    cout << "___________________________________" << endl;
 
    while(true)
    {
        A = a; B = b; C = c;
 
        if(x < 0 & b != 0)
            F = -(a + x) * (a + x) + b;
        else
            if(x > 0 & b == 0)
                if(c != 0)
                    F = (x - a)/-c;
                else
                {
                    cout << left  << "| " << setw(15)  << x << "| " << setw(15) << "Error (../0)" << setw(1) << "|" << endl;
 
                    if(x == xE)
                        break;
                    else
                        x += dx;
 
                    continue;
                }
            else
                if(c != 0)
                    F = (1-x)/c;
                else
                {
                    cout << left  << "| " << setw(15)  << x << "| " << setw(15) << "Error (../0)" << setw(1) << "|" << endl;
 
                    if(x == xE)
                        break;
                    else
                        x += dx;
 
                    continue;
                }
 
        cout.unsetf(ios::fixed);
        cout << left  << "| " << setw(15)  << x;
 
        cout.setf(ios::fixed);
        cout.precision(5);
 
        F_integer = F;
 
        if(!(A | B | C) != 0)
            cout << "| " << setw(15) << F << setw(1) << "|" << endl;
        else
            cout << "| " << setw(15) << F_integer << setw(1) << "|" << endl;
 
        if(x == xE)
            break;
        else
            x += dx;
    }
 
    cout << "___________________________________" << endl;
    getchar();
    getchar();
}
Рыжий Лис
Просто Лис
264 / 211 / 56
Регистрация: 17.05.2012
Сообщений: 857
Записей в блоге: 4
29.09.2012, 08:54     написал программу пользаясь этим форумом, но преподаватель забраковал её #4
Цитата Сообщение от Nick51 Посмотреть сообщение
loop:
cout << "dx: ";
cin >> dx;
if((x < xE & dx < 0) | (x > xE & dx > 0) | (x != xE & dx == 0))
{
cout << "Nevernoe znachenie dx\n";
goto loop;
}
ой. Нехорошо так.
C++
1
2
3
4
do
{ cout << "dx: ";
    cin >> dx;
} while ((x < xE && dx < 0) || (x > xE && dx > 0) || (x != xE && dx == 0));
Добавлено через 1 минуту
и еще куча ошибок. Например здесь
Цитата Сообщение от Nick51 Посмотреть сообщение
if(x > 0 & b == 0)
Надо
C++
1
if(x > 0 && b == 0)
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.09.2012, 09:05     написал программу пользаясь этим форумом, но преподаватель забраковал её #5
Следующие условия эквивалентны:
C++
1
if(x > 0 && b == 0)
C++
1
if((x > 0) & (b == 0))
C++
1
if((x > 0) * (b == 0))
просто в некоторых случаях скобочки нужны дополнительные
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
29.09.2012, 10:58  [ТС]     написал программу пользаясь этим форумом, но преподаватель забраковал её #6
Спасибо. Но зацикливание осталось. К примеру если xнач= -3, а конечное 2, то при шаге dx=3, он продолжает считать, даже после конца интервала.
Рыжий Лис
Просто Лис
264 / 211 / 56
Регистрация: 17.05.2012
Сообщений: 857
Записей в блоге: 4
29.09.2012, 14:34     написал программу пользаясь этим форумом, но преподаватель забраковал её #7
вместо
Цитата Сообщение от Nick51 Посмотреть сообщение
if(x == xE)
напиши
C++
1
if(x >= xE)
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
29.09.2012, 14:48  [ТС]     написал программу пользаясь этим форумом, но преподаватель забраковал её #8
Заработало. Вроде бы се в порядке. В понедельник буду показывать, надеюсь одобрят.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 20:42     написал программу пользаясь этим форумом, но преподаватель забраковал её
Еще ссылки по теме:

я тут написал программу и не понял одной команды! - C++
взаимно простые числа Вот программа: #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; using namespace std; int...

Написал программу которая показывает числа из ряда Фибоначчи - C++
Вот написал программу которая...Ай, мне сложновато объяснить, напишу сразу алгоритм её действия: 1.Пользователь вводит номер числа из...

Написал программу для решения квадратного уравнения, но что то пошло не так - C++
Написал программу по решению квадратного уравнения но я когда записываю коффиценты &quot;Vvedite kofficent a 0 Vvedite kofficent b 2 ...

Решил написать программу для множества мальденброта, написал полностью программую - C++
При компиляции пишутся такие ошибки: D:\project\mandelbrot\main.cpp|8|error: expected initializer before '*' token ...


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

Или воспользуйтесь поиском по форуму:
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
01.10.2012, 20:42  [ТС]     написал программу пользаясь этим форумом, но преподаватель забраковал её #9
К сожалению, при вводе больших чисел, таких как 2e70, происходит переполнение. Как его исправить?
Yandex
Объявления
01.10.2012, 20:42     написал программу пользаясь этим форумом, но преподаватель забраковал её
Ответ Создать тему
Опции темы

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