Помощь в Bp7

Тема в разделе "Pascal and Delphi", создана пользователем -, 16 янв 2011.

  1. Гость

    Дан текстовый файл. Найти самое длинное слово и слово с самым большим количеством слогов

    Знаю что тут надо
    razd=[':','.',','{и т.д}];
    количество слогов считать надо ввести [a,o,e,y,u,i,ao,ae,oe,oa и т.д.] а как это все сложить в прогу у мня догадок нету.....подскажите мысли
     
  2. Гость

    Код (Delphi):
    var
    temp,s,max:string;
    i:integer;
    begin
    writeln('Введите строку...');
    readln(s);
    max:='';
    for i:=1 to length(s) do
    begin
    if s[i]<>' ' then
    temp:=temp+s[i];
    if (s[i]=' ') or (i=length(s)) then
    begin
    if length(temp)>length(max) then
    max:=temp;
    temp:=''
    end;
    end;
    writeln('Максимальное слово в строке - ',max)
    end.
    это поиск по введеному тексту....а надо по файлу?!как?!я блин тока поступил а уже такую чушь на заочке толкаю....и как с этими слогами быть?!кто нибудь подскажет?!
     
  3. Гость

    и что нету на форуме програмистов которые не могли бы подсказать?!быть такого не может
     
  4. acorn

    acorn PHP Developer
    Web Team

    Регистрация:
    29 авг 2004
    Сообщения:
    599
    Симпатии:
    3
  5. romanriddick

    romanriddick Гость

    http://codeby.net/forum/threads/40754.html?pi...mp;#entry199322
    уже отвечал севодне)))

    Добавлено: а вот со слогами будет тяжелее ...
    нужно в етом же двумерном массиве искать по шаблону гласные буквы
    чем больше в слове гласны которые не идут сразу (идут после других букв))) тем больше в слове слогов!!!!
     
  6. Гость

    var maxs,s,s2:string;f:file of char;c:char;w:boolean; maxe,e,i:integer;
    begin
    assign(f,'file1.txt');reset(f);
    w:=false;maxs:=''; maxe:=0;s2:='';
    while not eof(f) do begin
    read(f,c);
    while (not eof(f))and(c<>' ') do begin s:=s+c;read(f,c);end;
    for i:=1 to length(s) do if pos(s,'eyuioa')<>0 then inc(e);
    if e>maxe then begin maxe:=e;s2:=s;end;
    if length(maxs)<length(s) then maxs:=s; s:='';
    while (not eof(f))and(c=' ') do begin read(f,c);end;
    end;
    close(f);
    writeln('Самое длинное слово=',maxs);
    writeln('А слогов то=',s2);
    readln;
    end.

    ну вот уже поудачней.....тока почемуто слово со слогами он выводит без первой буквы......и надо её доделать со знаками препинания...ведь слова же не тока пробелом разделяются
     
  7. romanriddick

    romanriddick Гость

    в строке
    while (not eof(f))and(c=' ') do begin read(f,c);end;
    стрите пробел c='' ... тогда зароботает...
    кстате не плохое решение!!!

    а по поводу

    "и надо её доделать со знаками препинания"

    вы ошибаетесь розделители -- только ентер и пробел
     
  8. Гость

    Ага.спасибо.Вот еще вопросик...
    Текст в док типо:saynogorsk forever togetheralla music
    Самое длинное слово:Togetheralla
    Слогов в слове:musi
    почему то текст даже менял выдает последнее слово и последнюю букву непишет?!
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    до этого нет обнуления e
    за последнюю букву - выходит из 1го while цикла по концу файла, а не по пробелу в с, поэтому последний считанный символ не учитывается в строку s.
     
Загрузка...

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