uses CRT;
var
words_count,
nums_count, i : integer;
words : array[1..100] of String;
nums : array[1..100] of Integer;
str : string;
procedure ParseIt(s : String);
var w : String;
i, c, err : integer;
begin
i := 1;
while i<=length(s) do
begin
{ пропускаем пробелы }
while ((s[i]=' ') or (s[i]=',')) and (i<=length(s)) do inc(i);
{ считываем очередное слово }
w := '';
while (s[i]<>' ') and (s[i]<>',') and (i<=length(s)) do
begin
w := w + s[i];
inc(i);
end;
if w='' then Continue;
{ тут решаем в какой из массивов
добавить напарсиную строку }
val(w, c, err);
if err>0 then
begin
{ строка }
Inc(words_count);
words[words_count] := w;
end
else
begin
{ число }
Inc(nums_count);
nums[nums_count] := c;
end;
end;
end;
begin
ClrScr;
words_count := 0;
nums_count := 0;
WriteLn('Введите строку и нажмите <Enter> :');
ReadLn(str);
{ парсим входную строку }
ParseIt(str);
{ выводим резалтс
фор стрингс}
WriteLn;
WriteLn('Массив слов:');
if words_count>0 then
for i:=1 to words_count do Write(words[i],' ')
else
WriteLn('Нет элементов.');
{ фор нумбэрс }
WriteLn;
WriteLn('Массив чисел:');
if nums_count>0 then
for i:=1 to nums_count do Write(nums[i],' ')
else
WriteLn('Нет элементов.');
{ get out! }
WriteLn;
ReadLn;
end.
Const
S: string = 'qwerty, super; 23, sp! go? 567,ns';
var
A: array[1..255] of string;
B: array[1..255] of integer;
T: string;
N, An, Bn: byte;
Begin
Writeln('Строка: ',S);
An:=0;
Bn:=0;
S:=S+' ';
While S<>'' do
Begin
T:=S[1];
Delete(S,1,1);
While ((T[Length(T)] in ['a'..'z','A'..'Z','0'..'9'])) do
Begin
T:=T+S[1];
Delete(S,1,1);
End;
Delete(T,Length(T),1);
If T<>'' then
Begin
N:=0;
While (N)<=Length(T) do
If not (T[N+1] in ['0'..'9']) then Break else Inc(N);
If N=Length(T) then Inc(Bn) else Inc(An);
If N=Length(T) then val(T,B[Bn],N) else A[An]:=T;
End;
End;
For N:=1 to An do
Write(A[N],' ');
Writeln('- Ваш массив строк');
For N:=1 to Bn do
Write(B[N],' ');
Writeln('- Ваш массив чисел');
End.
uses crt;
const rzd=['.',',',';',':','?','!'];
type str=string[50];{ограничим размер слов}
slv=array[1..100] of str;{массив слов}
chs=array[1..100] of integer;{массив чисел}
var s:string;
mchs:chs;
mslv:slv;
i,ks,kc:byte;{счетчики}
t,c:integer;{переменные для перевода строки в число} procedure Vvod;
var i:byte;
begin
writeln('Строка:');
readln(s);
for i:=1 to length(s) do
if s[i] in rzd then s[i]:=' ';{меняем разделители на пробелы}
s:=s+' ';{добавим пробел в конец}
while pos(' ',s)>0 do
delete(s,pos(' ',s),1);{удалим лишние пробелы, в апострофах по 2 пробела, обязательно} end;
{получим строку вида слово пробел слово пробел} procedure Massiv;
var ks,kc:byte;
t,c:integer;
s1:str;
begin ks:=0;kc:=0;
while pos(' ',s)>0 do{пока в строке есть пробел}
begin
s1:=copy(s,1,pos(' ',s)-1);{копируем первое слово}
val(s1,t,c);{пытаемся преобразовать в число}
if c=0 then{если код=0, то число}
begin
kc:=kc+1;{считаем}
mchs[kc]:=t;{в массив чисел}
end
else{если код не равен 0, не число}
begin
ks:=ks+1;
mslv[ks]:=s1;{в массив слов}
end;
delete(s,1,pos(' ',s));{удаляем просмотренное слово}
end;
writeln('Массив чисел:');
for i:=1 to kc do write(mchs[i],' ');
writeln;
writeln('Массив слов:');
for i:=1 to ks do write(mslv[i],' ');
readln
end;
begin
clrscr;
Vvod;
Massiv;
end.
Похожие записи/страницы:
- С клавиатуры вводится строка, состоящая из слов, разделенных пробелами. Инвертировать все четные слова в этой…
- Ввести в ЭВМ предложение длиной не более 70 символов. Подсчитать количество гласных букв в каждом его слове.…
- Вывести из предложения самое длинное слово - Pascal(Паскаль)
- Дан текст. Группы символов, разделенные пробелами и не содержавшие пробелы внутри себя, будем называть словами.…
- Задана строка-предложение. Необходимо найти слова, длина которых равна 5 символам,и удалить их из строки.…
- Разработать программу решения задачи, в которой поменять местами первую и последнюю буквы каждого слова в строке…
- Ввести две строки, изъять из первой строки все слова, которые встречаются во второй. Программа написана с…
- Дан файл,содержащий текс на русском языке. Определить,сколько раз встречается в нем самое короткое слово -…