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

Оформить программу в виде функций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread85303.html
Поиск по шаблону: определить номер позиции в исходной строке, начиная с которой в строке содержится шаблон S1*S2, где S1, S2-заданные подстрочники; *-произвольная последовательность символов: ...
C++ Встреча Из пункта А в пункт В выехал велосипедист со скоростью v0 км/час.Одновременно навстречу ему из пункта В "автостопом" двинулся другой путник s1 м он двигался со скоростью v1 м/час,s2 м-со скоростью v0... http://www.cyberforum.ru/cpp-beginners/thread85298.html
Логарифм C++
Помогите представить алгоритм в С++ коде...Завтра сдавать неуспеваю. вещ алгоритм логарифм(вх: вещ x, вещ a, вещ eps) | дано: x > 0, a > 1, eps > 0 | надо: вычислить log_a x с точностью eps...
Отрезки на плоскости C++
Найти расстояние между двумя произвольно заданными на плоскости отрезками. Помогите пожалуйста.
C++ Указатели, символьные строки и функции http://www.cyberforum.ru/cpp-beginners/thread85245.html
Помогите пожалуйста. Нужно разработать функцию, которая находит первое вхождение в строку заданной подстроки. Вот ссылка на работу и примерный текст программы...
C++ Теория по абстрактным типам данных В общем нужно сделать лабораторную работу по абстрактным типам данных на Си. Не могу найти подходящую теорию, подкиньте пожалуйста где есть неплохо написанная теория по этой теме. Заранее спасибо.... подробнее

Показать сообщение отдельно
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9

Оформить программу в виде функций - C++

14.01.2010, 10:47. Просмотров 660. Ответов 5
Метки (Все метки)

Недавно столкнулся с такой вот задачей: Дана матрица размером M на N, нужно сформировать одномерный массив из максимальных элементов матрицы. Задача несложная, но появились проблемы на моменте выделения динамической памяти. Дан файл. Оттуда надо считать эту матрицу. Возможно, размеры её надо ввести с клавиатуры. Еще возникли сложности при объявлении переменных при переносе в функции: по условию задачи, основной код должен состоять только из вызова функций. Помогите, плз.

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

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
setlocale (LC_ALL, "Russian_Russia.1251");
ifstream file("file.txt");
if(!file.is_open())
    {
         cout << "Ошибка! Файл file.txt не найден!" << endl << endl;
         cin.get();
         cin.get();
         return 1;
    }
    
int  n, m, i, j;
cout << "Внимание! Перед вводом убедитесь, что в файле присутствует нужное число строк и столбцов и что все элементы введены верно. Для выхода нажмите Ctrl+C." << endl;
cout << endl << "Введите количество строк:" << endl;
cin >> m;
if (m < 0) 
     {
     cout << endl << "Ошибка! Количество строк не может быть отрицательным." << endl;
     cin.get();
     cin.get();
     return 1;
     }
     
cout << endl << "Введите количество столбцов:" << endl;
cin >> n;
if (n < 0) 
     {
     cout << endl << "Ошибка! Количество столбцов не может быть отрицательным." << endl;
     cin.get();
     cin.get();
     return 1;
     }
if (n == 0 || m == 0) 
     {
     cout << endl << "Элементы отсутствуют, т.к. один из размеров исходной матрицы равен нулю." << endl;
     cin.get();
     cin.get();
     return 1;
     }
 
      
float **mas = new float *[m];
for (int i = 0; i < m; i++)
mas[i] = new float [n];
 
for (i=0; i<m; i++)
for (j=0; j<n; j++)
{
    file >> mas[i][j];
}
 
     cout << endl << "Исходный массив:" << endl;
             for(i = 0; i < n; i++)
             {
                 for (j = 0; j < m; j++)
                    cout << mas[i][j] << " ";
                    cout << endl;
             }
float max = mas[0][0];
cout << endl << "Одномерный массив из максимальных элементов столбцов исходной матрицы:" << endl;
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
if (max < mas[i][j]) max = mas[i][j];
cout << max << " ";
}
delete mas;
cin.get();
cin.get();
return 0; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru