! Добро пожаловать в
Сегодня Февраль 05, 2023, 22:42:22

Автор Тема: С++. Программисты, помогите!  (Прочитано 5155 раз)

0 Жителей и 1 Гость просматривают эту тему.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
С++. Программисты, помогите!
« : Февраль 07, 2012, 01:53:49 »
Очень надеюсь, что среди нас есть опытные программисты, которые не оставят своего младшего собрата в беде. Я недавно начал ознакомление с великим и прекрасным языком С++. До этого работал только с HTML, XML. Решил раздвинуть свои границы и столкнулся с парой проблем... во 1. в инете полно всяких "никаких" самоучителей, а найти что-то пригодное и мал-малость новое (в основном всё выпуска 2000-2005года) очень и ОЧЕНЬ! трудно...
...2. даже с учётом хоть каких-то самоучителей, всё равно это не заменит советов опытного человека... так что очень прошу, если можете - очень надеюсь на вашу поддержку...

...а, главное... я вот по какому поводу... я тут попробовал сделать нечто воде примитивного калькулятора... но есть кое какие проблемы и весьма серьёзные...

пользуюсь прогой Dev-C++ 4.9.9.2 и когда в ней запускаю этот код, то выдаёт:
Drawing operation was attempted when there was no current window - такую фигню...собственно, код программы:

#include <stdio.h>
#include <conio.h>
main()
{
int a, b, c;
char per;
      printf ("введите 2 целых числа и нажмите ENTER \n");
      scanf ("%d%d", &a, &b);
      printf ("выберите действие. p -плюс, m -минус, u -умножить и нажмите ENTER \n");
      scanf ("%c", &per);
      switch ( per )
      {
             case 'p':
                  c = a + b;
                  printf ("%d+%d=%d", a, b, c); break;
             case 'm':
                  c = a - b;
                  printf ("%d-%d=%d", a, b, c); break;
             case 'u':
                  c = a * b;
                  printf ("%d*%d=%d", a, b,c); break;
      }
getch();
}


...ошибка появляется после ввода чисел и отображения на экране второго текста... прошу подсказать, из-за чего так получается...
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #1 : Февраль 07, 2012, 14:42:22 »
Вы пытаетесь присвоить переменой типа целого числа символ
Переменную  С нужно объявить типом char;
для ввода и для вывода значений проще использовать  cin и cout подключив заглавочный файл iostream;
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
Re: С++. Программисты, помогите!
« Ответ #2 : Февраль 07, 2012, 15:44:01 »
а почему переменную С нужно ввести символом, если она должна быть результатом выполняемого действия? (причём - арифметического)

...и основной вопрос заключался в том - почему ошибка появляется?

...и можно по-подробнее про cin и cout?
« Последнее редактирование: Февраль 07, 2012, 16:22:27 от Miklstar »
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #3 : Февраль 07, 2012, 21:50:38 »
#include <iostream>
#include <locale>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{

cout<<"Enter first and secound digits and press Enter"<<endl;;
int a,b;
cin>>a>>b;
cout<<"Enter doing p-plus m-minus u-multyply and press Enter "<<endl;
char c;
cin>>c;
long rez=0;
switch (c)
{
case 'p':
{
rez=a+b;
cout<<a<<" "<<b<<" "<<rez<<endl;
break;
}
case 'm':
{

rez=a-b;cout<<a<<" "<<b<<" "<<rez<<endl;break;
}
case 'u':
{

rez=a*b;cout<<a<<" "<<b<<" "<<rez<<endl;break;
}
}
system("pause");
return 0;
}

вот рабочий код
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
Re: С++. Программисты, помогите!
« Ответ #4 : Февраль 07, 2012, 22:09:41 »
... а можно розъяснить? или пояснения к строкам? (а то мои познания пока на базовом, елементарном уровне... а всё же хотелось не тупо наследовать, а понимать, что пишешь)

мне же важен не результат, а сам процесс)) я пока только начал учиться)
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #5 : Февраль 07, 2012, 22:12:03 »
давайте завтра..хорошо?
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
Re: С++. Программисты, помогите!
« Ответ #6 : Февраль 07, 2012, 22:16:31 »
та не вопрос... кстати у меня прога на строку

int _tmain(int argc, _TCHAR* argv[])

ругается... вот что говорит:
4 C:\Dev-Cpp\Calk.cpp `_TCHAR' has not been declared
5 C:\Dev-Cpp\Calk.cpp ISO C++ forbids declaration of `argv' with no type
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #7 : Февраль 08, 2012, 21:00:59 »
#include <iostream> // подключения библиотеки для роботы функций cin и cout
using namespace std; // указываем что нужно использовать объектное пространство имен
int _tmain(int argc, _TCHAR* argv[])// Создание метода который служит точкой входа в программу можно просто void main
{ // int argc, _TCHAR* argv[] то что в скобочках обязательно для программ которые пишутся в visual studio

cout<<"Enter first and secound digits and press Enter"<<endl; // Создания потока выводящего на экран строчку , endl переход на новую строку
int a,b; // создание переменных целого типа
cin>>a>>b; // создание потока для инициализации переменных с клавиатуры
cout<<"Enter doing p-plus m-minus u-multyply and press Enter "<<endl;// Создания потока выводящего на эеран строчку , endl переход на новую строку
char c; // создание переменой символьного типа для switch
cin>>c;// создание потока для инициализации переменных с клавиатуры
long rez=0; //создание переменой которая будет хранить результат
switch (c)
{
case 'p':
{
rez=a+b;
cout<<a<<" "<<b<<" "<<rez<<endl; //создание потока и направления его на консоль для вывода результатов
break;
}
case 'm':
{

rez=a-b;cout<<a<<" "<<b<<" "<<rez<<endl;//создание потока и направления его на консоль для вывода результатов
break;
}
case 'u':
{

rez=a*b;cout<<a<<" "<<b<<" "<<rez<<endl;//создание потока и направления его на консоль для вывода результатов
break;
}
}
system("pause"); //передача консоли системы команды приостановления роботы до нажатия клавиши (корректная замена getch()-который вообще создан для другого)
return 0;
}
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
Re: С++. Программисты, помогите!
« Ответ #8 : Февраль 08, 2012, 23:18:58 »

// int argc, _TCHAR* argv[] то что в скобочках обязательно для программ которые пишутся в visual studio


...я вообще-то в Dev-C++ пишу)) смысл мне этого кода? он только программу с толку сбивает (как я писал выше)
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #9 : Февраль 09, 2012, 13:16:51 »
я не буду ставить среду как у вас.я вам написал чем то что вы дали можно заменить(или как бы я заменил).
а теперь чисто мое любопытство..зачем вы учитесь писать калькулятор который вообще так не пишется?
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Miklstar

  • Активность: 0%
  • Сообщений: 52
  • Спасибок получено: 0
    • Просмотр профиля
    • Адрес ВКонтакте
Re: С++. Программисты, помогите!
« Ответ #10 : Февраль 09, 2012, 13:33:53 »
зачем вы учитесь писать калькулятор который вообще так не пишется?

...чисто практика... захотел - попробовал...
... из тьмы приду я за тобой ...
... за руку уведу с собой ...
... и унесёмся к небесам ...
... где я — убью тебя ))

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #11 : Февраль 09, 2012, 14:38:38 »
#include <iostream> // подключения библиотеки для роботы функций cin и cout
using namespace std; // указываем что нужно использовать объектное пространство имен
void main()// Создание метода который служит точкой входа в программу можно просто void main
{

cout<<"Enter first and secound digits and press Enter"<<endl; // Создания потока выводящего на экран строчку , endl переход на новую строку
int a,b; // создание переменных целого типа
cin>>a>>b; // создание потока для инициализации переменных с клавиатуры
cout<<"Enter doing p-plus m-minus u-multyply and press Enter "<<endl;// Создания потока выводящего на экран строчку , endl переход на новую строку
char c; // создание переменой символьного типа для switch
cin>>c;// создание потока для инициализации переменных с клавиатуры
long rez=0; //создание переменой которая будет хранить результат
switch (c)
{
case 'p':
{
rez=a+b;
cout<<a<<" "<<b<<" "<<rez<<endl; //создание потока и направления его на консоль для вывода результатов
break;
}
case 'm':
{

rez=a-b;cout<<a<<" "<<b<<" "<<rez<<endl;//создание потока и направления его на консоль для вывода результатов
break;
}
case 'u':
{

rez=a*b;cout<<a<<" "<<b<<" "<<rez<<endl;//создание потока и направления его на консоль для вывода результатов
break;
}
}
system("pause"); //передача консоли системы команды приостановления роботы до нажатия клавиши (корректная замена getch()-который вобще создан для другого)

}
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Freya

  • Активность: 0%
  • Сообщений: 70
  • Спасибок получено: 0
  • "неважно с чего все начиналось,все закончиться..."
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #12 : Февраль 09, 2012, 14:38:57 »
так нормально?
"в тот момент, когда ты научишься обижаться, в тот самый, а не через секунду... в ту самую секунду... ты сразу же научишься обижать."с.

Оффлайн Кай Лерэйн

  • Герцог Терронский
  • Магистр
  • Мэр города
  • Активность: 0%
  • Сообщений: 4408
  • Спасибок получено: 294
    • Просмотр профиля
Re: С++. Программисты, помогите!
« Ответ #13 : Июнь 01, 2012, 12:33:51 »
Код можно брать в тег code - он тогда сохраняет форматирование.