Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6453
Последний выпуск: 19.06.2015

Решение задач на двумерный массив(матрицы) в delphi7

87K
14 января 2013 года
viktor6102
1 / / 14.01.2013
Помогите решить задачу в delphi : Нужно составить матрицу по образцу и вывести на Label:
1 2 3 … n
n-1 n-2 …
1 2 3 … n
n-1 n-2 …
93K
24 июня 2014 года
ZHak
1 / / 24.06.2014
НАрод помогите плизз решить задачку в делфи
Дан двумерный массив.
а) Поменять местами первую и третью строки.
б) Поменять местами второй и последний столбцы.
Буду очень благодарен.
450
06 июля 2014 года
cronya
420 / / 03.01.2009
Цитата: ZHak
НАрод помогите плизз решить задачку в делфи
Дан двумерный массив.
а) Поменять местами первую и третью строки.
б) Поменять местами второй и последний столбцы.
Буду очень благодарен.


Если надо делать все на начальном массиве, создаешь новый массив для каждого преобразования, записываешь элементы старого в новый, там делаешь что нужно, написано на си++, не помню ваш паскаль, но алгоритм такой же.

Код:
#include <iostream>
#include <ctime>

int** Massive(int row, int column);
void Out(int** arr, int row, int column);
void freeMemory(int** arr, int row);
void changeRow(int**arr, int row, int column);
void changeColumn(int**arr, int row, int column);

int main()
{
    srand((unsigned)time(NULL));   
    int row = 4, column = 4;
    int** arr = Massive(row, column);
    std::cout<<"Massive:"<<std::endl;
    Out(arr, row, column);
    changeRow(arr,row,column);
    changeColumn(arr,row,column);
    freeMemory(arr,row);
    std::system("pause");  
    return 0;
}

//заполнение массива рандомными цифрами от 0 до 9
int** Massive(int row, int column)
{
    int ** arr = new int* [row];
    for(int idx=0; idx<row; idx++)
    {
        arr[idx] = new int [column];
    }
    for(int idx=0; idx<row; idx++)
    {
        for(int jdx=0; jdx<column; jdx++)
        {
            arr[idx][jdx] = rand()%10;
        }
    }
    return arr;
}

//вывод массива на дисплей
void Out(int** arr, int row, int column)
{
    for(int idx=0; idx<row; idx++)
    {
        for(int jdx=0; jdx<column; jdx++)
        {
            std::cout<<arr[idx][jdx]<<" ";
        }
        std::cout<<std::endl;
    }
}
//освобождаем память под массив
void freeMemory(int** arr, int row)
{
    for(int idx=0; idx<row; idx++)
    {
            delete[] arr[idx];
    }
    delete[] arr;
}
//обмен 0 и 2 строки(отсчет от 0 до 3)
void changeRow(int**arr, int row, int column)
{
    int tmp = 0;
    for(int idx=0; idx<row; idx++)
    {
        if(idx == 0)
        {
            for(int jdx=0; jdx<column; jdx++)
            {
                tmp = arr[idx][jdx];
                arr[idx][jdx] = arr[idx+2][jdx];
                arr[idx+2][jdx] = tmp;
            }
        }
    }
    std::cout<<"Swap row 0 to 2:"<<std::endl;
    Out(arr,row,column);
}
//обмен 1 и 3 столбца(отсчет от 0 до 3)
void changeColumn(int**arr, int row, int column)
{
    int tmp = 0;
    for(int jdx=0; jdx<column; jdx++)
    {
        if(jdx == 1)
        {
            for(int idx=0; idx<row; idx++)
            {
                tmp = arr[idx][jdx];
                arr[idx][jdx] = arr[idx][jdx+2];
                arr[idx][jdx+2] = tmp;
            }
        }
    }
    std::cout<<"Swap column 1 to 3:"<<std::endl;
    Out(arr,row,column);
}

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог