Помощь - Поиск - Пользователи - Календарь
Полная версия: help ! помогите с пробелами!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
alex 10
помогите пожалуйста! программа выводит ответ без пробелов! пробовал исправить-не получилось!

Добавлено через 1 мин.
Код
program perevod;
uses crt;
var
s,s1:string;
i:integer;
j:char;
begin
write('введите текст на английском');
readln(s);
for i:=1 to length(s) do
begin
  for j:='A' to 'z' do
  begin
   if s[i]=j then
    begin
     if s[i]='a' then
      begin
       s[i]:='Ф';
       s1:=s1+s[i]
        end;
        If s[i]='A' then
      begin
       s[i]:='ф';
       s1:=s1+s[i]
        end;
        If s[i]='b' then
      begin
       s[i]:='и';
       s1:=s1+s[i]
        end;
        If s[i]='c' then
      begin
       s[i]:='с';
       s1:=s1+s[i]
        end;
        If s[i]='d' then
      begin
       s[i]:='в';
       s1:=s1+s[i]
        end;
        If s[i]='e' then
      begin
       s[i]:='у';
       s1:=s1+s[i]
        end;
        If s[i]='f' then
      begin
       s[i]:='а';
       s1:=s1+s[i]
        end;
        If s[i]='g' then
      begin
       s[i]:='п';
       s1:=s1+s[i]
        end;
        If s[i]='h' then
      begin
       s[i]:='р';
       s1:=s1+s[i]
        end;
        If s[i]='i' then
      begin
       s[i]:='ш';
       s1:=s1+s[i]
        end;
        If s[i]='j' then
      begin
       s[i]:='о';
       s1:=s1+s[i]
        end;
        If s[i]='k' then
      begin
       s[i]:='л';
       s1:=s1+s[i]
        end;
        If s[i]='l' then
      begin
       s[i]:='д';
       s1:=s1+s[i]
        end;
        If s[i]='m' then
      begin
       s[i]:='ь';
       s1:=s1+s[i]
        end;
        If s[i]='n' then
      begin
       s[i]:='т';
       s1:=s1+s[i]
        end;
        If s[i]='o' then
      begin
       s[i]:='щ';
       s1:=s1+s[i]
        end;
        If s[i]='p' then
      begin
       s[i]:='з';
       s1:=s1+s[i]
        end;
        If s[i]='q' then
      begin
       s[i]:='й';
       s1:=s1+s[i]
        end;
        If s[i]='r' then
      begin
       s[i]:='к';
       s1:=s1+s[i]
        end;
        If s[i]='s' then
      begin
       s[i]:='ы';
       s1:=s1+s[i]
        end;
        If s[i]='t' then
      begin
       s[i]:='е';
       s1:=s1+s[i]
        end;
        If s[i]='u' then
      begin
       s[i]:='г';
       s1:=s1+s[i]
        end;
        If s[i]='v' then
      begin
       s[i]:='м';
       s1:=s1+s[i]
        end;
        If s[i]='w' then
      begin
       s[i]:='ц';
       s1:=s1+s[i]
        end;
        If s[i]='x' then
      begin
       s[i]:='ч';
       s1:=s1+s[i]
        end;
        If s[i]='y' then
      begin
       s[i]:='у';
       s1:=s1+s[i]
        end;
        If s[i]='z' then
      begin
       s[i]:='я';
       s1:=s1+s[i]
        end;
        If s[i]='B' then
      begin
       s[i]:='И';
       s1:=s1+s[i]
        end;
        If s[i]='C' then
      begin
       s[i]:='С';
       s1:=s1+s[i]
        end;
        If s[i]='D' then
      begin
       s[i]:='В';
       s1:=s1+s[i]
        end;
        If s[i]='E' then
      begin
       s[i]:='У';
       s1:=s1+s[i]
        end;
        If s[i]='F' then
      begin
       s[i]:='А';
       s1:=s1+s[i]
        end;
        If s[i]='G' then
      begin
       s[i]:='П';
       s1:=s1+s[i]
        end;
        If s[i]='H' then
      begin
       s[i]:='Р';
       s1:=s1+s[i]
        end;
        If s[i]='I' then
      begin
       s[i]:='Ш';
       s1:=s1+s[i]
        end;
        If s[i]='K' then
      begin
       s[i]:='Л';
       s1:=s1+s[i]
        end;
        If s[i]='L' then
      begin
       s[i]:='Д';
       s1:=s1+s[i]
        end;
        If s[i]='M' then
      begin
       s[i]:='Ь';
       s1:=s1+s[i]
        end;
        If s[i]='N' then
      begin
       s[i]:='Т';
       s1:=s1+s[i]
        end;
        If s[i]='O' then
      begin
       s[i]:='Щ';
       s1:=s1+s[i]
        end;
        If s[i]='P' then
      begin
       s[i]:='З';
       s1:=s1+s[i]
        end;
        If s[i]='Q' then
      begin
       s[i]:='Й';
       s1:=s1+s[i]
        end;
        If s[i]='R' then
      begin
       s[i]:='К';
       s1:=s1+s[i]
        end;
        If s[i]='S' then
      begin
       s[i]:='Ы';
       s1:=s1+s[i]
        end;
        If s[i]='T' then
      begin
       s[i]:='Е';
       s1:=s1+s[i]
        end;
        If s[i]='U' then
      begin
       s[i]:='Г';
       s1:=s1+s[i]
        end;
        If s[i]='V' then
      begin
       s[i]:='М';
       s1:=s1+s[i]
        end;
        If s[i]='W' then
      begin
       s[i]:='Ц';
       s1:=s1+s[i]
        end;
        If s[i]='X' then
      begin
       s[i]:='Ч';
       s1:=s1+s[i]
        end;
        If s[i]='Y' then
      begin
       s[i]:='Н';
       s1:=s1+s[i]
        end;
        If s[i]='Z' then
      begin
       s[i]:='Я';
       s1:=s1+s[i]
        end;
        If s[i]='J' then
      begin
       s[i]:='О';
       s1:=s1+s[i]
        end;
        If s[i]=' ' then
      begin
       s[i]:=' ';
       s1:=s1+' '+s[i]
        end;
        
        end;
        end;
        end;
        writeln(s1);
        end.



Федосеев Павел
Если я правильно понял - это подобие PuntoSwitcher.
Тогда для преобразования нужен другой подход.
Делаешь символьный массив преобразований Table - [#0..#255] of char, в котором Table['s']='ы', Table['d]='в' и т.д.
Таблицу удобно задать в виде константы в начале программы.
Код
type
  TCharArray = array [#0..#255] of char;
const
  Table: TCharArray = (#0, #1, #2, #3, #4, ....................);

Заполнение попробуй организовать самостоятельно любым способом. Коды символов можешь уточнить в Wikipedia, задав поиск cp866 (кодировка DOS и консоль в Windows) и cp1251 (кодировка Windows - до эпохи Unicode).

И тогда преобразование строки будет следующим
Код
  for i:=1 to length(s) do
    s[i]:=Table[s[i]];


А по поводу ошибки в конкретно твоём коде. Я взял форматтер исходного кода JCF и после "причёсывания" увидел, что преобразование ты выполняешь в двух циклах - по длине строки и по алфавиту от 'A' до 'z' и первой командой стоит сравнение очередного символа строки с символом из алфавита от 'A' до 'z', куда пробел не входит.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.