Informatică, întrebare adresată de Razor999, 9 ani în urmă

Se da un fisier in care fiecare rind contine cel mult 255 de caractere. Sa se afiseze cuvintul de lungime maximala. In pascal va rog mult !!!


stassahul: Daca sint mai multe cuvinte de lungime maximala, trebuie pe toate?
stassahul: Sau trebuie pe primul
Razor999: Pe toate

Răspunsuri la întrebare

Răspuns de Utilizator anonim
1
Succes în continuare!
Anexe:
Răspuns de stassahul
3
var

 s:string;
 i,n,j,max:integer;
 t:text;
 
begin

 assign(t,'fisier.in');
 reset(t);
 
 read(t,s);
 
 close(t);
 
 max:=1;
 
 for i:=1 to length(s) do //gasim lungimea maximala 
  begin
  
  if i=length(s) then //daca cuvintul e ultimul in enunt
   if (i-j)>max then max:=i-j;
   
  if s[i]=' ' then //daca cuvintul nu e ultimul in enunt
   begin
   if (i-j-1)>max then max:=i-j-1;
   j:=i;
   end;
   
  end;
  
 for i:=1 to length(s) do //gasim ce cuvint are lungimea gasita
  begin
  
  if i=length(s) then //daca cuvintul gasit e ultimul
   if (i-j)=max then 
    for n:=j+1 to i do
     write(s[n]);
    
  if s[i]=' ' then //daca cuvintul nu e ultimul
   begin
   if (i-j-1)=max then 
    for n:=j+1 to i do
     write(s[n]);
     j:=i;
   end;
   
  end;

end.

stassahul: Nu am prea inteles daca iti trebuie afisarea doar a unui cuvint cu lungime maximala, deci am facut ca sa afiseze pe toate
stassahul: Daca iti trebuie doar unul foloseste acest cod:
stassahul: for i:=1 to length(s) do //gasim ce cuvint are lungimea gasita
begin

if i=length(s) then //daca cuvintul gasit e ultimul
if (i-j)=max then
begin
for n:=j+1 to i do
write(s[n]);
exit;
end;

if s[i]=' ' then //daca cuvintul nu e ultimul
begin
if (i-j-1)=max then
begin
for n:=j+1 to i do
write(s[n]);
exit;
end;
j:=i;
end;

end;
stassahul: Sa pui aceasta secventa in loc de al doilea for
Alte întrebări interesante