Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2009, 00:49   #11
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Сделал всё как сказано, ошибка осталась=(
поменял условие :
Код:
(((xn>xk)&(dx<0))|((xn<xk)&(dx>0)))
на:
Код:
(((xn>xk))|((xn<xk)))
Зависание программы прекращается, но введение dx попадает в бесконечный цикл. Не могу найти причину=(
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 19.09.2009, 01:02   #12
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Вероятнее всего вы имели ввиду вот это:
Код:
(((xn>xk)&&(dx<0))||((xn<xk)&&(dx>0)))
&, | - побитовые операции, &&, || - логические.
netrino вне форума Ответить с цитированием
Старый 19.09.2009, 01:15   #13
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

всё равно таже самая ошибка=(
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 19.09.2009, 12:38   #14
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Код:
#include <stdio.h>
#include <iostream>
#include <tchar.h>
using namespace std;

float F,a, b, c, Xn, Xk, dX;


int _tmain(int argc, _TCHAR* argv[])
{
float a,b,c,x,f,xn,xk,dx,p,k,i;

cout<<"a= ";
	cin>>a;
cout<<endl<<"b= ";
	cin>>b;
cout<<endl<<"c= ";
	cin>>c;
cout<<endl<<"xn= ";
	cin>>Xn;
cout<<endl<<"xk= ";
	cin>>xk;
	xn = 0;
	if (xn==xk){
p=0;
	do
	{ 
		if (p==1) cout<<endl<<"xn не должно быть равно xk";
		if (p==2) cout<<endl<<"Ошибка ввода";
		if (p==3) 
		{
			cout<<endl<<"xn=1, xk=10";
			xn = 1; 
			xk = 10;
		}
		cout<<endl<<"xk= ";
			cin>>xk;
        p=p+1;
	}
	while (xn==xk);}
p=0;
if (((xn>xk)&&(dx<0))||((xn<xk)&&(dx>0))) {
    do
	{ 
		if (p==1) cout<<endl<<"xn>xk и dx<0 ИЛИ xn<xk и dx>0";
		if (p==2) cout<<endl<<"Ошибка ввода";
		if (p==3) 
			{
				cout << endl << "dx=-1";
				xn = 1; 
			}
		cout<< endl << "dx= ";
			cin>>dx;
        p=p+1;
	}
	while (((xn>xk)&&(dx<0))||((xn<xk)&&(dx>0))) ;}
cout<<endl<<"----------------------------------------";
cout<<endl<<"¦     x            ¦        f          ¦";
cout<<endl<<"----------------------------------------";
k=3;
	do
	{ 
		{
			cout<<endl<<"| " << !x << "               " << !f;
			cout<<endl<<"|-----------------";
		}
		p=1;
		if ((x>0)&&(b!=0)) {f=(x-a)/(x-c);}
		else {if ((x>0)&&(b==0)&&((x-c)!=0)) f=(x-a)/(x-c);
			  else {if (c!=0) f=x/c;
					else {f=0;}}}
		if (k>20) 
		{
			cout<<endl<<"Закройте приложение...";
			cout<<endl<<"----------------------------------------";
			cout<<endl<<"¦     x            ¦        f          ¦";
			cout<<endl<<"----------------------------------------";
		k=3;
		}
		if (p==1)
		{
			cout.precision(3);
			cout<<endl<<"¦" << !x << "  ¦" << !f << "  ¦";
		}
		else {cout<<endl<<"¦" << !x << "  ¦  Функция не существует  ¦";}
		k=k+1;
		x=x+dx;
	}
	while (((xn<xk)&&(dx>0))||((xn>xk)&&(dx<0))) ;
cout<<endl<<"----------------------------------------";
}
Вот то, что получилось после моего шаманства. Но за правильность работы не ручаюсь. Я лишь снова сделал так, чтобы компилировалось...
У меня вылетает ошибка из-за того, что у вас некоторые переменные объявлены, но каких-либо числовых значений вы им не присваиваете...
Советую вам инициализировать все переменные перед тем, как их используете.
mMAg вне форума Ответить с цитированием
Старый 19.09.2009, 15:11   #15
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Не помогло, а с этим кодом даже не компилируется, и почему вы присваеваете xn=0? зачем тогда его вводить с клавиатуры?
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 19.09.2009, 15:29   #16
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

о_O. xn не вводится с клавиатуры. Xn вводится с клавиатуры. Это абсолютно разные переменные. Те переменные которые вы объявили, но не инициализировав пытаете к ним обратиться, имеют привычку на это ругаться.

Странно, у меня компилится, а что за ошибку у тебя выдает?
mMAg вне форума Ответить с цитированием
Старый 19.09.2009, 16:27   #17
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

говорит, что нет библиотеки "stdafx.h", я её подключик, все скомпилилось, но вот ошибка остается=(

Текст ошибки:
Run-Time Check Failure #3 - The Variable 'dx' is being used without being initialized.
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 19.09.2009, 16:52   #18
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Вот рабочий вариант:
Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <tchar.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int  vvod,p;
float f,a,b,c,xn,xk,dx;
cout<<"a= ";
	cin>>a;
cout<<endl<<"b= ";
	cin>>b;
cout<<endl<<"c= ";
	cin>>c;
cout<<endl<<"xn= ";
	cin>>xn;
cout<<endl<<"xk= ";
			cin>>xk;
p=0;
	while (xn==xk)
	{
		cout<<endl<<"xk= ";
			cin>>xk;
		if (p==1) cout<<endl<<"xn HE doljno 6blT' = xk";
		if (p==2) cout<<endl<<"Oshibka vvoda";
		if (p==3) 
		{
			cout<<endl<<"xn=1, xk=10";
			xn=1; 
			xk=10;
		}
        p=p+1;
	}
p=0;
cout<<endl<<"dx= ";
			cin>>dx;
while (((xn>xk)&&(dx>0))||((xn<xk)&&(dx<0)))
	{ 
		cout<<endl<<"dx= ";
			cin>>dx;
		if (p==1) cout<<endl<<"xn>xk u dx>0 ili xn<xk u dx>0";
		if (p==2) cout<<endl<<"Oshibka vvoda";
		if (p==3) 
			{
				cout<<endl<<"dx=1";
				dx=1; 
			}
		
        p=p+1;
	}
cout<<"*****************************************\n";
cout<<"*             Tablica                   *\n";
cout<<"*****************************************\n";
cout<<"*         x          "<<"  *       F        *\n";
	while (((xn>=xk)&&(dx<0))||((xn<=xk)&&(dx>0)))
	{
		if ((xn>0)&&(b!=0)) {f=(xn-a)/(xn-c);}
		if ((xn>0)&&(b==0)&&((xn-c)!=0)) {f=(xn-a)/(xn-c);}
		if (c!=0) {f=xn/c;}
		if ((!(int(a) | int(b)) & (int(a) & int(c)) ) != 0) 
int(f);
		cout<<"          "<<xn<<"            *       "<<f<<endl;
        cout<<"*****************************************\n";
xn+=dx;     
	}
    cin>>vvod;
    return 0;
}
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 19.09.2009, 16:53   #19
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Цитата:
Сообщение от bpystep Посмотреть сообщение
говорит, что нет библиотеки "stdafx.h", я её подключик, все скомпилилось, но вот ошибка остается=(

Текст ошибки:
Run-Time Check Failure #3 - The Variable 'dx' is being used without being initialized.
Аа, ну так это ясно. Я то создал пустой проект...
Ну так я вам еще раз поясняю. Вы эту самую переменную dx нигде не инициализировали.

Я придумал как сделать так, чтобы у вас не вылетало ошибок. Далее у вас, видимо будут только проблемы с вашим алгоритмом

Замените вот это:

Код:
float F,a, b, c, Xn, Xk, dX;
На вот это:
Код:
float F = 0,a = 0, b = 0, c = 0, Xn = 0, Xk = 0, dX = 0;
И вот это:
Код:
float a,b,c,x,f,xn,xk,dx,p,k,i;
На вот это:
Код:
float a = 0,b = 0,c= 0 ,x = 0,f = 0,
xn = 0,xk = 0,dx = 0,p = 0,k = 0,i = 0;
mMAg вне форума Ответить с цитированием
Старый 19.09.2009, 23:27   #20
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Спасибо за помощь всем!
Выше выложил рабочий код!
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ Urz-3 Помощь студентам 5 06.12.2011 06:33
Разветвляющиеся вычислительные процессы Freia Помощь студентам 2 11.02.2010 17:33
ЦИКЛИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ Urz-3 Помощь студентам 2 07.06.2009 18:56
циклические процессы felmor Помощь студентам 4 05.02.2009 17:24
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ юра 3 Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 16:25