(*********************************************************** * * * DCV na PGM * * * * Autor: Jan Pacner * * * * Zadani: * * zadame vetu (string), * * program vypise pocet znaku? (mezera se nepocita) * * a pocet pismen * * * * made 24.2.2008 20:05 and last modified 24.2.2008 21:35 * * * ***********************************************************) program veta_beze_mezer; var input,output:string[99]; pruchod:byte; pismen:integer; //pocet:byte; begin writeln ('napis nejakou vetu a ja Ti ji vypisu bez mezer'); pismen:=0; readln (input); (* PRVNI zpusob (velmi pomaly ale 100% spolehlivy) *) for pruchod:=1 to length(input) do begin if not(input[pruchod]=' ') then output:=concat(output,copy(input,pruchod,1)); end; writeln (length(output)); (* pocet pismen *) for pruchod:=1 to length(input) do begin if (input[pruchod] in ['A'..'Z']) or (input[pruchod] in ['a'..'z']) or (ord(input[pruchod]) in [195..197]) then pismen:=pismen+1; end; writeln ('pocet pismen v zadane vete je: ',pismen); (* DRUHY zpusob (ve velkem textu mnohonasobne rychlejsi, ve velmi kratkem textu (cca 5 mezer) pomalejsi nez vyse uvedeny) *) //pocet:=0; pismen:=0; repeat for pruchod:=1 to length(input) do begin if input[pruchod]=' ' then begin delete(input,pruchod,1); end; end; //pocet:=pocet+1; until pos(' ',input)=0; //writeln ('po ',pocet,' prochodech timto cyklem'); writeln (length(input)); readln; end.