Воскресенье, 22 Мая 2022, 16:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Вопрос по C++
Вопрос по C++
programerДата: Четверг, 08 Июля 2010, 15:31 | Сообщение # 1
был не раз
Сейчас нет на сайте
правильно ли я понимаю работу программы?

================================================

Прикрепления: 6442107.jpg(122.8 Kb)


Сообщение отредактировал programer - Четверг, 08 Июля 2010, 15:32
BetMoraДата: Четверг, 08 Июля 2010, 15:33 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
да, правильно
P.S. не стоило делать ник "programmer"


Перекуём баги на фичи!
programerДата: Пятница, 09 Июля 2010, 01:50 | Сообщение # 3
был не раз
Сейчас нет на сайте
Появился свежий вопрос.
Вот собственно мне нужно что-бы программа была способна вычислять температуру указанную как целым(int) числом
так и с плавающей точкой (flout)
Нут типа ввожу я число а она определяет какого типа введенно чиисл, и с помощью перегрузки выполняет ту функцию которая совпадает с типом введённого числа.
вот сообственно ...но так программа работает только с целыми числами.
=======================================================================

=======================================================================
дальше не понимаю как это реализовать?
Только начинаю C++, и вот спрашивают выше указанную программу.
М.Б мне просто прописать что-бы программа спрашивала две переменные одну float другую int
и потом всё это проделать через перегрузку и вывести два сообщения на экран одно типа float другое int?


Сообщение отредактировал programer - Пятница, 09 Июля 2010, 01:53
BADCOIQДата: Пятница, 09 Июля 2010, 02:05 | Сообщение # 4
Отец-основатель BADCOIQ Corporation © 2010
Сейчас нет на сайте
programer, МБ приведение типа?
programerДата: Пятница, 09 Июля 2010, 03:03 | Сообщение # 5
был не раз
Сейчас нет на сайте
м.б - может.Поможете а?
BOOMДата: Пятница, 09 Июля 2010, 09:34 | Сообщение # 6
I am the creator of ADE
Сейчас нет на сайте
У меня вопрос: сколько ты занимаешься C++.
Если ты им стал заниматься недавно, то всё встаёт на место.

С вопросом перегрузки операторов/функций тем я встречал (не только здесь) много раз. И отвечу в очередной раз:

C++ есть язык с системой неявного представления типов. То есть есть возможность одним словом представить тип integer как некое число с плавающей точкой. В данном случае float.
Тогда, после числа можно указать букву f: 0.45f. Компилятор, встретив такое выражение, автоматически определит, что речь идёт о float, и тогда выполнится перегрузка функции "Convert".
Можно, так же, указав явный тип перед значением, взяв его в скобочку: (long double)3. И в таком случае компилятор распознает, что речь идёт о числе с плавающей точкой и выполнит перегрузку функции.
В данном моменте я указал тип "long double", который является типом чисел с плавающей точкой точности 3, и разрядности 80bit. Но компилятор просмотрит тип и подберёт функцию, которая имеет более подходящий аргумент. Но выдаст ошибку предупреждении .

Пример записей кода.

Code
int x;
float y;
y = Convert(0.56f); //float-float
x = (int) Convert(1.66f); //float-int
x = Convert(90); //int-int

И мой совет: поищи книжки по С++. happy


______________________________
Я вернулся, и это чудо.
______________________________


