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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 20:18   #1
warder
 
Регистрация: 12.04.2008
Сообщений: 8
По умолчанию Есть проблемка с отладкой программы

Написал программу, исправил ошибки, но программка вылетает, помогите решить проблемку плз:
Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <clocale>
#include <conio.h>
using namespace std;
  int main()
  {
setlocale(LC_CTYPE, "rus");
srand(time(0));
double x,y;
int Vubor;
for (int Zac=-1;Zac<1;Zac--)
{
	cout<<"1. Введите координаты точек.\n";
	cout<<"2. Автоматическое введение данных. \n";
	cout<<"0. Выход. \n";
	if(Vubor==0){break;}
	if(Vubor==1)
	{
   cout<<"Введите координату Y >";
  cin>>x;
   cout<<"\nВведите координату X >";
  cin>>y;
	}
	else if(Vubor==2)
	{
		{x=rand()%10-5+1;}
		{y=rand()%15-10+1;}
		cout<< " Авто ввод данных закончен.\n";
		cout<< "X="<<x<<"\t\t\tY="<<y<<"/n";
	}
      // проверка условий
   if ( (y>=5-x) && (x*x+y*y<=2) )
   cout<<"Точка не попадает в область \n";
     else 
   cout<<"Точка не попадает в область \n";
   {   getch();
    return 0;
}
}
  }
warder вне форума Ответить с цитированием
Старый 25.05.2010, 20:30   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас Vibor чему равно?)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.05.2010, 21:06   #3
warder
 
Регистрация: 12.04.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас Vibor чему равно?)
ну я эту переменную использовал для выбора в меню, помогите кто то с этим меню)
warder вне форума Ответить с цитированием
Старый 25.05.2010, 21:19   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас эта переменная только обьявлена.
у вас ей значение присвоенно какое то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.05.2010, 21:22   #5
warder
 
Регистрация: 12.04.2008
Сообщений: 8
По умолчанию

ну я попытался зделать так: если ей присваивается какое то значение то будет то или иное действие
warder вне форума Ответить с цитированием
Старый 25.05.2010, 21:27   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Оно у вас вообще нигде не присваивается. И никакой выбор как таковой нигде не делается в вашем коде.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.05.2010, 21:29   #7
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Почему не используешь switch() для выбора той или иной операции ? Я думаю это довольно удобней, чем делать все проверками

Код:
switch ( ... )
{
case X:
    {
        ...
    }
    break;
...
}
В твоем случае можно сделать так:

Код:
switch ( _getch() )
{

case '1':
    {
        break;
    }

case '2':
    {
        cout<<"Введите координату Y >";
        cin>>x;
        cout<<"\nВведите координату X >";
        cin>>y;
    }

case '3':
    {
	/*{*/ x=rand()%10-5+1; /*}*/ // Скобки здесь не в эту, не в красную армию...
	/*{*/ y=rand()%15-10+1; /*}*/
	cout << " Авто ввод данных закончен.\n";
	cout << "X=" << x << "\t\t\tY=" << y << "/n";
    }

default: { return; }
}

Последний раз редактировалось coNsept; 25.05.2010 в 21:37.
coNsept вне форума Ответить с цитированием
Старый 25.05.2010, 21:32   #8
warder
 
Регистрация: 12.04.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
Почему не используешь switch() для выбора той или иной операции ? Я думаю это довольно удобней, чем делать все проверками

Код:
switch ( ... )
{
case X:
    {
        ...
    }
    break;
...
}
а как оно будет на моем примере примерно, я просто с этим оператором не знаком

вообще я с шаблон с проверками взял отсюда:
Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <clocale>
using namespace std;
void main()
{
 setlocale(LC_CTYPE, "rus");
 srand(time(0));
 //////////////////////////////////////////////////
 int Vubor,
  Kchi[100];
 for(int h=0;h<100;h++){Kchi[h]=-666;}
 for (int Zah=-1;Zah<1;Zah--)
 {
  cout<<"1. Вести элементы самому.\n";
  cout<<"2. Автозаполнение.\n";
  cout<<"3. Печать.\n";
  cout<<"0. Выход.\n";
  cin>>Vubor;
  if(Vubor==0){break;}
  if(Vubor==1)
  {
   cout<<"-66. Отмена.\n";
   for(int h=0;h<100;h++)
   {
    cout<<"Ведите "<<h+1<<" Элемент: ";
    cin>>Kchi[h];
    if(Kchi[h]==-66){Kchi[h]=-666;break;}
    if(Kchi[h]>50 || Kchi[h]<-50){cout<<"\tError: Минимум -50, Максимум 50.\n";h--;}
   }
  }
  else if(Vubor==2)
  {
   for(int h=0;h<100;h++)
   {Kchi[h]=rand()%100-50+1;}
   cout<<"\tDone...\n";
  }
  else if(Vubor==3)
  {
   for(int h=0;h<100;h++)
   {
    if(Kchi[h]==-666){break;}
    cout<<h+1<<" - "<<Kchi[h]<<"\n";
   }
  }
  else cout<<"\tError!!!\n";
 }
}

Последний раз редактировалось warder; 25.05.2010 в 21:34.
warder вне форума Ответить с цитированием
Старый 25.05.2010, 22:11   #9
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
 cin>>Vubor;
вам ни о чем не подсказывает?
Код:
switch (X)
{
case X1: {/**/} break;
case X2: {/**/} break;
//...
default: {/**/}
}
почти то же самое, что и
Код:
if (X == X1) {/**/}
else if (X == X2) {/**/}
//...
else {/**/}
Можете про него, например, здесь подробнее почитать: Инструкции (операторы) сравнения if и switch
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 25.05.2010, 23:02   #10
warder
 
Регистрация: 12.04.2008
Сообщений: 8
По умолчанию

Гром, во спс тебе с cin>>Vubor; завтыкал)
warder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть проблемка с МК PIC16F83 Vikysi4ka Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 18.05.2010 18:20
Помогите! есть проблемка RML Microsoft Office Excel 28 12.05.2010 20:56
Canvas.Poligon - есть проблемка.. Mr_freeman Помощь студентам 7 14.03.2010 17:04
Canvas.Poligon - есть проблемка.. Mr_freeman Помощь студентам 0 14.03.2010 14:32
Проблемы с отладкой программы lenuxoid Общие вопросы Delphi 5 22.12.2008 08:30