Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 354

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите переделать на Дельфи.

Приложение:
  1. Program proc;
  2. const
  3. n=15;
  4. type
  5. mas=array[0..n-1] of Integer;
  6. procedure ra(var x:mas);
  7. var
  8. ind:integer;
  9. begin
  10. for ind:=low(x) to high(x) do
  11. x[ind]:=random(50)-25;
  12. end;
  13. procedure printmas(const x:mas);
  14. var
  15. ind:integer;
  16. begin
  17. for ind:=low(x) to high(x) do
  18. write(x[ind]:4);
  19. writeln;
  20. end;
  21. procedure ex(var x:mas; var ch:integer);
  22. var
  23. ind:integer;
  24. begin
  25. ch:=0;
  26. for ind:=low(x) to high(x) do
  27. if x[ind]<0 then
  28. x[ind]:=-x[ind];
  29. inc(ch);
  30. end;
  31. var
  32. x:mas;
  33. ch:integer;
  34. begin
  35. randomize;
  36. Ra(x);
  37.  
  38. printmas(x);
  39. ex(x,ch);
  40.  
  41. printmas(x);
  42. readln;
  43. end.
  44.  


Силиванов Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Силиванов (статус: Посетитель)
Вопрос отправлен: 1 июня 2011, 10:47
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: ierihon1

Здравствуйте, Силиванов!
Кинь на форму Компонент Memo и кнопку, и вот весь юнит.

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, StdCtrls;
  8.  
  9. const
  10. n=15;
  11.  
  12. type
  13. mas=array[0..n-1] of Integer;
  14. type
  15. TForm1 = class(TForm)
  16. Memo1: TMemo;
  17. Button1: TButton;
  18. procedure printmas(const x:mas; lnl:integer);
  19. procedure Button1Click(Sender: TObject);
  20. private
  21. { Private declarations }
  22. public
  23. { Public declarations }
  24. end;
  25.  
  26. var
  27. Form1: TForm1;
  28. x:mas;
  29. ch:integer;
  30.  
  31. implementation
  32.  
  33. {$R *.dfm}
  34.  
  35. procedure ra(var x:mas);
  36. var ind:integer;
  37. begin
  38. randomize;
  39. for ind := low(x) to high(x) do
  40. x[ind]:=random(50)-25;
  41. end;
  42.  
  43. procedure ex(var x:mas; var ch:integer);
  44. var
  45. ind:integer;
  46. begin
  47. ch:=0;
  48. for ind:=low(x) to high(x) do
  49. if x[ind]<0 then
  50. x[ind]:=-x[ind];
  51. inc(ch);
  52. end;
  53.  
  54. procedure TForm1.printmas(const x: mas; lnl:integer);
  55. var
  56. ind:integer;
  57. begin
  58. for ind:=low(x) to high(x) do
  59. memo1.Lines[lnl]:=Memo1.Lines[lnl] + IntToStr(x[ind])+' '
  60. end;
  61.  
  62. procedure TForm1.Button1Click(Sender: TObject);
  63. begin
  64. ra(X);
  65. printmas(X,0);
  66. ex(X,ch);
  67. printmas(X,1);
  68. end;
  69.  
  70. end.
  71.  


Ответ отправил: ierihon1 (статус: 1-ый класс)
Время отправки: 1 июня 2011, 12:08


Мини-форум вопроса

Всего сообщений: 34; последнее сообщение — 2 июня 2011, 11:28; участников в обсуждении: 5.

Страницы: [« Предыдущая] [1] [2]

Силиванов

Силиванов (статус: Посетитель), 2 июня 2011, 10:33 [#21]:

всё равно, вот эту строчку не пропускает
memo1.Lines.Add(s);
ierihon1

ierihon1 (статус: 1-ый класс), 2 июня 2011, 10:36 [#22]:

пришли мне полностью код своего юнита посмотрим что не так
min@y™

min@y™ (статус: Доктор наук), 2 июня 2011, 10:38 [#23]:

Цитата (Силиванов):

всё равно, вот эту строчку не пропускает

А у тебя на форму memo1 лежит?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
ierihon1

ierihon1 (статус: 1-ый класс), 2 июня 2011, 10:39 [#24]:

вот я как раз это хотел у него проверить
Силиванов

Силиванов (статус: Посетитель), 2 июня 2011, 10:56 [#25]:

да конечно
min@y™

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

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

ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:06 [#31]:

да и правда... на 11ом пропускает на 7ой делфи нет..
min@y™

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

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

ierihon1 (статус: 1-ый класс), 2 июня 2011, 11:28 [#34]:

в 11ом когда я сейчас начал проверять он мне до компиляции эту строку подчеркнул... так что я был на счёт него не прав)

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 апреля 2026, 01:30
Выполнено за 0.03 сек.