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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 18:15   #1
BelialL
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 29
Вопрос вывод строки в обратном порядке Delphi

Подскажите плз в чем моя ошибка? вот задание Составить программу ввода с клавиатуры своей фамилии и вывода на экран составляющих ее букв в обратном порядке.)
вот что у меня получилось:
Код:
uses
  SysUtils;
  var
  a:string; b:integer;

begin
  write (a);
  for b:=length(a) downto 1 do
  write (b,a);
  readln;
end.
BelialL вне форума Ответить с цитированием
Старый 18.11.2010, 18:21   #2
fbus
Форумчанин
 
Аватар для fbus
 
Регистрация: 23.10.2008
Сообщений: 460
По умолчанию

чисто навскидку

Код:
uses
  SysUtils;
  var
  a:string; b:integer;

begin
  readln(a);
  for b:=length(a) downto 1 do
  write (a[b]);
  readln;
end.
fbus вне форума Ответить с цитированием
Старый 18.11.2010, 18:44   #3
BelialL
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 29
По умолчанию

Цитата:
Сообщение от fbus Посмотреть сообщение
чисто навскидку

Код:
uses
  SysUtils;
  var
  a:string; b:integer;

begin
  readln(a);
  for b:=length(a) downto 1 do
  write (a[b]);
  readln;
end.
write (a[b]); сдесь ошибку выдает (array type required)
BelialL вне форума Ответить с цитированием
Старый 18.11.2010, 19:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
write (a[b]); сдесь ошибку выдает (array type required)
не подтверждаю!

Код:
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;

var
  a:string; b:integer;

begin
  readln(a);
  for b:=length(a) downto 1 do
    write(a[b]);
  readln;
end.
Код правильный и рабочий.
А при необходимости могу выложить и скомпилированный EXE-шник...

Чем компилируете? Уверены, что переменная a описана именно как string?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.11.2010, 20:25   #5
BelialL
Пользователь
 
Регистрация: 09.11.2010
Сообщений: 29
По умолчанию

прошу прощения моя ошибка я вместо write (a[b]); написал write (b[a]);
Спасибо за помощь!!
BelialL вне форума Ответить с цитированием
Старый 19.11.2010, 15:09   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

более быстрый способ, как версия 2
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  A :string;
  I,II,L :Integer;
  Buf :Char;
  Tmp :string;

begin
 Readln(A);
 Tmp := A;
 L := Length(Tmp);
 II := L div 2;
 for I := 1 to II do
 begin
  Buf := Tmp[I];
  Tmp[I] := Tmp[L - I + 1];
  Tmp[L - I + 1] := Buf;
 end;
 Writeln;
 Writeln(Tmp);
 Readln;
end.
Alter вне форума Ответить с цитированием
Старый 19.11.2010, 18:01   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Alter
не хотелось бы флудить.. но и пройти мимо не могу..

Позвольте, коллега, а с чего Вы взяли, что вывести элементы по индексу медленнее, чем перетасовывать их в памяти?! Откуда утверждение "более быстрый способ" ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2010, 18:12   #8
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Позвольте, коллега, а с чего Вы взяли, что вывести элементы по индексу медленнее, чем перетасовывать их в памяти?! Откуда утверждение "более быстрый способ" ?
Serge_Bliznykov, я решил проверить, и выяснил вот что: ваш код выполняется за 77 мс, а код Alter - 283 мс.
_-Re@l-_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу, которая записывает каждое слово в тексте в обратном порядке.Delphi grongost Помощь студентам 4 23.09.2010 20:23
Сортировка данных в обратном порядке (Delphi 7) NuR1k БД в Delphi 4 24.08.2010 19:36
Вывод на экран записей в прямом и обратном порядке mileshin Помощь студентам 3 20.04.2010 09:19
Вывод кольцевого списка в обратном порядке parinoff Паскаль, Turbo Pascal, PascalABC.NET 5 22.11.2008 12:03