Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу меняющую в двумерном массиве строки со столбцами, и еще некоторые https://www.cyberforum.ru/ cpp-beginners/ thread43174.html
1) Написать программу меняющую в двумерном массиве строки со столбцами 2) Разработать структуру, осуществляющую чтение с диска и выводящую на монитор фамилии учеников с указанием номера последнего...
C++ бинарное древо (удаление)
Ребята выручайте не как не могу понять алгоритм удаления из дерева. Кто нить может описать подробные коментарии к удалению узла у которого есть оба поддерева или в нем где есть ошибка. Зарание...
C++ STL обращение к элементу list
Помогите исправить ошибку. #include <list> #include <iostream> using namespace std; class PeopleB{ public: int xxx; }; const int EnKolB=4; int main(){
C++ Для чего нужен define? Для чего нужен оператор define? например код #define N 20 /* сколько первых чисел посчитать */ void main(){ int fibs, index; https://www.cyberforum.ru/ cpp-beginners/ thread43051.html
C++ Работа со строками. Связное хранение строк. https://www.cyberforum.ru/ cpp-beginners/ thread43045.html
Постановка задачи В текстовом файле хранится последовательность слов. Предполагается, что слово содержит не более 20 букв, слова отделяются друг от друга одним или бо-лее пробелами, количество слов...
Нужно исправить 2 ошибки в коде C++
собственно, САБЖ. нужно исправить 2 ошибки в коде, чтобы его можна было скомпилить и сделать из него ехе-шник. код немалый, тому залил на sendspace: http://sendspace.com/file/ubkkh6 времени...
Вывод случайных текстов на экран C++
помогите пожалуйста, мне нужен код для случайных выводов текстов на экран
C++ обход массива рендом. Дан массив 10 на 10. Рендом выбираем точку, сравниваем элемент... Затем нужно опять выбирать рендом элемент, но так что бы не выбирать тот, который уже брали. Как можно запомнить, что выбирали уже, а... https://www.cyberforum.ru/ cpp-beginners/ thread42962.html
C++ Не работает цикл for С++ Borland https://www.cyberforum.ru/ cpp-beginners/ thread42959.html
Элементарная программа: #include <iostream.h> #include <graphics.h> #include <math.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <dos.h> void main ()
C++ Программа производит неправильный вывод Помогите найти ошибку!!! Заранее спасибо!!! #include <iostream.h> main (void) { int a = 1; void f() { int b = 1; https://www.cyberforum.ru/ cpp-beginners/ thread42956.html
827 / 349 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
11.07.2009, 03:56 0

Borland C++ 3.11

11.07.2009, 03:56. Просмотров 4815. Ответов 15
Метки (Все метки)

Ответ


Цитата Сообщение от Armon Посмотреть сообщение
5 и 9-15
Как просил,кроме 12
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
#include <iostream>
using namespace std;
#include <time.h>
#include <algorithm>
#include <iomanip>
#define n 30
//////////////////////////////////////////////////////////////////////////
void out(int *a,int k,int m);
void out(int *a,int m);
void vin(int *a,int k);
void oper(int *a,int *b,int k,int m);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int k,m,
        *arr_2D, *arr;
    bool temp = true;
    do 
    {
        cout << "Введите количество рядков: ";
        wcin >> k;
        cout << "Введите количество столбцов: ";
        wcin >> m;
        _flushall();
        if(k*m < n)
            temp = false;
    } while (temp);
    arr_2D = new int[k*m];
    arr = new int[m];
    vin(arr_2D,k*m);
    cout << "Массив:" << endl;
    out(arr_2D,k,m);
    oper(arr_2D,arr,k,m);
    cout << "Произведение непарных элементов столбцов:" << endl;
    out(arr,m);
    getchar();
    delete[]arr_2D;
    delete[]arr;
    return 0;
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int k,int m)
{
    int x = m - 1;
    for(int i = 0; i < k*m;i++)
    {
        cout << setw(5) << a[i];
        if(i == x)
        {
            cout << endl;
            x += m;
        }
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int m)
{
    for(int i = 0 ; i < m;i++)
        cout << a[i] << "   ";
    cout << endl;
}
//////////////////////////////////////////////////////////////////////////
void vin(int *a,int k)
{
    srand(time(0));
    for(int i = 0; i < k;i++)
        a[i] = rand()%51-25;
}
//////////////////////////////////////////////////////////////////////////
void oper(int *a,int *b,int k,int m)
{
    int x = 0,
        q = 0;
    fill(b,b+m,1);
    for(int i = 0; i < m;i++)
    {
        for(int j = 0; j < k;j++)
        {
            if((i + j*m) < k*m)
            {
                if(a[i + j*m]%2 != 0)
                {
                    b[x] *= a[i + j*m];
                    q++;
                }
            }
        }
        if(q == 0)
            b[x] = 0;
        q = 0;
        x++;
    }
}
//////////////////////////////////////////////////////////////////////////

9)..
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
#include <iostream>
using namespace std;
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <algorithm>
#define range_min -1000.0
#define range_max 1000.0
//////////////////////////////////////////////////////////////////////////
void out(double *a,int n,int m);
void out(double *a,int m);
void vin(double *a,int n);
double Rand();
void oper(double *a,double *b,int n,int m);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    bool temp = true;
    int n,m;
    double *arr_2D,*arr;
    do 
    {
        cout << "Введите количество рядков: ";
        wcin >> n;
        cout << "Введите количество столбцов: ";
        wcin >> m;
        _flushall();
        if((n <= 10) && (n >= 4) && (m <= 10) && (m >= 4) && (n != m))
            temp = false;
    } while (temp);
    arr_2D = new double[n*m];
    arr = new double[m];
    srand(time(0));
    vin(arr_2D,n*m);
    cout << "Массив:" << endl;
    out(arr_2D,n,m);
    oper(arr_2D,arr,n,m);
    cout << "Отрицательные эелементы столбцов:" << endl;
    out(arr,m);
    delete[]arr_2D;
    delete[]arr;
    getchar();
    return 0;
}
//////////////////////////////////////////////////////////////////////////
double Rand()
{
    return(range_min + rand()%static_cast<long>(range_max - range_min + 1));
}
//////////////////////////////////////////////////////////////////////////
void out(double *a,int n,int m)
{
    int x = m - 1;
    for(int i = 0; i < n*m;i++)
    {
        cout << setw(6) << a[i];
        if(i == x)
        {
            cout << endl;
            x += m;
        }
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void out(double *a,int m)
{
    for(int i = 0; i < m;i++)
        cout << a[i] << setw(7);
    cout << endl;
}
//////////////////////////////////////////////////////////////////////////
void vin(double *a,int n)
{
    for(int i = 0 ; i < n;i++)
        a[i] = Rand();
}
//////////////////////////////////////////////////////////////////////////
void oper(double *a,double *b,int n,int m)
{
    int x = 0;
    fill(b,b+m,0);
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n;j++)
        {
            if(a[i + j*m] < 0)
            {
                b[x] = a[i + j*m];
                break;
            }
        }
        x++;
    }
}
//////////////////////////////////////////////////////////////////////////

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
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
#include <iostream>
using namespace std;
#include <windows.h>
#include <string>
#define n 512
//---------------------------------------------------------------------------
int CharCount(char *, const char,bool&);
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    bool temp = true;
    char str[n] = {'\0'};
    char str_temp[n] = {'\0'};
    char *buf = NULL;
    int count = 0, total = 0,
        num_words = 0,
        qty_words = 0;
    do
    {
        cout << "Введите предложение(не менее 5 слов): " << endl;
        cin.getline(str, 512);
        cout << endl;
        for(int i = 0;i <= n;i++)
            if(str[i] == ' ' || str[i] == '\0')
                num_words++;
        if(num_words >= 5)
            temp = false;
    }while(temp);
    buf = strtok(str, " ");
    count = CharCount(buf, 'c',temp);
    if(temp)
    {
        strcpy(str_temp,buf);
        temp = false;
    }
    while (buf != NULL)
    {
        total += count;
        count = 0;
        buf = strtok(NULL, " ");
        if(buf != NULL)
        {
            count = CharCount(buf, 'c',temp);
            if(temp)
            {
                if(str_temp != NULL)
                    strcat(str_temp," ");
                strcat(str_temp,buf);
                temp = false;
            }
        }
    }
    cout << "Предложение после преобразования: " << endl
         << str_temp << endl;
    cout << "Всего букв 'c': " << total << endl;
    getchar();
    return 0;
}
//---------------------------------------------------------------------------
int CharCount(char *tmp, const char ch,bool& temp)
{
    int count = 0;
 
    while (*tmp != '\0')
    {
        if (*tmp == ch)
        {
            count++;
        }
        tmp++;
    }
    if(count == 0)
        temp = true;
    return count;
}

11)..
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
#include <iostream>
using namespace std;
#include <time.h>
#include <stdlib.h>
#include <iomanip>
#include <algorithm>
#define range_min -1000.0
#define range_max 1000.0
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n,int m);
void out(int *a,int m);
void vin(int *a,int n);
int Rand();
void oper(int *a,int *b,int n,int m);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    bool temp = true;
    int n,m;
    int *arr_2D,*arr;
    do 
    {
        cout << "Введите количество рядков: ";
        wcin >> n;
        cout << "Введите количество столбцов: ";
        wcin >> m;
        _flushall();
        if((n <= 10) && (n >= 4) && (m <= 10) && (m >= 4) && (n != m))
            temp = false;
    } while (temp);
    arr_2D = new int[n*m];
    arr = new int[m];
    srand((unsigned)time(NULL));
    vin(arr_2D,n*m);
    cout << "Массив:" << endl;
    out(arr_2D,n,m);
    oper(arr_2D,arr,n,m);
    cout << "Отрицательные эелементы столбцов:" << endl;
    out(arr,m);
    delete[]arr_2D;
    delete[]arr;
    getchar();
    return 0;
}
//////////////////////////////////////////////////////////////////////////
int Rand()
{
    return((double)rand() / (RAND_MAX + 1) * (range_max - range_min)
        + range_min);
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n,int m)
{
    int x = m - 1;
    for(int i = 0; i < n*m;i++)
    {
        cout << a[i] << "   ";
        if(i == x)
        {
            cout << endl;
            x += m;
        }
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int m)
{
    for(int i = 0; i < m;i++)
        cout << a[i] << "   ";
    cout << endl;
}
//////////////////////////////////////////////////////////////////////////
void vin(int *a,int n)
{
    for(int i = 0 ; i < n;i++)
        a[i] = Rand();
}
//////////////////////////////////////////////////////////////////////////
void oper(int *a,int *b,int n,int m)
{
    int x = 0;
    fill(b,b+m,0);
    for(int i = 0; i < m; i++)
    {
        for(int j = 0; j < n;j++)
        {
            if(a[i + j*m] < 0)
            {
                if((a[i + j*m]%3 == 0) || (a[i + j*m]%5 == 0))
                    b[x] += a[i + j*m];
            }
        }
        x++;
    }
}
//////////////////////////////////////////////////////////////////////////

13)..
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
#include <iostream>
using namespace std;
#include <time.h>
#include <iomanip>
#define range_min -1000
#define renge_max 1000
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n);
void vin(int *a,int n);
int Rand();
void oper(int *a,int n);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int *arr,
        n;
    bool temp = true;
    do 
    {
        cout << "Введите количество элементов в массиве: ";
        wcin >> n;
        _flushall();
        if(n < 30)
            temp = false;
    } while (temp);
    arr = new int[n];
    srand((unsigned)time(NULL));
    vin(arr,n);
    cout << "Массив:" << endl;
    out(arr,n);
    oper(arr,n);
    cout << "Массив после преобразования:" << endl;
    out(arr,n);
    getchar();
    delete[]arr;
    return 0;
}
//////////////////////////////////////////////////////////////////////////
int Rand()
{
    return range_min + rand()%(renge_max-range_min+1);
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n)
{
    for(int i = 0; i < n;i++)
        cout << setw(5) << a[i];
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void vin(int *a,int n)
{
    for(int i = 0; i < n;i++)
        a[i] = Rand();
}
//////////////////////////////////////////////////////////////////////////
void oper(int *a,int n)
{
    int temp;
    int temp_a;
    for(int i = 0; i < n;i++)
    {
        temp_a = a[i];
        while(temp_a)
        {
            temp = temp_a-(temp_a/10)*10;
            temp_a /= 10;
            if(temp == 5 || temp == -5)
            {
                a[i] = 50;
                break;
            }
        }
    }
}

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
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
#include <iostream>
using namespace std;
#include <string>//strcpy() и strtok()
#include <Windows.h>//консоль понимает и говорит по-русскому
#define  n 7   //слов в предложении
#define  k 255 //макс. буковок в строке
#define  m 30  //макс.буковок в слове
//////////////////////////////////////////////////////////////////////////
//считает буковки в слове(buf - входящее слово;letter - ячейка в массиве для количества буковок в слове;
//min_letter - мин.количество буковок;sum_count - общее количество буковок)
void qty_letter(char* buf,int* letter,int& min_letter,int& sum_count);
void s_copy(char* str,char* buf);//копироваие слов,но можно попробовать strcpy(),
//у меня несовсем корректно работало
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    //консоль понимает русский
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char sentence[k] = {'\0'},//предложение 
        str[k] = {'\0'},//копия предложения, которая будет "разбита" на слова
        sym[12] = {" .,:;()-+*/"},//разделяющие символы
        *words [n+1],//массив для слов предложения
        ch = '!',//знак для замены
        *buf = NULL;//вспомогательная
    int letter[n], //массив для количества букв в каждом слове
        min_letter = k, //мин.количество букв в слове
        sum_count = 0, //всего букв
        qty_words = 0, //количество слов
        i = 0, j = 0, i_temp = 0;//для индексов
    bool temp = true;
    do 
    {
        cout << "Введите предложение(из 7 слов):" << endl;
        cin.getline(sentence,k);
        //подсчет количества слов в введёном предложении
        for(i = 0; i < k;i++)
        {
            if((sentence[i] == ' ') || (sentence[i] == '\n'))
                qty_words++;
        }
        if(qty_words == n-1)
            temp = false;
    } while (temp);
    i = j = 0;
    strcpy(str,sentence);
    //разбиение предложения на слова и подсчет их кол.
    buf = strtok(str,sym);
    words[j] = new char[m];
    *words[j] = '\0';
    s_copy(words[j],buf);
    j++;
    while(buf != NULL)
    {
        words[j] = new char[m];
        *words[j] = '\0';
        qty_letter(buf,letter+i,min_letter,sum_count);
        i++;
        buf = strtok(NULL,sym);
        s_copy(words[j],buf);
        j++;
    }
    j = 0;
    //замена
    for(i = 0; i < n;i++)
    {
        if(letter[i] == min_letter)
        {
            //индекс нужного слова
            while(j <= i-1)
            {
                i_temp += letter[j++];
            }
            //замена превого символа
            i_temp += i;
            sentence[i_temp] = ch;
            j = 1;
            //если слово не закончилось,то заменяет символ(пока не заменит первыз 3)
            while((i_temp+j != letter[i]) && (j < 3))
            {
                sentence[i_temp+j] = ch;
                j++;
            }
        }
        i_temp = 0;
        j = 0;
    }
    cout << "Количество букв в каждом слове:" << endl;
    for(i = 0; i < n;i++)
    {
        cout << words[i] << " - " << letter[i] << endl;
        delete[]words[i];
    }
    cout << "Всего букв в предложении: " << sum_count << endl;
    cout << "Предложение после преобразования:" << endl
         << sentence << endl;
    getchar();
    return 0;
}
//////////////////////////////////////////////////////////////////////////
void qty_letter(char* buf,int* letter,int& min_letter,int& sum_count)
{
    int count = 0;
    while(*buf != '\0')
    {
        count++;
        buf++;
    }
    *letter = count;
    sum_count += count;
    if(count < min_letter)
        min_letter = count;
}
//////////////////////////////////////////////////////////////////////////
void s_copy(char* str,char* buf)
{
    if(buf != NULL){
        while(*buf != '\0')
        {
            *str = *buf;
            buf++;
            str++;
        }
        *str = '\0';
    }
}
//////////////////////////////////////////////////////////////////////////

15)..
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
#include <iostream>
using namespace std;
#include <time.h> //time()
#include <stdlib.h>//srand() и RAND_MAX
#include <iomanip>//setw()
//-----------------диапозон------------------------------------------------
#define range_min -1000.0
#define range_max 1000.0
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n,int m);//вывод матрицы
void vin(int *a,int n);//ввод матрицы
int Rand();//псевдослучайные числа в заданом диапозоне
void oper(int *a,int n);//операция престановки
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");//консоль пишет на русском
    int n;
    int *arr_2D;
    cout << "Введите порядок матрицы: ";
    wcin >> n;
    _flushall();;
    arr_2D = new int[n*n];
    srand((unsigned)time(NULL));
    vin(arr_2D,n*n);
    cout << "Массив:" << endl;
    out(arr_2D,n,n);
    oper(arr_2D,n);
    cout << "Массив после преобразования:" << endl;
    out(arr_2D,n,n);
    delete[]arr_2D;
    getchar();
    return 0;
}
//////////////////////////////////////////////////////////////////////////
int Rand()
{
    return((double)rand() / (RAND_MAX + 1) * (range_max - range_min)
        + range_min);
}
//////////////////////////////////////////////////////////////////////////
void out(int *a,int n,int m)
{
    int x = m - 1;
    for(int i = 0; i < n*m;i++)
    {
        cout << setw(5) << a[i] ;
        if(i == x)
        {
            cout << endl;
            x += m;
        }
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void vin(int *a,int n)
{
    for(int i = 0 ; i < n;i++)
        a[i] = Rand();
}
//////////////////////////////////////////////////////////////////////////
void oper(int *a,int n)
{
    int imin = 0,//индекс мин. элемента
        temp = 0,
        i = 0,
        j = 0;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n;j++)//поиск найменьшего элемента в столбце
        {
            if(a[i + j*n] < a[imin])
            {
                imin = i + j*n;
            }
        }
        //обмен
        temp = a[i+(j)*(n-1)];
        a[i+(j)*(n-1)] = a[imin];
        a[imin] = temp;
    }
}
//////////////////////////////////////////////////////////////////////////

P.S. Код писался на MSVS2008
+
код можно и по-красивее написать, но мне хотелось поиздеваться над собой))

Вернуться к обсуждению:
Borland C++ 3.11
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2009, 03:56
Готовые ответы и решения:

Русские хелпы по Borland C++ 5.* и Borland C++ Bulder
Подскажите где найти русские хелпы на Borland C++ 5.* и Borland C++ Bulder ...

Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.
Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.

не могу запустить ехешник ,Borland 5 и Borland 6
вообщем написал прогу , писал в 6рке когда компилю ругается на Build MYBASE.h(348): E2451...

возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi?
Подскажите возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi? У меня...

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