Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.12.2012, 08:53   #1
bujlka
Пользователь
 
Регистрация: 01.11.2012
Сообщений: 17
По умолчанию Шаблонная функция

Вообщем алгоритм готов , всё работает , но нет перегрузки по теме это лабораторной , прошу помочь кто чем сможет
Код:
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "iomanip"
#include "ctime"
using namespace std;
int Sum (int** arr, int N, int i)
{
    int sum = 0;
    for (int j=0; j<N; j++) 
    {
        sum += arr[i][j];
    }
    return sum;
}
int Sumstr (int** arr, int N, int i)
{
    int sum = 0;
    for (int j=0; j<N; j++) 
    {
        if(j%2!=0)sum += arr[j][i];
    }
    return sum;
}
void rand(int **arr, int n, int m)
{
    srand(time(NULL));
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            *(*(arr + i) + j) = rand() % 50;
    }
}
void print(int **arr, int n, int m)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            cout << setw(3) << *(*(arr + i) + j);
        cout << "\n\n";
    }
}
int max_count(int *arr, int n)
{
    int max = arr[0];
    for(int i = 1; i < n; i++)
    {
        if(arr[i] > max)
            max = arr[i];
    }
    return max;
}
void count_kop(int *arr, int n)
{
    int *res = new int[n];
    int k = 0;
    for(int i = 0; i < n; i++)
    {
        int t = arr[i];
        int count = 0;
        for(int j = 0; j < n; j++)
        {
            if(t == arr[j])
                count++;
        }
        if(count != 1)
            res[k++] = arr[i];
    }
    cout << "\n\nМаксимальное из чисел, встречающихся в заданной матрице более одного раза: ";
    cout << max_count(res,k);
    delete []res;
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"");
    int n, m, **arr, *res, k,sum=0,sumstr=0;
    cout << "Введите размер строк: ";
    cin >> n;
    cout << "\n\nВведите размер столбцов: ";
    cin >> m;
    arr = new int*[n];
    for(int i = 0; i < n; i++)
        *(arr + i) = new int[m];
    cout << "\n\nМатрица имеет вид: \n\n";
    rand(arr,n,m);
    print(arr,n,m);
    int count = 0;
    for(int i = 0; i < n; i++)
    {
        bool b = false;
        for(int j = 0; j < m; j++)
        {
            if(arr[i][j] == 0)
                b = true;
        }
        if(!b)
            count++;
    }
    cout << "\n\nКоличество строк, не содержащих нулевых элементов: " << count<<endl;
    k = 0;
    res = new int[n * m];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            res[k++] = arr[i][j];
    }
    count_kop(res,k);
    for (int i=0; i<n; i++) //по столбцам
    {
        if(i%2!=0)  sum =sum+ Sum (arr, m, i);
    }
    for (int j=0; j<m; j++) //по строкам
    {
    if(j%2!=0)    sumstr += Sumstr (arr, n, j);
    }
    cout <<endl<<endl<< "суммы элементов четных столбцов матрицы "<<" = "<< sum << endl;
    cout <<endl<<endl<< "суммы элементов четных строк матрицы "<<" = "<< sumstr << endl;
    delete []res;
    for(int i = 0; i < n; i++)
        delete[] arr[i];
    delete []arr;
    _getch();
    return 0;
}
ну и собственно само задание
Разработайте программу с шаблонными функциями для типов int, float и double. Данные в функции передаются в качестве параметров. Использование глобальных переменных в функциях не допускается
Дана целочисленная прямоугольная матрица A[8*10] . Написать программу, определяющую величины:
1) количество строк, не содержащих ни одного нулевого элемента;
2) максимальное значение из чисел, встречающихся в заданной матрице более одного раза;
3) суммы элементов четных строк и столбцов матрицы.
bujlka вне форума
Старый 04.12.2012, 11:02   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

а где собственно шаблонная функция?
p51x вне форума
Старый 04.12.2012, 11:14   #3
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Разработайте программу с шаблонными функциями для типов int, float и double.
Цитата:
Дана целочисленная прямоугольная матрица A[8*10]
Лично я места для шаблонов при таком задании просто не вижу. Формальный вариант был предложен здесь.
Кстати, дубликат налицо. Кнопка.
Abstraction вне форума
Старый 04.12.2012, 13:11   #4
Suby
Пользователь
 
Аватар для Suby
 
Регистрация: 03.11.2012
Сообщений: 89
По умолчанию

Что-то не понятно, что именно нужно - толи шаблоны (из условия задания), толи перегрузку функций (со слов ТС). Второе реально осуществить, первого тоже не вижу.
Suby вне форума
Старый 04.12.2012, 13:38   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Та ладно, очевидно, что препод поленился и условие просто скопипастил из другой темы.
Под
Цитата:
Разработайте программу с шаблонными функциями для типов int, float и double.
наверное, подразумевалась шаблонная функция для различных типов элементов матрицы.
p51x вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблонная функция bujlka Помощь студентам 2 02.12.2012 15:43
шаблонная разметка... Student1992 PHP 0 12.11.2011 15:17
шаблонная функция zhenya.ya Помощь студентам 23 26.02.2011 17:40
Функция Kloun1 Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2009 19:56
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50