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

Структуры. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа на С. Вывести уникальные слова в двух строках. http://www.cyberforum.ru/cpp-beginners/thread61751.html
Помогите написать программу на Си. Требуется написать программу которой вводишь два предложения, а она в ответ тебе выводит только те слова, которые есть лишь в одном из них. Я вроде пытался что то сделать int L=0, R=0, L1=0, L2=0, L3=0; char *TeT, TeT2; char menu = '1'; char *Pred1,*Pred2; L=100;
C++ Меню в консольном режиме Вобщем не прошу написать код полностью,просто расскажите или дайте ссылку где можно прочитать о подобном) Смысл в том,что нужно сделать менюшку.Но как текстовую с тем условием что пользователь вводит номер пункта,который нужно реализовать я примерно знаю как сделать.Но можно сделать что бы как можно было выбирать с помощью стрелочек на клавиатуре(нажал вниз и флажочек переместился на нижний... http://www.cyberforum.ru/cpp-beginners/thread61721.html
Найти одинаковые слова C++
Помогите написать програмку: дано две строковые переменные в них по несколько слов разделенных пробелами, как найти одинаковые слова из первой и второй переменной, тоисть это слово есть и в первой и во второй переменной?
Что-то вроде базы данных C++
Извините за название темы, лучше не смог обозвать ее. Простите если напсал не в ту тему, просьба к модерам\админам, тогда переместить пост в нужный раздел. Заранее огромное спасибо. Значит по теме. Проблема в следующем. Мне нужно написать такую грубо говоря мини базу данных на ВС. Программа должна иметь простейшее меню, позволяющее добавлять новые данные, удалять выбранные пользователем...
C++ Распечатать матрицу http://www.cyberforum.ru/cpp-beginners/thread61664.html
Задание на удивление простое: считать и вывести матрицу размером m x n !! Помогите, потому что я в это реальный чайник!! Завдання напрочуд просте: зчитати та вивести матрицю розміром m x n !! Поможіть, бо я в цьому реальний чайник!!
C++ Найти последнюю цифру. кто знает, как найти последнюю цифру какого-либо числа? подробнее

Показать сообщение отдельно
aka_Kiss
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 29

Структуры. - C++

06.11.2009, 22:41. Просмотров 850. Ответов 12
Метки (Все метки)

Задачка, очень запутанная, но тем она становится более интересной.
Но у меня трабл в решении. Прошу помощи))

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

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

Вот, то, на что хватило моего ума:
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
//функция вывода таблицы результатов п.п. 1-2 и 8-9
void print_ob (float a, int b, char c) {
  printf("+---------------+---------------+---------------+----------------+\n");
  printf("|   peremenaya  |     razmer    |     adres     |    znachenie   |\n");
  printf("|---------------|---------------|---------------|----------------|\n");
  printf("|      cena     |       %d       |     %x      |      %f      |\n",sizeof(a),&a,a);
  printf("|       vid     |       %d       |     %x      |      %d      |\n",sizeof(b),&b,b);
  printf("|      data     |       %d       |     %x      |      %s      |\n",sizeof(c),&c,c);
  printf("+---------------+---------------+---------------+----------------+\n");
}
//функция умножения двоично-десятичных чисел
struct bcd multiplication (struct bcd x, struct bcd y, struct bcd z, struct bcd a) {
  pr=x*y*z*a;//не так, да??
  return pr;
}
 
//описываем типы компьютерных компмектующих
  struct video {
    int allowing_ability;
    int frequency;
    int volume;
  };
 
  struct audio {
    int bits;
    int frequency_range;
    int amplitude;
  };
 
  struct net {
    int speed_of_exchange;
    char interface[100];
  };
  
  enum kind {
    video=0;
    audio=1;
    net=2;
  };
  
  struct eguipment {
    kind ek;
    float cena;
    int vid;
    char data[10];
    union {
        struct video x;
        struct audio v;
        struct network w;
    };
  };
  
//описываем тип записи двоично-десятичных чисел
  struct bcd {
    unsigned int low : 4;
    unsigned int  hi : 4;
  };
но вот в главной программе вообще хавайся:
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
void main() {
  
    eguipment u, v, w;
    
  clrscr();
  
  //выбираем вид
  cout<<"VVIDITE VID COMPLEKTUUSCHEGO KOMP'UTERA \n\n\n";
  cout<<"0 - video card \n\n 
         1 - sound card \n\n
         2 - network card \n\n;
  scanf ("%d", &u.ek);
  
 //выбрали и начинаем вводить данные
  
  if (u.ek==video) {
  cout<<"vvedite cenu tovara\n";
  cin>>u.cena;
  cout<<"\nvvedite datu izgotovleniya\n";
  cin>>u.data;
  cout<<"\nvvedite vid tovara\n";
  cin>>u.vid;
  cout<<"\nvvedite maximalnoe razreahenie videokarti\n";
  cin>>u.x.allowing_ability;
  cout<<"\nvvedite maximalnuy 4astotu videokarti\n";
  cin>>u.x.frequency;
  cout<<"\nvvedite objem videokarti\n";
  cin>>u.x.volume;
  print_ob (cena, vid, data);
  printf("|allowing_ability|       %d       |     %x      |      %d      |\n",sizeof(u.x.allowing_ability),&u.x.allowing_ability,u.x.allowing_ability);
  printf("|   frequency    |       %d       |     %x      |      %d      |\n",sizeof(u.x.frequency),&u.x.frequency,u.x.frequency);
  printf("|    volume      |       %d       |     %x      |      %d      |\n",sizeof(u.x.volume),&u.x.volume,u.x.volume);
  printf("+----------------+----------------+-------------+--------------+\n"); 
  
  if(a.ek==audio) {
  cout<<"vvedite cenu tovara\n";
  cin>>u.cena;
  cout<<"\nvvedite datu izgotovleniya\n";
  cin>>u.data;
  cout<<"\nvvedite vid tovara\n";
  cin>>u.vid;
  cout<<"\nvvedite razryadnost\n";
  cin>>u.z->bits;
  cout<<"\nvvedite 4astotniy diapazon\n"; 
  cin>>u.z->frequency_range;
  cout<<"\nvvedite amplitudu\n";
  cin>>u.z->amplitude;
  print_ob (cena, vid, data);
  printf("|     bits      |       %d       |     %x      |      %d      |\n",sizeof(u.z->bits),&u.z->bits,u.z->bits);
  printf("|frequency_range|       %d       |     %x      |      %d      |\n",sizeof(u.z->frequency_range),&u.z->frequency_range,u.z->frequency_range);
  printf("|   amplitude   |       %d       |     %x      |      %d      |\n",sizeof(u.z->amplitude),&u.z->amplitude,u.z->amplitude);
  printf("+----------------+----------------+-------------+--------------+\n"); 
  
  
  //задаем начальные значения 
  
  //с использованием имени переменной
  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);
  
  //Как для указателей выводить адрес и значение указателя, 
  //а также содержимое области памяти, на которую указывает указатель
  
}

Помогите переделать этот черновик в отлично работающую программку.


переменные и начальные значения:
u-видеоплата
v-звуковая плата
w-сетевая плата

переменные: x, y, z, a

указатели: b, c, d

указатели на указатели: e, f
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru