Другие языки программирования и технологии

Помогите с Pascal 7.0!Кто чем может!

mashennik
mashennik
1 267
Доброго времени суток.

В первой задаче все значительно проще.

procedure DelCh(var F : MyFile);
begin
n := FileSize(F); {определяем число символов в файле}
if n > 1 then begin {проверяем, есть ли предпоследний}
Seek(F, n-1); {позиционируем указатель на последний (нумерация с 0)}
Read(F, Ch); {читем его}
Seek(F, n-2); {указатель на предпоследний}
Write(F,Ch); {записываем символ}
Truncate(F); {отсекаем файл в текущей позиции}
end;
end;

Вот и все. Использовать массив строк сомнительно, т. к. заранее не известно число символов в файле, следовательно, есть вероятность промахнуться с размерностью массива. Можно, конечно, закрутить с динамическими списками, только незачем все это.. .

Во второй, пока не конец файла, читаете записи в переменную такой же структуры и строите список возможных ростов. Затем в цикле для каждого элемента списка сбрасываете файл в начало, читаете запись и при совпадении роста с элементом списка выводите фамилию. Список можно отсортировать, чтобы фамилии выводились по увеличению (уменьшенгию) роста.

3. Открываете входной файл, создаете временный файл. Читаете из входного файла строки, из строк выделяете слова, а затем проверяете каждое слово на вхождение в него букв из имени. Например так.

NameS := 'qwer'; {строка с буквами имени (без повторений) }
AllChars := True; {предположим, все символы входят в слово}
for i:=1 to Length(NameS) do {просматриваем все символы имени}
if Pos(NameS[ i ], CurrWord) = 0 then begin {очередной символ имени не входит в слово}
AllChars := False; {сбрасываем флаг}
Break; {прекращаем проверять}
end;

if not AllChars then begin
{формируете выходную строку и если во входной строке проверены все слова, пишете ее в выходной файл}
end;

Здесь CurrWord - очередное проверяемое слово

После обработки всего входного файла удаляете его и переименовываете временный.

Удачи!
АК
Алексей Коновальцев
59 613
Лучший ответ
1. Проходя по всему файлу с помощью EOF записывай инфу например в массив строк. потом в этом массиве удали предпоследний элемент. и перепеши обратно этот файл из массива.
Mikhail Reva
Mikhail Reva
828