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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
#1

применение указателей, структур и объединений - C++

19.10.2009, 01:53. Просмотров 1388. Ответов 19
Метки нет (Все метки)

Здравствуйте, люди добрые!!
(^_^)/

Очень нуждаюсь в вашей помощи...
Помогите разобраться студентке!!
(Y_Y)(^o^)/

Задание примерно следующее:
Составить программу на языке Си, в которой согласно таблице

выполнить:
1. объявить тип данных для хранения информации о заданном объекте;
2. описать, с помощью объявленного типа, заданные переменные и присвоить им заданные значения;
3. объявить тип данных для хранения целых чисел в двоично-десятичном формате;
4. описать, с помощью объявленного типа, переменные с заданными именами и указатели на них;
5. описать указатель на заданный указатель;
6. написать функцию, выполняющую заданные действия над двоично-десятичными числами;
7. объявить указатель на функцию;
8. задать начальные значения переменных с использованием:
1) имени переменной,
2) указателя на нее,
3) указателя на указатель;
9. выполнить заданные действия:
1) с использованием вызова функций,
2) с использованием указателя на функцию.

Результаты выполнение п.п.1-2 и 8-9 вывести на экран в виде таблицы. Для структур вывести адреса и значения каждого поля. Для указателей выводить адрес и значение указателя, а также содержимое области памяти, на которую указывает указатель.


Подскажите, пожалуйста, с чего следует начинать??
Миниатюры
применение указателей, структур и объединений  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2009, 01:53     применение указателей, структур и объединений
Посмотрите здесь:

Вопрос о разумном использовании структур\перечислений\объединений - C++
Доброго времени суток, Форумчане! Цель работы - написание что-то типа базы данных. Допустим я захотел сделать базу видео.. и вот,...

Программирование с использованием перечислений, структур, объединений и полей бит - C++
Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем –обработка списка. Сначала в...

Объявить объединение из двух структур и структуру из двух объединений - C++
Объявить объединение из двух структур и структуру из двух объединений. Заполнить значениями, вывести на экран.

Применение указателей - C++
Доброй ночи. Встретил вот такое выражение в книге и не могу понять что к чему: Distance& dist = *(new Distance); После чего можно...

Применение и удаление указателей - C++
Здравствуйте. Я не могу понять сути,когда нам нужно удалить указатель для освобождения памяти. Есть указатель: int...

Применение структур в прикладном программировании - C++
расскажите мне про структуры и их применение в прикладном программировании, заранее спасибо.

Разбор указателей и структур - каковы их суть и назначение - C++
Доброго времени суток форумчане. В университете мы изучаем C++ по учебнику Павловской и Щупака. Недавно прошли главы по Указателям и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.10.2009, 02:54     применение указателей, структур и объединений #2
тут таблица неполная

5. описать указатель на заданный указатель;
какой именно ?

во втором пункте должны быть какие-то значения, которых нет
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
19.10.2009, 03:09  [ТС]     применение указателей, структур и объединений #3
указатели на указатели:e, f

компьютерные комплектующие с параметрами:дата изготовления, цена, вид (видеоплата (макс. разрешающая способность, макс. частота, объем видеопамяти), звуковая плата (разрядность, частотный диапазон, амплитуда входного сигнала), сетевая плата (скорость обмена, вид интерфейса))

должно получится что вроде сруктуры, в которой юнион, в котором несколько структур...
Search..
Заказ софта
340 / 185 / 10
Регистрация: 26.05.2009
Сообщений: 863
19.10.2009, 04:28     применение указателей, структур и объединений #4
Цитата Сообщение от Girl-On Посмотреть сообщение
Помогите разобраться студентке!!
Ну и что, что ты студентКА ? Почему 99% девушек пытаются подчеркнуть то, что они девушки ?
Могу написать программу в обмен на пламенный поцелую...
------------------------------------------------------------------------------------------------
P.S. Программа на столько легка, что я в шоке. На каком ты курсе ?
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.10.2009, 05:54     применение указателей, структур и объединений #5
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
struct video {
      int x, y;
      unsigned long frequency;
      unsigned long volume;
};
 
struct audio {
    int bits;
    unsigned long freqmin, freqmax;
    unsigned long amplitude;
};
 
struct network {
    unsigned long bitsPerSecond;
    char interface[100];
};
 
