Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.09.2017
Сообщений: 44

Создать описаниее класса для определения одномерных масивов строчек фиксированной длины

27.05.2018, 17:09. Показов 905. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В интернете была найдена прога, я ее исправила , но теперь неправильно выводит массив
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <locale>
using namespace std;
class Massiv_Class
{
 int *a,*d,n,min;
 public:
 void Sozd();
 void Vvod();
 void Sceplenie(int n1, int n2);
 void Slijanie(int n3, int n4);
 void Print();
 void Vivodstr(int number);
 void Vivodelem(int rec, int field);
};
void Massiv_Class :: Sozd() //
{
int m;
 cout<<"Кол-во строк=";cin>>n;
 int min=0;
 for (int i=0;i<n;i++)
 {
 cout<<"Кол-во элементов "<< i+1 <<"в строке -  ";
 cin>>m;
 *(d+i)=m;// не совсем понятно
if (min<m) min=m;// не совсем понятно
 }
 a=(int*)malloc(sizeof(int)*n*min);
}
void Massiv_Class::Vvod()// 
{
 Sozd();
 for(int i=0;i<n;i++)
 for (int j=0; j<*(d+i); j++)
 {
 cout << "Введите число" << i + 1 << " -  ";
        cin>> *(a+i+j);
 }
}
void Massiv_Class :: Print()//Вывод всех строк
{
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 cout<<setw(6)<<*(a+i+j);
 }
 cout<<endl;
 }
}
void Massiv_Class :: Vivodstr(int number)//Вывод по индексу
{cout<<"Введите номер массива : ";cin>>number;
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 if (i==number) cout<<setw(6)<<*(a+i+j);// не совсем понятно
 }
 cout<<endl;
 }
}
 
void Massiv_Class ::Vivodelem(int rec, int field)//Ââûâîä êîíêðåòíîãî åëåìåíòà êîíêðåòíîé ñòðîêè(field)
{cout<<"Введите номер строки: ";cin>>rec;
 cout<<endl;
 cout<<"Введите номр столбца: ";cin>>field;
 cout<<endl;
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 if ((i==rec)&&(j==field)) cout<<"Элемент-  "<<setw(6)<<*(a+i+j);
 else "Нету такого массиваí!";
 }
 cout<<endl;
 }
}
void Massiv_Class :: Sceplenie(int n1,int n2)//Сцепление двкх массивов
{ cout<<"Введите номер 1 строки: ";cin>>n1;cout<<endl;
 cout<<"Введите номер 2 строки : ";cin>>n2;cout<<endl;
 int m1,m2,k,j,l,p;
 int c[20];
 m1=*(d+n1);
 m2=*(d+n2);
 int m3=m1+m2;
 k=0;
 for (l=0;l<m3;l++)
 if(l<m1)
 {c[l]=*(a+n1+l);// не совсем понятно
 cout<<setw(6)<<c[l];
 }
 else if((l>=m1)&&(l<m3))
 {
 c[l]=*(a+n2+k);// не совсем понятно
 cout<<setw(6)<<c[l];
 k++;
 }
}
void Massiv_Class :: Slijanie(int n3,int n4)//Сцепление двух массивов без повторений
{cout<<"Введите номер 1 строки : ";cin>>n3;cout<<endl;
 cout<<"Введите номер 2 строки  ";cin>>n4;cout<<endl;
 int m1,m2,k,j,l,p,l1;
 int c[20],f[20];
 m1=*(d+n3);// не совсем понятно
 m2=*(d+n4);// не совсем понятно
 int m3=m1+m2;
 k=0;
 for (l=0;l<m3;l++)
 {
 if(l<m1)
 {c[l]=*(a+n3+l);
 }
 else if((l>=m1)&&(l<m3))
 {
 c[l]=*(a+n4+k);
 k++;
 }
 }
 l1=0;
 f[l1]=c[l1];
 cout<<setw(6)<<f[l1];
 for(p=1;p<m3;p++)
 if(f[l1]!=c[p])
 { l++;
 f[l1]=c[p];
 cout<<setw(6)<<f[l1];
 }
}
int main()
{
setlocale(LC_ALL,"Russian");
 Massiv_Class a,b;
 int number,punkt,rec,field,kol,n1,n2,n,n3,n4;
while (punkt!=7)
 { cout<<"__________________МЕНЮ_________________ ";cout<<endl;
 cout<<"1 - Создание массива ";cout<<endl;
 cout<<"2 - Вывод";cout<<endl;
 cout<<"3 - Вывод строки";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние 2х массивов (без повторений)";cout<<endl;
 cout<<"6 - Вывод элемента";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт -  "; cin>> punkt;
 
 switch(punkt)
 {
 case 1: {
 a.Vvod();
 cout<<endl;
 a.Print();
 cout<<endl;
 
 }
 break;
 case 2: {
 a.Print();
 cout<<endl;
 }
 break;
 case 3: {
 cout<<endl;
 a.Vivodstr(number);
 
 }
 break;
 case 4: {
 
 a.Sceplenie(n1,n2);
 cout<<endl;
}
 break;
 case 5: {
 
 a.Slijanie(n3,n4);
 cout<<endl;
}
 break;
 
 case 6: {
 
 a.Vivodelem(rec,field);
}
 break;
 case 7:
 break;
 }} }
