Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2012, 19:03   #1
Natalia91169
 
Регистрация: 19.12.2011
Сообщений: 7
Восклицание Имеется строка из букв и цифр.Преобразовать так,чтобы сначала в ней шли все буквы,затем цифры

Но! Буквы,встречающиеся в исходной строке, должны идти в обратном порядке,а цифры - в прямом.
Язык-Pascal.

Последний раз редактировалось Natalia91169; 12.03.2012 в 19:05.
Natalia91169 вне форума Ответить с цитированием
Старый 12.03.2012, 23:54   #2
lux16
Форумчанин
 
Аватар для lux16
 
Регистрация: 11.02.2009
Сообщений: 305
По умолчанию

Хм, а я вот думаю так: сначала считать буквы и цифры по отдельности, потом отсортировать их пузырьком, и соединить
Хочу быть лучшим, но пока что я только обычный =(
lux16 вне форума Ответить с цитированием
Старый 13.03.2012, 01:41   #3
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

Сегодня плохое настроение, но нужно что-то делать полезное...
Держи на php, думаю разберёшься... смысл тот же будет!
Првоерять числа и строки через регулярные выражения, заносить их в массив, сортировать массив и вывести на экран... ВСЁ!

Код:
<?php

$str = "dfspitmnb27465d3df357deg3ytj354ds";

for($i = 0; $i<strlen($str); $i++){
	if(preg_match("/^[A-Za-z]{1}$/", $str[$i]))
		$string[count($string)] = $str[$i];
	if(preg_match("/^[0-9]{1}$/", $str[$i]))
		$numbers[count($numbers)] = $str[$i];
}
asort($numbers);
arsort($string);

foreach($numbers as $value => $value_value){
	echo $value_value;
}

foreach($string as $value => $value_value){
	echo $value_value;
}
?>
Помог? Жми "+" в рейтинг
acteralex вне форума Ответить с цитированием
Старый 13.03.2012, 09:00   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если я правильно понял задание и из строчки
A1B234CD
нужно получить строчку
DCBA1234
тогда это можно решить так
(это вариант БЕЗ использования дополнительных строк, очевидно же, что вариант со двумя строчками, где собираются результаты - отдельно буквы в обратном порядке и отдельно цифры в прямом, вообще элементарен и никакого интереса не представляет!):
Код:
var s : string;
 i : integer;
 kAlpha : integer;
 s1 : char;
begin
  s := 'A1B234CD';
  s := '12';
  kAlpha := 0;
  i:=Length(s);
  while i>kAlpha do begin
    if not (s[i] in ['0'..'9']) then begin
       {обнаружили букву, перенесём её в начало строки}
       s1 := s[i];
       Delete(s,i,1);
       Inc(kAlpha);
       Insert(s1, s, kAlpha);
    end
    else
       dec(i);
  end;

  WriteLn('Полученная строка: ', s);
  Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать все строчные латинские буквы в прописные, а цифры заменить символом *. (Delphi) Dark Raven Помощь студентам 1 19.01.2012 14:53
Преобразовать массив таким образом, чтобы сначала располагались элементы из интервала [a,b] , а затем все parka Паскаль, Turbo Pascal, PascalABC.NET 7 15.05.2011 22:17
Массивы на pascal (преобразовать массив так, чтобы сначала были единицы, а потом - все остальные) Mercial Помощь студентам 6 18.02.2011 22:07
В заданном массиве C(8) переставить элементы так щеб сначала шли все отрицатильние а затем положительные. basav1k Помощь студентам 2 26.05.2010 21:10
Преобразовать строку таким образом, чтобы буквы каждого слова в ней были отсортированы по возрастанию. Matr1x Общие вопросы C/C++ 4 07.01.2010 21:38