Задача - Изменить порядок слов в строке на обратный - программирование на разных языках

Задача — Изменить порядок слов в строке на обратный — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Изменить порядок слов в строке на обратный
— программирование на Pascal, Си, Кумир, Basic-256, Python

Вводится строка, состоящая из слов, разделенных пробелами. Следует заменить ее на строку, в которой слова идут в обратном порядке по-сравнению с исходной строкой. Вывести измененную строку на экран.

Данная задача существенно проще решается, если изменяется не исходная строка, а формируется новая из слов первой, но слова из первой берутся начиная с конца. После того как новая строка будет сформирована, ее можно присвоить переменной, которой была присвоена исходная строка, таким образом перезаписав ее.

Если пишется отдельная функция для изменения порядка слов, то в нее можно передавать исходную строку, а она будет возвращать измененную. Возвращаемое значение может быть присвоено той же самой переменной, значение которой передавалось в функцию.

В общих чертах алгоритм может быть таким. Строка просматривается с конца и фиксируется количество подряд идущих символов, которые не являются пробелами (т.е. длина слова). Как только встретится пробел, участок строки от этого пробела на длину слова добавляется в конец новой строки. Таким образом, если новая строка изначально пуста, то последнее слово исходной строки окажется первым в новой. Предпоследнее слово исходной строки окажется вторым в новой и т.д.

То, каким образом происходит копирование части строки из исходной и добавление этой части в новую строку, зависит от языка программирования, функций работы со строками.

Pascal

var
str: string;

procedure conversely(var s: string);
var
len, i, a: byte;
s2: string;
begin
len := length(s);
a := 0;
s2 := »;
for i:=len downto 1 do begin
if s[i] = ‘ ‘ then begin
s2 := s2 + copy(s,i+1,a) + ‘ ‘;
a := 0;
end
else
a := a + 1;
end;
s2 := s2 + copy(s,i,a);
s := s2;
end;

begin
readln(str);
conversely(str);
writeln(str);
end. вывести слова в обратном порядке
порядке обратном в слова вывести

Python

# Вариант 1:

def conversely(s):
s2 = »
i = len(s)-1
while i >= 0:
if s[i] == ‘ ‘:
s2 = s2 + s[i+1:] + ‘ ‘
s = s[:i] i = len(s) — 1
else:
i -= 1
s2 = s2 + s
return s2

string = input()
string = conversely(string)
print(string)

# Вариант 2:

def conversely(s):
s = s.split()
s.reverse()
s2 = «»
for i in s:
s2 += i + ‘ ‘
return s2

string = input()
string = conversely(string)
print(string) каждый охотник желает знать, где сидит фазан
фазан сидит где знать, желает охотник каждый

Basic-256

input str$
gosub conversely
print str$
end

conversely:
len = length(str$)
a = 0
s$ = «»
for i=len to 1 step -1
if mid(str$,i,1) = » » then
s$ = s$ + mid(str$,i+1,a) + » »
a = 0
else
a = a + 1
endif
next i
s$ = s$ + mid(str$,1,a)
str$ = s$
return conversely words of string
string of words conversely

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий