19.02.2010, 01:58 | #1 (permalink) |
Member
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
|
Строка наоборот. Упражнение из учебника.
Перевернуть введенную строку. (Например из "диск" получится "ксид"). У меня получилось сделать только так: Код:
program reversed_string; var s1:string; h,i,n:integer; g:char; begin readln(s1); n:=Length(s1); i:=0; h:=n; for i:=0 to h do begin g:=s1[n]; write(g); n:=n-1; end; readln; end. Последний раз редактировалось Linka; 19.02.2010 в 02:24 |
19.02.2010, 01:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Можете поискать в данных темах решение вашего вопроса Командная строка Bash Адресная строка браузера Строка-пропеллер Бегущая строка на PIC16F628A Жесткий диск с SATA разьемом был подключен наоборот |
19.02.2010, 02:51 | #2 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Это очень плохое решение.
Сделайте так: Пройдите по строке от начала до середины, меняя первый элемент с последним, второй с предпоследним, и так далее. |
19.02.2010, 03:15 | #3 (permalink) |
Member
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
|
Я именно так и начинал, но вот как раз после середины, показывает неверно.. Что надо делать после середины ?
Код:
program reversed_string; var s1:string; i,n:integer; begin readln(s1); n:=Length(s1); i:=1; while (i<=n) do begin s1[i]:=s1[n]; i:=i+1; n:=n-1; end; writeln(s1); readln; end. Последний раз редактировалось Linka; 19.02.2010 в 03:21 |
19.02.2010, 05:36 | #5 (permalink) |
Member
Регистрация: 24.01.2010
Сообщений: 43
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 26
|
Не понял( Но на бумаге все красиво =)
Получилось только вот так, со второй одинаковой строкой, и еще ондой переменной: Код:
program reversed_string; var s1,s2 : string; h,i,n : integer; begin readln(s1); n:=Length(s1); s2:=s1; i:=1; h:=n; while (i<=h) do begin s1[i]:=s2[n]; i:=i+1; n:=n-1; end; writeln(s1); readln; end. Последний раз редактировалось Linka; 19.02.2010 в 05:40 |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.02.2010, 05:43 | #6 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Код:
for i:=1 to length(s) div 2 do begin t:=s[i]; s[i]:=s[length(s)-i+1]; s[length(s)-i+1]:=t; end |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|