Миниатюры
Создать описаниее класса для определения одномерных масивов строчек фиксированной длины  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2018, 17:09
Ответы с готовыми решениями:

Описание класса для определения одномерных массивов строк фиксированной длины
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным...

Создать класс одномерных масивов содержащих строки фиксированной длины
Очень прошу помочь, так как сам ничего не понимаю. Не смотря на мое желаниие учиться, преподаватели мне попались не очень, а требуют много....

ООП.Составить описание класса для определения одномерных массивов строк фиксированной длины
Условие задачи: Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть контроль выхода за...

7
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
27.05.2018, 17:18
Сырок, учимся алгоритмически мыслить, а не подбирать в сети всякий хлам

Добавлено через 42 секунды
скинь код оригинала и задание
0
0 / 0 / 0
Регистрация: 29.09.2017
Сообщений: 44
27.05.2018, 17:26  [ТС]
Вот код, как было
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cstdio>
#include <iomanip>
#include <math.h>
#include <locale>
using namespace std;
class Massiv
{
 int *a,*d,n,min;
 public:
 void Sozd();
 void Vvod_Sl();
 void Form(int n1, int n2);
 void Form_2(int n3, int n4);
 void Print();
 void Print_2(int number);
 void Print_3(int rec, int field);
};
void Massiv :: Sozd() //Создание массива строк
{
int m;
 cout<<"Количество строк=";cin>>n;
 int min=0;
 for (int i=0;i<n;i++)
 {
 cout<<"Количество элементов "<< i+1 <<" в строке= ";
 cin>>m;
 *(d+i)=m;
 if (min<m) min=m;
 }
 a=(int*)malloc(sizeof(int)*n*min);
}
void Massiv::Vvod_Sl()// Ввод случайных чисел в массив строк
{
 Sozd();
 for(int i=0;i<n;i++)
 for (int j=0; j<*(d+i); j++)
 {
 *(a+i+j)=rand()%100;
 }
}
void Massiv :: Print()//Ввывод всех строк
{
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 cout<<setw(6)<<*(a+i+j);
 }
 cout<<endl;
 }
}
void Massiv :: Print_2(int number)//Ввывод строк по индексу
{
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 if (i==number) cout<<setw(6)<<*(a+i+j);
 }
 cout<<endl;
 }
}
 
