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

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

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

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

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

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

написал программу для этой формулы. Скажите правильно ли я написал ее - C++
написал программу для этой формулы. Скажите правильно ли я написал ее #include "stdafx.h" #include <iostream> using namespace...

Проблемы с этим форумом. - Visual Basic
1. А кто скажет, как добраться до администратора Relib. Я уже 5-й раз регистрируюсь - куда моя регистрация пропадает в течении года! ...

при проверки написал проблемы с этим файлом bthenum.sys - Windows 7
та же проблема при проверки написал проблемы с этим файлом bthenum.sys

Правильно ли я написал программу? - C++
//В зависимости от размера суммы, размер налога с нее рассчитывается по следующей схеме: 1) Если сумма не превышает некоторую величину а,...

Правильно ли написал программу? - Pascal
Всем привет.Вот решиль задачу но не знаю правильно.Зарнее спасибо.Вот задачка. Даны четыре точки А(x1,y1), В(x2,y2), С(x3,y3),...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Рыжий Лис
Просто Лис
308 / 255 / 70
Регистрация: 17.05.2012
Сообщений: 1,052
Записей в блоге: 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");
}
0
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();
}
0
Рыжий Лис
Просто Лис
308 / 255 / 70
Регистрация: 17.05.2012
Сообщений: 1,052
Записей в блоге: 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)
1
Thinker
Эксперт C++
4226 / 2200 / 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))
просто в некоторых случаях скобочки нужны дополнительные
2
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
29.09.2012, 10:58  [ТС] #6
Спасибо. Но зацикливание осталось. К примеру если xнач= -3, а конечное 2, то при шаге dx=3, он продолжает считать, даже после конца интервала.
0
Рыжий Лис
Просто Лис
308 / 255 / 70
Регистрация: 17.05.2012
Сообщений: 1,052
Записей в блоге: 4
29.09.2012, 14:34 #7
вместо
Цитата Сообщение от Nick51 Посмотреть сообщение
if(x == xE)
напиши
C++
1
if(x >= xE)
1
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
29.09.2012, 14:48  [ТС] #8
Заработало. Вроде бы се в порядке. В понедельник буду показывать, надеюсь одобрят.
0
Nick51
0 / 0 / 0
Регистрация: 27.09.2012
Сообщений: 7
01.10.2012, 20:42  [ТС] #9
К сожалению, при вводе больших чисел, таких как 2e70, происходит переполнение. Как его исправить?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 20:42
Привет! Вот еще темы с ответами:

Правильно ли написал программу? - Lisp
Здача: Вычислить сумму рангов всех вершин ориентированного ациклического графа, представленного с помощью цепных списков. Код: ...

Правильно ли написал программу? - Pascal
Всем привет.Вот решиль задачу но не знаю правильно.Зарнее спасибо.Вот задачка. Даны четыре точки А(x1,y1), В(x2,y2), С(x3,y3), D(x4,y4) и...

Правильно ли я написал программу? - Haskell
определить функцию принимающую в качестве аргумента список чисел и возвращающий список булевых значений в котором элементы соответствующие...

написал программу, исправьте ошибки - Turbo Pascal
написал программу: var i,s:real; a,n:integer; begin write('введите значение а'); read(a); write('введите значение n'); ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.10.2012, 20:42
Ответ Создать тему
Опции темы

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