Тема: Массивы
Показать сообщение отдельно
  #23  
Старый 05.12.2012, 22:26
Аватар для MarlboroRed
MarlboroRed MarlboroRed вне форума
Прохожий
 
Регистрация: 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 все буквы строки.

В качестве благодарности произнеси тост за мое здоровье
Ответить с цитированием