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

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

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

перегруженные функции - C++

28.11.2013, 16:03. Просмотров 300. Ответов 4
Метки нет (Все метки)

Вариант 18. В одномерном массиве, состоящем из п элементов, вычислить:
1) номер минимального по модулю элемента массива;
2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.


Есть код, но он вылетает после ввода размера массива. На этом и других форумах есть обсуждение этого задания, но без перегрузки функции. Преподу сдал такое - он мне отдал на доработку. Надо сказать, программирование мне дается тяжко. Подскажите, пожалуйста, как это исправить ?
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
int n;
 
    
    void func (int *a, int min) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    }
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 16:03     перегруженные функции
Посмотрите здесь:

Перегруженные функции - C++
Нужно создать программу для определения среднего арифметического и среднего геометрического трех целых и положительных чисел,определить что...

Перегруженные функции - C++
Всем привет. Прошу помощи. Я сильно запутался, и не могу сделать пару аспектов в задание. Вот собственно само задание: Написать...

Перегруженные функции - C++
Помогите написать перегруженные функции и основную программу, которая их вызывает. 1) для вычитания целых чисел; 2) для вычитания...

Перегруженные функции - C++
В одномерном массиве, состоящем из п элементов, вычислите: 1) среднее арифметическое элементов, расположенных до первого и после...

Перегруженные функции - C++
Разработать программу, использующие перегруженные функции для вывода расстояния в виде числа футов и числа дюймов. Аргументом функции может...

Перегруженные функции - C++
Всем доброго дня! Помогите с программой: Написать перегруженную функцию суммирования для получения суммы кодов символов от 'a’ до 'z’. В...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ShadowFirst
54 / 47 / 1
Регистрация: 31.10.2013
Сообщений: 161
28.11.2013, 16:37     перегруженные функции #2
Цитата Сообщение от romanhaisarov Посмотреть сообщение
Вариант 18. В одномерном массиве, состоящем из п элементов, вычислить:
1) номер минимального по модулю элемента массива;
2) сумму модулей элементов массива, расположенных после первого отрицательного элемента.


Есть код, но он вылетает после ввода размера массива. На этом и других форумах есть обсуждение этого задания, но без перегрузки функции. Преподу сдал такое - он мне отдал на доработку. Надо сказать, программирование мне дается тяжко. Подскажите, пожалуйста, как это исправить ?
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
int n;
 
    
    void func (int *a, int min) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    }
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
 
    return 0;
}
C++
1
2
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
Нет условия выхода из цикла нормального или это ваша опечатка или так восприняло здесь, не знаю но это единственное что я увидел что могло вызвать ошибку, думаю имелось ввиду i<n
romanhaisarov
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 12
28.11.2013, 18:27  [ТС]     перегруженные функции #3
Цитата Сообщение от ShadowFirst Посмотреть сообщение
C++
1
2
for (int i=0;i,n;i++)
    cout<<a[i]<<"  "; cout<<endl;
Нет условия выхода из цикла нормального или это ваша опечатка или так восприняло здесь, не знаю но это единственное что я увидел что могло вызвать ошибку, думаю имелось ввиду i<n
Спасибо за ответ,.. да это была моя опечатка.. это я уже нашел и исправил, но.. программа завершается на выдаче на экран срандомленного массива из n эл-тов.
код таков:
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
 
void func (int *a, int min, int n) {
                
        min=a[0];
        for (int i=0; i<n; i++)
            if (a[min]>a[i])
            min=i;
                cout<<"Минимальный по модулю элемент"<<a[min]<<endl;
                cout<<"Его номер"<<min<<endl;
    }
 
void func (int *a, float ot, int n) {
        for (int i=0; i<n; i++)
            if (a[i]<0) {
                ot=i;
                break;}
    }
    void func (int *a, int n, float ot, float s=0) {
        for (int i=ot+1; i<n; i++)
            s+=a[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    
    }
    
    
 
    
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i<n;i++)
    cout<<a[i]<<"  "; cout<<endl;
system("pause");
return 0;
 
}
Добавлено через 1 час 37 минут
up! помогите, пожалуйста, найти ошибку
ShadowFirst
54 / 47 / 1
Регистрация: 31.10.2013
Сообщений: 161
28.11.2013, 19:37     перегруженные функции #4
Код вроде не хитрый и ничего из за чего могла возникнуть ошибка я не увидел. Тем более все таки решил запустить у себя все отлично выводит и никаких ошибок или завершения приложения нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2013, 20:06     перегруженные функции
Еще ссылки по теме:

Перегруженные функции. - C++
Есть код с учебника, по идеи должно быть все правильно. КОД: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; int //Îáüÿâëåíèå êëàññà...

Перегруженные функции - C++
Здравствуйте, помогите написать перегруженные функции и основную программу, которая их вызывает: а) целые числа возводит в степень n; ...

перегруженные функции - C++
Написать перегруженные функции и основную программу, которая их вызывает. а) для перевода часов и минут в минуты; б)для перевода...

Перегруженные функции - C++
Подскажите, плиз, с заданием. Задание у меня такое: написать перегруженную функцию для расчета: y=|sin x|-|cos x| Написал я...


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

Или воспользуйтесь поиском по форуму:
romanhaisarov
0 / 0 / 0
Регистрация: 11.11.2013
Сообщений: 12
28.11.2013, 20:06  [ТС]     перегруженные функции #5
Цитата Сообщение от ShadowFirst Посмотреть сообщение
Код вроде не хитрый и ничего из за чего могла возникнуть ошибка я не увидел. Тем более все таки решил запустить у себя все отлично выводит и никаких ошибок или завершения приложения нет.
Наткнулся на одном сайте на полезную информацию и... разобрался!!!!
Вот окончательный код:
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
// лаба9 - дубль 2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
#include<time.h>
#include<math.h>
using namespace std;
 
 
void func (int *b, int z) {
            int min;    
        min=b[0];
        for (int i=0; i<z; i++)
            if (abs(b[min])>abs(b[i]))
            min=i;
                cout<<"Минимальный по модулю элемент"<<b[min]<<endl;
                cout<<"Его номер"<<min+1<<endl;
    }
 
void func (int *b, int z, float s) {
    float ov;
        for (int i=0; i<z; i++)
            if (b[i]<0) {
                ov=i;
                break;}
    
                    for (int i=ov+1; i<z; i++)
            s+=b[i]; 
        cout<<"Сумма модулей эл. массива, расп. после первого отр. элемента="<<s<<endl;
    
    }
    
    
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    float d=0;
setlocale(LC_ALL, "russian");
cout<<"Размер массива n="; cin>>n;
int *a=new int[n];
srand(time(0));
for(int i=0;i<n;i++)
    a[i]=1+rand() %109 + (-37);
cout<<"Массив:              "; cout<<endl;
for (int i=0;i<n;i++)
    cout<<a[i]<<"  "; cout<<endl;
 
func (a, n);
func (a, n, d); 
system("pause");
 return 0;
 
 
}
Yandex
Объявления
28.11.2013, 20:06     перегруженные функции
Ответ Создать тему
Опции темы

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