Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.05.2010, 19:44
sinnop sinnop вне форума
Прохожий
 
Регистрация: 23.05.2010
Сообщения: 2
Репутация: 10
Восклицание ЭКСПРЕС задание для профессионалов

Доброго времени суток эксперты)!
Затра сдавать прогу а переделать не успеваю. Помогите пожалуйста. программа на С+ а надо на дельфи.
программа о загрузке рюкзака любым методом но лучше матодом динамического программирования.
еще прикреплю unit . просто горю. если будит плохая оценка то свободные посещение не дадут (((( помогите плиз.
могу даже купить хорошую прогу icq=390431607

типо поиском альтернатив но это не гравное. Сють вопроса: вводится вес рюкзака, количество предметов со стоимостью и весом. надо отобрать самые лучше предметы в заданный рюкзак. ( прикреплю вот фрагмент на C+:
Ответить с цитированием
  #2  
Старый 23.05.2010, 19:47
sinnop sinnop вне форума
Прохожий
 
Регистрация: 23.05.2010
Сообщения: 2
Репутация: 10
По умолчанию это код на С+ но выполнен не особо. нужно код преобразовать на дельфи

Код:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include <algorithm>
#include <iostream>
#include <functional>
using namespace std;

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
#define MAXWEIGHT 100


int a[MAXWEIGHT];
int last_added[MAXWEIGHT];      // для вычисления добавленного объекта
int i, j;
int aux;
int c[100];     // вес
int v[100];     // цена
int n=0;        // количество предметов
int W;          // вместимость рюкзака
int Lenght;     // количество предметов, длина массива q

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        Form1->Memo2->Clear();
        Form1->Memo4->Clear();
        Form1->Memo3->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{       AnsiString buf,s;
        AnsiString buffer,st;
        AnsiString _buf,_s;

        {       // ввод объема рюкзака

                st = Edit3->Text;
                W = StrToInt(st);
        }

        {
                s = Edit1->Text;
                _s = Edit2->Text;
        }


        if(W<100 && Edit1->Text != "" && Edit2->Text != "")
        {
                {      // заполняем массив q
                int i, k =0;
                for(i=1,buf="";i<=s.Length()+1;i++)
                {
                        if(i==s.Length()+1)
                        {
                                c[k++] = StrToInt(buf);
                                n++;
                                break;
                        }
                        if(s[i]==' ')
                        {
                                c[k++] = StrToInt(buf);
                                n++;
                                buf = "";
                        }
                        buf += s[i];

                }
                }
        
                {       // заполняем массив c
                int i, k =0;
                for(i=1,_buf="";i<=_s.Length()+1;i++)
                {
                        if(i==_s.Length()+1)
                        {
                                v[k++] = StrToInt(_buf);
                                break;
                        }
                        if(_s[i]==' ')
                        {
                                v[k++] = StrToInt(_buf);
                                _buf = "";
                        }
                        _buf += _s[i];
                }
                }
        }

        else { ShowMessage("Некорректно введены исходные данные!"); }

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{

	for (i = 0; i <= W; ++i)
        {
		a[i] = 0;
		last_added[i] = -1;
	}

	a[0] = 0;
        
	for (i = 1; i <= W; ++i)        // прямой ход
		for (j = 0; j < n; ++j)
			if ((c[j] <= i) && (a[i] < a[i - c[j]] + v[j])) {
				a[i] = a[i - c[j]] + v[j];
				last_added[i] = j;
			}

	aux = W;

	while ((aux > 0) && (last_added[aux] != -1))    // пока рюкзак не пуст и есть элементы выводим их на экран
        {
	        Form1->Memo2->Lines->Add(last_added[aux] + 1);  // номера предметов
                Form1->Memo3->Lines->Add(v[last_added[aux]]);   // стоимости предметов
                Form1->Memo4->Lines->Add(c[last_added[aux]]);   // веса предметов

		aux -= c[last_added[aux]];
	}
        Form1->Edit4->Text=(aux - c[last_added[aux]]); // оставшееся место
        Edit5->Text=(a[W]);     // общая стоимость
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)
{
        Form2->Show();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)
{
        Form1->Close();
}
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 23.05.2010 в 20:06.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:03.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter