Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Макс. Мин. Элмент для каждой 3 строки 
V
    Опции темы
feodorv
Дата 17.9.2013, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(ioManip @  17.9.2013,  09:25 Найти цитируемый пост)
то зачем мне проверять нулевую

Тогда начинайте со второй
Цитата(McMan @  15.9.2013,  11:25 Найти цитируемый пост)
for (int i = 2; i < 12; i+=3)

а то пропускаете строки под номерами 0, 1, 2 - на каждую третью не похоже)))


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
xvr
Дата 17.9.2013, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(ioManip @  17.9.2013,  08:25 Найти цитируемый пост)
Дело в том, что мне нужно реализовать тело функции 2 способами: обычным(закомменнтированные строчки) и с исп. указателей.

Замена a[b] на *(a+b) еще не превращает "использование массивов" в "использование указателей"

PM MAIL   Вверх
ioManip
Дата 17.9.2013, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



xvr, 
Цитата(xvr @  17.9.2013,  11:55 Найти цитируемый пост)
Замена a[b] на *(a+b) еще не превращает "использование массивов" в "использование указателей"

Получается у меня с реализацией указателей вообще все плохо? ( в коде выше )
--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
feodorv
Дата 17.9.2013, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(ioManip @  17.9.2013,  13:36 Найти цитируемый пост)
Получается у меня с реализацией указателей вообще все плохо? 

Плохо. Если нужны именно указатели, то не используйте индексов:
Код

void MaxMinElements(int *beginArray, int *endArray)
{
    int MaxEl = *beginArray;
    int MinEl = *beginArray;
    int *e;   

    for( e = ++beginArray; e != endArray; ++e)
    {
        if (*e > MaxEl)
            MaxEl = *e;
        
        if (*e < MinEl)
            MinEl = *e;
    }
    
    cout << "Максимальный элемент: ";
    cout << MaxEl << endl;
    cout << "Минимальный элемент: ";
    cout << MinEl << endl;
    cout << "Их произведение: " << MaxEl * MinEl << endl;
}



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
ioManip
Дата 18.9.2013, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



McMan, 
xvr, 
feodorv, Спасибо Вам.
Еще один вопросик: покритикуйте код, точнее функцию, ничего что она типа void? Например, как бы вы сделали?(Только без всяких boost  и других штук smile ) или так сойдет?
--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
McMan
Дата 18.9.2013, 19:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



Я подозреваю, что это было некое задание и его надо было выполнить.
Чтобы покритиковать код, хотелось бы увидеть скопипащенное сюда один в один задание. UPD и текущую версию кода, выполняющего задание
Может задание уже практически выполнено блестяще.
Цитата

Есть функция для поиска Макс. Мин. элемента матрицы и нахождения их произведения.
....
нужно применить ее, к каждой третьей строке матрицы. 
....
Дело в том, что мне нужно реализовать тело функции 2 способами: обычным(закомменнтированные строчки) и с исп. указателей.
....

Я надеюсь, это же не совсем то, что написано в задании?
Если мои предположения верны, я бы постарался выполнить то, что написано в задании.

не следует иметь предубеждений против функций "возвращающих" void.



Это сообщение отредактировал(а) McMan - 18.9.2013, 20:14
PM MAIL   Вверх
ioManip
Дата 20.9.2013, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



McMan, 
Задание состоит из двух частей. 1. Рекомендации 2. Само задание.

1 В соответ. с вариантом создать функцию, параметром, которой является одномерный массив и его размерность. Тело функции реализовать 2 способами(обычным и с указателями). Продемонстрировать возможность применения созданной функции к строкам двумерного массива. Элементы матрицы задать случ. образом.
2 Найти произведение макс. и мин. элементов массива. Использовать функцию для каждой третьей строки матрицы K(12,8).

Вот это чистый копипаст, слово в слово)

И вот код:
Код

#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <iomanip>

using namespace std;
   
void MaxMinElements(int iArray[], int size_iArray)
{
    int MaxEl = iArray[0];
    int MinEl = iArray[0];
    
    for (int i = 1; i < size_iArray; i++)
    {
//        if (iArray[i] > MaxEl)
//            MaxEl = iArray[i];
        
        if (*(iArray + i) > MaxEl)
            MaxEl = *(iArray+i);
        
       
//        if (iArray[i] < MinEl)
//            MinEl = iArray[i];
       
        if (*(iArray + i) < MinEl)
            MinEl = *(iArray+i);
   
    }
    
    cout << "Максимальный элемент: ";
    cout << MaxEl << endl;
    cout << "Минимальный элемент: ";
    cout << MinEl << endl;
    cout << "Их произведение: " << MaxEl * MinEl << endl;
}

int main()
{
    int size_array = 10;
    int Array[size_array];
       
    srand(time(NULL));
    
    for (int i = 0; i < size_array; i++)
    {
        Array[i] = rand() % 100 - 50;
        cout << Array[i] << " ";
    }
    cout << endl;
    MaxMinElements(Array, size_array);
    cout << endl;
    
    int ArrayTwo[12][8];
    
    for (int i = 0; i < 12; i++)
    {
        for (int j = 0; j < 8; j++)
        {
            ArrayTwo[i][j] = rand() % 100 - 50;
            cout << setw(3) << ArrayTwo[i][j] << " ";
        }
        cout << endl;
    }
    
    for (int i = 3; i < 12; i = i + 3)
    {
        cout << endl;
        cout << "Строка: " << i << endl;
        MaxMinElements(ArrayTwo[i], 8);
    }
     
    return 0;
}

--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
McMan
Дата 20.9.2013, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



1 - это не рекомендации, это тоже задание
Цитата

Тело функции реализовать 2 способами(обычным и с указателями). 

Вот, надо доделать. Я бы сделал две функции, например
Код

void MaxMinElements_ptr(int *iArray, int size_iArray)
void MaxMinElements_arr(int iArray[8])

с соответствующим содержанием тела функции.
в цикле в main можно вызывать обе по очереди

UPD Или же способ реализации функции зависит от "соответ. варианта" ?

Это сообщение отредактировал(а) McMan - 20.9.2013, 17:40
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.