Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C++]STL |
Автор: Mumriksnus 13.10.2008, 23:02 |
#include <vcl.h> #pragma hdrstop #include <list> #include <queue> #include <functional> #include <algorithm> //--------------------------------------------------------------------------- #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" using namespace std; typedef queue <int, list <int> > MyQueue; int n; // размер контейнера-очереди TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TForm1::N3Click(TObject *Sender) { exit(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::N4Click(TObject *Sender) { ShowMessage(AnsiString("Help")); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TForm1::N2Click(TObject *Sender) { int j, a, elem; int S=0; MyQueue L1,L2; j=0; while (StringGrid1->Cells[0][j]!="") { a=StrToInt(StringGrid1->Cells[0][j]); L1.push(a); j=j+1; } j=0; while (!L1.empty()) { elem=L1.front(); S=S+elem; //ShowMessage("elem = "+IntToStr(elem)); if (elem % 2==0) { L2.push(elem); StringGrid2->Cells[0][j]=IntToStr(elem); j++; } L1.pop(); // if (L1.empty()) ShowMessage("L1 пуста"); } //ShowMessage("обработка L2"); Edit1->Text=IntToStr(S); int min; min=L2.front(); while (!L2.empty()) { // ShowMessage("min = "+IntToStr(min)); L2.pop(); if (!L2.empty()){ if (min>L2.front()) min=L2.front(); } } Edit4->Text=IntToStr(min); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { int j; j=0; while (StringGrid1->Cells[0][j]!="") { StringGrid1->Cells[0][j]=""; j=j+1; } j=0; while (StringGrid2->Cells[0][j]!="") { StringGrid2->Cells[0][j]=""; j=j+1; } } //--------------------------------------------------------------------------- Вот текст программы, задание: тип контейнера очередь, задача для первого контейнера Сумма элементов. А теперь очень тупой вопрос. Ткните меня носом в строчку, в которой указан алгоритм суммы, и на что его заменить, чтобы условием для контейнера стало среднее арифметическое элементов. |
Автор: mrbrooks 14.10.2008, 07:51 |
Mumriksnus, я не вижу ни одного алгоритма из STL. Окромя Только твой собственный велосипед ![]() |
Автор: Mumriksnus 14.10.2008, 14:33 |
Может я не правильно выразился. вобщем мне нужно заменить условие для первого контейнера(сумма элементов, которая здесь реализована) на моё условие(среднее арифметическое). А так же тип контейнера с Очереди на Дек. я уже второй день пытаюсь реализовать данную задумку, но увяз в ошибках по макушку. Сдавать завтра, поэтому молю о помощи. |
Автор: Headcrab 21.10.2008, 23:52 | ||
Видимо поздно, но всетаки
если конечно все остальное работает |