
05.12.2012, 22:26
|
 |
Прохожий
|
|
Регистрация: 24.11.2012
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
|
|
Цитата:
Сообщение от Guneska
Доброго времени суток, уважаемые форумчане.
Помогите, пожалуйста, перерыла кучу информации, и теперь уже запуталась - моё задание на перестановку или сортировку элементов: "Имеется строка, содержащая буквы и цифры. Преобразуйте эту строку так, чтобы сначала в ней шли все цифры, а потом - все буквы исходной строки. Допустимые символы - цифры, прописные и строчные латинские буквы. Пример: исходная строка - ad2e57b6; результат - 2576adeb".
Написать нужно в консольном приложении.
|
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
str, numbers, letters, res1,res2: string;
len,i,j: integer;
begin
numbers:='1234567890';
letters:='qwertyuiopasdfghjklzxcvbnm';
write('Vvedite stroku: ');
readln(str); // записываем исходную строку в переменную str
len:=length(str); //Записываем в переменную len длинну строки
for i:=1 to len do // Цикл от 1 до конца строки
for j:=1 to 10 do //Цил от 1 до 10 (количество цифр)
{ Если символ i строки str равен символу j строки numbers тогда записываем
в res1 по принципу: старая информация в res1 + символ строки}
if str[i]=numbers[j] then
begin
res1:=res1+str[i];
break; //Прерывание цикла
end;
for i:=1 to len do // Цикл от 1 до конца строки
for j:=1 to 26 do // Цил от 1 до 26 (количество букв в алфавите)
{ Если символ i строки str равен символу j строки letters тогда записываем
в res2 по принципу: старая информация в res2 + символ строки}
if str[i]=letters[j] then
begin
res2:=res2+str[i];
break; //Прерывание цикла
end;
writeln('Resultat: ', res1,res2); //Выводим результат
readln;
end.
Первый блок циклов "анализирует" и записывает в одну строку res1 все цифры из исходной строки. Второй блок циклов записывает в res2 все буквы строки.
В качестве благодарности произнеси тост за мое здоровье 
|