Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 20.11.2011
Сообщений: 73

Написать алгоритм для перемножения скобок вида (4-А)* (3-А)

08.05.2014, 19:13. Показов 1225. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать алгоритм для перемножения скобок вида (4-А)*(3-А). Причем таких скобок может быть больше, и всегда в скобках вычитается А. Надеюсь на вашу помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2014, 19:13
Ответы с готовыми решениями:

Алгоритм Штрассена для быстрого перемножения матриц
Помогите реализовать алгоритм Штрассена! Может у кого нибудь есть исходник на С++? Если не программой то помогите с идеями, как это все...

Алгоритм перемножения матриц
Вот код, что я делаю не так??? вроде все правильно написал, сможет кто помочь? import numpy as np import random def...

Наивный алгоритм перемножения матриц
Добрый вечер! Где можно прочитать про наивный алгоритм умножения матриц? И в чем разница между обычным и наивным? Не могу вообще ничего...

5
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
08.05.2014, 19:18
prostreet, не очень понятно, на выходе необходимо получить символьное выражение? Или число?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.05.2014, 19:40
C++
1
2
3
4
5
6
int a( 2 ), arr[] = { 4, 3, 5, 9 }, res( 1 );
 
for( size_t i( 0 ), lim( sizeof( arr ) / sizeof( arr[ 0 ] ) ); i < lim; ++i )
{
    res *= arr[ i ] - a;
}
0
0 / 0 / 2
Регистрация: 20.11.2011
Сообщений: 73
08.05.2014, 20:01  [ТС]
Нужно получить символьное выражение
0
30 / 24 / 27
Регистрация: 06.05.2014
Сообщений: 161
09.05.2014, 00:44
prostreet, ну а какие-то собственные мысли по решению у вас имеются? Давайте их сюда Поможем, подскажем..
0
0 / 0 / 2
Регистрация: 20.11.2011
Сообщений: 73
09.05.2014, 23:24  [ТС]
а всё уже не надо,вот код, может потом кому пригодится.
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 void TForm1::Multiply (std::vector<Chlen> &m1, std::vector<Chlen> m2)
 {
   std::vector<Chlen> m; // âñïîìîãàòåëüíûé ìíîãî÷ëåí
   Chlen ch;   // ÷ëåí ìíîãî÷ëåíà
   bool flag = false;    // ôëàã, íóæåí ))
   // ïðîõîä ïî êàæäîìó ÷ëåíó ìíîãî÷ëåíà îáîèõ ìíðîãî÷ëåíîâ
   for(int i = 0; i < m1.size(); i++)
   {
       for(int j = 0; j < m2.size(); j++)
       {
            ch.k = m1[i].k *m2[j].k;   // êîýôèöèåíòû ïåðåìíîæàþòñÿ,
            ch.rank = m1[i].rank + m2[j].rank;   // à ñòåïåíè ñêëàäûâàþòñÿ
            flag = false;      // ñáðàñûâàåì ôëàã
            if(m.size() != 0)    // åñëè âñïîìîãàòåëüíûé âåêòîð ïóñòîé, òî çàíîñèì â íåãî ÷ëåí
            {
                // åñëè íå  ïóñòîé, ïðîâåðÿåì, åñòü ëè â íåì ÷ëåí ñ òàêîé æå ñòåïåíüþ, êîòîðàÿ õðàíèòñÿ â ïåðåìåííîé ch
                for(int ii = 0; ii < m.size(); ii++)
                {
                    if(m[ii].rank == ch.rank)
                    {
                        // åñëè åñòü, òî ïðîñòî ïëþñóåì ê êîýôèöèýíòó êîýôèöèýíò èç ïåðåìåííîé ch
                        m[ii].k += ch.k;
                        flag = true; // òàê êàê ïåðåìåííóþ ch óæå èñïîëüçîâàëè, ñëåäîâàòåëüíî å¸ íå íóæíî çàíîñèòü â ìíîãî÷ëåí
                    }
                }
                if(!flag)
                   m.push_back(ch);
            }
            else
                m.push_back(ch);
       }
   }
 
   m1 = m;    // ïåðåïèñûâàåì äàííûå èç âñïîìîãàòåëüíîãî ìíîãî÷ëåíà â ìíîãî÷ëåí 1
 }
 
 
 
void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
Form1->StringGrid1->ColCount = Form1->CSpinEdit1->Value;
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    float *mas = new float[CSpinEdit1->Value];
    AnsiString str = "";
    for (int i = 0; i < CSpinEdit1->Value; i++)
    {
        mas[i] = StrToFloat(StringGrid1->Cells[i][0]);
        if(i == CSpinEdit1->Value - 1)
            str += "(" + StringGrid1->Cells[i][0] + "-A)";
        else
            str += "(" + StringGrid1->Cells[i][0] + "-A)*";
    }
    Memo->Lines->Add("Âûðàæåíèå:\r\n" + str);
    std::vector<Chlen> m1; // ìíîãî÷ëåí 1
    std::vector<Chlen> m2; // ìíîãî÷ëåí 2
 
    Chlen ch;    // ïåðåìåííàÿ ÷ëåí ìíîãî÷ëåíà
    // ïîëó÷àåì 1ûé ìíîãî÷ëåí
    ch.k = mas[0];   // ïîëó÷àåì êîýôèöèýíò èç ìàññèâà
    ch.rank = 0;    // òàê êàê êîýôèöèýíò íå ïðè ïåðåìåííîé À, ñëåäîâàòåëüíî åãî ñòåïåíü ðàâíà 0
    m1.push_back(ch);   // çàíîñèì ÷ëåí â ìíîãî÷ëåí
    ch.k = -1;
    ch.rank = 1;
    m1.push_back(ch);   // çàíîñèì À â ìíîãî÷ëåí
        // ïîëó÷àåì 2ûé ìíîãî÷ëåí
    ch.k = mas[1];
    ch.rank = 0;
    m2.push_back(ch);
    ch.k = -1;
    ch.rank = 1;
    m2.push_back(ch);
 
    // âûâîäèì îáà ìíîãî÷ëåíà íà ýêðàí
    str = "Ïåðâûé ìíîãî÷ëåí:\r\n";
    for(int i = 0; i < m1.size(); i++)
    {
        ch = m1[i];
        str += FloatToStr(ch.k) + "A^" + IntToStr(ch.rank);
    }
    Memo->Lines->Add(str);
    str = "Âòîðîé ìíîãî÷ëåí:\r\n";
    for(int i = 0; i < m2.size(); i++)
    {
        ch = m2[i];
        str += FloatToStr(ch.k) + "A^" + IntToStr(ch.rank);
    }
    Memo->Lines->Add(str);
 
    Form1->Multiply(m1, m2);  // ïåðåìíîæàåì ïåðâûå 2 ýëëåìåíòà
 
    // â öèêëå äîìíîæàåì ïîëó÷èâøèéñÿ ìíîãî÷ëåí ñëåäóþùèì ìíîãî÷ëåíîì
    for(int i = 2; i < CSpinEdit1->Value; i++)
    {
        m2.clear();
        ch.k = mas[i];
        ch.rank = 0;
        m2.push_back(ch);
        ch.k = -1;
        ch.rank = 1;
        m2.push_back(ch);
        Form1->Multiply(m1, m2);
    }
 
    //âûâîä ðåçóëüòàòà
    str = "Ðåçóëüòàò:\r\n";
    for(int i = 0; i < m1.size(); i++)
    {
        ch = m1[i];
        if(ch.k < 0)
            str += FloatToStr(ch.k) + "A^" + IntToStr(ch.rank);
        else
            if(i == 0)
                str += FloatToStr(ch.k) + "A^" + IntToStr(ch.rank);
            else
                str += "+" + FloatToStr(ch.k) + "A^" + IntToStr(ch.rank);
    }
    Memo->Lines->Add(str);
 
    delete [] mas;
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.05.2014, 23:24
Помогаю со студенческими работами здесь

Алгоритм сложения и перемножения матриц с вводимыми элементами
Как составить алгоритмы сложения и перемножения матриц заданной пользователем размерности, и чтобы элементы также вводились пользователем?...

Проверить правильность расстановки скобок вида (), {}, [] в выражении.
Скобки считаются сбалансированными, если: а) при подсчете скобок слева направо количество открывающих скобок должно совпадать с количеством...

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

Написать программу для удаления скобок и слов в них
Знаю, что таких полно, но они все работают только в случае, когда нет скобок в скобках типо того : (мама(мыла)раму). Вот небольшой...

Составить алгоритм перемножения многочленов, основывающийся на алгоритме суммирования
Составить алгоритм перемножения многочленов, основывающийся на алгоритме суммирования из примера 4. вот и пример Const PP:Array of...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru