Помощь - Поиск - Пользователи - Календарь
Полная версия: В командной строке вводится 1 параметр:
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
snapper
В командной строке вводится 1 параметр: из него удаляются
все символы, не являющиеся буквами. БУквы переводятся в строчные.
РЕЗультаты записываются в файл.

вот кусок проги..
program fff;
procedure removalLetter(var Row:String; Letter: Char);
var j: Byte;
begin
j:=1;
while j<=Length(row) Do
if Row[j]=letter Then Delete (Row,j,1) Else j:=j+1
end;
эта прога удаляет символы(те которые ты хочешь) из написанной фразы..
например: баран.. ты делаешь удалить все: А.. и выходит брн
но ток непашет
Lapp
Цитата(snapper @ 17.10.2010 22:32) *
эта прога удаляет символы(те которые ты хочешь) из написанной фразы..
например: баран.. ты делаешь удалить все: А.. и выходит брн
Нет, не так. Процедура написала верно, но только она делает не совсем то, что ты написал. Она регистрозависима. То есть, если ты вторым параметром передашь "а" - то да, получишь "брн". А если "А" - то получишь "баран".

Только непонятно, зачем поставленную задачу делать именно так. Это что же, идти в цикле по всему алфавиту?.. Проще работать с множествами.

var
Letters,Upper: set of char;
...

Letters:=['A'..'Z'];
...
for i:=Length(s) downto 1 do
if s[i] in Letters then
Inc(s[i],32)
else
if not (UpCase(s[i]) in Letters) then Delete(s,i,1);

Это для английского алфавита, для русского потребуется переделка..
Если не хочется множеств, то можно заменить проверку на пару неравенств.

М
Замечания по оформлению темы:
1. программные коды просьба обрамлять тегами;
2. название темы не соответствует содержанию, просьба исправить.

TarasBer
Процедура мне не нравится, она работает за O(n^2)
Тут это не важно, командная строка не может превысить некоторый предел, но вообще при обработке массивов следует использовать алгоритмы не такие дубовые


j := Low(A);
for i := Low(A) to High(A) do begin
if NotMustDel(A[i]) then begin
A[j] := A[i];
Inc(j);
end;
end;



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