Показать сообщение отдельно
  #5  
Старый 04.12.2015, 01:56
EnumaElish EnumaElish вне форума
Прохожий
 
Регистрация: 30.11.2015
Сообщения: 6
Версия Delphi: pascal
Репутация: 10
По умолчанию

Спасибо там все решил все было просто...
Вот новая делема на тему применения функций..
-===================-
Для введенной пользователем строки напечатать позиции всех входящих в
неё символов (кроме пробелов) в алфавитном порядке. Для символов, которые
встречаются несколько раз, напечатать их позиции в одной строке. Например, для
слова «PASCAL»:
-===================-
понятно что цифры нужно раскидыть по цифре ASCII ... как максимальное и минимальное найти в цикле все эт понятно.. но как их в итоге по порядку раскидать...
делаю так
Код:
function swap(var a:string):string;
var i:integer; x:char;
begin
for i:=0 to length(a) do
if a[i]<a[i+1] then
if i+1>length(a) then break 
else
begin
x:=a[i]; a[i]:=a[i+1]; a[i+1]:=x; //свапаем местами
end;
end;
но эта функция пробегается по строке всего 1 раз
вводим abbassa получаем bbassa
как зациклить чтобы пока не станет верным условие
Код:
a[i]>a[i+1]

p.s.поясните в каких случаях нужно ставить ссылку на переменную в функцию или процедуру типа
Код:
function swap(var a:string):string;
а когда не нужно.. перечитал много источников ни чего не пойму...((
p.s.s. и как из паскаля копировать текст куда нибудь?) постоянно приходится руками на форум набирать )
Ответить с цитированием