var
diapazon:string;
block:array [1..4] of string;
bin:array [1..4] of boolean;
i,len,j:integer;
begin
readln(diapazon);
for i:=1 to 4 do block:='';
len:=length(diapazon);
j:=1;
for i:=0 to len do begin
if (diapazon='[') or (diapazon=']') then bin[j]:=true
else if (diapazon='(') or (diapazon=')') then bin[j]:=false
else if (diapazon=',') or (diapazon='*') then j:=j+1
else block[j]:=block[j]+diapazon;
end;
for i:=1 to 4 do writeln(block);
end.
Глюк паскаля
Код:
Проге вводится диапазон чисел : (-@,3)*[2,5]
Должно вывестись
-@
3
2
5
Т.е. числа из диапазона нужно вывести указанные числа. 2 диапазона, разделитель - *. Разделитель чисел в диапазоне - запятая, вмето знака бесконечночти - @.
Но вместо того, что нужно вывести, выводит катинку из capture.png, т.е. к -@ откуда-то добавляется лишний символ.
Что делать?
PS. И измени название темы с "Глюк Паскаля" на "Мой глюки".
И при чём тут мои глюки? Моих глюков тут нэма
Применил фильтрацию символов. Т.е. перед дозаписью в строку символ проверяется на разрешённость (0,1,2,3,4,5,6,7,8,9,-,@,.) и если это один из них, то добавляется
Код:
var c:string;
begin
readln(c);
writeln(c[0]);
end.
begin
readln(c);
writeln(c[0]);
end.
Результат : ввёл (*) в итоге - (
Цитата: alex-kniaz
Я так уверен что символы идут с 0-го благодаря результатам выполнения
Результат : ввёл (*) в итоге - (
Код:
var c:string;
begin
readln(c);
writeln(c[0]);
end.
begin
readln(c);
writeln(c[0]);
end.
Результат : ввёл (*) в итоге - (
Эксперименты тоже надо уметь ставить.
Но прежде все равно неплохо было бы почитать документацию.
PS. А название темы все-таки измени.
т.е. diapazon[0] - размер стоки.
форматируй код так, чтоб его было легко читать, иначе сам можешь запутаться, посмотрев на него дня эдак через три.
Цитата: alex-kniaz
Я так уверен что символы идут с 0-го благодаря результатам выполнения
Результат : ввёл (*) в итоге - (
Код:
var c:string;
begin
readln(c);
writeln(c[0]);
end.
begin
readln(c);
writeln(c[0]);
end.
Результат : ввёл (*) в итоге - (
а еще раз проверить ?
Так что повторюсь еще раз. в Паскале строка начинается с 1го елемента, в нулевом - символ код которого = длинне строки