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

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

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

Есть программный код, в который необходимо добавить процедуру вывода предложения в алфавитном порядке=) - C++

19.10.2009, 14:10. Просмотров 905. Ответов 7
Метки нет (Все метки)

Есть программный код, в который необходимо добавить процедуру вывода предложения в алфавитном порядке=) помогите пожалуйста...все уже просмотрела, кажется все просто...но что то вообще без вариантов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2009, 14:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть программный код, в который необходимо добавить процедуру вывода предложения в алфавитном порядке=) (C++):

Сортировка слов из предложения в алфавитном порядке - C++
Дан файл содержащий текст на русском языке . Составить в алфавитном порядке список всех слов , встречающихся в этом тексте.

Разместить слова предложения в прямом алфавитном порядке без учета регистра - C++
Ввести предложение с клавиатуры и разместить его слова в прямом алфавитном порядке без учета регистра. Для работы с символами и...

Необходимо описать функцию, выводящую на печать слова в алфавитном порядке - C++
Помогите, пожалуйста, описать функцию Текст задания: описать функцию sort(A), которая принимает в виде параметра строку А, состоящую...

Программа для вывода всех слов заданного текста в алфавитном порядке - C++
Господа , нужна ваша помощь .. Составить программу для вывода всех слов заданного текста в алфавитном порядке Если не затруднит...

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

Есть программный код целочисленная квадратной матрицы - C++
Есть программный код целочисленная квадратной матрицы, как сделать её прямоугольной. Помогите пожалуйста с кодом. #include <iostream> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 14:16 #2
код в студию
Lisi4ka
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 4
19.10.2009, 15:06  [ТС] #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
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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 20
#define G 26
// ПРЕДВАРИТЕЛЬНОЕ ОБЪЯВЛЕНИЕ ФУНКЦИЙ
// Заголовок программы
void Title();
// Ввод предложения
void InpPredl (char predl[]);
// Выделение из предложения
void Select(const char *predl, char m[][N],char *sel, int *n);
// Сборка предложения
char *Constructor(char slova[][N], char razd[][N], int sl, int rz);
// Вывод результата
void OutPredl(char *s1, char *s2);
// ОСНОВНАЯ ФУНКЦИЯ
int main ()
{
// ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
char predl[80]; // Введенное предложение
char *res; // Результирующее предложение
char bukv [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z][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] ; // массив букв с их номерами
char slova[N][N]; // Массив слов в предложении
char razd [N][N]; // Массив разделителей в предложении
int sl=-1, rz=-1; // Счетчики слов и разделителей
char *bm="qwertyuiopasdfghjklzxcvbnm";// Буквы строчные
char *b ="QWERTYUIOPASDFGHJKLZXCVBNM";// Буквы заглавные
char *r="`!;:,.?- "; // Разделительные знаки
// Заголовок программы
Title ();
// Ввод предложения
InpPredl (predl);
// Выделение из предложения слов
Select (predl, slova, r, &sl);
// Выделение из предложения разделителей
Select (predl, razd, b, &rz);
// Сборка предложения
res = Constructor(slova, razd, sl, rz);
// Вывод результата
OutPredl (predl, res);
free (res);
}
// ОПИСАНИЕ ИСПЛЬЗУЕМЫХ ФУНКЦИЙ
// Заголовок программы
void Title()
{
//clrscr ();
puts (" Laboratornoe zadanie №8");
puts (" vo vvedennom predlogenii raspologite slova");
puts (" v obratnoi posledovatelnosti.");
puts (" porjadok sledovanija znakov prepinanija ne menjat.");
puts (" v predlogenii ispolguutcja russkie bukvbl i znaki. \n");
}
// Ввод предложения
void InpPredl(char *s)
{
puts(" Vvedite predlogenie \n");
strcpy (s," Verite li bl, 4to zada4a reshena?");
// gets (s);
}
// Вывод результата
void OutPredl (char *s1, char *s2)
{
puts ("Isxodnoe predlogenie");
puts (s1);
puts (" Resultat ");
puts (s2);
getch ();
}
// Выделение из предложения
void Select(const char *predl, char m[][N], char *sel, int *n)
{
char *p, *s;
s=strdup (predl); // Сделать копию исходного предложения
// так как передается константа, strtok требует
// внесения изменений при своей работе
p = strtok (s, sel);
while (p)
{
(*n)++;
strcpy (m[*n],p);
p = strtok (NULL, sel);
}
free (s);
}
// Сборка предложения
char *Constructor(char slova[][N], char razd[][N], int sl, int rz)
{
int i, j;
char res[80];
char *s;
*res=0; // Начальное значение результата
i = sl;
j=-1;
while ((i>=0)||(j<=rz))
{
if ((i>=0)) strcat (res, slova[i]); // Добавление слова
i--;
j++;
if ((j<=rz)) strcat (res, razd[j]); // Добавление знаков
}
s = strdup (res);
return s;
}
Добавлено через 1 минуту
вот эту часть нужно исправить
это как я поняла // Выделение из предложения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Select(const char *predl, char m[][N], char *sel, int *n)
{
char *p, *s;
s=strdup (predl); // Сделать копию исходного предложения
// так как передается константа, strtok требует
// внесения изменений при своей работе
p = strtok (s, sel);
while (p)
{
(*n)++;
strcpy (m[*n],p);
p = strtok (NULL, sel);
}
free (s);
}
Добавлено через 36 минут
TanT, ау
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 16:04 #4
чё ау? не в лесу я между прочим ещё и работаю на работе и заденьги.
щас посмотрим

Добавлено через 1 минуту
чёт больно сишный у вас код

Добавлено через 5 минут
для начала исправленный код
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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 20
#define G 26
// ПРЕДВАРИТЕЛЬНОЕ ОБЪЯВЛЕНИЕ ФУНКЦИЙ
// Заголовок программы
void Title();
// Ввод предложения
void InpPredl (char predl[]);
// Выделение из предложения
void Select(const char *predl, char m[][N],char *sel, int *n);
// Сборка предложения
char *Constructor(char slova[][N], char razd[][N], int sl, int rz);
// Вывод результата
void OutPredl(char *s1, char *s2);
// ОСНОВНАЯ ФУНКЦИЯ
int main ()
{
    // ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
    char predl[80]; // Введенное предложение
    char *res; // Результирующее предложение
    // ой =-О, это что такое?
//  char bukv [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z][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] ; // массив букв с их номерами
    // и я должен вот так сидеть и кавычки расставлять?
    char bukv [26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; // массив букв с кавычками
 
    char slova[N][N]; // Массив слов в предложении
    char razd [N][N]; // Массив разделителей в предложении
    int sl=-1, rz=-1; // Счетчики слов и разделителей
    char *bm="qwertyuiopasdfghjklzxcvbnm";// Буквы строчные
    char *b ="QWERTYUIOPASDFGHJKLZXCVBNM";// Буквы заглавные
    char *r="`!;:,.?- "; // Разделительные знаки
    // Заголовок программы
    Title ();
    // Ввод предложения
    InpPredl (predl);
    // Выделение из предложения слов
    Select (predl, slova, r, &sl);
    // Выделение из предложения разделителей
    Select (predl, razd, b, &rz);
    // Сборка предложения
    res = Constructor(slova, razd, sl, rz);
    // Вывод результата
    OutPredl (predl, res);
    free (res);
}
// ОПИСАНИЕ ИСПЛЬЗУЕМЫХ ФУНКЦИЙ
// Заголовок программы
void Title()
{
    //clrscr ();
    puts (" Laboratornoe zadanie №8");
    puts (" vo vvedennom predlogenii raspologite slova");
    puts (" v obratnoi posledovatelnosti.");
    puts (" porjadok sledovanija znakov prepinanija ne menjat.");
    puts (" v predlogenii ispolguutcja russkie bukvbl i znaki. \n");
}
// Ввод предложения
void InpPredl(char *s)
{
    puts(" Vvedite predlogenie \n");
    strcpy (s," Verite li bl, 4to zada4a reshena?");
    // gets (s);
}
// Вывод результата
void OutPredl (char *s1, char *s2)
{
    puts ("Isxodnoe predlogenie");
    puts (s1);
    puts (" Resultat ");
    puts (s2);
    getch ();
}
// Выделение из предложения
void Select(const char *predl, char m[][N], char *sel, int *n)
{
    char *p, *s;
    s=strdup (predl); // Сделать копию исходного предложения
    // так как передается константа, strtok требует
    // внесения изменений при своей работе
    p = strtok (s, sel);
    while (p)
    {
        (*n)++;
        strcpy (m[*n],p);
        p = strtok (NULL, sel);
    }
    free (s);
}
// Сборка предложения
char *Constructor(char slova[][N], char razd[][N], int sl, int rz)
{
    int i, j;
    char res[80];
    char *s;
    *res=0; // Начальное значение результата
    i = sl;
    j=-1;
    while ((i>=0)||(j<=rz))
    {
        if ((i>=0)) strcat (res, slova[i]); // Добавление слова
        i--;
        j++;
        if ((j<=rz)) strcat (res, razd[j]); // Добавление знаков
    }
    s = strdup (res);
    return s;
}
Добавлено через 6 минут
билин, а вы сами задание читали? или это от предшественников осталось?
puts (" Laboratornoe zadanie №8");
puts (" vo vvedennom predlogenii raspologite slova");
puts (" v obratnoi posledovatelnosti.");
puts (" porjadok sledovanija znakov prepinanija ne menjat.");
puts (" v predlogenii ispolguutcja russkie bukvbl i znaki. \n");
Добавлено через 1 минуту
в общем появляйтесь Lisi4ka будем выяснять что вам надо.
Lisi4ka
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 4
19.10.2009, 16:43  [ТС] #5
это от старого осталось=)))

Добавлено через 3 минуты
задача кстати на си
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 16:48 #6
я прям всё угадал.
и так, что значит
вывода предложения в алфавитном порядке
слова русские, а смысл мне не достижим. можно все буквы в предложении (в каждом слове)по алфавиту расположить или слова по алфавиту отсортировать
Lisi4ka
0 / 0 / 0
Регистрация: 19.10.2009
Сообщений: 4
19.10.2009, 16:52  [ТС] #7
в общем нужно слова в предложении (исходном) вывести в алфавитном порядке...=)
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
19.10.2009, 17:47 #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
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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 20
#define G 26
// ПРЕДВАРИТЕЛЬНОЕ ОБЪЯВЛЕНИЕ ФУНКЦИЙ
// Заголовок программы
void Title();
// Ввод предложения
void InpPredl (char predl[]);
// Выделение из предложения
void Select(const char &predl, const char &r);
// Вывод результата
void OutPredl(char *s1, char *s2);
// сортирует слова по алфавиту и тут же выводит
void SortWord(char Str[]);
// из ФАКа киберфорума
void bubbleSortWord(char* a[], long size);
 
 
// ОСНОВНАЯ ФУНКЦИЯ
int main ()
{
    // ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
    char predl[80]; // Введенное предложение
 
    // Заголовок программы
    //Title ();
    // Ввод предложения
    InpPredl (predl);
 
    SortWord(predl);
  getch();
    
}
// ОПИСАНИЕ ИСПЛЬЗУЕМЫХ ФУНКЦИЙ
// Заголовок программы
void Title()
{
    //clrscr ();
    puts (" Laboratornoe zadanie №8");
    puts (" vo vvedennom predlogenii raspologite slova");
    puts (" v obratnoi posledovatelnosti.");
    puts (" porjadok sledovanija znakov prepinanija ne menjat.");
    puts (" v predlogenii ispolguutcja russkie bukvbl i znaki. \n");
}
// Ввод предложения
void InpPredl(char *s)
{
    puts(" Vvedite predlogenie \n");
    //strcpy (s," Verite li bl, 4to zada4a reshena?");
    strcpy (s,"test abc cba!");
    printf("sourse: %s",s);
    // gets (s);
}
void SortWord(char Str[])
{
    char word[N][N]; // Массив слов в предложении
    char *ptr[N], *token;
    int  counter=0;
 
    token = strtok (Str, "`!;:,.?- ");
    while  (token  !=NULL)
    {   /* вставляет код для обработки символа в цикле */
    //  printf("\n%s", token);
        strcpy (word[counter++],token);
        token = strtok(NULL,"`!;:,.?- ");
        /* берет следующий символ */
    }
    for (int i=0; i<counter; i++)
        ptr[i]=word[i];
 
    bubbleSortWord(ptr,counter);
        // Вывод результата
        printf("\nResult: ");
    for (int i=0; i<counter; i++)
        printf("%s ",ptr[i]);
}
 
// из ФАКа киберфорума
void bubbleSortWord(char* a[], long size) {
    long i, j;
    char* x;
 
    for( i=0; i < size; i++) {            // i - номер прохода
        for( j = size-1; j > i; j-- ) {     // внутренний цикл прохода
        //  Возвращает < 0, если str1 меньше str2; > 0,
        // если str1 больше str2, и 0, если они равны
            if ( strcmp(a[j-1],a[j]) > 0) {
                x=a[j-1]; a[j-1]=a[j]; a[j]=x;
            }
        }
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2009, 17:47
Привет! Вот еще темы с ответами:

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения) - C++
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую букву последнего слова второго...

Имеется код программы, который нужно разбить на функции ввода и вывода. - C++
Я тут немного заплутала и сбилась с созданием функции. Имеется код полной программы, который мне нужно разбить на функции ввода и вывода....

Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитном - C++
Привет, форумчане! Дано задание: &gt;Даны строки A и B. Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить...

Необходимо написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке - Turbo Pascal
Необходимо написать рекурсивную процедуру для вывода на экран цифр натурального числа в обратном порядке


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

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

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