Contar+letras,+dígitos+y+espacios+en+blanco

=__**Contar letras, dígitos y espacios**__=

Escribir un programa que lea desde el teclado una secuencia de caracteres y diga
 * cuántos espacios en blanco,
 * cuántos dígitos y
 * cuántas letras se han leído.

El final de la entrada de datos será la entrada de un carácter fijado por el usuario del programa previamente a la introducción de la secuencia de caracteres.

NOTA: Para este programa, se debe considerar el alfabeto entra la A y la Z y no se considerarán ni las vocales acentuadas ni las letras 'ñ' y 'Ñ'.

**Utilizando el procedimiento** ReadLn **para leer cada uno de los caracteres. El programa pide letra a letra.** code format="pascal" PROGRAM ContarLetrasDigitosEspacios ; USES Crt ; CONST ESPACIO = ' ' ; VAR cCaracterFinal, cCaracterLeido : Char ; iContEspacios, iContDigitos, iContLetras : Integer ; BEGIN Writeln ('Programa que cuenta') ; Writeln ('las letras, los dígitos y los espacio en blanco escritos') ; Writeln ; Write  ('Escribe el caracter que utilizaras como CARACTER FINAL: ') ; ReadLN (cCaracterfinal) ;

iContEspacios := 0 ; iContDigitos := 0 ; iContLetras  := 0 ;

Write ('Escribe un carácter (', cCaracterFinal, ' para terminar): ') ; ReadLn (cCaracterLeido) ;

WHILE cCaracterLeido <> cCaracterFinal DO      BEGIN CASE UpCase (cCaracterLeido) OF         ESPACIO :    iContEspacios := iContEspacios + 1 ;

'0'..'9' :  iContDigitos  := iContDigitos  + 1 ;

'A'..'Z' :  iContLetras   := iContLetras   + 1 ; END ;

Write ('Escribe un carácter (', cCaracterFinal, ' para terminar): ') ; ReadLn (cCaracterLeido) ; END ;

Writel ; WriteLn ('Hasta el carácter ', cCaracterFinal, ', leídos: ') ; Writeln ('Espacios en blanco: ', iContEspacios) ; Writeln ('          Dígitos: ', iContDigitos) ; Writeln ('           Letras: ', iContLetras) ;

Writeln ; Readln ; END. code

**Utilizando el procedimiento** Read **para leer cada uno de los caracteres. El programa pide escribir la secuencia completa de caracteres**

code format="pascal" PROGRAM ContarLetrasDigitosEspacios ; USES Crt ; CONST ESPACIO = ' ' ; VAR cCaracterFinal, cCaracterLeido, cEspera : Char ; iContEspacios, iContDigitos, iContLetras : Integer ; BEGIN Writeln ('Programa que cuenta') ; Writeln ('las letras, los dígitos y los espacio en blanco escritos') ; Writeln ; Write  ('Escribe el caracter que utilizaras como CARACTER FINAL: ') ; ReadLN (cCaracterfinal) ;

iContEspacios := 0 ; iContDigitos := 0 ; iContLetras  := 0 ;

Write ('Escribe secuencia de caracteres terminada en el carácter ', cCaracterFinal, ' y pulsa RETURN: ') ; Read (cCaracterLeido) ;

WHILE cCaracterLeido <> cCaracterFinal DO        BEGIN CASE UpCase (cCaracterLeido) OF             ESPACIO :    iContEspacios := iContEspacios + 1 ;

'0'..'9' :  iContDigitos  := iContDigitos  + 1 ;

'A'..'Z' :  iContLetras   := iContLetras   + 1 ; END ;

Read (cCaracterLeido) ; END ;

Writeln ; WriteLn ('Hasta el carácter ', cCaracterFinal, ', leídos: ') ; Writeln ('Espacios en blanco: ', iContEspacios) ; Writeln ('          Dígitos: ', iContDigitos) ; Writeln ('           Letras: ', iContLetras) ;

Writeln ; cEspera := ReadKey ; END. code