Сообщение отредактировал BOOM - Пятница, 09 Июля 2010, 09:36
programerДата: Суббота, 10 Июля 2010, 01:21 | Сообщение # 7
был не раз
Сейчас нет на сайте
Help люди:D
Написал программу.Всё норм компилиться,компануется..
Ввожу числа..нажимаю enter...программа тут же вылетает,то есть результат не кажет мне(
что делать?Студия 2008MS Visual
Code
#include <iostream>
using namespace std;

int main()
{
   unsigned short small;
   unsigned long  large;
   const unsigned short MAXSMALL=65535;

   setlocale(LC_ALL, "Russian");
   cout<<"Введите небольшое число: ";
   cin>>small;
   cout<<"Введите большое число: ";
   cin>>large;
   cout<<"число: "<<small<<"...";
   //При каждой интераций проверять три условия
   while(small<<large && large>0 && small<<MAXSMALL)
   {//После каждых 5000 строк выводить три условия
    if(small % 5000==0)
     cout<<".";
    small++;
    large-=2;
   }
cout<<"\nНебольшое: "<<small
     <<"Большое: "<<large<<endl;
       cin.get();
        return 0;
}


Сообщение отредактировал programer - Суббота, 10 Июля 2010, 01:24
BOOMДата: Суббота, 10 Июля 2010, 03:56 | Сообщение # 8
I am the creator of ADE
Сейчас нет на сайте
programer, она не вылетает, а завершается успешно. В Винде консольные приложения завершаются автоматически.

Попробуй перед строкой:

Code
return 0;

дописать строку:
Code
system("pause");

функция "SYSTEM" выполняет строки из командных сценариев винды (те, которые пишутся в файле *.bat).
Команда "Pause" выполняет останов приложения, выводя на экран строку:

Quote
Для продолжения нажмите любую клавишу

как то так.

(Это приметив, но для начала достаточно).

Если не заработает, попробуй приленковать stdlib.h

Code
#include <stdlib>

или
Code
#include <stdlib.h>

всё зависит от компилятора...


______________________________
Я вернулся, и это чудо.
______________________________


Сообщение отредактировал BOOM - Суббота, 10 Июля 2010, 03:58
programerДата: Суббота, 10 Июля 2010, 17:55 | Сообщение # 9
был не раз
Сейчас нет на сайте
BOOM,спасибо конечно,но посидев час другой решил проблему написав вот такое
Code
#include <iostream>
using namespace std;

int main()
{
  unsigned short small;
  unsigned long  large;
  const unsigned short MAXSMALL=65535;

  setlocale(LC_ALL,"Russian");
  cout<<"Введите небольшое число: ";
  cin>>small;
  cout<<"Введите большое число: ";
  cin>>large;
  cout<<"Небольшое: "<<small<<"...";
  cin.get();
  //При каждой интераций проверять три условия
  while(small<large && large>0 && small<MAXSMALL)
  {//После каждых 5000 строк выводить три условия
   if(small % 5000==0)
    cout<<".";
   small++;
      large-=2;
  }

      cout<<"\nНебольшое "<<small
       <<" Большое: "<<large<<endl;
       cin.get();
       return 0;
}

то есть до цикла while дописал ещё оджну задержку

Code
cin.get();
evilCodeДата: Суббота, 10 Июля 2010, 19:12 | Сообщение # 10
The Metal
Сейчас нет на сайте
можно ещё подключить
Code
#include <conio.h>

и перед
Code
return 0;

написать
_getch();


evilCode aka sanyok31



Сообщение отредактировал evilCode - Суббота, 10 Июля 2010, 19:13
programerДата: Понедельник, 12 Июля 2010, 04:49 | Сообщение # 11
был не раз
Сейчас нет на сайте
Всем привет,есть программа написанная мною,в ней есть два цикла for,нужно как-то заменить первый цикл for на цикл while.
То есть нужно заменить первый цикл for на цикл while а второй цикл for сделать вложенным в цикл while,ну что-бы всё стабильно
работало как и с for;как то так:)
перечитал про цикл while много,но всё ранво не понял как это реализовать.
помогите уважаемые программисты,и все кто с таким встречался:)
сильно не ругайте,я только учу C++:)

Вот прога(создание матрицы xD)

Code
#include <iostream>
using namespace std;
int main()
{
   setlocale(LC_ALL,"Russian");
   int rows,columns;
   char theChar;
   int j=0;
   cout<<"Сколько колонок? ";
   cin>>rows;
   cout<<"Сколько колон? ";
   cin>>columns;
   cout<<"Какой символ? ";
   cin>>theChar;
   cin.get();
     
   for(int j=0;j<rows;j++)
   {
   for(int i=0;i<columns;i++)
    cout<<theChar;
   cout<<"\n";
   }
   cin.get();
   return 0;
}


Сообщение отредактировал programer - Понедельник, 12 Июля 2010, 04:51
PesetsДата: Среда, 14 Июля 2010, 11:46 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Code
   while (j < rows)
    {
    for(int i=0;i<columns;i++)
     cout<<theChar;
    cout<<"\n";
    j++;
    }

так, чтоли?



Форум игроделов » Программирование » C/C++ » Вопрос по C++
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг