|
Вопрос # 5 354/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Помогите переделать на Дельфи.
Приложение: Переключить в обычный режим- Program proc;
- const
- n=15;
- type
- mas=array[0..n-1] of Integer;
- procedure ra(var x:mas);
- var
- ind:integer;
- begin
- for ind:=low(x) to high(x) do
- x[ind]:=random(50)-25;
- end;
- procedure printmas(const x:mas);
- var
- ind:integer;
- begin
- for ind:=low(x) to high(x) do
- write(x[ind]:4);
- writeln;
- end;
- procedure ex(var x:mas; var ch:integer);
- var
- ind:integer;
- begin
- ch:=0;
- for ind:=low(x) to high(x) do
- if x[ind]<0 then
- x[ind]:=-x[ind];
- inc(ch);
- end;
- var
- x:mas;
- ch:integer;
- begin
- randomize;
- Ra(x);
-
- printmas(x);
- ex(x,ch);
-
- printmas(x);
- readln;
- end.
-
 |
Вопрос задал: Силиванов (статус: Посетитель)
Вопрос отправлен: 1 июня 2011, 10:47
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: ierihon1
Здравствуйте, Силиванов!
Кинь на форму Компонент Memo и кнопку, и вот весь юнит.
Приложение: Переключить в обычный режим- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
-
- const
- n=15;
-
- type
- mas=array[0..n-1] of Integer;
- type
- TForm1 = class(TForm)
- Memo1: TMemo;
- Button1: TButton;
- procedure printmas(const x:mas; lnl:integer);
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
- x:mas;
- ch:integer;
-
- implementation
-
- {$R *.dfm}
-
- procedure ra(var x:mas);
- var ind:integer;
- begin
- randomize;
- for ind := low(x) to high(x) do
- x[ind]:=random(50)-25;
- end;
-
- procedure ex(var x:mas; var ch:integer);
- var
- ind:integer;
- begin
- ch:=0;
- for ind:=low(x) to high(x) do
- if x[ind]<0 then
- x[ind]:=-x[ind];
- inc(ch);
- end;
-
- procedure TForm1.printmas(const x: mas; lnl:integer);
- var
- ind:integer;
- begin
- for ind:=low(x) to high(x) do
- memo1.Lines[lnl]:=Memo1.Lines[lnl] + IntToStr(x[ind])+' '
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- ra(X);
- printmas(X,0);
- ex(X,ch);
- printmas(X,1);
- end;
-
- end.
-
 |
Ответ отправил: ierihon1 (статус: 1-ый класс)
Время отправки: 1 июня 2011, 12:08
|
Мини-форум вопроса
Всего сообщений: 34; последнее сообщение — 2 июня 2011, 11:28; участников в обсуждении: 5.
Страницы: [« Предыдущая] [1] [2]
|
Силиванов (статус: Посетитель), 2 июня 2011, 10:33 [#21]:
всё равно, вот эту строчку не пропускает
memo1.Lines.Add(s);
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 10:36 [#22]:
пришли мне полностью код своего юнита посмотрим что не так
|
|
min@y™ (статус: Доктор наук), 2 июня 2011, 10:38 [#23]:
Цитата (Силиванов):
всё равно, вот эту строчку не пропускает
А у тебя на форму memo1 лежит?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 10:39 [#24]:
вот я как раз это хотел у него проверить
|
|
Силиванов (статус: Посетитель), 2 июня 2011, 10:56 [#25]:
да конечно
|
|
min@y™ (статус: Доктор наук), 2 июня 2011, 10:58 [#26]:
Ну показывай тогда код модуля.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Силиванов (статус: Посетитель), 2 июня 2011, 11:01 [#27]:
unit U_F_1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
n=15;
type
mas=array[0..n-1] of Integer;
type
TForm1 = class(TForm)
memo1: TMemo;
Button: TButton;
procedure ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x:mas;
ch:integer;
implementation
{$R *.dfm}
procedure ra(var x:mas);
var ind:integer;
begin
randomize;
for ind := low(x) to high(x) do
x[ind]:=random(50)-25;
end;
procedure ex(var x:mas; var ch:integer);
var
ind:integer;
begin
ch:=0;
for ind:=low(x) to high(x) do
if x[ind]<0 then
x[ind]:=-x[ind];
inc(ch);
end;
procedure printmas(const x: mas; lnl:integer);
var
ind:integer;
s:String;
begin
for ind:=low(x) to high(x) do
begin
s:=s+IntToStr(x[ind])+' ';
memo1.Lines.Add(s);
end;
end;
procedure TForm1.ButtonClick(Sender: TObject);
begin
ra(X);
printmas(X,0);
ex(X,ch);
printmas(X,1);
end;
end.
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:04 [#28]:
хм.. может ты что то не то в свойствах поменял... открой файл DFM через блокнот и пришли код
|
|
Вадим К (статус: Академик), 2 июня 2011, 11:04 [#29]:
да и не должно пропустить. Но если сильно хочется, то либо нужно printmas делать методом формы (как это в примерах выше), либо просто вредную строку написать так
Form1.Memo1.Lines.Add(s);
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Силиванов (статус: Посетитель), 2 июня 2011, 11:06 [#30]:
спсаибо большое, всё заработало
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:06 [#31]:
да и правда... на 11ом пропускает на 7ой делфи нет..
|
|
min@y™ (статус: Доктор наук), 2 июня 2011, 11:19 [#32]:
Цитата (ierihon1):
да и правда... на 11ом пропускает на 7ой делфи нет..
Ни 7-й, ни на какой угодно delphi такой шняги не пропустит:
procedure printmas(const x: mas; lnl:integer);
var
ind:integer;
s:String;
begin
for ind:=low(x) to high(x) do
begin
s:=s+IntToStr(x[ind])+' ';
memo1.Lines.Add(s); // Undeclared identifier 'memo1'
end;
end;
Если, конечно, memo1 не объявлен, как глобальная переменная.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:27 [#33]:
Да точно: мы просто забыли маленькую вещь - в моём коде который был в ответе процедура printmas была объявлена заранее в type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure printmas(const x:mas; lnl:integer);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
а он забыл эту процедуру туда впихнуть, от туда и ошибка: невнимательность.
|
|
ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:28 [#34]:
в 11ом когда я сейчас начал проверять он мне до компиляции эту строку подчеркнул... так что я был на счёт него не прав)
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|