Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788

Оформить программу в виде функций

10.11.2013, 14:41. Показов 1906. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(){
    int size,i;
    cout<<"Enter size: ";
    cin>>size;
    char* arr=new char[size];
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
}
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    insertSort(arr,size);
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
       cout<<"\n";
system("pause");
return 0;
 {
    int(a[i])>int(a[i+1]);
    (int) a[i]> (int) a[i+1];
    for(i=1;i<10;i++){  
        for (j=1;j10;j--)
            if((a[i]>a[i])&&(i=j));
            x=a[j];  
        x=a[i];
    }
}
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2013, 14:41
Ответы с готовыми решениями:

Оформить в виде функций программу
Всем привет! Помогите пожалуйста оформить задачу в виде функций. /*В одномерном массиве, состоящем из n вещественных элементов,...

Оформить программу в виде функций
Недавно столкнулся с такой вот задачей: Дана матрица размером M на N, нужно сформировать одномерный массив из максимальных элементов...

Программу оформить в виде функций законченные последовательности действий
Нужно переделать программу под это задание: Программу оформить в виде функций законченные последовательности действий. Все необходимые...

23
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 14:43
Нужно написать функцию сортировки массива?
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 15:19  [ТС]
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Нужно написать функцию сортировки массива?
нет(точно не понял) просто эту прогу нужно переделать так что бы допустим ее сортировка была загнана в функцию и от туда бралась. вроде нужно так, если я правильно объясняю.

Вот тут есть как это надо делать(в смысле что я имею в виду) но я не пойму как применить это к моей проге
http://book.mql4.com/ru/basics/functions

Я что то пытался, но не знаю(
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(){
    int size,i;
    cout<<"Enter size: ";
    cin>>size;
    char* arr=new char[size];
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
}
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    insertSort(arr,size);
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
       cout<<"\n";
       otdel ();
system("pause");
return 0;
}
void otdel (char* arr=new char[size])
{int size,i;
    int(arr[i])>int(arr[i+1]);
    (int) arr[i]> (int) arr[i+1];
    for(i=1;i<10;i++){  
        for (j=1;j10;j--)
            if((arr[i]>arr[i])&&(i=j));
            x=arr[j];  
        x=arr[i];
    }
}
Добавлено через 20 минут
Или вот? я даже не знаю, так то работает и так и так, но правильно ли это?
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(){
    int size,i=otdel(b);
    cout<<"Enter size: ";
    cin>>size;
    char* arr=new char[size]=otdel(a);
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
}
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
       cout<<"\n";
system("pause");
return 0;
}
void otdel (char* a=new char[size], int size,b)
{
    int(a[b])>int(a[b+1]);
    (int) a[b]> (int) a[b+1];
    for(b=1;b<10;b++){  
        for (j=1;j10;j--)
            if((a[b]>a[b])&&(b=j));
            x=a[j];  
        x=a[b];
    }
}
0
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 15:59
Сейчас напишу функцию для сортировки массива. (в качестве параметра будет указатель)

Добавлено через 27 минут
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
#include <iostream>
#include <cstdio>
 
using namespace std;
 
const int numOfElements = 100;
 
void sortArray(char *cp);
 
int main()
{
    char testString[numOfElements];
    gets(testString);
    char *cp = testString;
    sortArray(cp);
 
    cout << "\n" << "New string: " << cp;
    return 0;
}
 
 
void sortArray(char *cp) {
    char middle;
    for(register int i = 0; cp[i]; i++) {
        for(register int j = 0; cp[j]; j++) {
            if(cp[j - 1] > cp[j]) {
                middle = cp[j - 1];
                cp[j - 1] = cp[j];
                cp[j] = middle;
            }
        }
    }
}
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 16:02
раз тут
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
for(register int j = 0
плюс два тут
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
if(cp[j - 1]...
равно выход за пределы массива (cp[- 1]).
1
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:09
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
раз тутплюс два тутравно выход за пределы массива (cp[- 1]).
Сортировка идет без проблем, C++ не осуществляет проверку за выходы за пределы массивов, если мы попытаемся вывести число, которое не в рамках массива, то получим ошибку, а тут мы ничего не получим.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 16:16
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
C++ не осуществляет проверку за выходы за пределы массивов
и это причина, почему твоя программа скомпилируется, запустится и... упадёт.
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
а тут мы ничего не получим.
а тут это число может пройти проверку, и будет произведена попытка обмена cp[-1] и cp[0]
Программа либо упадёт, либо даже если всё обойдётся, из массива пропадёт число cp[0], уехав за его пределы на место cp[-1]

Добавлено через 1 минуту
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
если мы попытаемся вывести число, которое не в рамках массива
а почему именно "вывести"? А записать данные в cp[-1] уже можно безопасно?
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 16:18  [ТС]
Я конечно очень плохо знаю язык, но тут я вообще не понял не единой строки( и она не запускается
Кликните здесь для просмотра всего текста
1>------ Build started: Project: пример, Configuration: Debug Win32 ------
1>Compiling...
1>пример.cpp
1>c:\users\guru\documents\visual studio 2008\projects\пример\пример\пример.cpp(1 ) : warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\guru\documents\visual studio 2008\projects\пример\пример\пример.cpp(2 ) : warning C4627: '#include <cstdio>': skipped when looking for precompiled header use
1> Add directive to 'stdafx.h' or rebuild precompiled header
1>c:\users\guru\documents\visual studio 2008\projects\пример\пример\пример.cpp(5 ) : error C2871: 'std' : a namespace with this name does not exist
1>c:\users\guru\documents\visual studio 2008\projects\пример\пример\пример.cpp(1 8) : error C2065: 'cout' : undeclared identifier
1>Build log was saved at "file://c:\Users\Guru\Documents\Visual Studio 2008\Projects\пример\пример\Debug\BuildL og.htm"
1>пример - 2 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


и тут вообще что осталось от моей программы? вообщем я в шоке что и как(((
Я думал загнать определенную часть программы под функцию это будет, проще. что то вроде как в паскале. а тут вообще можно сказать другая программа ?(
0
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:31
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
и это причина, почему твоя программа скомпилируется, запустится и... упадёт.
а тут это число может пройти проверку, и будет произведена попытка обмена cp[-1] и cp[0]
Программа либо упадёт, либо даже если всё обойдётся, из массива пропадёт число cp[0], уехав за его пределы на место cp[-1]

Добавлено через 1 минуту

а почему именно "вывести"? А записать данные в cp[-1] уже можно безопасно?
Согласен, сейчас протестим, отпишусь.

Добавлено через 1 минуту
В общем, у меня ничего не рушится. Попробуйте вы и скиньте сюда результаты.

Добавлено через 3 минуты
Вы мой код использовали?
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 16:36  [ТС]
Anton_Kretov,
Добавлено через 3 минуты
Вы мой код использовали?
да
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 16:38
Anton_Kretov, Алгоритмы сортировок
а теперь посмотри, что ты за ерунду написал!
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 16:48  [ТС]
Kuzia domovenok, А может вы мне поможете?
мне не нужна такая сортировка. потому что мы на примитивном уровне пока изучаем язык и препод заставляет писать все сортировки и все остальное тупа в лоб(супер дурацкими до примитива способами, просто переборами) а если я использую такую сортировку то он скажет если вы используете стандартные готовые сортировки вы должны их объяснять и понимать. а там не расписаны нюансы(допустим почему отбор места начинается с -1, такого индекса вообще нет так то) сортировка вставкой.

И еще вы можете мне посоветовать что почитать, что бы понимать С++ с нуля без всяких знаний. А то у меня каша в голове.
0
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:48
Согласен, тот способ более правильный, но я не вижу ничего плохого в исполнении моего, он также выполняет поставленную задачу без ошибок. Возможно, надо малость изменить вложенный цикл и привести к такому виду:
C++
1
2
3
4
5
6
7
8
9
10
int size = strlen(cp);
for(register int i = 0; i < size; i++) {
for(register int j = size - 1; j >= i; b--) {
if(cp[b - 1] > cp[b]) {
 
middle = cp[b - 1];
cp[b - 1] = cp[b];
cp[b] = middle;
}
}
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 17:01
Цитата Сообщение от ArxangelXA Посмотреть сообщение
препод заставляет писать все сортировки и все остальное тупа в лоб(супер дурацкими до примитива способами, просто переборами) а если я использую такую сортировку то он скажет если вы используете стандартные готовые сортировки вы должны их объяснять и понимать. а там не расписаны нюансы(допустим почему отбор места начинается с -1, такого индекса вообще нет так то) сортировка вставкой.
и правильно заставляет. Алгоритмы сортировок это самые классические задачи по алгоритмизации. На их примере показывается, как вообще реализуются любые алгоритмы на данном языке программирования.
Цитата Сообщение от ArxangelXA Посмотреть сообщение
Kuzia domovenok, А может вы мне поможете?
мне не очень понятно, ты собрался числа сортировать или какие-то символы? Сортируй лучше числа! (Взято из Алгоритмы сортировок)
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void insertSort(int* , int ) ;
int main(){
    int size,i;
    cout<<"Enter size: ";
    cin>>size;
    int* arr=new char[size];
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
    }
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    bubbleSort(arr,size);
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
    cout<<"\n";
   delete[] arr;
   system("pause");
   return 0;
}
void insertSort(int* a, int size) 
{
    int i, j, tmp;
    for (i = 1; i < size; ++i) // цикл проходов, i - номер прохода
    {
        tmp = a[i]; 
        for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности 
            a[j + 1] = a[j];    // сдвигаем элемент направо, пока не дошли
        a[j + 1] = tmp; // место найдено, вставить элемент    
    }
}
Добавлено через 3 минуты
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Согласен, тот способ более правильный, но я не вижу ничего плохого в исполнении моего, он также выполняет поставленную задачу без ошибок.
я указал уже на ошибки выше.
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
Возможно, надо малость изменить вложенный цикл и привести к такому виду:
C++
1
2
3
4
5
6
7
8
9
int size = strlen(cp);
for(register int i = 0; i < size; i++) {
for(register int j = size - 1; j >= i; b--) {
if(cp[b - 1] > cp[b]) {
middle = cp[b - 1];
cp[b - 1] = cp[b];
cp[b] = middle;
}
}
Тут вообще откуда-то b взялось... Если имелось в виду не b, а j, - то ничего не поменялось. Ошибка та же. При i=0 и j=i выход за пределы
1
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 17:04
Пардон, j.
Ну, не думаю, чтобы Герберт Шилтд написал с ошибками...
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 17:04
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
if(cp[j - 1] > cp[j]) {
возможно, исправило бы ошибку
C++
1
if(cp[j] > cp[j+1])
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 17:05  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
и правильно заставляет. Алгоритмы сортировок это самые классические задачи по алгоритмизации. На их примере показывается, как вообще реализуются любые алгоритмы на данном языке программирования.
Я согласен, но понять ни как не могу. пытался решать, но как это в код переводить, вообще не получается((

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
мне не очень понятно, ты собрался числа сортировать или какие-то символы? Сортируй лучше числа!
мне нужно только символы, это было в прошлом заданий

А где в этой программе функция? insertSort?

А в сортировке вот на этом шаге
C++
1
for (j = i - 1;
если подставить 0, то поиск начинается с -1 индекса, а у нас такого даже нет
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,532
Записей в блоге: 1
10.11.2013, 17:08
Цитата Сообщение от ArxangelXA Посмотреть сообщение
А в сортировке вот на этом шаге
Код C++
1
for (j = i - 1;
если подставить 0, то поиск начинается с -1 индекса, а у нас такого даже нет
а зачем подставлять ноль? Как раз в этом случае i больше или равно 1 ==> i-1 не меньше нуля
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 17:11  [ТС]
Kuzia domovenok,
ладно это понятно.

А про функцию?

И почему то выдает ошибку
Кликните здесь для просмотра всего текста
1>------ Build started: Project: апр, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>Compiling...
1>апр.cpp
1>c:\users\guru\documents\visual studio 2008\projects\апр\апр\апр.cpp(10) : error C2440: 'initializing' : cannot convert from 'char *' to 'int *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\users\guru\documents\visual studio 2008\projects\апр\апр\апр.cpp(19) : error C3861: 'bubbleSort': identifier not found
1>Build log was saved at "file://c:\Users\Guru\Documents\Visual Studio 2008\Projects\апр\апр\Debug\BuildLog.htm "
1>апр - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
 Аватар для Anton_Kretov
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 17:16
Прототип не указан, это первое, второе - где-то у вас неверное преобразование. Как я понял, Kuzia domovenok, дал вам функцию, но к коду он ее не "подключил", думаю, вы сами справитесь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2013, 17:16
Помогаю со студенческими работами здесь

Оформить программу в виде функций обработки массивов (ввод, заполнение, вывод, упорядочение и т.п.)
помогите, пожалуйста, с программой, не могу никак разобраться с функциями, сколько уже отмучалась с ними! вот я тут что-то мутила с...

Оформить в виде функций
Помогите, пожалуйста, оформить пункты задания в виде функций. В одномерном массиве, состоящем из n вещественных элементов, вычислить: ...

Оформить одномерный массив в виде функций
и снова я мучаюсь с функциями:wall: и кажется снова они получились вложенными:gscratch: 1.) вычислить номер максимального по...

Оформить простейшие задачи в виде функций
Ребят помогите пожалуйста с задачками для CodeBlocks. Реализовать задачи 1 и 2 в виде функций выполняемых условно-бесконечном цикле...

Отыскать вычисления, которые целесообразно оформить в виде стандартных функций
5 задание помогите пожалуйста


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru