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

Обработка двумерных массивов. Указатели. - C++

Восстановить пароль Регистрация
 
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
07.01.2012, 21:27     Обработка двумерных массивов. Указатели. #1
помогите сделать. буду благодарен с алгоритмами(блок-схемами)
Вложения
Тип файла: doc LabRab5.doc (23.0 Кб, 23 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
07.01.2012, 23:18  [ТС]     Обработка двумерных массивов. Указатели. #2
Задание - В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.


Нужно составить без использования указателей и с использованием указателей:
R136a1
 Аватар для R136a1
142 / 111 / 15
Регистрация: 14.04.2011
Сообщений: 261
08.01.2012, 00:24     Обработка двумерных массивов. Указатели. #3
без указателей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
int main()
{
    const int order = 4;
    int matrix[order][order];
 
    srand(time(NULL));
 
    for(int i = 0; i < order; i++)
    {
        for(int j = 0; j < order; j++)
        {
            matrix[i][j] = 1 + rand() % 50;
            std::cout << std::setw(3) << matrix[i][j];
        }
 
        std::cout << std::endl;
    }
 
    int indexOfMin = 0;
    int min = matrix[0][0];
 
    for(int i = 0; i < order; i++)
        for(int j = 0; j < order; j++)
            if(matrix[i][j] < min)
            {
                min = matrix[i][j];
                indexOfMin = i;
            }
 
    int sum = 0;
 
    for(int i = 0; i < order; i++)
        sum += matrix[indexOfMin][i];
 
    std::cout << "sum: " << sum << std::endl;
 
    return 0;
}
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
08.01.2012, 10:17  [ТС]     Обработка двумерных массивов. Указатели. #4
спасибо за это, но еще бы не плохо с указателем и алгоритм ко всему этому
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
08.01.2012, 11:04     Обработка двумерных массивов. Указатели. #5
Цитата Сообщение от student6605 Посмотреть сообщение
алгоритм
Вот, вроде правильно всё. Опять же не обращайте внимание на перечеркивания.
Миниатюры
Обработка двумерных массивов. Указатели.  
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
08.01.2012, 11:18  [ТС]     Обработка двумерных массивов. Указатели. #6
огромное спасибо, вот еще нужно текст с указателем и алгоритм к нему, сделайте пожалуйста
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
08.01.2012, 12:09     Обработка двумерных массивов. Указатели. #7
Цитата Сообщение от student6605 Посмотреть сообщение
с указателем
Вот, вроде всё правильно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
int main()
{
        const int order = 4;
    int matrix[order][order];
 
    srand(time(NULL));
 
    for(int i = 0; i < order; i++)
    {
        for(int j = 0; j < order; j++)
        {
            *(*(matrix+i)+j) = 1 + rand() % 50;
            cout << setw(3) << *(*(matrix+i)+j);
        }
 
        cout << endl;
    }
 
    int indexOfMin = 0;
    int min = **matrix;
 
    for(i = 0; i < order; i++)
        for(int j = 0; j < order; j++)
            if(*(*(matrix+i)+j) < min)
            {
                min = *(*(matrix+i)+j);
                indexOfMin = i;
            }
 
    int sum = 0;
 
    for(i = 0; i < order; i++)
        sum += *(*(matrix+indexOfMin)+i);
 
    cout << "sum: " << sum << endl;
 
        return 0;
}
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
08.01.2012, 12:22  [ТС]     Обработка двумерных массивов. Указатели. #8
а алгоритм к этому тексту не подскажете?
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
08.01.2012, 13:04     Обработка двумерных массивов. Указатели. #9
Вот 2 алг:
Миниатюры
Обработка двумерных массивов. Указатели.  
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
20.01.2012, 23:41  [ТС]     Обработка двумерных массивов. Указатели. #10
добрые люди данные выше программы мне не подходят, потому что они написаны в программе Microsoft Visio Studio, а мне надо что бы в Borlande, в написанных выше текстах программы надо просто некоторые места исправить чтобы в Borlande работало, помогите пожалуйста!!!
Dinislyam
0 / 0 / 0
Регистрация: 19.01.2012
Сообщений: 21
21.01.2012, 01:08     Обработка двумерных массивов. Указатели. #11
Запилите эту задачу на языке C,а то в борланде не пашет этот код программы
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
21.01.2012, 10:38     Обработка двумерных массивов. Указатели. #12
Цитата Сообщение от Dinislyam Посмотреть сообщение
Запилите эту задачу на языке C,а то в борланде не пашет этот код программы
Так на С написать или на борланде не пашет?

На борланде - только синтаксис немного поправил.

Без указателей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip.h>
#include <conio.h>
 
int main()
{
   clrscr();
   const int order = 4;
   int matrix[order][order];
 
   srand(time(NULL));
 
   for(int i = 0; i < order; i++)
   {
      for(int j = 0; j < order; j++)
   {
      matrix[i][j] = 1 + rand() % 50;
      cout << setw(3) << matrix[i][j];
   }
 
   cout << endl;
   }
 
int indexOfMin = 0;
int min = matrix[0][0];
 
for(i = 0; i < order; i++)
for(int j = 0; j < order; j++)
if(matrix[i][j] < min)
{
min = matrix[i][j];
indexOfMin = i;
}
 
int sum = 0;
 
for(i = 0; i < order; i++)
sum += matrix[indexOfMin][i];
 
cout << "sum: " << sum << endl;
 
getch();
 
return 0;
}

с указателем

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <iomanip.h>
#include <conio.h>
 
int main()
{
clrscr();
const int order = 4;
int matrix[order][order];
 
srand(time(NULL));
 
for(int i = 0; i < order; i++)
{
for(int j = 0; j < order; j++)
{
*(*(matrix+i)+j) = 1 + rand() % 50;
cout << setw(3) << *(*(matrix+i)+j);
}
 
cout << endl;
}
 
int indexOfMin = 0;
int min = **matrix;
 
for(i = 0; i < order; i++)
for(int j = 0; j < order; j++)
if(*(*(matrix+i)+j) < min)
{
min = *(*(matrix+i)+j);
indexOfMin = i;
}
 
int sum = 0;
 
for(i = 0; i < order; i++)
sum += *(*(matrix+indexOfMin)+i);
 
cout << "sum: " << sum << endl;
 
getch();
 
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 11:59     Обработка двумерных массивов. Указатели.
Еще ссылки по теме:

C++ Обработка двумерных массивов
C++ Обработка двумерных массивов
Обработка двумерных массивов C++

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

Или воспользуйтесь поиском по форуму:
student6605
 Аватар для student6605
0 / 0 / 0
Регистрация: 07.01.2012
Сообщений: 32
21.01.2012, 11:59  [ТС]     Обработка двумерных массивов. Указатели. #13
вот. вот что мне нужно было, все работает как нужно, огромное спасибо!
Yandex
Объявления
21.01.2012, 11:59     Обработка двумерных массивов. Указатели.
Ответ Создать тему
Опции темы

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