struct item {
    char date[10], cost[10];
    union {
        struct video u;
        struct audio v;
        struct network w;
    } type;
};
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
19.10.2009, 22:20  [ТС]     применение указателей, структур и объединений #6
(* ^)3(*^^*)
вау, пасибки, accept

а как написать функцию, выполняющую произведение над двоично-десятичными числами??
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
19.10.2009, 22:37     применение указателей, структур и объединений #7
Search..,
Ну и что, что ты студентКА ? Почему 99% девушек пытаются подчеркнуть то, что они девушки ?
Природный инстинкт подманивания самцов :rotate:

как написать функцию, выполняющую произведение над двоично-десятичными числами??
воспользоваться устройством пользовательского ввода, в простонародье именуемым клавиатурой. там есть такие кнопочки, по ним надо давить пальчиками, тогда выскакивают буковки.
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
19.10.2009, 23:15  [ТС]     применение указателей, структур и объединений #8
хм, а какие именно кнопочки с буквочки нужно нажимать?? и в каком кол-ве??

Добавлено через 20 минут
а какие именно кнопочки с буквочками нажимать?? и в какой последовательности??
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.10.2009, 06:57     применение указателей, структур и объединений #9
3. объявить тип данных для хранения целых чисел в двоично-десятичном формате;
где-то должно быть определение "двоично-десятичном формате"
Search..
20.10.2009, 07:43
  #10

Не по теме:

Эх... Как говорил мой дед: "Не всегда лучше сделать, чем не сделать, но порой нужно что-то сделать, не смотря на то, что это не следовало бы делать.".

Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
21.10.2009, 02:53  [ТС]     применение указателей, структур и объединений #11
Людям все же помогать нужно, это зачтется - вам тоже кто-то обязательно поможет. А указывая людям на их незнание в чем-либо хуже становится не только им, но и себе. Унижая других самомнение, конечно, может и увеличится, но стоит ли его поднимать таким способом??

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

Я обратила за помощью, и мне бы очень хотелось ее получить, если вы понимаете о чем речь, то неужели так жалко поделиться информацией?? Ведь это же нетрудно...

Добавлено через 10 минут
В двоично-десятичной СС числа образуются заменой 10-ного разряда 4-битовым представлением, т.е. можно 10 представить в виде степеней 2-ек. Запись числа в BCD как-то разделится на пол байта...

Умножаются числа в ДДК, как и в 10-ной СС, значит, главное - это написать преобразование 10-ных чисел, а потом их умножить, так??
Но как это записать на языке Си??

Добавлено через 2 минуты
3. объявить тип данных для хранения целых чисел в двоично-десятичном формате;
4. описать, с помощью объявленного типа, переменные с заданными именами и указатели на них;
5. описать указатель на заданный указатель;
это будет что-то так:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
  struct BCD {
    unsigned int /*какое имя элемента нужно указать?*/: 10;
  } x,y,z,a,*b,*c,*d,**e,**f;[/CODE][SIZE=1][COLOR=grey][I]Добавлено через 24 минуты[/I][/COLOR][/SIZE]
Попытка полной программы:[CODE]#include<stdio.h>
#include<conio.h>
 
void print (video u, audio v, network w)  {
  printf("+---------------+---------------+---------------+----------------+\n");
  printf("|   peremenaya  |     razmer    |     adres     |    znachenie   |\n");
  printf("|---------------|---------------|---------------|----------------|\n");
  printf("|       u       |       %d       |     %x      |      %-4d      |\n",sizeof(k),&k,k);
  printf("|       v       |       %d       |     %x      |      %-4d      |\n",sizeof(l),&l,l);
  printf("|       w       |       %d       |     %x      |      %-4d      |\n",sizeof(m),&m,m);
  printf("+---------------+---------------+---------------+----------------+\n");
}
 
void product (/**/) {
  //
}
 
void main() {
  
  struct video {
    unsigned long allowing_ability;
    unsigned long frequency;
    unsigned long volume;
  };
 
  struct audio {
    int bits;
    unsigned long frequency_range;
    unsigned long amplitude;
  };
 
  struct network {
    unsigned long speed_of_exchange;
    char interface[100];
  };
 
  struct comp_compl {
    char date[10], cost[10];
    union {
        struct video u;
        struct audio v;
        struct network w;
    } type;
  };
  
  struct BCD {
    unsigned int /*какое имя элемента нужно указать?*/: 10;
  } x,y,z,a,*b,*c,*d,**e,**f;
  
  print(/*печатаем п.1-2*/);
  
  //задаем начальные значения 
  
  //с использованием имени переменной
  x=//а чему это равно??
  y=//мне стыдно, но я условие 
  z=//плохо поняла...
  a=//может можно произвольное задать??
  
  //а как можно задать значение с использованием указателя
  
  //и указателя на указатель??
  
  product(/*что точно надо умножать??*/);
  print(/*петаем п.8-9*/);
  
  //Как для указателей выводить адрес и значение указателя, 
  //а также содержимое области памяти, на которую указывает указатель
  
}
Добавлено через 2 минуты
Изрыла весь "Гугл" и "Яндекс" ничего понятного не нашла. Есть куча книг по этим темам, но, НЕ ПОНЯТНО !!
Жду вашей помощи
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.10.2009, 03:39     применение указателей, структур и объединений #12
http://ru.wikipedia.org/wiki/%D0%94%...BA%D0%BE%D0%B4

Добавлено через 7 минут
3. объявить тип данных для хранения целых чисел в двоично-десятичном формате;
четырёхзначное десятичное число
C
1
2
3
4
5
6
7
struct bcd {
    unsigned long r1 : 4;
    unsigned long r2 : 4;
    unsigned long r3 : 4;
    unsigned long r4 : 4;
    /* ... */
};
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
21.10.2009, 03:43  [ТС]     применение указателей, структур и объединений #13
спс,
а как преобразовать программно??
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.10.2009, 03:50     применение указателей, структур и объединений #14
число 1234 в десятичной системе
r1 = 4;
r2 = 3;
r3 = 2;
r4 = 1;

C
1
2
3
    struct bcd n = { 0x01, 0x02, 0x03, 0x04 };
 
    n.r1 = 0x09; /* превращает число n из 1234 в 1239 */
Добавлено через 1 минуту
6. написать функцию, выполняющую заданные действия над двоично-десятичными числами;
там стоит произведение

Добавлено через 3 минуты
с вики, если происходит перенос из одного полубайта в другой, то там переносится число шестнадцать, и, так как система подразумевает только десять, число шесть надо оставить в полубайте, поэтому нужно к нему прибавить шесть после всей операции (это для каждого такого полубайта)
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
21.10.2009, 03:54  [ТС]     применение указателей, структур и объединений #15
что-то вроде запрещенного кода??

Добавлено через 1 минуту
а для произведения же надо функцию написать,
т.е. передавать в нее уже преобразованные числа??
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
21.10.2009, 04:24     применение указателей, структур и объединений #16
запрещёнными там считаются все после девятки
Код
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F

1010
1011
1100
1101
1110
1111
функция принимает такую структуру (для каждого числа), она же должна получить результат и записать его так же

C
1
struct bcd Multiplicate(struct bcd a, struct bcd b);
Добавлено через 15 секунд
они маленькие - можно без указателей
Girl-On
0 / 0 / 0
Регистрация: 25.05.2009
Сообщений: 12
21.10.2009, 20:00  [ТС]     применение указателей, структур и объединений #17
вот я что-то попыталась опять дописать:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<stdio.h>
#include<conio.h>
 
void print (video u, audio v, network w)  {
  printf("+---------------+---------------+---------------+----------------+\n");
  printf("|   peremenaya  |     razmer    |     adres     |    znachenie   |\n");
  printf("|---------------|---------------|---------------|----------------|\n");
  printf("|       u       |       %d       |     %x      |      %-4d      |\n",sizeof(u),&u,u);
  printf("|       v       |       %d       |     %x      |      %-4d      |\n",sizeof(v),&v,v);
  printf("|       w       |       %d       |     %x      |      %-4d      |\n",sizeof(w),&w,w);
  printf("+---------------+---------------+---------------+----------------+\n");
}
 
struct bcd multiplication (struct bcd x, struct bcd y, struct bcd z, struct bcd a) {
  pr=x*y*z*a;//не так, да??
  return pr;
}
 
void main() {
  
  struct video {
    unsigned long allowing_ability;
    unsigned long frequency;
    unsigned long volume;
  };
 
  struct audio {
    int bits;
    unsigned long frequency_range;
    unsigned long amplitude;
  };
 
  struct network {
    unsigned long speed_of_exchange;
    char interface[100];
  };
 
  struct comp_compl {
    char date[10], cost[10];
    union {
        struct video u;
        struct audio v;
        struct network w;
    } type;
  };
  
  struct bcd {
    unsigned long r1 : 4;
    unsigned long r2 : 4;
    unsigned long r3 : 4;
    unsigned long r4 : 4;
  } x,y,z,a,*b,*c,*d,**e,**f;
    
  print(u,v,w);
  
  //задаем начальные значения 
  
  //с использованием имени переменной
  struct bcd x = { 0x01, 0x02, 0x03, 0x04 };
  struct bcd y = { 0x02, 0x05, 0x01, 0x02 }; 
  struct bcd z = { 0x01, 0x01, 0x02, 0x03 };
  struct bcd a = { 0x04, 0x01, 0x05, 0x01 };
  
  //а как можно задать значение с использованием указателя
  b=&x;
  c=&y;
  d=&z;
  //и указателя на указатель??
  e=&b;
  f=&c; 
  
  pr=multiplication(x,y,z,a);
  print(b,c,d);
  
  //Как для указателей выводить адрес и значение указателя, 
  //а также содержимое области памяти, на которую указывает указатель
  
}
помогите исправить, очень прошу
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.10.2009, 05:33     применение указателей, структур и объединений #18
функция для двух чисел, остальные перемножаются ею же

C
1
2
3
4
5
6
7
8
9
10
11
12
struct bcd {
    unsigned long r1 : 4;
    unsigned long r2 : 4;
    unsigned long r3 : 4;
    unsigned long r4 : 4;
    unsigned long r5 : 4;
    unsigned long r6 : 4;
    unsigned long r7 : 4;
    unsigned long r8 : 4;
    unsigned long r9 : 4;
    unsigned long r10 : 4;
  }
чтобы результат помещался

по ходу надо реализовать что-то вроде умножения в столбик, если функцию сложения не писать внутри
Nike775
3 / 2 / 1
Регистрация: 01.04.2010
Сообщений: 30
03.04.2010, 12:01     применение указателей, структур и объединений #19
обьясние мне как составлять из структур деревья
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2010, 06:29     применение указателей, структур и объединений
Еще ссылки по теме:

Как сделать сортировку по дате в массивве объединений - C++
Оформлены в виде массива объединений. Написать программу, которая вводит данные в память машины в диалоге, выводит данные в виде Вывод...

Написать программу удаления заданного числового значения из массива объединений - C++
Написать программу удаления заданного числового значения из массива объединений

Создать массив объединений, содержащих поля unsigned int и float - C++
Очень вас прошу! Нужно написать на С++ программу! Я уже отчаялась. Часа 2 над этим сижу В программе должно быть как минимум 2...

Объясните что такое массив объединений и с чем его едят - C++
Написать программу удаления заданного числового значения из массива объединений. Объясните что такое массив объединений и с чем его...

Переписать программу ввода информации по книге с помощью объединений (Union) - C++
И снова здравствуйте!)) проблема следующая..не могу понять как работать с объединениями каким образом их можно заставить работать вместе со...


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

Или воспользуйтесь поиском по форуму:
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.04.2010, 06:29     применение указателей, структур и объединений #20
структура может хранить указатели
указатель может быть указателем на структуру
таким образом структура может хранить указатель на такую же структуру

C
1
2
3
4
5
6
struct tnode {
    int data;
    struct tnode *left;
    struct tnode *right;
    struct tnode *middle;
};
указатель не хранит ничего, кроме адреса

C
1
2
3
4
5
    struct tnode n;
 
    n.left = &n;
    n.right = &n;
    n.middle = &n;
если обратиться к n.left->data, мы получим то же самое, что и через n.data
узел дерева замкнулся на себя

C
1
2
3
4
5
    struct tnode n, lson, rson, mson;
 
    n.left = &lson;
    n.right = &rson;
    n.middle = &mson;
n.left->data будет тем же самым, чем будет lson.data
здесь дерево имеет корень n, а lson - это левый сын этого корня

C
1
2
3
4
5
6
    struct tnode n, lson, rson, mson, llson;
 
    n.left = &lson;
    n.right = &rson;
    n.middle = &mson;
    n.left->left = &llson;
n.left->left->left.data будет тем же, чем будут llson.data и lson.left->data
n - корень, lson - левый сын корня, llson - левый сын левого сына корня
Yandex
Объявления
04.04.2010, 06:29     применение указателей, структур и объединений
Ответ Создать тему
Опции темы

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