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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2008, 20:39   #1
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию Программа транслит

Код:
program translit;
uses crt;
var
s:string;
function upstring (var s:string):string;
const rus:string='а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я';
eng:string='a,b,v,g,d,e,e,zh,z,i,i,k,l,m,n,o,p,r,s,t,u,f,h,c,ch,sh,sch,*,y,*,ye,yu,ya';
var
i,n:integer;
begin
for i:=1 to length(s) do begin
s[i]:=upcase(s[i]);
n:=pos(s[i],rus);
if n>0 then s[i]:=eng[n];
end;
END;
begin
clrscr;
write('Введите строку:');
readln(s);
writeln(upstring(s));
readln;
end.
Вместо замены букв на любой ввод чила, буквы любого языка вылазиет строка иероглифов...как исправить?
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 05.02.2008, 21:14   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

1. upcase с русскими буквами не работает.
2. s[i]:=eng[n] здесь i и n номера символов в строках, вы один символ строки s меняете на один символ из строки eng. Если английский аналог состоит из нескольких символов, то надо менять код. И зачем вы в строки rus и eng запятых натолкали?
3. writeln(upstring(s)) вы печатаете значение функции, которая ничего не возвращает. Где функции присваивается значение?
_Dmitry вне форума Ответить с цитированием
Старый 05.02.2008, 21:16   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1.Объясните, что должна делать ваша программа, приведите задание.
2.Зачем в константах сторокового типа куча запятых.
3.Зачем английские буквы переводить в верхний регистр.
puporev вне форума Ответить с цитированием
Старый 05.02.2008, 21:26   #4
[Smarik]
Веб-разработчик
Форумчанин
 
Аватар для [Smarik]
 
Регистрация: 16.01.2008
Сообщений: 451
По умолчанию

примнр работы программы:
Пишешь Привет в ответ должно прийти Privet
запятые потому что не знаю как отделить значения, например буква ш состоит из 2 англ букв...возможно не тот способ взял, с нуля было делать лень, поетому взял похожую задачу которая лежла на пк и быстро попробовал переделать.
Я ваш новый друг, смиритесь!
[Smarik] вне форума Ответить с цитированием
Старый 05.02.2008, 21:32   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от [Smarik] Посмотреть сообщение
запятые потому что не знаю как отделить значения,
А двумерные массивы для чего, спрашивается?
B_N вне форума Ответить с цитированием
Старый 06.02.2008, 07:29   #6
pascal65536
Пользователь
 
Регистрация: 03.09.2007
Сообщений: 42
По умолчанию

Цитата:
Сообщение от [Smarik] Посмотреть сообщение
примнр работы программы:
Пишешь Привет в ответ должно прийти Privet
запятые потому что не знаю как отделить значения, например буква ш состоит из 2 англ букв...возможно не тот способ взял, с нуля было делать лень, поетому взял похожую задачу которая лежла на пк и быстро попробовал переделать.
А если сделать через case.
Прогоним каждую букву русского слова, а английское слово будем постепенно удлиннять.
pascal65536 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа. Asentian Фриланс 14 25.04.2010 17:30
программа (не код!) simple Помощь студентам 8 14.01.2008 23:36
Программа ben95 Общие вопросы Delphi 1 04.01.2008 20:52