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

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

Войти
Регистрация
Восстановить пароль
 
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
#1

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

26.10.2010, 22:34. Просмотров 748. Ответов 13
Метки нет (Все метки)

пробую написать программу с использованием структуры..

Создать структуру для работы с массивом. Данные структуры: массив 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 минут
если быть точным, то я просто не представляю как делать дальше... не ручаюсь также за то что это написано правильно..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2010, 22:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать структуру для работы с массивом (C++):

Создать класс для работы с двумерным массивом целых чисел - C++
Добрый день! Вторая (и последующие) лабораторная выглядит так: Что-то писал сам, что-то брал из интернета, получился такой код....

Нужно создать класс шаблона для работы c массивом 2х2 - C++
Нужно создать класс при помощи шаблона (template), c массивом 2х2(int,long,float,double) и 2-мя функциями ввода и вывода. Пожалуйста...

Создать класс для работы с двумерным динамическим массивом чисел - C++
Создать класс для работы с двумерным динамическим массивом чисел. Методы: -заполнить массив рандомно. -вывести массив. И...

Создать класс для работы с двумерным массивом вещественных чисел - C++
Создать класс для работы с двумерным массивом вещественных чисел. Разработать следующие элементы класса: a. Поля: •float **FloatArray; ...

Создать структуру Money для работы с денежными суммами - C++
Люди, помогите, пожалуйста! Есть задача: Создать структуру Money для работы с денежными суммами. Число должно быть представлено двумя...

Создать структуру окружность и методы для работы с ней - C++
Создайте структуру Окружность с элементами х0, у0- координаты центра, R -радиус. Для N окружностей вычислить длину каждой окружности и...

13
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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;
}
1
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 22:50  [ТС] #3
как я понял вместо Ob могут быть любые переменные?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
26.10.2010, 22:52 #4
pianeer, Ob - переменная структурного типа. Название может быть любое
0
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:11  [ТС] #5
программа не работает..

Добавлено через 17 минут
очень прошу помощи.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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;
}
1
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:21  [ТС] #7
большое спасибо работает..
только вот несколько вопросов:
почему не

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

Создать структуру для работы с массивом. Данные структуры: массив N(10). Создать функции: ввод массива, вывод массива, определение длины вектора. Длина массива определяется как квадратный корень из суммы квадратов элементов массива.
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
26.10.2010, 23:29 #8
pianeer, Э... Это длина массива? Ну ладно. Ща сделаю. А про input()... Она должна возвращать введенный объект уже, и он присваивается в мейне.
0
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:33  [ТС] #9
не совсем понял про input()..
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 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));
}
0
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. хочу вникнуть..
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
26.10.2010, 23:45 #12
pianeer, Э. Ну мы возвращаем значение длины массива. Так как это квадратный корень - возвращаем double. static_cast<double> приведение типа к double. Ибо у sqrt нет перегрузки для типа int
1
pianeer
0 / 0 / 0
Регистрация: 26.05.2010
Сообщений: 31
26.10.2010, 23:47  [ТС] #13
не совсем уловил смысл.. ну да ладно всё равно спасибо большое)
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
26.10.2010, 23:50 #14
pianeer, Попробую объяснить на бытовом уровне.
Итак.

Квадратный корень должен принимать тип с плавающей запятой/точкой (т.е. double или float). Возвращает он тоже такой же тип, ибо квадратный корень в большинстве своем, все же не целое число. Именно поэтому здесь так.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2010, 23:50
Привет! Вот еще темы с ответами:

Создать структуру Абитуриент и написать программу для работы с ней - C++
Прошу помочь с решением задачи. Опишите,используя структуру записи,конкурс на поступление(фамилия абитуриента и кол-во набранных...

Создать класс для работы с двумерным массивом вещественных чисел. В двоичной матрице найти совпадающие строки - C++
прошу помочь с решением задачи Создать класс для работы с двумерным массивом вещественных чисел. Разработать следующие элементы класса: ...

Переделать программу работы с массивом для работы с вектором - C++
помогите переделать эту программу!!...при одном условии....вот что находится между int main() и return 0; сохранить.....здесь нужно...

Структура для работы с массивом - C++
напишите пожалуйста программу по следующему заданию.. очень нужно.. Создать структуру для работы с массивом. Данные структуры: массив...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
26.10.2010, 23:50
Ответ Создать тему
Опции темы

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