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

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

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

Перегрузка функций - C++

29.06.2011, 14:33. Просмотров 394. Ответов 1
Метки нет (Все метки)

Моя последняя лаба=( Светлые умы, помогите...
Выполнить задания пятой и шестой лабораторной работы, оформив каждый пункт задания в виде шаблона функции. Все необходимые данные должны передаваться им в качестве параметров.

Пятая:
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
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std; // Загрузка библиотек.
 
 
void main(void) // Начало тела программы.
{
    int i, n; // Описание переменных.
    cout<<"Enter N "; cin>>n; // Задаем длинну массива.
    int *a = new int[n]; // Описание массива.
    int *b = new int[n];
    int imax, max, fz, sz, ii; // Описание переменных.
    cout<<"Enter massive "<<endl; // Запрос на ввод массива с клавиатуры.
    for ( i=1; i<=n; i++) // Начинаем цикл ввода.
        {
            cout<<"a("<<i<<") = ";
            cin>>a[i]; // Заносим в память очередной элемент массива.
            b[i] = a [i];
        }
    max = a[1];
    fz = 0;
    sz = 0;
    for ( i=1; i<=n; i++)
    {
        if (a[i]>max)
        {
            max = a[i];
            imax = i;
        }
    }
        double p=1;
        for (i=1; i<=n; i++)
        {
                if (a[i]==0)
                {
                        int j=i+1;
                        while (a[j]!=0 && j<n)
                        {
                                p*=a[j];
                                j++;
                                
                        }
                }
        }
 
    ii = 0;
    for (i = 1; i<=n; i=i+2)
    {
        ii = ii + 1;
        a[ii] = b[i];
        a[n/2 + ii] = b[i+1];
    }
    cout<<"p="<<p<<endl;
    cout<<"nom = "<<imax<<endl;
    for ( i=1; i<=n; i++) cout<<"a("<<i<<") = "<<a[i]<<endl;
    _getch();
    delete [] a; // Удаление массива из памяти.
    }
Шестая:
Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы один положительный элемент.
Код:

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
#include "stdafx.h"  // подключение "stdafx.h"
#include "iostream" // подключение библиотеки ввода/вывода данных
#include "conio.h" // подключение библиотеки консоли
#include "math.h" // подключение библиотеки метематических элементов
using namespace std;
int _tmain(int argc, _TCHAR* argv[]) // объявление функции с именем tmain
{
    
    int **mas,n, m, i,j, y, temp,p,u;
    cout<<"Vvedite kol-vo strok v massive: "<< endl;
    cin>>n;
    cout<<"Vvedite kol-vo stolbcov v massive: "<< endl;
    cin>>m;
    mas=new int*[n];
    for(i=0; i<n; i++)
      mas[i]=new int[m];
    cout<<"Vvedite elementbI massiva: "<< endl;
    for(i=0; i<n; i++)
      for(j=0; j<m; j++)
      {
          cout<<"["<<i<<"]["<<j<<"]= ";
          cin>>mas[i][j];
      }
 
        cout<<"Ishodnui massiv"<<endl;
    for(i=0; i<n; i++)
        {
      for(j=0; j<m; j++)
          cout<<mas[i][j]<<"  ";
          cout<<endl;
        }
        for(i=0; i<n; i++)
        {
                temp=0;
                for(j=0; j<m; j++)
                        if(mas[i][j]!=0)
                                temp=1;
                if(temp==0)
                {
                        for(y=i; y<n-1; y++)
                                for(j=0; j<m; j++)
                                        mas[y][j]=mas[y+1][j];
                        n--;
                }
        }
        for(i=0; i<m; i++)
        {
                temp=0;
                for(j=0; j<n; j++)
                        if(mas[j][i]!=0)
                                temp=1;
                if(temp==0)
                {
                        for(y=i; y<m-1; y++)
                                for(j=0; j<n; j++)
                                        mas[j][y]=mas[j][y+1];
                        m--;
                }
        }
        cout<<endl;
        cout<<"poluchenbIi massiv"<<endl;
        for(i=0; i<n; i++)
        {
      for(j=0; j<m; j++)
          cout<<mas[i][j]<<"  ";
                cout<<endl;
        }
            for(i=0; i<n; i++)
             for(j=0; j<m; j++)
            {
                if (mas[i][j]>0)
                {
                    p=i;
                    cout<<"PervbIi polozhitelnui element v stroke = "<<p;
                }
                break;
            }
         cout<<endl;
        _gettch();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2011, 14:33     Перегрузка функций
Посмотрите здесь:

Перегрузка функций - C++
разработайте две версии функции F,заголовки которых выглядят следующим образом: 1) float F(float х); 2) void F (float x, float &amp;y); ...

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

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

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

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

Перегрузка функций - C++
Задача: создать объект формирующий HTML теги. Теги бывают двух типов - полные &lt;p параметры_тега&gt;Текст абзаца&lt;/p&gt; и короткие &lt;input...

Перегрузка функций - C++
а) по номеру года выдает его название по старо японскому календарю. б) по названию месяца выдает знак Зодиака. Заранее спасибо за...

Перегрузка функций - C++
Здравствуйте мне нужно написать программу с использованием функциями и перегрузить их где это возможно... Не подскажите какую из функций...

Перегрузка функций - C++
Попались на глаза две функции.Сразу напишу их в коде double RND() { return (random(RAND_MAX)/(double)RAND_MAX); }; ...

Перегрузка функций - C++
Есть функция Message которую я пытаюсь перегрузить. Вроде все правильно, но не работает:cry: . Помогите разобраться. Ошибка на 44 и 45...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
29.06.2011, 21:03     Перегрузка функций #2
1)
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
#include <iostream>
 
// ввести одномерный массив
// вывести максимальный элемент
// в первую половину 1,3,5,7,9... элементы
// во вторую половину 2,4,6,8,10... элементы
// использовать шаблоны функций
 
template <typename T>
void max_of_array (const T * in, int n){
 
     int n_max = 0, i;
 
        for ( i=1;  i<n; ++i)
                if ( in[i]  > in[n_max] )
                        n_max = i;
        
 
        std::cout<<"index of max element="
                <<n_max
                <<std::endl;
 
        std::cout<<"max element = "
                <<in[n_max]
                <<std::endl;
}
 
template <typename T>
void blend_array (const T * a, T * b, int n){
 
        int i, j;
 
        for(i = 0, j = 0 ; i < n; i+=2)
                b[j++] =a[i];
 
        for(i = 1; i < n; i+=2)
                b[j++] = a[i];
}
 
int main()
{
        int i, n;
        int *a, *b;
 
        std::cout << "Enter N ";
        std::cin >> n;
 
        a = new int[n];
        b = new int[n];
 
        std::cout << "Enter massive " << std::endl;
        for ( i=0; i<n; ++i){
                        std::cout<<"a("
                                <<i
                                <<") = ";
                        std::cin>>a[i];
        }
                
        max_of_array(a, n);
 
        blend_array(a, b, n);
 
        for(i=0; i<n; ++i)
                std::cout<<"b["
                        <<i
                        <<"]="
                        <<b[i]
                        <<std::endl;
 
        delete[] a;
        delete[] b;
        return 0;
}
Yandex
Объявления
29.06.2011, 21:03     Перегрузка функций
Ответ Создать тему
Опции темы

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