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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
#1

типы данных - C++

09.06.2009, 12:36. Просмотров 2764. Ответов 45
Метки нет (Все метки)

на Си реализовать: (не С++)
построить функцию, возвращающую все байты заданного вещественного х в целом виде.
т.е. нам например вводят 10 как float, а нам нужно вернуть его как int, елси наоборот -это просто.... а вот так...
кто подскажет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2009, 12:36     типы данных
Посмотрите здесь:

типы данных - C++
какой диапазон данных у main, getch? и какой тип данных у getch?

Типы данных - C++
Добрый день. Очень нужна помощь умных людей в написании программы, задание приведено ниже. Буду очень благодарен если кто-то откликнется. ...

Типы данных - C++
Мне задали в университете лабораторную работу. Написать программу вычисления среднего массивов типа int,float и complex. Функции,...

типы данных - C++
уважаемые программисты, как отвести типу char 2 байта? пишу шахматы, 6 фигур, хочу, чтобы каждый бит отводился для определенной фигуры, +...

Типы данных - C++
__int64 Z = pow(a,x); long double Y = 9/Z; cout<<Y //Y = 0 Как вывести подробней? Добавлено через 6 минут И при Y%Z не...

Типы данных - C++
Помогите пожалуйста решить проблему с типами данных. C++ только начинаю учить, поэтому не знаю, можно ли так сделать или нет. Нужно...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
10.06.2009, 23:44  [ТС]     типы данных #41
вывел следующее:
2
4
4

Добавлено через 1 минуту 47 секунд
вывод заменил, теперь получаем так:
C++
1
2
3
size = 4 4
fval=1.234500
u.i=1067320345
Evg
Эксперт CАвтор FAQ
17470 / 5708 / 363
Регистрация: 30.03.2009
Сообщений: 15,670
Записей в блоге: 26
10.06.2009, 23:50     типы данных #42
Цитата Сообщение от Акелла Посмотреть сообщение
вывел следующее:
2
4
4
Итого, получаем следующее. Я хотел выяснить размер типов, используемых в твоём компиляторе. У профессионального программиста я бы получил ответ за 5 секунд. У непрофессионального программиста - за 2 минуты (т.е. надо было влепить код из поста 14, и показать выдачу). У непрофессионального программиста, который любит много думать - более часа и более 20 постов на форуме. Постарайся всё-таки не допускать таких ляпусов Делай то, о чём тебя просят - быстрее решишь свою задачу

Цитата Сообщение от Акелла Посмотреть сообщение
вывод заменил, теперь получаем так:
C++
1
2
3
size = 4 4
fval=1.234500
u.i=1067320345
Это правильный вариант. ТОлько в десятичном виде. Если нужно в 16-ричном, то печтать надо через "%lx" (вместо "%ld"). В в main замени "%i" на "%ld" или "%lx" (что больше нравится)

Суть проблемы была написана изначально. В union'е в качестве целого типа надо поставить тот, чей размер равен 4 байтам (размеру float'а)
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
10.06.2009, 23:53  [ТС]     типы данных #43
Цитата Сообщение от Evg Посмотреть сообщение
У непрофессионального программиста - за 2 минуты (т.е. надо было влепить код из поста 14, и показать выдачу). У непрофессионального программиста, который любит много думать - более часа и более 20 постов на форуме.
спасибо порадовал=)
ну нет, надо же думать - просто переписывать я не хочу, толку то от меня тогда и грош мне цена коли не учусь=)



Цитата Сообщение от Evg Посмотреть сообщение
Это правильный вариант. ТОлько в десятичном виде. Если нужно в 16-ричном, то печтать надо через "%lx" (вместо "%ld"). В в main замени "%i" на "%ld" или "%lx" (что больше нравится)
а, то есть выводит он верно.. эм.. а вариант так чтобы вводим например 1,2345 а он выводит (возвращает то етсь) нам 12345 нет?
Evg
Эксперт CАвтор FAQ
17470 / 5708 / 363
Регистрация: 30.03.2009
Сообщений: 15,670
Записей в блоге: 26
11.06.2009, 00:00     типы данных #44
Цитата Сообщение от Акелла Посмотреть сообщение
спасибо порадовал=)
ну нет, надо же думать - просто переписывать я не хочу, толку то от меня тогда и грош мне цена коли не учусь=)
Наверно изначально нужно было сказать, что я прошу тебя влепить этот код не потому, что я его за тебя написал, а для того, чтобы выяснить, в чём проблема. Просто суть задачи ты понял, но подводных камней (типа размеры базовых типов) по совей неопытности пока не видишь. А суть подводного камня я достаточно чётко не обрисовал. Проблему в BullDogoff мы обсудили, но ты этого не понял. А я со своей стороны поленился довести это до тебя

Цитата Сообщение от Акелла Посмотреть сообщение
а, то есть выводит он верно.. эм.. а вариант так чтобы вводим например 1,2345 а он выводит (возвращает то етсь) нам 12345 нет?
Такой вариант не удовлетворяет постановке задачи. Но если очень хочится - вводишь строку и удаляешь в ней точку. По другому никак. Если 1.2345 представляется точно, то какое-нибудь 1.333 - нет (ну или просто подобрать число). Т.е. уже на этапе формирования этого числа в виде float'а ты потеряешь его истинное значение
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.06.2009, 00:08  [ТС]     типы данных #45
Цитата Сообщение от Evg Посмотреть сообщение
Просто суть задачи ты понял, но подводных камней (типа размеры базовых типов) по совей неопытности пока не видишь.


Evg, еще разз спс огромное , кажеться понял что и зачем все... сейчас еще раз просмторю объединение, чтобы запомнить принцип.

кстати, можешь про объединение в двух словах как про структуру данных?

я для себя полистал справочник - узнал что это структура, элементы которой расположенны по одному и тому же адресу, откда следует что ее размер определяеться размером наибольшего элемента и в любой момент времени оно омжет хранить только один элемент.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2009, 08:46     типы данных
Еще ссылки по теме:

ТЕСТЫ Типы данных на С - C++
Какой тип машинно-зависимый А. unsigned long Б. unsigned char В. unsigned int Г. unsigned short Д. unsigned long long Какой...

Перечисляемые типы данных - C++
Какие есть в С++ перечисляемые типы данных? Какая у них область применения? Спасибо!)

Функции и типы данных - C++
Cоздать 3 одномерных статических массива Х1, Х2, Х3 размерностями N1, N2, N3 (где N константа, определяемая в программе программистом)....

Основные типы данных - C++
1) Объявить в программе переменные и константы (выбор обосновать) для хранения следующих данных: а) площадь произвольного цилиндра, ...


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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17470 / 5708 / 363
Регистрация: 30.03.2009
Сообщений: 15,670
Записей в блоге: 26
11.06.2009, 08:46     типы данных #46
> откда следует что ее размер определяеться размером наибольшего элемента

ага

> и в любой момент времени оно омжет хранить только один элемент

скахано несколько коряво, но смысл примерно такой. Объединение сделано для того, чтобы хранить непересекающиеся данные в одном месте памяти. Условно говоря, есть у тебя пониятие фигуры, а есть атрибуты фигуры. Для круга это радиус, для квадрата - сторона, для прямойугльника две стороны. Фигура у тебя может быть только чем-то одним, а потому иместь свойство только одной фигуры. На пальцах примерно так (для поля type лучше использовать enum, но лениво писать)

C
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
struct figura
{
  int type; // 1 - круг, 2- квадрат, 3 - прямоугольник
  union
  {
    int radius; // если type==1, то радиус круга
    int side; // если type==2, то сторона квадрата
    struct
    {
      int x;
      int y;
    } sides; // если type==3, то стороны прямоугольник
  } property;
};
 
void create_circle (struct figura *f, int raduis)
{
  f->type = 1;
  f->property.radius = radius;
}
 
void create_rectangle (struct figura *f, int x, int y)
{
  f->type = 3;
  f->property.sides.x = x;
  f->property.sides.y = y;
}
 
void draw (struct figura *f)
{
  switch (f->type)
  {
    case 1:
      draw_circle (t->property.radius);
      break;
    case 3:
      draw_rectangle (t->property.sides.x, t->property.sides.y);
      break;
  }
}
Yandex
Объявления
11.06.2009, 08:46     типы данных
Ответ Создать тему
Опции темы

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