Practico 5 Ejercicio 2 parte b

Practico 5 Ejercicio 2 parte b

de Gonzalo Cabrera Quintero -
Número de respuestas: 1

Buenas,

Para este problema, probé con el siguiente codigo:

program Ejercicio2b;

var

letra, oracion, letrainicial : char;

contador : integer;

begin

(*ingresar datos*)

write('Letra: ');

readln(letra);

write('Oracion: ');

(*inicializar contadores*)

contador := 0;

(*saltear espacios*)

repeat

read(oracion);

until oracion <> ' ';

(*asignar letra inicial*)

letrainicial := oracion;

while oracion <> '.' do

begin

(*leer palabra*)

repeat

read(oracion);

until (oracion = ' ') or (oracion = '.');

(*incrementar contador*)

if letrainicial = letra then

contador := contador + 1;

if oracion <> '.' then

begin

read(oracion);

if oracion <> ' ' then

letrainicial := oracion;

end;

end;

writeln('La oracion tiene ', contador:1, ' palabras que comienzan con ', letra)

end.


El problema que me da este codigo, es que si por ejemplo eligo la letra "s" y escribo la oracion "Soy lo que soy." no me contabiliza 2 "s" sino solo una, ya que me distingue la "s" de la "S" . ¿Alguna idea de como encarar el hecho de que no me distinga mayusculas de minusculas?

Saludos,

Gonzalo

En respuesta a Gonzalo Cabrera Quintero

Re: Practico 6 Ejercicio 2 parte b

de Guillermo Rey Martusciello -
Buenas,
la idea del ejercicio es hacerlo con la letra misma, es decir que si se ingresa una letra minuscula, se busca esa letra minuscula. En caso de que te ingresen una letra minuscula y quieras buscar la misma tambien en mayuscula (o viceversa) podes buscar ambas! Aqui hay un codigo que te da una letra mayuscula dada la minuscula (se puede hacer lo mismo en el otro sentido):
program getMayus;
var
carminus, carmayus: char;
dif: integer;
begin
write('escribir caracter minuscula: ');
readln(carminus);
dif := ord('Z') - ord('z');
carmayus := chr(ord(carminus) + dif);
writeln('el caracter en mayuscula es: ', carmayus);
end.

En caso de querer hacerlo de todas las formas, es decir si te pasan una mayuscula o una minuscula, primero deberias ver si la letra que te dan es mayuscula o minuscula. Esto lo haces: si el ord(caracterqueingresan) es mayor que ord('A') entonces es mayuscula, en el otro caso seria minuscula. Ahi calculas cuanto le tenes que sumar al ord(caracterqueingresan) para convertirlo a mayuscula o minuscula y buscar ambas letras.
Ojo que el ejercicio es del practico 6, no el 5.
Espero haya quedado claro, cualquier cosa volve a preguntar!
Saludos