Другие языки программирования и технологии

Помогите с Pascal

написать функцию, возвращающую переданное слово или строку, написанной в обратном порядке. Паскаль. Я вот читаю читаю про паскаль, а вот синтаксиса все никак понять не могу. Кто-нибудь объясните на пальцах. А то что не учебник - сплошная ВОДА
_Timosh@_ .
_Timosh@_ .
248
function ReverseString(Str: string): string;
var
 i: integer;
begin
 Result := '';
 for i := Length(Str) downto 1 do
  Result := Result + Str[i];
end;
Тема Ангелов
Тема Ангелов
56 853
Лучший ответ
char'ы там будут неявно, объявлять их не надо. string - это массив char с некоторыми дополнительными возможностями. Str[i] - это как раз и есть char.
Синтаксис в Pascal (в частности) это самое простое. Не понимая "букв" какие пишете и хотите быть писателем?

ну что делать. Надо изучать синтаксис. Тут в два слова не расскажешь.
Вообще программа простая. длина строки делится на 2 и с помощью цикла обращаетесь к строке к символу по индексу. И через третью переменную меняете местами. Можно и копировать соотв обратным циклом. если использовать ещё строку, но.... Вообще от компилятора зависит. Если он каждый раз будет исправлять счетчик символов в 0 байте в строке - это плохо. Если он оптимизирует это до std rep stosw и в самом конце запишет 0 байт - то всё супер - это лучше решение.

Пишите на почту, если что.

P.S: Функции вряд-ли вам давали сразу. Вероятнее что-то пропустили или поленились.

И что Вам даст программа, не зная синтаксиса? Ну узнаете как делать именно эту задачу. А будет другое задание - что будете делать?

А char есс-но понадобится. Str[i] это и есть char.

Добавлю к гуру. . var Result:string. Надо описать и вернуть

"Всем спасибо, попробую сама что нить сварганить"
Правильный подход =) Если что-то конкретное не получится - пишите =)
Евгений Гоппе
Евгений Гоппе
84 764
Что бы понять (а скорее запомнить, потому что понять нужно принцип программирования, а не синтаксис отдельного языка ИМХО) синтаксис, нужно написать побольше программ. Берёшь задание и делаешь. Потом, если чё-то не получается, то думай сама, и только потом спрашивай у других (и то, если очень срочно нужно решить) .
================================
var // тут переменные объявляем
s : string; // переменная строкового типа
i : integer; // переменная целочисленного типа

begin // начало программы
writeln('Enter sentens: '); // эта функция выводит на экран
readln(s); // эта функция считывает данные с консоли

for i := length(s) downto 1 do { Это цикл. В нём мы берём и выводим на экран каждую букву строки (А строка тут это массив символов. И циклы нужны, что бы работать с массивами. А массивы это связанные переменные одинакового типа. Тут переменные - буквы, а связаны они между собой тем, что находятся в одном слове. ) ок? ) задом на перёд.
Т. е. последний символ строки выведется первым, а первый - последним}
write(s[i]);

end. // конец программы
Рекурсивно можно так
function revers(s:string):string;
var ln:integer;
begin
ln:=length(s);
if ln=0 then revers:=s else revers:=s[ln]+revers(copy(s,1,ln-1))
end;