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

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

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

как делать трассировку? - C++

01.02.2014, 22:46. Просмотров 452. Ответов 5
Метки нет (Все метки)

не получается нормально сделать трассировку.
помогите.
надо уложиться в 50 строк, избегая ввода и вывода переменных.



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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// 01(1).cpp: определяет точку входа для консольного приложения.
//
 
#include <iostream>
using namespace std;
 
const int N = 3;           //объявляем константу, выражающую количество строк и столбцов
void outM(int [N][N]);      //объявляем функцию вывода матрицы на экран
void sdvig(int [N][N]);     //объявляем функция сдвига строки с максимальным элементом
bool compareSim(int [N][N]);    //объявляем функцию, сравнивающую исходную матрицу и транспонированную
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int z[N][N] = {{1, 2, 3},    //инициализация матрицы
                   {2, 5, 6,},    //
                   {3, 6, 9}};   //
                      //
    bool sim;          //переменная, которая скажет нам, симметрична матрица или нет
 
    cout << "исходная матрица: " << endl << endl;
    outM(z);            // вызов функции(вывод матрицы на экран)
 
    sim = compareSim(z);       //вызов ф-ции(сравнение исходной матрицы и транспонированной)
    if ( sim == 1)
        cout << "Матрица симметрична" << endl << endl;
    else
        cout << "Матрица не симметрична" << endl << endl;
 
    if (sim == 1)
    sdvig(z);     //вызов ф-ции(если матрица симметрична, сдвигает строку с максимальным значением)
 
    system("pause");
    return 0;
}
 
void outM(int z[N][N])       // обычный вывод на экран
{
    for (int i = 0; i < N; i ++)
    {
        for (int j = 0; j < N; j++)
            cout << z[i][j] << ' ';
        cout << endl << endl;
    }
}
 
 
bool compareSim(int z[N][N])            
{                                       // сравниваем каждый элемент исходной
    for (int i = 0; i < N; i++)         // матрицы c  симметричным ему элементом 
        for (int j = 0; j < N; j++)     // транспонированной матрицы
        {                               
            if (z[i][j] != z[j][i])     // возвращаем 0, если хотя бы 2 симметричных 
                return 0;               // элемента не равны
        }
    return 1;               
}
 
void sdvig(int z[N][N])             //ф-ция, сдвигающая строки с максимальным элементом
{                                   
    int temp;
    int max = z[0][0];      
    int imax[N], n = 0, M;  // объявляем массив(если будет несколько макс. значений),
    imax[0] = 0;            // где будет храниться номер строки с макс. элементом
 
    for (int i = 0; i < N; i++)         //ищем макс. элемент и 
        for (int j = 0; j < N; j++)     // запоминаем номер строки
            if (max < z[i][j])
            {
                max = z[i][j];
                imax[n] = i;
            }
 
    for (int i = 0; i < N; i++)         // перебираем все элементы 
        for (int j = 0; j < N; j++)     // и запоминаем все строки, в которых
            if (max == z[i][j])         // встречается макс. значение
                if (imax[n] != i)
                {
                    n++;
                    imax[n] = i;
                }
 
    M = n + 1;   // количество строк с макс. элементом
    for (n = 0; n < M; n++)  // сдвигаем поочередно нужные строки
    {
    temp = z[imax[n]][N - 1];  // запоминаем значение последнего элемента в строке, чтобы не потерять его
    for (int j = N - 1; j >= 0; j--)    // сам сдвиг( начинается с конца строки)
        z[imax[n]][j] = z[imax[n]][j-1];
    z[imax[n]][0] = temp;
    }
 
    cout << "конечная матрица: " << endl << endl;
    outM(z);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2014, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос как делать трассировку? (C++):

нужно сделать трассировку. кто-нибудь знает как? - C++
неужели никто не знает как делать трассировку? завтра преподу сдавать все, а я уже который день не могу сделать трассировку. ...

Необходимо провести трассировку программ - C++
Проведите трассировку определения количество чётных чисел в массиве. Выполните трассировку программ из своего варианта с использованием...

Ошибка в программе и сделать трассировку - C++
http://s019.***********/i622/1212/3e/81e06c7981b0t.jpg Вот дана база программы вот, что получиться если напечатать int K (int K)...

как это делать? - C++

Как делать правильнее? - C++
Есть класс, допустим, &quot;Фигура&quot; class Shape { protected: int xpos; int ypos; public: /* Здесь деструкторы и...

Как делать оконные приложения C++ - C++
Извините за ламерский вопрос, но всё же, кто как делает оконные приложения на С++? Mfc? Или Borland C++ Builder? Кто может дать...

5
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
01.02.2014, 23:01 #2
Что такое "трассировка"?
0
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
01.02.2014, 23:27  [ТС] #3
держи.


Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Что такое "трассировка"?
0
Миниатюры
как делать трассировку?   как делать трассировку?  
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
01.02.2014, 23:43 #4
У меня в браузере картинки отключены.
Тебе лень ответить своими словами? Твоё ж задание - не моё!
Единственное что могу посоветовать - не читать методичек из твоей замкадской церковно-приходской школы, а учиться по нормальным книгам(см. раздел литература на форуме).
1
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
02.02.2014, 00:24  [ТС] #5
это процесс исполнения алгоритма по шагам.
где каждый новый шаг - новая строка.
каждый столбец соответствует определенной переменной или значению условия(да\нет)
а каждая строка - одному шагу алгоритма


надо пошагово расписать что будет происходить в программе с переменными
как будет изменяться их значение\значения на каждом шаге алгоритма


Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
У меня в браузере картинки отключены.
Тебе лень ответить своими словами? Твоё ж задание - не моё!
Единственное что могу посоветовать - не читать методичек из твоей замкадской церковно-приходской школы, а учиться по нормальным книгам(см. раздел литература на форуме).
0
Хулиган
02.02.2014, 00:42     как делать трассировку?
  #6

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
замкадской церковно-приходской школы
улыбнуло

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2014, 00:42
Привет! Вот еще темы с ответами:

Задание проги на Си. Как ее делать? - C++
Задание: Пару скобок в логической формуле назовем избыточной, если после ее удаления формула останется эквивалентна исходной. Удалить все...

Как делать log.txt? - C++
Реализацию объяснять не надо - сам справлюсь. А что выводу в лог подлежит и где именно этот вывод лучше сделать?

Как делать, что использовать? - C++
форумчане, недавно приспичило делать многослойный самообучающийся препроцетрон (вроде так называется). хотел бы пройтись по эволюционным...

Подскажите как делать,пожалуйста - C++
Вот задачка,сколько сижу думаю над ней,не понимаю=( 1)Соседями элементами Аij в матрице назовем элементы Аkl(внизу) c...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.02.2014, 00:42
Ответ Создать тему
Опции темы

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