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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
goratics
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 6
#1

Алюанский вопрос по функциям - C++

17.07.2011, 04:02. Просмотров 418. Ответов 7
Метки нет (Все метки)

Господа и прекрасные дамы...!!!

Решил заняться программированием на досуги...книжки умные почитал..примеры освоил..
Но остановился на функциях. Теперь вопрос к аудитории!
Вот мой код :
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
#include <iostream>
#include <conio.h>
#include <Windows.h>
#include "cstdlib"
using namespace std;
void menu (void);
int main (){
setlocale( LC_ALL,"Russian" );
system("cls");
 
 
cout << " Матричный калькулятор "<<endl;
cout << " ___________________________________ ___________________________________ _____" <<"\n";
_getch();
int a;
 
while (true) {
menu();
cin>>a;
if (a==1) int matrix_a();
 
 
 
getch();
system("cls");}
return 0 ;
 
 
}
 
void menu (void) {
 
 
 
 
cout <<" Выберите действие данного приложения :" << endl ;
cout <<"______________________________ ";
 
 
cout <<"________________________________ __ "<<"\n";
cout <<" 1. сложить матрицу а и матрицу и b "<<endl;
cout <<" 2. умножить матрицу а и матрицу и b "<<endl;
cout <<" 3. вычесть матрицы а , матрицу b "<<endl;
cout <<" 4. найти определитель матрицы "<<endl;
cout <<" 5. Выход из программы"<<endl;
 
 
}
int matrix_a (int i,int j,int m,int n){
int matrix [100][100];
cout << "введи размерность матрицы"<<endl;
 
cout << "колличество столбцов = ";
cin >> i;
cout << "колличество строк = ";
cin>>j;
 
 
matrix[i][j];
for(n=1;n<j;n++){
for (m=1;m<i;m++)
cin>>matrix[m][n];
}
getch();
return matrix[m][n];
}
по функции меню я думаю понятно ...что я от сего консольного приложения хотел иметь ввиду.
Так вот ..запускается функция выводящая менюшку на экран.. Ничтяк..
Но как хочу запустить функцию вводящую матрицу - тут возникает делема.- никаких действий согласно задумке не происходит. В чем я имел, честь ошибиться?(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
17.07.2011, 04:13     Алюанский вопрос по функциям #2
Какие-то у Вас бессвязные куски кода получились...
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
int menu(){
  int answ;
  cout << "1 - ввести матрицу" << endl
        << "2 - вывести матрицу" << endl
        << "0 - выход" << endl;
  return ( cin >> answ ) ? answ : -1;
}
//...
int main(){
  int action;
  //...
  while ( action = menu() ){
    switch ( action ){
      case 1 :
        // ввод матрицы
        break;
      case 2:
        // вывод матрицы
        break;
      default:
        cerr << "Ошибка" << endl;
        break;
    }
  }
  // ...
  return 0;
}
goratics
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 6
17.07.2011, 04:22  [ТС]     Алюанский вопрос по функциям #3
Ща попробую..ток ...это конечно не, то что я хотел..
А хотел я....разбить функционал по блокам, реализовав все это в отдельной функции.
Естественно все еще не дописал..а следовал правилу..сразу проверь.
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
17.07.2011, 04:42     Алюанский вопрос по функциям #4
Цитата Сообщение от goratics Посмотреть сообщение
это конечно не, то что я хотел..
А хотел я....разбить функционал по блокам, реализовав все это в отдельной функции.

Не по теме:

Они сами не знают, чево они хочут!
(с)


В смысле - объявить одну функцию menu() и в неё всю возню свалить? Ну и за чем такое "разделение"? Выводом меню и возвращением выбранного действия пусть функция menu() занимается, вводом матрицы - какая-нибудь input_matrix(), выводом соответственно output_matrix(), а в main() всё это хозяйство должно в одно целое увязываться...
goratics
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 6
17.07.2011, 15:37  [ТС]     Алюанский вопрос по функциям #5
Нет...как в анекдоте - Хочешь ромовую бабу ??? Хочу!! - Но ром отдельно , бабу отдельно!!
Так же и я ...ввод матиц отдельно, меню отдельно.. действия над ними отдельно.

Добавлено через 10 часов 45 минут
Ну вот..пробовал вариант не работает.

Добавлено через 19 секунд
Ну вот..пробовал вариант не работает.
OstapBender
582 / 520 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.07.2011, 16:06     Алюанский вопрос по функциям #6
goratics, по-моему вы повторяете слова easybudda

в вашем же варианте матрица существует только в 1ой функции .

и
Цитата Сообщение от goratics Посмотреть сообщение
return matrix[m][n];
последний элемент - matrix[n-1][m-1];
goratics
0 / 0 / 0
Регистрация: 17.07.2011
Сообщений: 6
17.07.2011, 16:09  [ТС]     Алюанский вопрос по функциям #7
Нужно чтоб хотя бы она вызывалась..а не просто меню висело.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2011, 16:21     Алюанский вопрос по функциям
Еще ссылки по теме:

Вопрос по функциям класса C++
Консультация по функциям C++
Задачи по функциям. Объясните задачу по функциям) C++
Задача по функциям C++
C++ Расписать по функциям

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

Или воспользуйтесь поиском по форуму:
OstapBender
582 / 520 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.07.2011, 16:21     Алюанский вопрос по функциям #8
так вам же указали уже как надо делать...
switch это связка if else...
код


для простоты - передача матрицы как int[10][10]
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
int menu() {
    std::cout << "1-input\n";
    std::cout << "2-output\n";
    std::cout << "3-exit\n";
    int choice=0;
    std::cin >> choice;
    return choice;
}
 
void output(int matr[10][10], int n, int m) {
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++)
            std::cout << matr[i][j] << ' ';
 
        std::cout <<  '\n';
    }
}
 
int main()
{
    int matr[10][10]={0};
 
    int choice=0;
    while (choice != 3) {
    switch( choice= menu() ) {
    case 1:
        //input(matr,10,10); // не реализовано, не забыть передать матрицу по ссылке или указателю
        break;
    case 2:
        output(matr,10,10);
        break;
    }
    }
 
 
 
     
 
    getchar();
    return 0;
}
Yandex
Объявления
17.07.2011, 16:21     Алюанский вопрос по функциям
Ответ Создать тему
Опции темы

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