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

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

Восстановить пароль Регистрация
 
profun
Сообщений: n/a
03.05.2012, 16:47     Преобразование Одномерного и Двухмерного массивов разбиением на функции.(готовый код БЕЗ функций прилагается) #1
Необходимо оформить каждый пункт задания в виде функции. Все данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных не допускается.
#1. Одномерный массив
Нахождение минимального номера элемента, нахождение суммы элементов между первым и вторым отрицательным элементом массива и преобразование массива таким образом, чтобы сначала располагались элементы, модуль которых меньше нуля, затем все остальные.
Надо переделать таким образом, чтобы данные локальные задачи решались с помощью отдельных функций.
Имеется рабочий код программы БЕЗ функций.
Код
#include <iostream>
using namespace std;
int main()
{
    int i;
    float sum;
    cout << "Number of elements: ";
    cin >> i;
    float *b = new float [i]; 
    for (int counter = 0; counter < i; counter++)
    {
        b[counter] = - 5.00 + ((rand() % 101) / 10.0); 
        cout << b[counter] << "  "; 
    }
    cout << endl;
 float imin,min;  
      min=b[0];
  imin=0;
for (int counter=1; counter<i; counter++){
if (b[counter] < min) {
imin=counter+1;
min=b[counter];
}
}
     i=0;
 sum=0;
 while (b[i] >= 0)
    ++i;
  ++i; 
  while (b[i] >= 0) {
    sum += b[i];
    ++i;
  }
  int k;
   float *relocation_b = new float [k]; 
    int index = 0; 
    for (int counter = 0; counter < k; counter++)
    {
        if (b[counter]>0&&b[counter]<1 || b[counter]<0&&b[counter]>-1)
        {
            relocation_b[index] = b[counter];
            index++;
        }
    }
    for (int counter = 0; counter < k; counter++)
    {
        if (b[counter] > 1 || b[counter]<-1)
        {
            relocation_b[index] = b[counter];
            index++;
        }
    }
cout << "\nMin element = " << min << endl;
cout <<"Index: "<<imin<<endl;
cout<<endl;
 cout << "Summa: " << sum << endl;
  cout << "\nReorganize massive:\n";
    for (int counter = 0; counter < k; counter++)
    {
        cout << relocation_b[counter] << "  ";
    }
    cout << endl;
    cout<<endl;
system("pause");
return 0;
}
#2 Двумерный массив

Аналогично, задачи заключаются в следующем: характеристикой столбца целочисленной матрицы является сумма модулей его отрицательных нечётных элементов.
Переставить столбцы матрицы, расположив их в соответствии с ростом характеристик. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент.
Код без функций опять же присутствует.
Код
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
        int a[6][5];
        int temp[6];
        int i, j;
        cout << "Ishodniy massiv" << endl;
 
       for(i=0; i<5; i++)
        {
                for(j=0; j<5; j++)
                {
                        a[i][j] = rand()%100-50;
                        cout << a[i][j] << "\t";
                }
                cout << endl << endl;
        }
         for(j=0; j<5; j++)
        {
                a[5][j] = 0;
 
                for(i=0; i<5; i++)
                {
                        if ((a[i][j]<0) && (a[i][j]%2!=0))
                                a[5][j] += abs(a[i][j]);
                }
        }
        int min=0;
        for(i=0; i<4; i++)
        {
                min = i;
 
                for(j=i+1; j<5; j++)
                {
                        if (a[5][j]<a[5][min])
                        {
                                min = j;
                        }
                }
                temp[0] = a[0][min];
                temp[1] = a[1][min];
                temp[2] = a[2][min];
                temp[3] = a[3][min];
                temp[4] = a[4][min];
                temp[5] = a[5][min];
 
                a[0][min] = a[0][i];
                a[1][min] = a[1][i];
                a[2][min] = a[2][i];
                a[3][min] = a[3][i];
                a[4][min] = a[4][i];
                a[5][min] = a[5][i];
 
                a[0][i] = temp[0];
                a[1][i] = temp[1];
                a[2][i] = temp[2];
                a[3][i] = temp[3];
                a[4][i] = temp[4];
                a[5][i] = temp[5];
        }
        cout << endl << "Otsortirovanniy massiv" << endl;
        for(i=0; i<5; i++)
        {
                for(j=0; j<5; j++)
                {
                        cout << a[i][j] << "\t";
                }
                cout << endl << endl;
        }
        for(i=0; i<5; i++)
                cout << "---\t";
        cout << endl;
        for(i=0; i<5; i++)
                cout << a[5][i] << "\t";
        cout << " -> harakteristiki stolbcov" << endl << endl;
        int n, sum;
        for(j=0; j<5; j++) 
        {
                for(i=0; i<5; i++) 
                {
                        if (a[i][j]<0) 
                        {
                                sum = 0;
 
                                for(n=0; n<5; n++) 
                                {
                                        sum += a[n][j];
                                }
 
                                cout << "summa elementov stolbca [" << j+1 << "] = " << sum << endl;
                                break;
                        }
                }
        }
        getch();
        return 0;
}
Добрые люди, есть ли вы..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2012, 16:47     Преобразование Одномерного и Двухмерного массивов разбиением на функции.(готовый код БЕЗ функций прилагается)
Посмотрите здесь:

Блок-схемы,одномерного массива,двухмерного, и функции. C++
C++ Почему не работают методы списка (односвязного), при вызове ф-ий? (Код прилагается)
Не применяя библиотечных функций, напишите код функции C++
C++ Вычислить значение функции(исправить готовый код)
C++ Найдите пожалуйста ошибку(код прилагается)
C++ Написать перегруженные функции для вывода на экран суммы элементов одномерного и двумерного массивов
Построение таблицы значений для функции с разбиением отрезков C++
Оформить обработку одномерного и двумерного массивов в виде функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru