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

графы (собрать проект, разработать и доработать классы) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество 8-значных чисел,у которых сумма цифр в цифровой записи числа больше,чем N. http://www.cyberforum.ru/cpp-beginners/thread722234.html
Дано натурально число N. Определить количество 8-значных чисел,у которых сумма цифр в цифровой записи числа больше,чем N.Если таких чисел нет,то вывести слово "нет".
C++ Системы счисления. Вывести на экран строчную константу и число, состоящее из цифр вашего дня рождения, заданное в 2, 8, 16 СС Написать программу, которая выводит на экран строчную константу и число, состоящее из цифр вашего дня рождения, заданное в виде двоичной, восьмеричнои и шестнадцатеричной константы. Сделайте пожалуйста кто может. Очень надо. http://www.cyberforum.ru/cpp-beginners/thread722224.html
C++ Строки: определить количество слов, найти самое длинное, исключить все слова, содержащие букву "а"
Дана строка текста, в которой слова разделены запятыми и двоеточиями. Необходимо: 1. вычислить количество слов в строке и вывести на экран те слова,длина которых равна данному числу m,если таких слов нет,то выдать на экран соответствующее сообщение; 2. найти самое длинное слово,которое заканчивается на "у"; 3. исключить из строки все слова,которые содержат букву "а",оставшийся текст вывести на...
C++ Найти номер максимального и минимального элементов массива
Нужно ввести массив из 10 вещественных чисел !1)найти номер максимального и минимального элементов 2) найти сумму и произведение минимального и максимального числа помогите пожалуйста
C++ Исправить ошибки http://www.cyberforum.ru/cpp-beginners/thread722193.html
Здравствуйте помогите исправить ошибки, не пойму как.Заранее спасибо. #include "stdafx.h" #include <iostream> #include <fstream> #include<conio.h> #include <string.h> #include<stdlib.h> #define kol 100 using namespace std;
C++ Переписать программу, используя указатели Здравствуйте. Помогите, пожалуйста, переписать программу, используя указатели. Дана матрица порядка n. Поменять местами максимальный и минимальный элементы относительно главной диагонали, т.е. сначала нужно найти минимальный элемент снизу относительно главной диагонали, потом найти максимальный элемент сверху относительно главной диагонали, а потом их поменять местами. Заранее спасибо. #include... подробнее

Показать сообщение отдельно
Mariya_petrovna
Сообщений: n/a
06.12.2012, 23:16     графы (собрать проект, разработать и доработать классы)
есть код:
Листинг 1. Программа для демонстрации работы алгоритма расчета
с обходом дерева «в глубину»
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
97
98
99
100
101
102
103
104
105
106
107
108
109
1 #include "stdafx.h"
2 #include <iostream>
3 #include <iomanip>
4 #include <conio.h>
5 using namespace std;
6 enum OperandNumber {opL, opR, opX};
7 class Bit
8 {
9 public:
10 unsigned int LSource, RSource, UpperLevel;
11 OperandNumber UpperLevelOperand;
12 int LValue, RValue;
13 bool isLReady, isRReady;
14 int tmpNum;
15 };
16 void fun(Bit* b[], unsigned int ind)
17 {18 //debug info <<<
19 static int CallCNT=0;
20 if (CallCNT==0)
21 {
22 cout<<setw(3)<<"Num"
23 <<setw(6)<<"LVal"
24 <<setw(6)<<"RVal"
25 <<endl;
26 }
27 CallCNT++;
28 cout<<setw(3)<< ind
29 <<setw(5)<< b[ind]->LValue
30 <<setw(1)<<(b[ind]->isLReady?"+":"-")
31 <<setw(5)<< b[ind]->RValue
32 <<setw(1)<<(b[ind]->isRReady?"+":"-")
33 <<endl;
34 //>>> debug info
35 if (! b[ind]->isLReady)
36 fun(b,b[ind]->LSource);
37 if (b[ind]->UpperLevel != -1) //для верхнего уровня этот блок не исполнять,
38 {
39 //вычислить оставшиеся операнды (в нашем случае только RValue)
40 if (! b[ind]->isRReady) 
41 fun(b,b[ind]->RSource);
42 //к этому моменту все операнды данного уровня гарантированно вычислены
43 //выполнить операцию для всех операндов на данном уровне (ind)
44 int res = b[ind]->LValue + b[ind]->RValue;
45 //положить результат в нужный операнд верхнего уровня (b[ind]->UpperLevel)
46 if (b[ind]->UpperLevelOperand == opL)
47 { 
48 b[b[ind]->UpperLevel]->LValue = res;
49 b[b[ind]->UpperLevel]->isLReady = true;
50 }
51 if (b[ind]->UpperLevelOperand == opR)
52 {
53 b[b[ind]->UpperLevel]->RValue = res;
54 b[b[ind]->UpperLevel]->isRReady = true;
55 }
56 }
57 }
58 int _tmain(int argc, _TCHAR* argv[])
59 {
60 Bit* b[100];
61 int bCNT = 0;
62 b[bCNT++] = new Bit;
63 b[bCNT++] = new Bit;
64 b[bCNT++] = new Bit;
65 b[bCNT++] = new Bit;
66 b[0]->LValue = 501;
67 b[0]->RValue = 502;68 b[0]->isLReady = true;
69 b[0]->isRReady = true;
70 b[0]->LSource = -1;
71 b[0]->RSource = -1;
72 b[0]->UpperLevel  = 2;
73 b[0]->UpperLevelOperand = opL;
74 b[1]->LValue = 511;
75 b[1]->RValue = 512;
76 b[1]->isLReady = true;
77 b[1]->isRReady = true;
78 b[1]->LSource = -1;
79 b[1]->RSource = -1;
80 b[1]->UpperLevel  = 2;
81 b[1]->UpperLevelOperand = opR;
82 b[2]->LValue = 0;
83 b[2]->RValue = 0;
84 b[2]->isLReady = false;
85 b[2]->isRReady = false;
86 b[2]->LSource = 0;
87 b[2]->RSource = 1;
88 b[2]->UpperLevel  = 3;
89 b[2]->UpperLevelOperand = opL;
90 b[3]->LValue = 0;
91 b[3]->RValue = 0;
92 b[3]->isLReady = false;
93 b[3]->isRReady = false;
94 b[3]->LSource = 2;
95 b[3]->RSource = -1;
96 b[3]->UpperLevel  = -1;
97 b[3]->UpperLevelOperand = opX;
98 //поиск верхнего уровня дерева
99 int TopLevelIndex = 0;
100 for (int i=0; i<bCNT; i++)
101 if (b[i]->UpperLevel == -1)
102 { TopLevelIndex = i;
103 break;
104 }
105 fun(b,TopLevelIndex);
106 cout << "Result = " << b[TopLevelIndex]->LValue;
107 for (int i=0; i<bCNT; i++)
108 delete b[i];
109 getch();
110 return 0;
111 }
1. Соберите проект на основе листинга 1, отключив поддержку Юникода.
Убедитесь в работоспособности программы. Отобразите на экране глубину вложенности
вызываемой функции fun().
2. Разработайте класс CompTree для работы с деревом, включив в него методы для
добавления и удаления элемента из дерева. Используйте интерфейсные функции для
доступа к частным данным класса.
3. Доработайте класс так, чтобы в качестве данных могли выступать числа и
матрицы, а к ним были применимы 4 арифметические операции.
4. Обеспечьте возможность чтения/записи операндов из/в файл.



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