Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2013, 00:32   #1
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию Перевд з C# на Delphi

Написал код на C# но препод уперся и нужно на Delphi ему(в Delphi я 0). Код не большой, нужно так же таблица и график что б выводился. Буду премного благодарен.

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace graf
{
    public partial class Form1 : Form
    {
        const double n = 0.4;
        const double d = 2;

        public Form1()
        {
            InitializeComponent();
        }

      
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int i; int k;
            double[,] h = new double[10, 30];
            double[] alpha = new double[10];
            double[] beta = new double[10];
            double[] a = new double[10];
            double[] b = new double[10];
            double[] c = new double[10];
            double[,] f = new double[10, 30];
            double tay;
            double hx;
            hx=1;
            tay=1;
            alpha[0] = 0;
            beta[0] = 5;
            for (k = 0; k <= 29; k++)
            {
                h[0, k] = 5;
                h[9, k] = 15;
            }
                for (i = 0; i <= 9; i++)
                {

                    h[i, 0] = 3;
                }
            
            for (k = 1; k <= 29; k++)
            {
                for (i = 1; i < 9; i++)
                {
                    a[i] = d / (hx*hx);
                    b[i] = d / (hx * hx);
                    c[i] = ((2 * d) / (hx * hx)) + (n / tay);

                    f[i, k] = (-n / tay) * h[i, k - 1];
                    alpha[i] = (b[i]) / (c[i] - alpha[i-1] * a[i]);
                    beta[i] = (a[i] * beta[i-1]+f[i,k]) / (c[i] - alpha[i-1] * a[i]);
                    
                }
                for (i = 8; i > 0; i--)
                {
                  h[i, k] = alpha[i + 1] * h[i + 1, k] + beta[i + 1];
                }
            }
            dataGridView1.RowCount = 30;
            dataGridView1.ColumnCount = 10;
            
                for (k = 0; k <= 29; k++)

               {
                  // chart1.Series.Add(new Series("", k));
                   chart1.Series.Add("series" + k.ToString()).ChartType = SeriesChartType.Line; ;
                  
                    for (i = 0; i <= 9; i++)
                    {

                        chart1.Series[k].Points.AddXY(i, h[i, k]);
                        dataGridView1.Rows[k].Cells[i].Value = Convert.ToString(h[i, k]);
                     
                    //chart1.DataSource = dataGridView1.DataSource;
                      //  chart1.Series[1].XValueMember = dataGridView1.Rows[k];
                }

            }
               

        }

        private void chart1_Click(object sender, EventArgs e)
        {

        }
     
 }
}
Вложения
Тип файла: rar graf.rar (42.3 Кб, 5 просмотров)

Последний раз редактировалось ogamilait; 09.11.2013 в 00:38. Причина: файл
ogamilait вне форума Ответить с цитированием
Старый 09.11.2013, 12:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примерно так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, TAGraph, TASeries, Forms, Controls, Graphics,
  Dialogs, Grids, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Chart1: TChart;
    Chart1LineSeries1: TLineSeries;
    dataGridView1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
const n = 0.4;
const d = 2;
var
   h,f:array[0..9] of array[0..29] of double;
   beta,alpha,a,b,c:array[0..9] of double;
   i,k:integer;
   tay,hx:double;
begin
  dataGridView1.RowCount := 300;
  dataGridView1.ColCount := 100;
  hx:=1;tay:=1; alpha[0]:=0; beta[0]:=5;
  for k:=0 to 29 do begin h[0,k]:=5; h[9,k]:=15; end;
  for i:=0 to 9 do begin h[i,0]:=3;end;

  for k:=0 to 29 do begin
    for i:=0 to 9 do begin
      a[i]:=d/sqr(hx);
      b[i]:=a[i];
      c[i]:=((2 * d) / (hx * hx)) + (n / tay);
      f[i, k] := (-n / tay) * h[i, k - 1];
      alpha[i] := (b[i]) / (c[i] - alpha[i-1] * a[i]);
      beta[i] := (a[i] * beta[i-1]+f[i,k]) / (c[i] - alpha[i-1] * a[i]);
    end;
    for i:=8 downto 0 do h[i, k] := alpha[i + 1] * h[i + 1, k] + beta[i + 1];
  end;

    for k:=0 to 29 do begin
      with TLineSeries.Create(Chart1) do begin   Visible:=true;
        for i:=0 to 9 do begin
         AddXY(i, h[i, k]);
         dataGridView1.Cells[k,i]:=FloatToStr(h[i, k]);
        end;
      end;
    end;
end;

end.
Проект приложить не могу, так как Делфи нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2013, 21:13   #3
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Спасибо большое. Дале сам.
ogamilait вне форума Ответить с цитированием
Старый 09.11.2013, 22:44   #4
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Примерно так:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, TAGraph, TASeries, Forms, Controls, Graphics,
  Dialogs, Grids, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Chart1: TChart;
    Chart1LineSeries1: TLineSeries;
    dataGridView1: TStringGrid;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
const n = 0.4;
const d = 2;
var
   h,f:array[0..9] of array[0..29] of double;
   beta,alpha,a,b,c:array[0..9] of double;
   i,k:integer;
   tay,hx:double;
begin
  dataGridView1.RowCount := 300;
  dataGridView1.ColCount := 100;
  hx:=1;tay:=1; alpha[0]:=0; beta[0]:=5;
  for k:=0 to 29 do begin h[0,k]:=5; h[9,k]:=15; end;
  for i:=0 to 9 do begin h[i,0]:=3;end;

  for k:=0 to 29 do begin
    for i:=0 to 9 do begin
      a[i]:=d/sqr(hx);
      b[i]:=a[i];
      c[i]:=((2 * d) / (hx * hx)) + (n / tay);
      f[i, k] := (-n / tay) * h[i, k - 1];
      alpha[i] := (b[i]) / (c[i] - alpha[i-1] * a[i]);
      beta[i] := (a[i] * beta[i-1]+f[i,k]) / (c[i] - alpha[i-1] * a[i]);
    end;
    for i:=8 downto 0 do h[i, k] := alpha[i + 1] * h[i + 1, k] + beta[i + 1];
  end;

    for k:=0 to 29 do begin
      with TLineSeries.Create(Chart1) do begin   Visible:=true;
        for i:=0 to 9 do begin
         AddXY(i, h[i, k]);
         dataGridView1.Cells[k,i]:=FloatToStr(h[i, k]);
        end;
      end;
    end;
end;

end.
Проект приложить не могу, так как Делфи нет.
Проблема:
Список ошыбок:
[Error] Unit1.pas(56): Undeclared identifier: 'TLineSeries'
[Error] Unit1.pas(56): 'DO' expected but identifier 'Create' found
[Error] Unit1.pas(58): Undeclared identifier: 'AddXY'
[Error] Unit1.pas(59): Undeclared identifier: 'Cells'
[Error] Unit1.pas(69): ';' expected but '.' found
[Error] Unit1.pas(71): Declaration expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
я заменил dataGridView на DrawGrid так как с первым нехочет работать
Проблемы в етому участке кода:
Код:
    for k:=0 to 29 do begin
      with TLineSeries.Create(Chart1) do begin   Visible:=true;
        for i:=0 to 9 do begin
          AddXY(i, h[i, k]);
         DrawGrid1.Cells[k,i]:=FloatToStr(h[i, k]);
        end;
      end;
    end;
ogamilait вне форума Ответить с цитированием
Старый 09.11.2013, 22:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Undeclared identifier: 'TLineSeries'
Модули нужно подключать, которые с Чартом работают.
Создай на форме Чарт на нем Серию - модули подключатся.
Еще раз повторяю - не в Делфи писал, так что разбежность может быть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.11.2013, 23:18   #6
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Да я понимаю. Поетому все проверяю.
С этим розобрался, в очередной рас спасибо)
Проблема в одном только. ругаетса на:
Код:
DrawGrid1.Cells[k,i]:=FloatToStr(h[i, k]);
на Cells
[Error] Unit1.pas(59): Undeclared identifier: 'Cells'

Последний раз редактировалось ogamilait; 09.11.2013 в 23:22.
ogamilait вне форума Ответить с цитированием
Старый 09.11.2013, 23:24   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты StringGrid кинул на форму? Если да то назови его DrawGrid1.
Если ты на форму кинул именно DrawGrid, то убирай его и кидай StringGrid
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в libcef.dll только с Delphi 7, в Delphi XE3 - нет noname_06 Общие вопросы Delphi 6 08.05.2013 06:49
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54