Для каждой строки файла найти слово, содержащее наибольшее число различных букв и поместить его в файл G - Turbo Pascal

  1. помогите решить задачку) Создать текстовый файл F. Для каждой строки найти слово, содержащее наибольшее число различных букв и поместить его в файл G.


textual

Код к задаче: «Для каждой строки файла найти слово, содержащее наибольшее число различных букв и поместить его в файл G - Turbo Pascal»

Var f,g:text;
    i,max,k:byte;
    s,st,sm:string;
    mn:set of char;
Begin
    writeln('Окончание ввода " "');
    Assign(f,'in.txt');Rewrite(f);
    Repeat
     write('Строка: ');
     readln(s);
     if s<>' ' then writeln(f,s);
    Until s=' ';
    Close(f);Reset(f);
    Assign(g,'out.txt');Rewrite(g);
    While not Eof(f) do
    Begin
      readln(f,s);
      s:=s+' ';
      max:=0;sm:='';
      While Pos(' ',s)>0 do
      Begin
        st:=Copy(s,1,Pos(' ',s)-1);
        Delete(s,1,Pos(' ',s));
        k:=0;mn:=[];
        For i:=1 to Length(st) do
        Begin
          if st[i] in mn then Continue;
          inc(k);
          mn:=mn+[st[i]];
        End;
        if k>max then
        Begin
          max:=k;
          sm:=st;
        End;
      End;
      writeln(g,sm);
    End;
    Close(f);Close(g);
    writeln('Результат в файле "out.txt"');
    readln;
End.

СДЕЛАЙТЕ РЕПОСТ

7   голосов, оценка 3.857 из 5



Похожие ответы
  1. Здравствуйте, Вы не могли бы помочь с задачей контрольной работы? "Составить программу. В списке целых чисел удалить из каждой группы подряд идущих одинаковых элементов все, кроме одного." Буду премного благодарен. ------------------------------------------------ С Уважением, superuser!

  1. Строки и множества. Случайным образом заполнить множество рабочих дней в цикле из 6 повторений.

  1. Здравствуйте, такая задача. Есть матрица (n на 2n) . Найти номер первой строки все элементы которой кратны 5. Использовать только цикл while. Поиск решения сделать с процедурой. Входные данные и результат выписать в текстовый файл. Я написал саму программу. Однако появилась такая проблема. После считывания данных программа не закрывается (остается висеть черным окном). После пошаговой проверки оказалось, что проблема в процедуре. Наверное, нет выхода из цикла. Помогите, пожалуйста найти ошибку.

  1. Дана прямоугольная матрица A(n*m). Заменить наименьший элемент каждой строки, начиная со второй, наибольшим элементом предыдущей строки.

  1. Преобразовать двоичное число в виде строки в десятичное число

  1. 1. В прямоугольной матрице размером Т*М, имеющей имя МАТР содержаться целые числа. Т - число строк, М - число столбцов. Ввести элементы матрицы с клавиатуры. Определить и вывести на экран сумму элементов в каждой строке. Определить строку с максимальным значением этой суммы и вывести ее номер на экран.

  1. Подскажите как решить эту задачу на паскале с помощью строк. 1.Дан текст, слова в котором разделены хотя бы одним пробелом. Найти самое короткое слово в тексте.

  1. помогите пожалуйста! надо составить программу для вывода на экран строки двумерного массива с наибольшим чётным числом.

  1. Найти произведение элементов в каждой строке массива размером MxN, элементы которого вводятся с клавиатуры.

  1. зарегистрироваться в файл двумерный A массив размером n*n. работу программы нужна начат с чтения матрицы из файла и Параллельно изображат на графическом экране. матрицу нужно изменять по следующему принципу,передвигая строку и столбец поместить Наибольший элемент матрицы на верхний левый угол' в nклетке (1,1) . тем же самым способом нужно поступить с матрицои , которая является производным от предыдущей, не принимая во внимание первую строку и столбец. Наибольший элемент второй матрицы должен появится в клетке (2,2).так продолжая сформировать главную диагональ матрицы