Помощь - Поиск - Пользователи - Календарь
Полная версия: Напечатать целые числа, содержащиеся в строке
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
GolDen
Прошу помочь мне с данной задачей. :-/
Напечатать целые числа, содержащиеся в строке.

GolDen
GLuk
Сам то начал делать??
В твоем понимании целые числа в строке это:
Const
        S = '32768,982,3241';
или нет??
GolDen
Я думаю целые числа - это числа без точек и запятых. Строка - набор символов среди которых встречаются числа.  Из них надо выбрать целые.
GolDen
Вот, что у меня получилось, а дальше никак не получается:

Код
Program l5;
uses crt;
const n=255;
var i:byte;
c:integer;
m:array[1..n] of integer;
s:string;
Begin
 clrscr;
 Writeln('Введите строку:');
 Readln(s);
 c:=1;
 for i:=1 to length(s) do
 if (s[i]>='0') or (s[i]<='9') then
  Begin
  m[c]:=s[i];
  c:=inc(c);
  End;

 for i:=1 to c-1 do
 Writeln(m[i]:6:3,'');

 Readkey
 End.


Необходим ли Const? Хочу находить число и записывать его в массив.
Alesha_GA
Надо учитывать был ли предыдущий сивол числом.
Код
Program l5;
uses crt;
const n=255;
var i:byte;
c:integer;
mn:array[1..n] of integer;
m:array[1..n] of string;
s:string;
bpl:boolean;
Begin
 clrscr;
 Writeln('Введите строку:');
 Readln(s);
 c:=1;
 bpl:=false;
 for i:=1 to length(s) do
 if (s[i]>='0') or (s[i]<='9') then
  Begin
  if bpl=true then c:=c-1;
  m[c]:=m[c]+s[i];
  c:=inc(c);
  bpl:=true;
  End else bpl=false;

  {Переводиш string в integer и всё.}
   
 Readkey
 End.
GolDen
Не особо понял, как это "Переводиш string в integer и всё. " Объясни pls.
Alesha_GA
Извини, не успел вчера дописать, инет кончался.

Значит там где переводиш string в integer:
Код
for i:=1 to c-1 do
begin
val(m[i],mn[i],k); { k:integer;}
end;

Теперь в массиве mn содержатся все целые числа.

Успехов! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.