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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2011, 21:10   #1
Tir0n
Новичок
Джуниор
 
Регистрация: 21.10.2011
Сообщений: 2
По умолчанию Нужен совет

Дело вот в чём. Есть задача: Дана строка, состоящая из групп нулей и единиц, разделенных пробелами. Найти и вывести на экран самую короткую группу. Условие: необходимо оформить в 2 модуля. Моё решение такое:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2, Buttons;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Var
Form1: TForm1;
Smin:string;
Implementation
{$R *.dfm}

Procedure TForm1.FormCreate(Sender: TObject);
Begin
Edit1.Clear;
Edit2.Clear;
End;

Procedure TForm1.Button1Click(Sender: TObject);
Begin
Edit2.Clear;
Raschet(Smin,Edit1);
Edit2.Text:=Smin;
End;
End.


unit Unit2;
interface
uses StdCtrls, SysUtils;
Procedure Raschet(smin:string; Edit1:Tedit);
implementation

Procedure Raschet(smin:string; Edit1:TEdit);
Type
Mas=array[1..10] of string;
Var
a:mas;
s:string;
i,n,k:integer;
Begin
s:=Edit1.Text;
s:=s+' ';
n:=0;
for i:=1 to Length(s) do
Begin
k:=pos(' ',s);
if k=1 then break;
a[i]:=copy(s,1,k-1);
Delete(s,1,k);
n:=n+1;
End;
For i:=1 to n-1 do
Begin
If Length(a[i])<=Length(a[i+1]) then
a[i+1]:=a[i];
End;
Smin:=a[n];
End;
End.

Компилируется, вводим в Edit1 группы цифр, разделённых пробелами. Но при запуске либо ничего не происходит, либо выдаёт Access Violation и указывает на строку Edit2.Text:=Smin в конце первого юнита. Пожалуйсто, подскажите как это исправить или предложите альтернативное решение. Допускается использование множеств.
Tir0n вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен совет, просто совет kardinal94 Общие вопросы Delphi 7 16.12.2010 22:16
Нужен совет LAmeWax Общие вопросы C/C++ 1 13.11.2010 23:13
Нужен совет Leo705 Общие вопросы C/C++ 2 07.05.2010 11:51
нужен совет akasex Общие вопросы .NET 3 06.05.2010 17:50
Нужен совет! ***Proxy*** Общие вопросы C/C++ 0 31.03.2010 19:21