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

Создать структуру для работы с массивом - C++

Восстановить пароль Регистрация
 
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 22:34     Создать структуру для работы с массивом #1
пробую написать программу с использованием структуры..

Создать структуру для работы с массивом. Данные структуры: массив N(10). Создать функции: ввод массива, вывод массива.
проверьте пожалуйста и подскажите как делать.


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
#include <iostream.h>
struct Laba
{
       int mas[10];
};
void input(Laba &, int);
void output(Laba &);
void dlina(Laba &);
main ()
{
     cout<<"vvedite elementy massiva - "<<endl;
     input();
     cout<<"massiv: "<<endl;
     cout<<"dlina massiva: "<<endl;
     return 0;
}
void input(Laba &strc,int i)
{
     for(i=0;i<10;i++){
                       cout<<"ввести "<<i+1<<" элемент"<<endl;
                       cin>>strc.mas[i];
}
void output(Laba &strc);
{
     for(i=0;i<10;i++){
                       cout<<"mas["<<i<<"]="<<strc.mas[i];}
                       cout<<endl;
}
Добавлено через 25 минут
если быть точным, то я просто не представляю как делать дальше... не ручаюсь также за то что это написано правильно..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 22:34     Создать структуру для работы с массивом
Посмотрите здесь:

C++ Создать структуру Money для работы с денежными суммами
Структура для работы с массивом C++
Создать класс для работы с двумерным массивом вещественных чисел C++
Создать класс для работы с двумерным динамическим массивом чисел C++
Создать структуру Абитуриент и написать программу для работы с ней C++
Создать класс для работы с двумерным массивом вещественных чисел. В двоичной матрице найти совпадающие строки C++
C++ Изменить программу для работы с массивом из string
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 22:47     Создать структуру для работы с массивом #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 <iostream.h>
struct Laba
{
       int mas[10];
};
Laba input();
void output(Laba &);
int dlina(Laba &);
int main ()
{
     Laba Ob;
     cout<<"vvedite elementy massiva - "<<endl;
     Ob=input();
     cout<<"massiv: "<<endl;
     output(Ob);
     cout<<"dlina massiva: "<<endl;
     cout<<dlina(Ob)<<endl;
     return 0;
}
void input()
{
     for(int i=0;i<10;i++){
                       cout<<"ввести "<<i+1<<" элемент"<<endl;
                       cin>>strc.mas[i];
}
void output(Laba &strc);
{
     for(int i=0;i<10;i++){
                       cout<<"mas["<<i<<"]="<<strc.mas[i];}
                       cout<<endl;
}
 
int dlina(Laba& Ob)
{
    return 10;
}
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 22:50  [ТС]     Создать структуру для работы с массивом #3
как я понял вместо Ob могут быть любые переменные?
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 22:52     Создать структуру для работы с массивом #4
pianeer, Ob - переменная структурного типа. Название может быть любое
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:11  [ТС]     Создать структуру для работы с массивом #5
программа не работает..

Добавлено через 17 минут
очень прошу помощи.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 23:13     Создать структуру для работы с массивом #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А так?

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
#include <iostream.h>
 
struct Laba
{
       int mas[10];
};
Laba input();
void output(Laba &);
int dlina(Laba &);
int main ()
{
     Laba Ob;
     cout<<"vvedite elementy massiva - "<<endl;
     Ob=input();
     cout<<"massiv: "<<endl;
     output(Ob);
     cout<<"dlina massiva: "<<endl;
     cout<<dlina(Ob)<<endl;
     return 0;
}
Laba input()
{
    Laba strc;
     for(int i=0;i<10;i++){
                       cout<<"ввести "<<i+1<<" элемент"<<endl;
                       cin>>strc.mas[i];
     }
     return strc;
}
void output(Laba &strc)
{
     for(int i=0;i<10;i++){
                       cout<<"mas["<<i<<"]="<<strc.mas[i];}
                       cout<<endl;
}
 
int dlina(Laba& Ob)
{
    return 10;
}
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:21  [ТС]     Создать структуру для работы с массивом #7
большое спасибо работает..
только вот несколько вопросов:
почему не

C++
1
void input()
а
C++
1
Laba input()
как вы уже догадались здесь ещё одна функция должна быть) не могли бы её добавить?
целиком задание звучит так

Создать структуру для работы с массивом. Данные структуры: массив N(10). Создать функции: ввод массива, вывод массива, определение длины вектора. Длина массива определяется как квадратный корень из суммы квадратов элементов массива.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 23:29     Создать структуру для работы с массивом #8
pianeer, Э... Это длина массива? Ну ладно. Ща сделаю. А про input()... Она должна возвращать введенный объект уже, и он присваивается в мейне.
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:33  [ТС]     Создать структуру для работы с массивом #9
не совсем понял про input()..
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 23:38     Создать структуру для работы с массивом #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В чем суть input в моей версии. В функции мы создаем новый объект типа Laba, заполняем его массив, возвращаем объект в main. Присваиваем это возвращаемое значение переменной типа Laba, с которой работаем впоследствии. Можно сделать void и подавать туда этот объект просто.

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
#include <iostream.h>
#include <math.h>
 
struct Laba
{
       int mas[10];
};
 
Laba input();
void output(Laba &);
double dlina(Laba &);
 
int main ()
{
     Laba Ob;
     cout<<"vvedite elementy massiva - "<<endl;
     Ob=input();
     cout<<"massiv: "<<endl;
     output(Ob);
     cout<<"dlina massiva: "<<endl;
     cout<<dlina(Ob)<<endl;
     return 0;
}
Laba input()
{
        Laba strc;
     for(int i=0;i<10;i++){
                       cout<<"ввести "<<i+1<<" элемент"<<endl;
                       cin>>strc.mas[i];
         }
         return strc;
}
void output(Laba &strc)
{
     for(int i=0;i<10;i++){
                       cout<<"mas["<<i<<"]="<<strc.mas[i];}
                       cout<<endl;
}
 
double dlina(Laba& Ob)
{
    int sum=0;
    for(int i=0; i<10; ++i)
    {
        sum+=Ob.mas[i]*Ob.mas[i];
    }
    return sqrt(static_cast<double>(sum));
}
Добавлено через 3 минуты
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
struct Laba
{
       int mas[10];
};
 
void input(Laba &);
void output(Laba &);
double dlina(Laba &);
 
int main ()
{
     Laba Ob;
     cout<<"vvedite elementy massiva - "<<endl;
     input(Ob);
     cout<<"massiv: "<<endl;
     output(Ob);
     cout<<"dlina massiva: "<<endl;
     cout<<dlina(Ob)<<endl;
     return 0;
}
void input(Laba& strc)
{
     for(int i=0;i<10;i++){
                       cout<<"ввести "<<i+1<<" элемент"<<endl;
                       cin>>strc.mas[i];
         }
}
void output(Laba &strc)
{
     for(int i=0;i<10;i++){
                       cout<<"mas["<<i<<"]="<<strc.mas[i];}
                       cout<<endl;
}
 
double dlina(Laba& Ob)
{
    int sum=0;
    for(int i=0; i<10; ++i)
    {
        sum+=Ob.mas[i]*Ob.mas[i];
    }
    return sqrt(static_cast<double>(sum));
}
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:43  [ТС]     Создать структуру для работы с массивом #11
static_cast<double> для чего это? и почему
C++
1
double dlina
а не опять же
C++
1
void dlina
P.S. хочу вникнуть..
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 23:45     Создать структуру для работы с массивом #12
pianeer, Э. Ну мы возвращаем значение длины массива. Так как это квадратный корень - возвращаем double. static_cast<double> приведение типа к double. Ибо у sqrt нет перегрузки для типа int
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:47  [ТС]     Создать структуру для работы с массивом #13
не совсем уловил смысл.. ну да ладно всё равно спасибо большое)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 23:50     Создать структуру для работы с массивом
Еще ссылки по теме:

C++ Нужно создать класс шаблона для работы c массивом 2х2
Создать класс для работы с двумерным массивом целых чисел C++
C++ Шаблон класса для работы с массивом
Переделать программу работы с массивом для работы с вектором C++
Создать структуру окружность и методы для работы с ней C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
26.10.2010, 23:50     Создать структуру для работы с массивом #14
pianeer, Попробую объяснить на бытовом уровне.
Итак.

Квадратный корень должен принимать тип с плавающей запятой/точкой (т.е. double или float). Возвращает он тоже такой же тип, ибо квадратный корень в большинстве своем, все же не целое число. Именно поэтому здесь так.
Yandex
Объявления
26.10.2010, 23:50     Создать структуру для работы с массивом
Ответ Создать тему
Опции темы

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