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

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

Форум «Всё о Паскале» _ Задачи _ Строки

Автор: cseee 4.07.2007 18:11

Помогите с сторками, я вообще их не понимаю, а завтра сдавать.
Вот задание:
Рассматривается непустая строка, содержащая не более 80 символов, каждый символ строки может быть малой английской буквой,цифрой или одним из знаков + - *.Требуется написать программу которая находит и печатает все группы цифр, которые начинаются и заканчиваются одной и той же цифрой.Группа цифр, состоящая из одной цифры,пренадлежит множеству искомых групп цифр.Если в строке нет ни одной группы цифр которая начинается и кончается одной и той же цифрой, то напечатать сообщение:"В строке не ни одной искомой группы цифр".Если в строке нет ни одной группы цифр, то напечатать сообщение:"В строке не ни одной группы цифр".Исходная строка вводиться с клавиатуры.

Автор: cseee 4.07.2007 20:04

smile.gif Готов отдать 150руб, очень нужна прога.Помогите кто может)

Автор: Артемий 4.07.2007 21:33

Почожие задачи были,поищи по форуму.

Автор: hranitel 23.07.2007 0:49

а вот такой вопрос:
как очитстить перменную типа string?
я пробовал так st:='';
но потом перестаёт работать поэлеметное присваивание...а мне оно нужно...

Автор: мисс_граффити 23.07.2007 0:52

так и очищают...
поэлементное, естественно, не работает - элементов-то нет, строка пустая.
приведи код, чтобы было понятно, зачем оно тебе нужно - может, что-то и придумается.

Автор: hranitel 23.07.2007 1:17

М
пользуйся тегами !


Цитата(мисс_граффити @ 22.07.2007 23:52) *

так и очищают...
поэлементное, естественно, не работает - элементов-то нет, строка пустая.
приведи код, чтобы было понятно, зачем оно тебе нужно - может, что-то и придумается.


у меня в общем задача следующая:
написать приложение Бюро знакомств.
анкеты у меня распологаются в файле в следующем виде
*a*...*b*...$ и так далее
где ... - это какая-то графа анкеты, а $ символ конца строки.
я написал функцию, которая ищет нужное поле в анкете по аски коду буквы, которая находится между *

вот она:

function findpol (var ffile:ff; kod:integer;var bbyfer:byftype): byte;
var
is:integer;
chh:char;
begin
findpol:=1;
repeat
read(ffile,chh);
if chh='#'then
begin
findpol:=0;
break;
end;
while chh<>'*' do
read(ffile,chh);
read(ffile,chh);
if ord(chh)=kod then begin
is:=1;
read(ffile,chh);
read(ffile,chh);
while 1<>2 do
begin
bbyfer[is]:=chh;
writeln(bbyfer);
read(ffile,chh);
if (chh='*') or (chh='$') then begin
seek (ffile,filesize(ffile)-1);
break; end;
inc(is);
end;
break; end
else
read(ffile,chh);
until 1=2;
end;


в переменную bbyfer запоминается нужное поле
но когда я ищу другое поле, мне нужно строку, которую я использу в качестве аргумента данной функции очистить...
но тогда перестаёт работать поэлементное присваивание, которое я испльзую в моей функции...

Автор: WargaL 23.07.2007 3:15

М
пользуйся тегами !


Я, собственно, по поводу темы, хотя и не вовремя(только сегодня увидел). Вдруг, кому пригодится.
прога должна выглядеть где-то так:

program Project1;

type
digChar=set of '0'..'9';

var
s:digChar;
str:string;
i,k:integer;
j:boolean;

Procedure get(st:string; index:integer);
var i:integer;
res:string;
begin
i:=index+1;
res:=st[index];
while (st[i] in s) and (i<=length(st)) do
begin
res:=res+st[i];
if st[i]=st[index]
then begin
writeln(res);
j:=true
end;
i:=i+1
end;
end;

begin
j:=false;
s:=['0'..'9'];
readln(str);
k:=length(str);
for i:=1 to k do
begin
if str[i] in s
then get(str,i)
end;
if not j then writeln('no actual group of digit');
readln(str)
end.


не судите строго.