Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.05.2013, 20:08
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию Помогите с кодом

Как вообще работать с символами
Задание: Написать программу, которая вводит символьный массив из 19-ти или меньшего количества элементов и находит среди них элемент с наименьшим номером в ANSI-таблицы.
Ответить с цитированием
  #2  
Старый 27.05.2013, 20:19
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Char - символ.
Код:
var
  a: cahr;
begin
  a := 'q';
end;

З.Ы. Задание не понял.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
Grynyuk (27.05.2013)
  #3  
Старый 27.05.2013, 20:46
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Char - символ.
Код:
var
  a: cahr;
begin
  a := 'q';
end;

З.Ы. Задание не понял.
Я так понял надо из едита считать строку из 19- элементов и в этой строке найти елемент с минимальным кодом
Ответить с цитированием
  #4  
Старый 28.05.2013, 00:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Grynyuk
...надо из едита считать строку из 19- элементов и в этой строке найти елемент с минимальным кодом
Код:
function PosMinChr(ds: string): byte;
var
 i, b, c: byte;
begin
 c:= 255;
 for i := 1 to Length(ds) do
  if c > byte(ds[i]) then
   begin
    c:= byte(ds[i]);
    b:= i;
   end;
 PosMinChr:= b;
end;
Строка не длиннее 255 элементов, результат - позиция первого мин элемента в строке.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Grynyuk (28.05.2013)
  #5  
Старый 28.05.2013, 07:27
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Спасибо большое
Ответить с цитированием
  #6  
Старый 28.05.2013, 07:32
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

byte(ds[i]) ? что оно делает почему не просто ds[i]?
Ответить с цитированием
  #7  
Старый 28.05.2013, 07:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Grynyuk
byte(ds[i]) ? что оно делает почему не просто ds[i]?
ds[i] - типа char, т.е. символ, а здесь нужен его код ANSI, вернее порядковый номер в таблице символов, byte его и возвращает.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Grynyuk (28.05.2013)
  #8  
Старый 28.05.2013, 11:26
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
ds[i] - типа char, т.е. символ, а здесь нужен его код ANSI, вернее порядковый номер в таблице символов, byte его и возвращает.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    btn2: TButton;
    btn3: TButton;
    edt1: TEdit;
    edt2: TEdit;
    btn1: TButton;
    lbl1: TLabel;
    lbl2: TLabel;
    Label1: TLabel;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s:string;
  i:Integer;
implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
  edt1.Clear;
  edt2.Clear;
end;
   procedure TForm1.btn3Click(Sender: TObject);
begin
 form1.Close;
end;
procedure TForm1.btn2Click(Sender: TObject);
var

min, i, b, c: byte;
           ds:string   ;
begin


ds:=edt1.text;

begin
 c:= 255;
 for i := 1 to Length(ds) do
  if c > byte(ds[i]) then
   begin
    c:= byte(ds[i]);

   end;


   edt2.text:= ds[i];
 end;
end;
end.
Не работает что то

Последний раз редактировалось M.A.D.M.A.N., 28.05.2013 в 11:48.
Ответить с цитированием
  #9  
Старый 28.05.2013, 11:48
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Дядя, пользуйтесь тегом CODE, или вас ждет бан.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #10  
Старый 28.05.2013, 13:49
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Grynyuk
...Не работает что то
Для проверки добавьте на форму Label1 (наглядная демонстрация)
Код:
procedure TForm1.btn2Click(Sender: TObject);

...
Label1.Caption:= '';
c:= 255;
for i := 1 to Length(edt1.text) do
 begin
  Label1.Caption:= Label1.Caption + ' : ' + IntToStr(byte(edt1.text[i]));
  if c > byte(edt1.text[i]) then
   begin
    c:= byte(edt1.text[i]);
    b:= i;
   end;
 end;
 edt2.text:= edt1.text[b] + ' : ' + IntToStr(byte(edt1.text[b]));
...
Ответить с цитированием
  #11  
Старый 28.05.2013, 15:32
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Для проверки добавьте на форму Label1 (наглядная демонстрация)
Код:
procedure TForm1.btn2Click(Sender: TObject);

...
Label1.Caption:= '';
c:= 255;
for i := 1 to Length(edt1.text) do
 begin
  Label1.Caption:= Label1.Caption + ' : ' + IntToStr(byte(edt1.text[i]));
  if c > byte(edt1.text[i]) then
   begin
    c:= byte(edt1.text[i]);
    b:= i;
   end;
 end;
 edt2.text:= edt1.text[b] + ' : ' + IntToStr(byte(edt1.text[b]));
...
на Лейбл один появились коды вводимых символов едит2 по прежнему пуст
Ответить с цитированием
  #12  
Старый 28.05.2013, 15:37
Grynyuk Grynyuk вне форума
Прохожий
 
Регистрация: 21.05.2013
Сообщения: 25
Версия Delphi: Embarcadero RAD
Репутация: 10
По умолчанию

Цитата:
Сообщение от Grynyuk
на Лейбл один появились коды вводимых символов едит2 по прежнему пуст
А все нашел в чем проблема спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter