Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Напечатать целые числа, содержащиеся в строке

Автор: GolDen 18.05.2003 12:44

Прошу помочь мне с данной задачей. :-/
Напечатать целые числа, содержащиеся в строке.

GolDen

Автор: GLuk 18.05.2003 13:28

Сам то начал делать??
В твоем понимании целые числа в строке это:
Const
        S = '32768,982,3241';
или нет??

Автор: GolDen 18.05.2003 15:23

Я думаю целые числа - это числа без точек и запятых. Строка - набор символов среди которых встречаются числа.  Из них надо выбрать целые.

Автор: GolDen 18.05.2003 16:40

Вот, что у меня получилось, а дальше никак не получается:

Код
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 19.05.2003 8:54

Надо учитывать был ли предыдущий сивол числом.

Код
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 19.05.2003 23:03

Не особо понял, как это "Переводиш string в integer и всё. " Объясни pls.

Автор: Alesha_GA 20.05.2003 3:42

Извини, не успел вчера дописать, инет кончался.

Значит там где переводиш string в integer:

Код
for i:=1 to c-1 do
begin
val(m[i],mn[i],k); { k:integer;}
end;

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

Успехов! smile.gif