• помогите, пожалуйста с программой (pascal), не знаю, где ошибка и как ее исправить
    задача: Найти произведение длин самой длинной и k-й строк.
    var f:text;
    s:string;
    max,n:integer;
    begin
    assign(f,'1.txt');
    reset(f);
    readln(f,s);
    n:=length(s);
    max:=n;
    while not eof(f) do
    begin
    readln(f,s);
    if length(s)> max then max:=length(s);
    end;
    close(f);
    writeln('Длина самой длинной строки: ',max);
    writeln('Длина k строки: ',n);
    writeln('Произведение длин самой длинной и k строк: ', max*n);
    end.

Ответы 1

  • Мне кажется, что эта программа неверна из-за отсутствия реализации про k-ую строку. Она выдает длину первой строки, а надо k-ой. Как это сделать - просто ввести счетчик на цикле, или использовать ту самую k.Итого код:var f:text;s:string;max,n,k:longword;//longword - беззнаковый аналог integer (если не будет работать, надо заменить обратно на intger)beginread(k);//Или откуда там мы берем это число k?..assign(f,'1.txt');reset(f);readln(f,s);n:=length(s);max:=n;while (not eof(f)) and (k>0) dobegink-=0;readln(f,s);if length(s)> max then max:=length(s);end;n:=length(s);while not eof(f) do beginreadln(f,s);if length(s)> max then max:=length(s);end;close(f);writeln('Длина самой длинной строки: ',max);writeln('Длина k строки: ',n);writeln('Произведение длин самой длинной и k-ой строки: ', max*n);end.Обращайтесь (/обращайся), если что-то не понятно, я попробую объяснить, причем как в этом решении, так и вообще в самом принципе решения.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years