Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
#1

Cтруктуры. Перечисления. Объединения - C++

19.01.2011, 12:25. Просмотров 2303. Ответов 22

Вот у меня закончилась тема функции и началась СТРУКТУРЫ. ПЕРЕЧИСЛЕНИЯ. ОБЪЕДИНЕНИЯ. прочитав лекцию я так и не понял что от меня требуется в задании. Что в этой теме происходит.вот раньше например мы работали с масивами.Я знал что в функциях тоже самые масивы но по другому чуть чуть. А тут прочитал весь материал к лабораторной работе и ничего не понял.Что требуется от меня в этом задании
0
Миниатюры
Cтруктуры. Перечисления. Объединения  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2011, 12:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Cтруктуры. Перечисления. Объединения (C++):

Структуры, Объединения, Перечисления
Реализовать программу для хранения информации о студентах одного потока....

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

Cтруктуры в С++, создание БД.
Здравствуйте. Помогите, пожалуйста, решить данное задание. 1. Создать БД в...

Cтруктуры, поиск книг заданного автора
Добрый вечер. Была поставлена задача следующим образом: "Для книг, хранящихся...

Перечисления
Здравствуйте. Возник вопрос по использованию перечилсений в С++. Есть код: ...

Перечисления
Добрый день, проблема в том чтобы использовать запись вида enum values {...

22
Merlin666
98 / 98 / 29
Регистрация: 26.12.2010
Сообщений: 220
19.01.2011, 13:04 #2
Вам ее написать?

Добавлено через 6 минут
Первое задание:
C++
1
2
3
4
5
6
7
8
9
10
11
struct Marsh
{
  char beg[80];
  char end[80];
  int number;
 
  Marsh()
  {
   number=0;
  }
};
Добавлено через 30 минут
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
79
80
81
82
83
84
85
86
#include <vcl.h>
#include <iostream.h>
#include <cstring.h>
#pragma hdrstop
 
#pragma argsused
 
struct Marsh
{
  char beg[80];
  char end[80];
  int number;
 
  Marsh()
  {
   beg[0]=0;
   end[0]=0;
   number=0;
  }
 
  Marsh(char *b, char *e,int n)
  {
   strcpy(beg,b);
   strcpy(end,e);
   number=n;
  }
 
  friend void Swap(Marsh x, Marsh y);
  friend void Sort(Marsh x[], int n);
  friend void Print(Marsh x[],int n);
 
};
 
void Swap(Marsh x, Marsh y)
{
 Marsh *p;
 p=&x;
 
 x=y;
 
 y=*p;
}
 
void Sort(Marsh x[], int n)
{
 for (int i = 0; i < n; ++i)
 {
   for (int j = 0; j < n-1; ++j)
   {
     if (x[i].number > x[j].number)
     {
        swap(x[i], x[j]);
     }
    }
  }
 
  Print(x, n);
}
 
 
void Print(Marsh x[],int n)
{
  for (int i=0;i<n;i++)
  {
    cout<<x[i].number<<" ";
  }
}
 
void main()
{
  Marsh *newmarsh=new Marsh[8];
 
  for (int i=0;i<8;i++)
   newmarsh[i]=Marsh();
 
  for (int i=0;i<8;i++)
  {
    cout<<"Marsh #"<<i+1<<"\n";
    cout<<"Num = "; cin>>newmarsh[i].number;
    cout<<"Beg = "; cin>>newmarsh[i].beg;
    cout<<"End = "; cin>>newmarsh[i].beg;
    cout<<"\n";
  }
 
  Sort(newmarsh,8);
}
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
19.01.2011, 23:56  [ТС] #3
Спасибо но я не понял что это мне еще не понятно.Что в этом задание требуется разьясните А то я даже не понимаю что это из себя представляет
0
rdksoft
22 / 22 / 6
Регистрация: 24.12.2008
Сообщений: 81
20.01.2011, 00:01 #4
В первом задании требуется всего лишь описать структуру как это делается думаю объяснять не стоит)
C++
1
2
3
4
5
6
struct Marsh
{
  char beg[80];
  char end[80];
  int number;
};
А во втором требуется всего лишь обработать массив из этих структур.
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
20.01.2011, 01:09  [ТС] #5
сама структура beg80 b end 80 это что?
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
20.01.2011, 02:04 #6
C++
1
2
3
4
5
6
struct Marsh
{
 char beg[80]; // массив символов(начальный пункт маршрута)
 char end[80]; // массив символов(конечный пункт маршрута)
 int number; // номер маршрута
};
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
20.01.2011, 11:38  [ТС] #7
А номер маршрута указывает на какойто элемент масссива ?
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
20.01.2011, 14:24 #8
Цитата Сообщение от Steam.dll Посмотреть сообщение
А номер маршрута указывает на какойто элемент масссива ?
Нет, ето просто порядковый номер!!!
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
20.01.2011, 14:44  [ТС] #9
порядковый номер элемента массива?
0
MILAN
888 / 782 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
20.01.2011, 15:27 #10
Цитата Сообщение от Steam.dll Посмотреть сообщение
порядковый номер элемента массива?
Да нет, можно сказать просто номер, он может быть какой угодно!!!
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
20.01.2011, 16:25  [ТС] #11
я просто не могу соорентироватся масив это цифры написанные в столбец . что эта програма должна виводить на экран
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
20.01.2011, 16:34 #12
Цитата Сообщение от Steam.dll Посмотреть сообщение
я просто не могу соорентироватся масив это цифры написанные в столбец
Изложы свой вопрос в болие понятной форме, если хочешь что бы кто-то ответил на него.
Цитата Сообщение от Steam.dll Посмотреть сообщение
что эта програма должна виводить на экра
Ты задание вообще читал ?
0
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
13.02.2011, 20:00  [ТС] #13
Для чего нужны структуры? И вот в программе как ей воспользоватся?
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <iostream>
using namespace std;
struct rip 
    {
    char a[400];
    char b[400];
    int  c;
    } ;
int main(void)
{
    
    int f;
    rip a[400];
    rip b[400];
    rip c;
    char d[400];
    char o[400];
    gets(d);
    gets(o);
    strcpy(d,a);
    strcpy(d,b);
    scanf("%d",&c);
    {
        f=c;
    }
    printf("%d",f);
    printf("%s\n%s",a,b);
    getch();
    return 0;
}
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
13.02.2011, 20:07 #14
Цитата Сообщение от Steam.dll Посмотреть сообщение
Для чего нужны структуры?
Для создания пользовательских типов данных.

Добавлено через 2 минуты
Цитата Сообщение от Steam.dll Посмотреть сообщение
И вот в программе как ей воспользоватся?
Скомпилируй, запусти, потестируй.
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
13.02.2011, 21:17  [ТС] #15
Эту псевдо программу напечатал я сам. Она не работает пишет что я не правильног обьявил переменные из структуры.
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
13.02.2011, 21:19 #16
А задание какое ?
1
Steam.dll
3 / 3 / 2
Регистрация: 05.11.2010
Сообщений: 131
13.02.2011, 21:58  [ТС] #17
Да я просто разобраться со структурами хочу. В ней структура дальше я обьявил два масива в них через gets Вводятся данные и потом из этих массивов содержимое копируется в другой массив и выводится на экран как бы задумано. Но она что то не раотает.
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
13.02.2011, 22:08 #18
Цитата Сообщение от Steam.dll Посмотреть сообщение
Вводятся данные и потом из этих массивов содержимое копируется в другой массив
А структуры тут при чем, если Вы хотите скопировать данные з одного масива символов в другой ?

Добавлено через 3 минуты
Так что давайте уточним:
есть структура
C++
1
2
3
4
5
6
struct rip 
{
        char a[400];
        char b[400];
        int  c;
};
обращение к полям структуры осуществляеться через оператор "точка" то есть так
C++
1
2
rip obj;//Создаем обект структуры
obj.a //обращаемся к масиву "a"
а если есть масив структур то есть так
C++
1
2
rip obj[10];//Масив из десяти перемнных типа rip
obj[0].a//Обращение к масиву а первой перемменой з нашего масива структур
1
Мигрень
21 / 21 / 2
Регистрация: 09.11.2010
Сообщений: 102
13.02.2011, 22:34 #19
Раз тема про структуры, то я решил вставить свои пять коп
Сам толком с структурами дела не имел, но ответить на тесты надо


Объедение в структурах применяется для того, чтобы:
1) Объединять в одной переменной несколько параметров объекта, с которым работает программист
2) программа стала более понятной
3) Экономить память
4) Заменять старые имена имеющихся типов на новые
5) давать названия новым типам, которые конструируют программисты
6) объявлять новые имена для уже имеющихся типов
Выбрать правильные ответы...


Буду очень благодарен
1
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
13.02.2011, 22:40 #20
Мигрень, Думаю что
Цитата Сообщение от Мигрень Посмотреть сообщение
3) Экономить память
обосновуя тем, что обединения изначально были созданы для того, что бы экономит память.
2
13.02.2011, 22:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 22:40
Привет! Вот еще темы с решениями:

Перечисления..
страна(Германия,Куба,Бирма,Монако,Непал,Польша,Кения)...

Перечисления в классах
Не могу понять почему в классах работают перечисления? Я не могу в классе...

Задание на перечисления
Напишите программу,которая сначала по первой букве должности,введенной...

Случайный элемент перечисления
Можно ли найти случайный элемент перечисления(enum) и как это сделать?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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