void Massiv :: Print_3(int rec, int field)//Ввывод конкретного елемента конкретной строки
{
 for(int i=0;i<n;i++)
 {
 for (int j=0; j<*(d+i);j++)
 {
 if ((i==rec)&&(j==field)) cout<<"Даный элемент= "<<setw(6)<<*(a+i+j);
 else "Массив с такими даннымы не найден!";
 }
 cout<<endl;
 }
}
void Massiv :: Form(int n1,int n2)//Сцепление двух массивов
{
 int m1,m2,k,j,l,p;
 int c[20];
 m1=*(d+n1);
 m2=*(d+n2);
 int m3=m1+m2;
 k=0;
 for (l=0;l<m3;l++)
 if(l<m1)
 {c[l]=*(a+n1+l);
 cout<<setw(6)<<c[l];
 }
 else if((l>=m1)&&(l<m3))
 {
 c[l]=*(a+n2+k);
 cout<<setw(6)<<c[l];
 k++;
 }
}
void Massiv :: Form_2(int n3,int n4)//Слияние двух массивов
{
 int m1,m2,k,j,l,p,l1;
 int c[20],f[20];
 m1=*(d+n3);
 m2=*(d+n4);
 int m3=m1+m2;
 k=0;
 for (l=0;l<m3;l++)
 {
 if(l<m1)
 {c[l]=*(a+n3+l);
 }
 else if((l>=m1)&&(l<m3))
 {
 c[l]=*(a+n4+k);
 k++;
 }
 }
 l1=0;
 f[l1]=c[l1];
 cout<<setw(6)<<f[l1];
 for(p=1;p<m3;p++)
 if(f[l1]!=c[p])
 { l++;
 f[l1]=c[p];
 cout<<setw(6)<<f[l1];
 }
}
void main()
{
setlocale(LC_ALL,"Russian");
 Massiv a,b;
 int number,punkt,rec,field,kol,n1,n2,n,n3,n4;
  cout<<"1 - Создание массива ";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;
 while (punkt!=7) //Меню
 {
 switch(punkt)
 {
 case 1: {
 a.Vvod_Sl();
 cout<<endl;
 a.Print();
 cout<<endl;
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;
 }
 break;
 case 2: {
 a.Print();
 cout<<endl;
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt; }
 break;
 case 3: {
 cout<<"Введите номер массива (нумерация начинаеться с 0!): ";cin>>number;
 cout<<endl;
 a.Print_2(number);
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;
 }
 break;
 case 4: {
 cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n1;cout<<endl;
 cout<<"Введите номер 2-го массива (нумерация начинаеться с 0!!!): ";cin>>n2;cout<<endl;
 a.Form(n1,n2);
 cout<<endl;
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;}
 break;
 case 5: {
 cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n3;cout<<endl;
 cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n4;cout<<endl;
 a.Form_2(n3,n4);
 cout<<endl;
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;}
 break;
 
 case 6: {
 cout<<"Введите номер строки массива(нумерацыия начинаеться с 0!): ";cin>>rec;
 cout<<endl;
 cout<<"Введите номер столбца: ";cin>>field;
 cout<<endl;
 a.Print_3(rec,field);
 cout<<"1 - Создание массива";cout<<endl;
 cout<<"2 - Вывод всех строк";cout<<endl;
 cout<<"3 - Вывод строки по индексу";cout<<endl;
 cout<<"4 - Сцепление двух массивов";cout<<endl;
 cout<<"5 - Слияние двух масивов";cout<<endl;
 cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
 cout<<"7 - Выход";cout<<endl;
 cout<<"Выберете пункт в меню: "; cin>> punkt;}
 break;
 case 7:
 break;
 }
 }
 }
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
27.05.2018, 17:41
Сырок, а задание? что должен он делать по твоему?

Добавлено через 5 минут
ужас, как можно вообще что то понимать в таком коде, каша.
0
0 / 0 / 0
Регистрация: 29.09.2017
Сообщений: 44
27.05.2018, 17:48  [ТС]
Так в меню все написано,"Создать описаниее класса для определения одномерных масивов строчек фиксированной длины. Предусмотреть возможность обращения к отделльным строчкам масива за индексами, контроль выхода за границы индекса, исполнение операций поелементного обьединения двух масивов с созданием нового масива, слитие двух масивов с исключением повторяющихся элементов, печать (вывод на экран) эллементов масива и всего масива". Не очень разбираюсь в классах, и в проге кроме некороторых моментов все понятно..
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
27.05.2018, 18:05
Цитата Сообщение от Сырок Посмотреть сообщение
while (punkt!=7)
ты видел что обращаешься к не инициализированной переменной?
0
0 / 0 / 0
Регистрация: 29.09.2017
Сообщений: 44
27.05.2018, 18:10  [ТС]
ноу, она инициализирована
C++
1
2
int number,punkt,rec,field,kol,n1,n2,n,n3,n4;
while (punkt!=7)
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
27.05.2018, 18:12
Сырок, советую тебе другой код искать, это свалка а не код. ошибка на ошибке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2018, 18:12
Помогаю со студенческими работами здесь

Составить описание системы объектов для определения одномерных массивов строк фиксированной длины
Составить описание системы объектов для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к...

Разработка класса одномерных массивов строк фиксированной длины
Всем здрате. Вот собственнно просьба: подскажите в каком направении двигаться) Класс должен предусматривать слияние двух массивов и...

Сделать зеркальное отображение одномерных масивов ABC, массивы разной длины
Сделать зеркальное отображение одномерных масивов ABC, массивы разной длины. Помогите пожалуйста, срочно надо сдать лабу :С

Создать описаниее класса прямоугольника со сторонами, параллельными осям координат
Создать описаниее класса прямоугольника со сторонами, параллельными осям координат, и заданного координатами двух его вершин. Предусмотреть...

Составить описание класса для определения одномерных массивов
напишите пжлста програмку:


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru