Файл

Тема в разделе "Pascal and Delphi", создана пользователем Alexsey1991, 15 мар 2010.

Статус темы:
Закрыта.
  1. Alexsey1991

    Alexsey1991 Гость

    Дан текстовый файл f.Удалить из файлы все слова,которые состоят из одних и тех же букв.
    Вот что я написал!!Ошибок нет но не удаляет!!!!
    код:
    Код (Text):
    var
    f:text;
    s:array[1..100] of string;
    k,i,a,b,v:integer;
    found:boolean;
    begin
    assign(f,'file.txt');
    reset(f);
    while not eof (f) do
    begin
    k:=k+1;
    read(f,s[k]);
    end;
    for i:=1 to k-1 do
    for a:=i+1 to k do
    begin
    for b:=1 to length(s[i]) do
    for v:=1 to length(s[a]) do
    begin
    if s[i][b] = s[a][v] then
    found:=true
    else found:=false;
    end;
    if found=true then
    s[i]:='';
    s[a]:='';
    end;
    close(f);
    end.
    Посоветуйте что надо делать???Или хотя бы как!!!
     
  2. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    наскока я понял то вы только считываете из файла и коректируете считаное,а потом обратно в файл коректировку не заносите(масив s запишите в файл)

    P.S. Правильно оформляйте код, так более четабельно и красивей
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    А вы задание поняли, количество и порядок букв должны учитываться?
    получается, каждое слово в файле в отдельной строке?
    В варианте исх. данных:
    aaab
    ab
    abaa
    bab
    1) должен остаться пустой файл (т.к. используются одинаковые буквы a и b )
    2) или
    ab
    bab
    (с учетом кол-ва)
    3) или весь исходный файл (с учетом кол-ва и порядка букв)?
    В зависимости от этого и правьте код...

    А вот это не совсем понятно - потерян begin-end?
     
  4. Alexsey1991

    Alexsey1991 Гость

    нет не в каждой строке разное расположение!!!Но всёровно не удаляет или не заменяет чё надо сделать помогите!!!

    Добавлено:

    А это не удаление???Заменяет слова на пустое место!!!
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    хм... не поняла, это ответ на какой из моих вопросов?
    вопрос a) - про то, что каждое слово в одной строке (т.е. слово = строка)
    вопроос б) - какой из вариантов является правильным решением для заданных исходных данных?
    мне лично задание пока не понятно, вы так и не рассказали, а хотите, чтоб мы исправили.
    ошибка скорее всего, в этом блочке:

    Я могу попытаться написать, что вы делаете:
    здесь вы сравниваете 1-й символ одной строки (например, а) со всеми другой и, только если они полностью одинаковы (2-я строка типа аааааа) или последний символ строки равен 1-му символу первой строки (например, 2-я строка типа bbbbbbbba), то у Вас found:=true. Если вторая строка вида abb, то у Вас found станет false при b=1 при просмотре 2-го и т.д. символа 2-й строки (v=2, 3,...). Где логика?
    и аналогичная фигня написана для сравнения 2-го символа первой строки, и т.д.

    Добавлено: гы) или может, вообще надо удалять слова вида: aaaaaaaaaaaaaaaaa bbbbbbbbb cc?
     
  6. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    А не проще сделать так:
    Делаем масив интегера для запоминания где побелы
    делаем два масива стринга один копия файла, другой правим
    А потом проверяем символы между пробелами тоесть слова на одинаковость и вырезаем
     
  7. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    может, и проще выйдет. и думаю, намного правильней)
    но вот если человек даже не может объяснить задачу (условие задачи), то я тут - пас)
    а код немного бредовый, там не разберешься(
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей