Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста с программой (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.

ОТВЕТЫ
Мне кажется, что эта программа неверна из-за отсутствия реализации про k-ую строку. Она выдает длину первой строки, а надо k-ой. Как это сделать - просто ввести счетчик на цикле, или использовать ту самую k.
Итого код:
var f:text;
s:string;
max,n,k:longword;//longword - беззнаковый аналог integer (если не будет работать, надо заменить обратно на intger)
begin
read(k);//Или откуда там мы берем это число k..
assign(f,1.txt);
reset(f);
readln(f,s);
n:=length(s);
max:=n;
while (not eof(f)) and (kgt;0) do
begin
k-=0;
readln(f,s);
if length(s)gt; max then max:=length(s);
end;
n:=length(s);
while not eof(f) do begin
readln(f,s);
if length(s)gt; max then max:=length(s);
end;
close(f);
writeln(Длина самой длинной строки: ,max);
writeln(Длина k строки: ,n);
writeln(Произведение длин самой длинной и k-ой строки: , max*n);
end.

Обращайтесь (/обращайся), если что-то не понятно, я попробую объяснить, причем как в этом решении, так и вообще в самом принципе решения.
270
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам