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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2009, 23:27   #1
Antyan-screammer
 
Регистрация: 28.01.2009
Сообщений: 9
Вопрос Помогите пожалуйсто...

У меня такая проблема. Я только начал изучать программирование. Мы в школе на Паскале прошли такую тему как "Строки и символы" ну одми словом стринговые переменные. У меня возникла проблема когда мы перешли на Delphi я взял писать работу и наткнулся на такое...


Мне нужно чтобы на пример: есть 2 edit(a)и просто Button в первый edit1 вводилось слово, а при нажатии на кнопку(Button1) она производила опирацию транскрипции. (На пример edit1(a)--->edit2(эй))



Помогите плиз... зарание спасибо
Antyan-screammer вне форума Ответить с цитированием
Старый 30.01.2009, 12:44   #2
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

мы её проходили под названием шифратор. Решается с помощью case и двух массивов символьных переменных:
Код:
var 
a,b:array of char;
i:integer;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.text:='';
setlength(a,length(edit1.text));
setlength(b,length(edit1.text));
for i:=1 to length(edit1.text) do
 begin
   case edit1.Text[i] of
   'a': begin a[i]:='э'; b[i]:='й' end;
   'b': begin a[i]:='б'; b[i]:='и' end;
   else begin a[i]:=' '; b[i]:='='; end;
    end;
  if b[i]<>'=' then edit2.Text:=edit2.Text + a[i]+b[i] else
   edit2.text:=edit2.text+a[i];
 end;


end;
по аналогии вставляй в case остальные буквы английского алфавита, учитывая мой уровень программирования решение вполне сойдёт за школьное=)
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 30.01.2009, 12:55   #3
NOOB
Пользователь
 
Аватар для NOOB
 
Регистрация: 01.11.2007
Сообщений: 45
По умолчанию

можно еще создать два массива (две переменные типа string) - один из латинских букв, другой из кирилицы, и чтоб порядок букв в массивах соответсвовали, а потом просто подменять один массив на другой.
Например:
mas1:=' АБВГД '
mas2:=' ABVGD '

Последний раз редактировалось NOOB; 30.01.2009 в 12:57.
NOOB вне форума Ответить с цитированием
Старый 30.01.2009, 14:09   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Транслит versus транскрипта?!

Цитата:
Сообщение от NOOB Посмотреть сообщение
...и чтоб порядок букв в массивах соответсвовали, а потом просто подменять один массив на другой.
Например:
mas1:=' АБВГД '
mas2:=' ABVGD '
Насколько я понял, автор темы вычисляет названия букв английского алфавита, записывая их по-русски: эй, би, си, ди, и, эф и т. д.

А переписывать русские слова латиницей — задача более сложная: см. транслитерация.

Что же касается транскрипции целых слов, то это (для обучения) лучше сначала попробовать для русского: корова -> [карова]; медведь -> [мидв'эт'] и в том же духе.

Потому что для английского алгоритм требует использования словаря, так как очень много исключений из правил чтения!

Последний раз редактировалось Sasha_Smirnov; 31.01.2009 в 02:41.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 30.01.2009, 15:03   #5
NOOB
Пользователь
 
Аватар для NOOB
 
Регистрация: 01.11.2007
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Насколько я понял, автор темы вычисляет названия букв английского алфавита, записывая их по-русски: эй, би, си, ди, и, эф и т. д.
а ну да, прочел неправильно

Цитата:
А переписывать русские слова латиницей — задача более сложная
ну вообщем-то не на столько уж и сложее, это ведь почти та же задача, только на оборот - из русского в английский

А с массивами, кстати не получится так просто, как я написал, поторопился, сори
NOOB вне форума Ответить с цитированием
Старый 30.01.2009, 17:43   #6
Antyan-screammer
 
Регистрация: 28.01.2009
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Last Посмотреть сообщение
по аналогии вставляй в case остальные буквы английского алфавита, учитывая мой уровень программирования решение вполне сойдёт за школьное=)

А я и так в школе ещё учюсь так что мне тоже сойдёт)
Antyan-screammer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйсто помогите в Delphi Saaashka Помощь студентам 1 26.11.2008 12:39
Помогите пожалуйсто. Срочно! Диплом Blaze Помощь студентам 1 20.05.2007 18:01