Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
1

из четырех строк образует две строки по правилу c++

27.09.2013, 22:53. Показов 824. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
писать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b)
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2013, 22:53
Ответы с готовыми решениями:

Описать процедуру, которая образует строки по правилу
Описать процедуру ,которая из четырех строк образует две строки по правилу: (x,y,a,b)...

Начиная с первой строки сдвинуть все строки на две вниз, а последние две перенести на место первых двух строк
Используя Procedure Swap!

Дан массив строк. Преобразовать строки с четной длиной по правилу: удалить все цифры из второй половины строки; а строки
pascalABC.net

Дан массив строк. Преобразовать строки с четной длиной по правилу: удалить все цифры из второй половины строки; а строки
Дан массив строк. Преобразовать строки с четной длиной по правилу: удалить все цифры из второй...

15
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
28.09.2013, 13:12 2
что не получается?
1
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
28.09.2013, 14:47  [ТС] 3
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).
у меня ставит элементы b[6..11]
попробовала другой счетчик для b но не выходит

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
#pragma argsused
int main(int argc, char* argv[])
{ char  a[20], b[20] ,x[20],y[20]         ;
 
cout<< "a = (20 simbol)\n" ;
for (int i=1;i<=20;i++)
cin >>a[i];
cout<<"\nb = (20 simbol)\n" ;
for (int i=1;i<=20;i++)
cin >>b[i];
cout<<"\nx = (20 simbol)\n" ;
for (int i=1;i<=20;i++)
cin >>x[i];
cout<<"\ny = (20 simbol)\n" ;
for (int i=1;i<=20;i++)
cin >>y[i];
 cout<<"\n new x = \n";
 for (int i=1;i<=20;i++){
 if (i>=1 && i<=9)    x[i]=a[i];
 cout<<x[i]<<" ";}
  cout<<"\n new y = \n";
 for (int i=1;i<=20;i++){
 if (i>=6 && i<=11)    y[i]=b[i];
 cout<<y[i]<<" ";}
        getch();
        return 0;
}
1
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
28.09.2013, 16:13 4
Цитата Сообщение от Жанерке Посмотреть сообщение
for (int i=1;i<=20;i++)
Почему с 1-цы начинаете индексировать?
<= на < замените.
А что сделать хотите?
0
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
28.09.2013, 17:06  [ТС] 5
IGPIGP,
писать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b)
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).

вот задача выглядит так , поэтому с 1-цы
0
135 / 134 / 53
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
28.09.2013, 18:07 6
Можно через string:


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>
#include <string>
 
using std::string;
 
void Str(string x, string y, string a, string b);
 
int main()
{
    string a = "Hello";
    string b = "Hai";
    string x = "Privet";
    string y = "Null";
 
    std::cout << a << std::endl;
    std::cout << b << std::endl;
    std::cout << x << std::endl;
    std::cout << y << std::endl;
    Str(x, y, a, b);
}
 
void Str(string x, string y, string a, string b)
{
    string c1 = a + x;
    string c2 = y + b;
    std::cout << c1 << std::endl;
    std::cout << c2 << std::endl;
}
1
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
28.09.2013, 18:27  [ТС] 7
мне нужно что бы вышло так:
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).
0
135 / 134 / 53
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
28.09.2013, 18:57 8
Так нужно??

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
#include <iostream>
 
void Str(char *a, char *x, char *y, char *b);
 
int main()
{
    char a[20], b[20], x[20], y[20];
 
    // Вводим а
    std::cout << "Введите ровно 19 символов a: ";
    std::cin >> a;
 
    // Вводим b
    std::cout << "Введите ровно 19 символов b: ";
    std::cin >> b;
 
    // Вводим x
    std::cout << "Введите ровно 19 символов x: ";
    std::cin >> x;
 
    // Вводим y
    std::cout << "Введите ровно 19 символов y: ";
    std::cin >> y;
 
    // Функция
    Str(a, x, y, b);
}
 
void Str(char *a, char *x, char *y, char *b)
{
    // Выводим x
    std::cout << "X = ";
    for (int i = 0; i < 8; i++)
        std::cout << a[i];
    for (int i = 8; i < 20; i++)
        std::cout << x[i];
    std::cout << std::endl;
    std::cout << "Y = ";
    // Выводим y
    for (int i = 0; i < 5; i++)
        std::cout << y[i];
    for (int i = 0; i < 6; i++)
        std::cout << b[i];
    for (int i = 11; i < 20; i++)
        std::cout << y[i];
}
1
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
05.10.2013, 17:40  [ТС] 9
писать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b)
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).

помогите решить плииз(((

я решила с помощью цикла, а мне надо решить эту задачу использую функцию но как сделать я не знаю
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
05.10.2013, 18:45 10
Жанерке, трудность в том, что не ясно, что нужно сделать. Строки и массивы это не всегда одно и тоже. Скобки при чем? Что такое x= и у=... Подумайте и задайте вопрос по-другому. Можно задание дословно положить, например. А вот это непонятно вообще:
Цитата Сообщение от Жанерке Посмотреть сообщение
писать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b)
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).
Правило правильней править правильно.
0
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
05.10.2013, 18:52  [ТС] 11
IGPIGP,
16. Описать процедуру, которая из четырех строк образует две строки по правилу: (x,y,a,b)
x=(a1,a2,...,a8,x9,x10,...,x20);
y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).



вот таки задано задание .

не важно каким методом решать (string или char массив)
суть в том что надо использовать функцию
(
C++
1
2
3
4
  void(char *a){
...................................
..........................
return a;}
)

типо этого
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
05.10.2013, 18:57 12
Цитата Сообщение от Жанерке Посмотреть сообщение
не важно каким методом решать (string или char массив)
суть в том что надо использовать функцию
Это не то. Вы бы сказали:
Исходные данные:
массив, тип, описание
и
массив, тип, описание
Задание:
получить массив, тип, описание

Понимаете? Посмотрите на свой вопрос глазами человека, который не видел условия Вашей задачи.
Напишите то, что нужно и сразу получите ответ.
1
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
05.10.2013, 19:13  [ТС] 13
IGPIGP,
дано 4 char массива из 20 символ
a[20]={a1,a2,a3,a4,......a20}
b[20]={b1,b2,b3,..........b20}
x[20]={x1,x2,x3............x20}
y[20]={y1,y2,y3,y4,......y20}

массивы вводим с клавиатуры
надо написать функцию который возвращает X и Y
должно равно
x[20]={a1,a2,a3,a4,...a8,x9,x10,x11........x20}
y[20]={y1,y2,y3,y4,y5,b1,b2,b3,b4,b5,b6,y12,y13,y14.......y20}
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
05.10.2013, 19:44 14
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
#include <iostream>
#include <windows.h>
using namespace std;
void 
mu_to_ta_ta_ta(
char *x, char *y, char *a, char *b, int n, int x_marg_min, int x_marg_max, int y_marg_min, int y_marg_max
){
cout<<"\n new x = \n";
 for (int i=0;i<n;i++){
 if (i>x_marg_min && i<x_marg_max)    x[i]=a[i];//8 элементов a1...a8
cout<<x[i]<<" ";}
cout<<"\n new y = \n";
  int cnt_b=0;
 for (int i=0;i<n;i++){
 if (i>x_marg_min && i<y_marg_max) y[i]=b[cnt_b++];
cout<<y[i]<<" ";}
}
 
int main(int argc, char* argv[]){ 
SetConsoleCP (1251); SetConsoleOutputCP (1251);
const int n = 3;//3 - для прогона, напишите 20 и будет 20 элементов)
    char a[n], b[n] ,x[n] ,y[n]         ;
    
int x_marg_min=-1;  
int x_marg_max=8;
int y_marg_min=4;
int y_marg_max=11;
 
cout<< "a = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>a[i];
cout<<"\nb = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>b[i];
cout<<"\nx = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>x[i];
cout<<"\ny = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>y[i];
 
mu_to_ta_ta_ta(x, y, a, b, n, x_marg_min, x_marg_max, y_marg_min, y_marg_max);
 
        cout << endl;
system("pause");   
return 0;
}
Внутрь не всматривался, но внешне, это так может выглядеть.
1
35 / 35 / 8
Регистрация: 22.09.2013
Сообщений: 170
05.10.2013, 20:21  [ТС] 15
IGPIGP, рахмеееет))))) спасибоооо))))
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
06.10.2013, 02:37 16
Жанерке, нема за що, як кажуть у нас)
Вот в этом фрагментике, для единообразия (из предположения, что цепочки a, b вставляются с их начала и последовательно) лучше бы как и в случе с Y:
C++
1
2
3
4
5
cout<<"\n new x = \n";
int cnt_a = 0;
 for (int i=0;i<n;i++){
 if (i>x_marg_min && i<x_marg_max)  x[i]=a[cnt_a++];//8 элементов a1...a8
cout<<x[i]<<" ";}


Добавлено через 6 часов 0 минут
Жанерке, так лучше:
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
#include <iostream>
#include <windows.h>
using namespace std;
void 
mu_to_ta_ta_ta(
char *x, char *a, int n, int x_marg_min, int x_marg_max
)
{
int cnt_a = 0;
 for (int i=0;i<n;i++){
 if (i>x_marg_min && i<x_marg_max)    x[i]=a[cnt_a++];
}
}
 
int main(int argc, char* argv[]){ 
SetConsoleCP (1251); SetConsoleOutputCP (1251);
const int n = 20;//3 - для прогона, напишите 20 и будет 20 элементов)
    char a[n], b[n] ,x[n] ,y[n] ;
    
int x_marg_min=-1;  
int x_marg_max=8;
int y_marg_min=4;
int y_marg_max=11;
 
cout<< "a = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>a[i];
cout<<"\nb = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>b[i];
cout<<"\nx = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>x[i];
cout<<"\ny = (" << n <<" simbol)\n" ;
for (int i=0;i<n;i++)
cin >>y[i];
 
mu_to_ta_ta_ta(x, a, n, x_marg_min, x_marg_max);
cout << "\nnew x[]" << endl;
for (int i=0;i<n;i++) cout << "x["<< i << "]= " << x[i] << endl; 
mu_to_ta_ta_ta(y, b, n, y_marg_min, y_marg_max);
cout << "\nnew y[]" << endl;
for (int i=0;i<n;i++) cout << "y["<< i << "]= " << y[i] << endl; 
        cout << endl;
system("pause");   
return 0;
}
1
06.10.2013, 02:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2013, 02:37
Помогаю со студенческими работами здесь

Заданы две строки. Убрать из более длинной строки последние символы так, чтобы длина строк стала одинаковой и склеить п
Создайте функцию (функции) для обработки списков, используя встроенные функции length, !!,...

Если количество строк в массиве четное, то поменять строки массива по правилу
1)Если количество строк в массиве четное, то поменять строки массива по правилу: первую строку со...

Если количество строк в массиве четное, то поменять строки местами по правилу
Если количество строк в массиве четное, то поменять строки местами по правилу: первую строку со...

Если количество строк в массиве четное, то поменять строки местами по правилу
Первую строку - со второй, третью - с четвертой и т.д. В противном случае оставить все без...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru