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

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2013, 14:41
Ответы с готовыми решениями:

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

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

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

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

23
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 14:43 2
Нужно написать функцию сортировки массива?
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 15:19  [ТС] 3
Цитата Сообщение от 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
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 15:59 4
Сейчас напишу функцию для сортировки массива. (в качестве параметра будет указатель)

Добавлено через 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
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 16:02 5
раз тут
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
for(register int j = 0
плюс два тут
Цитата Сообщение от Anton_Kretov Посмотреть сообщение
if(cp[j - 1]...
равно выход за пределы массива (cp[- 1]).
1
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:09 6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
раз тутплюс два тутравно выход за пределы массива (cp[- 1]).
Сортировка идет без проблем, C++ не осуществляет проверку за выходы за пределы массивов, если мы попытаемся вывести число, которое не в рамках массива, то получим ошибку, а тут мы ничего не получим.
1
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 16:16 7
Цитата Сообщение от 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  [ТС] 8
Я конечно очень плохо знаю язык, но тут я вообще не понял не единой строки( и она не запускается
Кликните здесь для просмотра всего текста
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(18) : error C2065: 'cout' : undeclared identifier
1>Build log was saved at "file://c:\Users\Guru\Documents\Visual Studio 2008\Projects\пример\пример\Debug\BuildLog.htm"
1>пример - 2 error(s), 2 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


и тут вообще что осталось от моей программы? вообщем я в шоке что и как(((
Я думал загнать определенную часть программы под функцию это будет, проще. что то вроде как в паскале. а тут вообще можно сказать другая программа ?(
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:31 9
Цитата Сообщение от 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  [ТС] 10
Anton_Kretov,
Добавлено через 3 минуты
Вы мой код использовали?
да
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 16:38 11
Anton_Kretov, Алгоритмы сортировок
а теперь посмотри, что ты за ерунду написал!
1
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 788
10.11.2013, 16:48  [ТС] 12
Kuzia domovenok, А может вы мне поможете?
мне не нужна такая сортировка. потому что мы на примитивном уровне пока изучаем язык и препод заставляет писать все сортировки и все остальное тупа в лоб(супер дурацкими до примитива способами, просто переборами) а если я использую такую сортировку то он скажет если вы используете стандартные готовые сортировки вы должны их объяснять и понимать. а там не расписаны нюансы(допустим почему отбор места начинается с -1, такого индекса вообще нет так то) сортировка вставкой.

И еще вы можете мне посоветовать что почитать, что бы понимать С++ с нуля без всяких знаний. А то у меня каша в голове.
0
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 16:48 13
Согласен, тот способ более правильный, но я не вижу ничего плохого в исполнении моего, он также выполняет поставленную задачу без ошибок. Возможно, надо малость изменить вложенный цикл и привести к такому виду:
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
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 17:01 14
Цитата Сообщение от 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
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 17:04 15
Пардон, j.
Ну, не думаю, чтобы Герберт Шилтд написал с ошибками...
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 17:04 16
Цитата Сообщение от 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  [ТС] 17
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
и правильно заставляет. Алгоритмы сортировок это самые классические задачи по алгоритмизации. На их примере показывается, как вообще реализуются любые алгоритмы на данном языке программирования.
Я согласен, но понять ни как не могу. пытался решать, но как это в код переводить, вообще не получается((

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

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

А в сортировке вот на этом шаге
C++
1
for (j = i - 1;
если подставить 0, то поиск начинается с -1 индекса, а у нас такого даже нет
0
4064 / 3318 / 924
Регистрация: 25.03.2012
Сообщений: 12,492
Записей в блоге: 1
10.11.2013, 17:08 18
Цитата Сообщение от 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  [ТС] 19
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
89 / 51 / 15
Регистрация: 26.06.2013
Сообщений: 179
10.11.2013, 17:16 20
Прототип не указан, это первое, второе - где-то у вас неверное преобразование. Как я понял, Kuzia domovenok, дал вам функцию, но к коду он ее не "подключил", думаю, вы сами справитесь.
1
10.11.2013, 17:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2013, 17:16
Помогаю со студенческими работами здесь

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

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

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

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


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

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