|
Вопрос # 5 324/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!Прошу помочь перевести паскалевский год на дельфи, что то запарился совсем, перевести нужно с использованием stringgrid.
Приложение: Переключить в обычный режим- Program xx;
- const
- nmax=100;
- var
- a:array[1..nmax] of real;
- n,i,j,k:byte;
- mx,mn:real;
- begin
- randomize;
- repeat
-
- readln(n);
- until (n in [2..nmax]) and (n mod 2=0);
- for i:=1to n do
- a[i]:=10*random-4;
-
- writeln('X');
- i:=1;
- while i<n do
- begin
- write(a[i]:6:2);
- i:=i+2;
- end;
- writeln;
- writeln('Y');
- i:=2;
- while i<=n do
- begin
- write(a[i]:6:2);
- i:=i+2;
- end;
- writeln;
- writeln;
- writeln;
- mx:=sqrt(sqr(a[1])+sqr(a[2]));
- mn:=sqrt(sqr(a[1])+sqr(a[2]));
- i:=1;
- while i<n do
- begin
- if sqrt(sqr(a[i])+sqr(a[i+1]))<mn then
- mn:=sqrt(sqr(a[i])+sqr(a[i+1]))
- else
- if sqrt(sqr(a[i])+sqr(a[i+1]))>mx then
- mx:=sqrt(sqr(a[i])+sqr(a[i+1]));
- i:=i+2;
- end;
-
- readln;
- end.
-
 |
Вопрос задал: Силиванов (статус: Посетитель)
Вопрос отправлен: 26 мая 2011, 20:35
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: DNK
Здравствуйте, Силиванов!
Код и форма в приложении.
Приложение: Переключить в обычный режим- Unit1.pas:
-
- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, Grids;
-
- type
- TForm1 = class(TForm)
- StringGrid1: TStringGrid;
- Label1: TLabel;
- Label2: TLabel;
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- uses Math;
-
- {$R *.dfm}
-
- procedure TForm1.FormCreate(Sender: TObject);
- var i, j: byte;
- mx, mn, r: real;
- a: array [1..2] of real;
- begin
- StringGrid1.Cells[1, 0] := 'X';
- StringGrid1.Cells[2, 0] := 'Y';
- Randomize;
- for i := 1 to 50 do begin
- StringGrid1.Cells[0, i] := IntToStr(i);
- for j := 1 to 2 do begin
- a[j] := 10*random-4;
- StringGrid1.Cells[j, i] := FloatToStrF(a[j], ffFixed, 2, 3);
- end;
- r := sqrt(sqr(a[1])+sqr(a[2]));
- if i = 1 then begin
- mx := r;
- mn := r;
- end else begin
- mx := Max(mx, r);
- mn := Min(mn, r);
- end;
- end;
- Label1.Caption := Label1.Caption + FloatToStrF(mn, ffFixed, 2, 3);
- Label2.Caption := Label2.Caption + FloatToStrF(mx, ffFixed, 2, 3);
- end;
-
- end.
-
- Unit1.dfm:
-
- object Form1: TForm1
- Left = 206
- Top = 143
- Width = 539
- Height = 500
- Caption = 'Form1'
- Color = clBtnFace
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- OldCreateOrder = False
- OnCreate = FormCreate
- DesignSize = (
- 531
- 466)
- PixelsPerInch = 96
- TextHeight = 13
- object Label1: TLabel
- Left = 352
- Top = 16
- Width = 103
- Height = 13
-
- end
- object Label2: TLabel
- Left = 352
- Top = 40
- Width = 89
- Height = 13
-
- end
- object StringGrid1: TStringGrid
- Left = 8
- Top = 8
- Width = 333
- Height = 449
- Anchors = [akLeft, akTop, akRight, akBottom]
- ColCount = 3
- DefaultColWidth = 100
- RowCount = 51
- Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSelect]
- TabOrder = 0
- end
- end
 |
Ответ отправил: DNK (статус: Студент)
Время отправки: 27 мая 2011, 22:10
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 27 мая 2011, 22:13; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 26 мая 2011, 22:28 [#1]:
А чо делает этот код?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Мережников Андрей (статус: Абитуриент), 26 мая 2011, 22:46 [#2]:
похоже ищет радиусы вписанной и описанной окружностей, между которыми помещаются все точки. Только не совсем понятно - при чем тут StringGrid
|
|
DNK (статус: Студент), 27 мая 2011, 22:13 [#3]:
2Админы: Вопрос в лабы.
"Digital Networked Knight"
|
28 мая 2011, 00:02: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Лабораторный практикум » Delphi модератором Вадим К Причина: по просьбе
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|