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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2011, 11:50   #1
GaRRRiK
 
Регистрация: 16.04.2011
Сообщений: 6
По умолчанию [Delphi] Программирование с массивами

Дан массив из k символов. Вывести на экран сначала все цифры, входящие в него, а затем все остальные символы, сохраняя при этом взаимное расположение символов в каждой из этих двух групп.
Задачка на Delphi
У меня такой код, но выводит почему то не так как надо, иправте пожалуста.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    Label4: TLabel;
    //procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
 s: array[1..10] of char;
begin
  For i:=1 to 80 do
  if S[i] in ['0'..'9'] then Label3.Caption:=S[i];
  For i:=1 to 80 do
  if not (S[i] in ['0'..'9']) then Label1.Caption:=S[i];
end;

end.
GaRRRiK вне форума Ответить с цитированием
Старый 14.05.2011, 12:03   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1) объявите константу k = 10 (или 80) и не путайтесь:

Код:
 s: array[1..10] of char;
begin
  For i:=1 to 80 do
2) массив S[] содежит мусор при входе в Button1Click()

3) если хотим вывести не последний символ, а всю цепочку:

Код:
Label3.Caption:= Label3.Caption + S[i];
4) зачем гонять 2 одинаковых цикла, можно обойтись одним:

Код:
For i:=1 to k do
  if S[i] in ['0'..'9'] then Label3.Caption:=Label3.Caption + S[i]
  else
    Label1.Caption:=Label1.Caption + S[i];
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.05.2011, 12:20   #3
GaRRRiK
 
Регистрация: 16.04.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
1) объявите константу k = 10 (или 80) и не путайтесь:

Код:
 s: array[1..10] of char;
begin
  For i:=1 to 80 do
2) массив S[] содежит мусор при входе в Button1Click()

3) если хотим вывести не последний символ, а всю цепочку:

Код:
Label3.Caption:= Label3.Caption + S[i];
4) зачем гонять 2 одинаковых цикла, можно обойтись одним:

Код:
For i:=1 to k do
  if S[i] in ['0'..'9'] then Label3.Caption:=Label3.Caption + S[i]
  else
    Label1.Caption:=Label1.Caption + S[i];
Спасибо, а как сделать произвольные символы и числа в массиве , а то при нажатии выводит одни и те же значения
Изображения
Тип файла: png scrin.PNG (6.3 Кб, 26 просмотров)
GaRRRiK вне форума Ответить с цитированием
Старый 14.05.2011, 12:30   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Дан массив из k символов.

это из вашего задания. Массив дан. Свыше.
Обычно, "свыше" эмулируют рендомом:

Код:
for i := 1 to k do
  S[i] := char(32 + Random(127 - 32));
а так у вас щас там мусор, как я и писал в пункте 2.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 14.05.2011, 12:33   #5
GaRRRiK
 
Регистрация: 16.04.2011
Сообщений: 6
По умолчанию

Спасибо за помощь
GaRRRiK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование с одномерными массивами andreis459 Паскаль, Turbo Pascal, PascalABC.NET 4 28.03.2011 19:56
Программирование на Pascal, работа с массивами. Reine Помощь студентам 4 24.09.2010 10:09
delphi. Работа с массивами Buka18 Помощь студентам 1 25.11.2009 16:34
Программирование алгоритмв над массивами символов Master23 Общие вопросы C/C++ 5 08.06.2009 17:36
Программирование алгоритмов над многомерными динамическими массивами Master23 Общие вопросы C/C++ 2 30.05.2009 04:28