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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2013, 22:42   #1
vlad333
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 15
По умолчанию Помогите с двумерным массивом.

Ввести с клавиатуры матрицу А(m,n) вещественных чисел (m<=10,n<=15). Размер матрицы ввести с клавиатуры.Вывести на экран матрицу А.Найти максимальный элемент во 2 столбце.Удалить строку,в которой находится найденный элемент.отсортировать по убыванию последнюю строку. Не очень понимаю как сделать помогите пожалуйста,заранее благодарен за помощь
vlad333 вне форума Ответить с цитированием
Старый 14.10.2013, 07:39   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

В чем затруднение??? Задание первого курса... Наработки выкладывайте посмотрим.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 15.10.2013, 16:13   #3
vlad333
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 15
По умолчанию

я только матрицу смог создать и пытался понатыкать в нее эти подусловия найти мах и т.д.,но не получилось.можете написать как будет прога выглядеть?
vlad333 вне форума Ответить с цитированием
Старый 16.10.2013, 07:21   #4
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

давайте то,что есть(с ошибками).А там поможем.
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 16.10.2013, 10:25   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Вот Вам заготовка. Она может подтолкнуть на правильные размышления:

main.cpp
Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void fillArray(int **array, int size) {
    srand (time(NULL));
    for (int row = 0; row < size; row++) {
        for (int col = 0; col < size; col++) {
            array[row][col] = rand() % 10;
        }
    }
}

void printArray(int **array, int size) {
    srand (time(NULL));
    for (int row = 0; row < size; row++) {
        for (int col = 0; col < size; col++) {
            cout << array[row][col];
            if (col != size-1) {
                cout << ' ';
            }
            else {
                cout << '\n';
            }
        }
    }
}

int main(int argc, char** argv) {
    srand(time(NULL));
    
    const int n = 5 + rand() % 5;
    
    // Allocation
    int **A;
    A = new int*[n];
    for (int i = 0; i < n; ++i) {
        A[i] = new int[n];
    }
    
    // Fill the array
    fillArray(A, n);
    
    // Print the array
    printArray(A, n);

    // Deletion
    for (int i = 0; i < n; i++) {
        delete [] A[i];
    }
    delete [] A;

    return 0;
}
8Observer8 вне форума Ответить с цитированием
Старый 16.10.2013, 10:49   #6
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Цитата:
Удалить строку,в которой находится найденный элемент
т.е. сдвинуть массив на строку вверх?
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!
SaLoKiN вне форума Ответить с цитированием
Старый 16.10.2013, 11:24   #7
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Вот допилил "заготовку"
Код:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void fillArray(float **array, int sizeR,int sizeC) {
    srand (time(NULL));
    for (int row = 0; row < sizeR; row++) {
        for (int col = 0; col < sizeC; col++) {
            //array[row][col] = rand() % 10;
            cin>>array[row][col];
        }
    }
}

void printArray(float **array, int sizeR,int sizeC) {
    srand (time(NULL));
    for (int row = 0; row < sizeR; row++) {
        for (int col = 0; col < sizeC; col++) {
            cout << array[row][col];
            if (col != sizeC-1) {
                cout << ' ';
            }
            else {
                cout << '\n';
            }
        }
    }
}

void searchDeleteSort(float **array, int sizeR,int sizeC){
    
float max;
int maxi;
max=array[0][1];
maxi=0;

//ищем максимальный
    for (int row = 0; row < sizeR; row++)
        if(array[row][1]>max) 
            {
            max=array[row][1];
            maxi=row;
            }
    
 cout<<endl<<"Item:  "<<max<<endl<<"Index:  "<<maxi+1<<endl;

//удаляем строку с максимальным элементом
    for (int row = maxi; row < sizeR-1; row++) 
         for (int col = 0; col < sizeC; col++) 
             array[row][col]=array[row+1][col];

// сортировка
max= 0;
    for (int col = 0; col < sizeC-1; col++) 
         for( int j = col+1;j<sizeC;j++)
             if(array[sizeR-2][col]<array[sizeR-2][j])    
             {    
                 max=array[sizeR-2][col];
                 array[sizeR-2][col]=array[sizeR-2][j];
                 array[sizeR-2][j]=max;
            }
}

int main(int argc, char** argv) {
    srand(time(NULL));
    int n;// =3;// 5 + rand() % 5;
    int m;// =3;// 5 + rand() % 5;
    cout<<"N = ";
    cin>>n;
    cout<<"M = ";
    cin>>m;
    cout<<endl;
    

    // Allocation
    float **A;
    A = new float*[n];
    for (int i = 0; i < n; ++i) {
        A[i] = new float[n];
    }
    
    // Fill the array
    fillArray(A, n,m);
    
    // Print the array
    printArray(A, n,m);
    searchDeleteSort(A, n,m);
    cout<<endl<<"New Matrix:"<<endl;
    printArray(A, n-1,m);
  

    // Deletion
    for (int i = 0; i < n; i++) {
        delete [] A[i];
    }
    delete [] A;

    return 0;
}
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 16.10.2013 в 12:05.
SaLoKiN вне форума Ответить с цитированием
Старый 16.10.2013, 22:26   #8
vlad333
Пользователь
 
Регистрация: 13.10.2013
Сообщений: 15
По умолчанию

там есть некоторые строки не в тему,это я пытался впихнуть условие
Код:
var x:array[1..10,1..15] of integer;
n,m,i,j,max:integer;
begin
write('kolvo strok n=');readln(n);
write('vvedite kolvo stolbsov m=');readln(m);
 for i:=1 to n do
   for j:=1 to m do
 readln(x[i,j]);
writeln;writeln('ishodnii massiv');
begin
 max:=maxint;
for i:=1 to n do
for j:=1 to m do
if x[i,j]>max then max:=x[i,j];
writeln('max:');
writeln(max:3:0);
readln;
end;
begin
for j:=1 to m do 
writeln(x[i,j]:6:0);
writeln;
end;
readln;
end.


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.10.2013 в 22:46.
vlad333 вне форума Ответить с цитированием
Старый 17.10.2013, 05:19   #9
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

Ахаха) не указали язык программирования-получили код на С++, а вам нужно на паскале.

Код:
begin
 max:=maxint;
for i:=1 to n do
for j:=1 to m do
if x[i,j]>max then max:=x[i,j];
writeln('max:');
writeln(max:3:0);
readln;
end;
зачем вам maxint???
меняем на
Код:
begin
max:=x[1][2];
for i:=1 to n do
    if x[i,2]>max then 
    begin
    max:=x[i,2];
    imax:=i;
    end;

writeln('max:');
writeln(max);
readln;
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 17.10.2013 в 10:26.
SaLoKiN вне форума Ответить с цитированием
Старый 17.10.2013, 10:02   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const Nmax=15;Mmax=10;
var A:Array[1..Mmax,1..Nmax] of real;
i,j,im:byte;
N,M:integer;
tmp:real;
f:boolean;
begin
repeat
write('RowCount=');readln(n);
until (n<=10) and (n>=0);
repeat
write('ColCount=');readln(m);
until (m<=15) and (m>=0);

for i:=1 to n do
For j:=1 to m do
begin
write('[',i,',',j,']=');
readln(a[i,j]);
end;
writeln('================================');
for i:=1 to n do begin
For j:=1 to m do
write(a[i,j]:6:3);
writeln;
end;
writeln('================================');
im:=1;
for i:=2 to n do
if a[i,2]>a[im,2] then im:=i;
writeln('[',im,',',2,']=',a[im,2]:6:3);
for i:=im to n do
for j:=1 to m do
a[i,j]:=a[i+1,j];
writeln('================================');
n:=n-1;
for i:=1 to n do begin
For j:=1 to m do
write(a[i,j]:6:3);
writeln;
end;
f:=true;
while   f do  begin
f:=false;
for j:=2 to m do
if a[n,j]>a[n,j-1] then begin
f:=true;tmp:=a[n,j];a[n,j]:=a[n,j-1];a[n,j-1]:=tmp;end;
end;
writeln('================================');
for i:=1 to n do begin
For j:=1 to m do
write(a[i,j]:6:3);
writeln;
end;
end.
Цитата:
RowCount=3
ColCount=3
[1,1]=1
[1,2]=2
[1,3]=3
[2,1]=4
[2,2]=5
[2,3]=6
[3,1]=1
[3,2]=2
[3,3]=3
================================
1.000 2.000 3.000
4.000 5.000 6.000
1.000 2.000 3.000
================================
[2,2]= 5.000
================================
1.000 2.000 3.000
1.000 2.000 3.000
================================
1.000 2.000 3.000
3.000 2.000 1.000
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с двумерным массивом в С++ Vultar Помощь студентам 11 12.11.2009 18:28
помогите с двумерным массивом nikita33321 Помощь студентам 0 30.09.2009 22:45
Помогите с двумерным массивом символов Anvilion Помощь студентам 1 18.01.2009 01:59
помогите пожалуйста с двумерным массивом Wi1D Помощь студентам 8 26.11.2008 23:04
Помогите с двумерным массивом ПЛЗ))) Distract Паскаль, Turbo Pascal, PascalABC.NET 2 09.10.2008 11:39