Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 046 Text  (Citit de 2975 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« : August 16, 2011, 18:14:16 »

 Buna. Ma chinui cu problema asta de ceva timp si nu-i dau de capat. Mai intai am incercat cu algoritmul asta, de mine facut :

Cod:
program textulet;
var f:text;t:string;i,n,cuv,lit:integer;
begin
 assign(f,'text.in');
 reset(f);
 readln(f,t);
 close(f);
 i := 0; n := length(t); cuv := 0; lit := 0;
 while i < n do
 begin
   i := i + 1;
   if (ord(upcase(t[i])) >= 65) and (ord(upcase(t[i])) <= 90) then
   begin
     cuv := cuv + 1;
     while (ord(upcase(t[i])) >= 65) and (ord(upcase(t[i])) <= 90) and (i <= n) do
     begin
       lit := lit + 1;
       i := i+1;
     end;
   end;
 end;
 assign(f,'text.out');
 rewrite(f);
 write(f,int(lit/cuv):0:0);
 close(f);
end.

 Apoi, cu putin ajutor am incercat cu asta:
Cod:
program Text2;
var f:text;t:string;n,i:longint;k:0..1;cuv,lit:integer;
begin
 assign(f,'text.in');
 reset(f);
 readln(f,t);
 close(f);
 n := length(t); k := 0; lit := 0;cuv := 0;
 for i := 1 to n do
 begin
  if (upcase(t[i]) >='A') and (upcase(t[i]) <= 'Z') then
  begin
    lit := lit + 1;
    if k = 0  then
    begin
      cuv := cuv + 1;
      k := 1;
    end;
  end
                                                    else
   k := 0;
 end;
 assign(f,'text.out');
 rewrite(f);
 write(f,int(lit/cuv));
 close(f);
readln;
end.

 Primesc doar 40 de puncte. Unde e greseala?

  Multumesc

Foloseste tag-ul code cand postezi cod. (Uita-te cum am editat mesajul.) Smile .
« Ultima modificare: August 16, 2011, 19:28:29 de către FMI - Paul-Dan Baltescu » Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #1 : August 16, 2011, 19:38:26 »

 Multumesc pentru edit. Asa o sa fac de acum Smile
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #2 : August 16, 2011, 20:49:45 »

Incearca sa citesti textul caracter cu caracter. Nu cred ca iti intra toate caracterele intr-un singur string Smile
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #3 : August 17, 2011, 08:10:45 »

 Salut. Multumesc de raspuns. Am incercat sa citesc caracter cu caracter si da am luat in loc de 40 , 90 de puncte. Dar nu inteleg! Cum adica nu incape intr-un singur string? Pai string e sir de caractere nu?

   O zi buna
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #4 : August 17, 2011, 09:20:39 »

Nu incape pentru ca string-ul din Pascal poate sa retina maximum 255 de caractere.
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #5 : August 17, 2011, 09:24:28 »

 Da, chiar! Intr-adevar asa e, am uitat Sad Multumesc frumos Smile
Memorat
GRazvan
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #6 : August 17, 2011, 13:05:17 »

 Mai am o intrebare referitoare la problema asta. Cu un algoritm corect, pentru exemplul: "cota 1440" ce va considera cuvant? cota sau cota si 1440? Multumesc:)
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #7 : August 17, 2011, 14:05:17 »

Cod:
un cuvant fiind definit ca o secventa continua maximala de caractere ale alfabetului englez ('a' .. 'z' , 'A' .. 'Z').

Cuvintele sunt alcatuite doar din litere.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #8 : August 17, 2011, 21:53:36 »

GRazvan, foloseste ansistring (asa doar pentru cultura ta generala). Sunt nistre stringuri care merg marite cat de tine memoria (adica poti face si string de 1000... daca ai suficienta memorie), doar mananca multa memorie.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines