Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка символьных массивов 
V
    Опции темы
Чекмарь
Дата 11.4.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Ребят, помогите пожалуйста с задачкой!
Задать 2 строки символов. Каждая до 20 символов длиной и содержит буквы и цифры. Общее кол-во букв в обоих строках не превышает 20. Напечатать все цифры в одной, а буквы в другой строке.
Заранее спасибо!
PM MAIL   Вверх
Mikh@il
Дата 11.4.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



Типо того:

Код


var s1,s2,s_chislo:string;
      i,temp,code:integer;
begin
 writeln('Введите первую строку');
 readln(s1);
 writeln('Введите вторую строку');
 readln(s2);
 s1:=s1+s2; //Все в кучу собираем
 s2:=''; s_chislo:='';
 
 for i:=1 to length(s1) do
  begin
    Val(s1[i],temp,code);
     if code=0 then s_chislo:=s_chislo+s1[i]
          else s2:=s2+s1[i]; 
   end;

Writeln('Строка с буквами=',s2);
Writeln('Строка с числами=',s_chislo);


end.

Val (st, a, code) – преобразует строку, содержащую цифры, в число вещественное или целое: st – строка; a – числовая переменная; code – переменная целого типа, по значению которой можно определить, успешно или нет прошёл перевод. Если перевод символов в число прошёл успешно, значение переменной code равно 0.


uses crt вперед допиши еще!


Это сообщение отредактировал(а) Mikh@il - 11.4.2008, 22:38
PM MAIL   Вверх
Чекмарь
Дата 11.4.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Спасибо большое! smile 
PM MAIL   Вверх
volvo877
Дата 15.4.2008, 00:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Для того, чтобы определить, является символ цифрой или нет - совсем не обязательно пользоваться Val (кстати, очень медленная процедура). Достаточно сделать так:

Код
var
  s1, s2: string;
  i: integer;

begin
  writeln('Введите первую строку');
  readln(s1);
  writeln('Введите вторую строку');
  readln(s2);

  s1 := s1 + s2;
  s2 := '';
  for i := length(s1) downto 1 do
    if s1[i] in ['0' .. '9'] then begin
      s2 := s1[i] + s2; delete(s1, i, 1);
    end;

  Writeln('Строка с буквами=',s1);
  Writeln('Строка с цифрами=',s2);
end.

PM MAIL   Вверх
Чекмарь
Дата 15.4.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Спасибо! Еще лучше. А как ограничить кол-во символов в каждой строке до 20, и сделать так, чтобы общее кол-во букв не превышало 20?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.