2.1. Secuencias de datos elementales¶
Ejercicio 2.1.1¶
Dada una secuencia de letras del alfabeto que finaliza con una marca '*', contar cuantas letras "A" hay en la secuencia.
Ejercicio 2.1.2¶
Dada una secuencia de letras del alfabeto que finaliza con la letra "Z", contar cuantas consonantes hay en la secuencia.
Ejercicio 2.1.3¶
Se dispone de una secuencia de caracteres y se desea obtener una secuencia de salida que resulte de copiar la secuencia de entrada, descartando el caracter "$".
Ejercicio 2.1.4¶
Se dispone de una secuencia de números de socios, y se desea saber la cantidad de socios que están registrados.
Ejercicio 2.1.5¶
La secuencia de socios del problema anterior tiene el inconveniente de que los números están ordenados pero no son correlativos. Se desea generar una secuencia que contenga los números de socios que no figuran en la secuencia de socios.
Ejercicio 2.1.6¶
Dada una secuencia de enteros que almacena la cantidad de habitantes de las ciudades capitales de las 23 provincias de la República Argentina, discriminados 4 categorías: menores de 18 años (varones y mujeres) y mayores de 18 años (varones y mujeres). Se pide determinar la población total y los siguientes porcentajes: masculinos, femeninos, mayores de 18 y menores de 18.
Ejercicio 2.1.7¶
Se tiene una secuencia de enteros que contiene todos los CUIT de los empleados de una empresa, la misma termina con el CUIT 0. Para evitar largas esperas en los días de pago, la empresa necesita organizarlos de acuerdo al último dígito de su documento, generar una secuencia con los CUIT de las personas que su número de documento termine con 0, 1, 2 o 3.
Ejercicio 2.1.8¶
Teniendo en cuenta el ejercicio anterior, se solicita que la secuencia de salida sea una secuencia de caracteres y los CUIT se separen unos de otros con el caracter "-".
Ejercicio 2.1.9¶
Se dispone de una secuencia de caracteres. Se desea determinar la cantidad de palabras que comienzan con la letra 'I'.
Ejercicio 2.1.10¶
Se dispone de una secuencia de caracteres. Se desea permita contar la cantidad de palabras que comienzan con una letra dada.
Ejercicio 2.1.11¶
Dada una secuencia de caracteres, determinar la cantidad de palabras de 4 caracteres (letras)
Ejercicio 2.1.12¶
Se dispone de una secuencia de caracteres. Se desea listar las palabras que comiencen con "ALG".
Ejercicio 2.1.13¶
A partir del ejercicio anterior, determinar el porcentaje que representan las palabras que comienzan con "ALG" sobre todas las palabras de la secuencia.
Ejercicio 2.1.14¶
Se dispone de una secuencia de caracteres y se desea saber la cantidad de caracteres (incluidos los espacios) que existen entre una coma y la siguiente. Se debe considerar que puede haber más de un par de comas, y que las subsecuencias inicial y final deben descartarse por no cumplir la condición enunciada. Supóngase que las comas son siempre contiguas al último caracter de la palabra.
Ejercicio 2.1.15¶
Se desea saber la cantidad promedio de palabras que contienen las oraciones de una secuencia de caracteres. Supóngase que los puntos son siempre contiguos al último caracter de la palabra. La secuencia finaliza con una marca.
Ejercicio 2.1.16¶
Se dispone de una secuencia de números de DNI asignados a un circuito electoral, generar otra secuencia de números que contenga los DNI múltiplos de 3.
Ejercicio 2.1.17¶
Se desea calcular el costo de un telegrama, que se determina en función del número de palabras (que vale V1 cada una), salvo que el promedio de letras por palabra supere las cinco letras, caso en que cada palabra vale V2.
Ejercicio 2.1.18¶
Escribir un algoritmo que produzca una secuencia de salida que contenga una oración formada por por las palabras en posición par de cada oración de una secuencia texto de entrada, que además comienzan con la letra 'M'.
Ejercicio 2.1.19¶
Dada una secuencia de caracteres, generar otra secuencia con todas las palabras de tres caracteres. Informar el porcentaje de las mismas, sobre el total de palabras de la secuencia de entrada. Considerar que puede haber más de un blanco entre palabras.
Ejercicio 2.1.20¶
Se dispone de dos secuencias texto formadas por oraciones bimembres (sujeto y predicado, separados por comas ‘,’). Se desea una secuencia texto de salida formada por oraciones bimembres, de la siguiente forma:
El sujeto, de la secuencia 1, y el predicado, de la secuencia 2.
Al finalizar informar cuantas oraciones tiene cada secuencia.
Ejercicio 2.1.21¶
Se dispone de dos secuencias texto formadas por oraciones bimembres (sujeto y predicado, separados por comas ‘,’). Se desea una secuencia texto de salida formada por oraciones bimembres, de la siguiente forma:
El sujeto, de la secuencia 2, y el predicado, de la secuencia 1.
Al finalizar informar cuantas oraciones tiene cada secuencia.
Ejercicio 2.1.22¶
La empresa Ideas Argentinas S.A. posee datos de sus empleados en dos secuencias de caracteres; la primera secuencia (Sec1) formada por los nombres (uno por persona) de los empleados separados por blancos y la segunda secuencia (Sec2) posee los números de documento de cada uno de los empleados (palabras de 8 dígitos numéricos).
Ambas secuencias poseen la misma cantidad de datos, es decir al primer nombre de la primera secuencia le corresponde el primer número de documento de la segunda secuencia y así sucesivamente. La secuencia de números de documentos no posee espacios en blanco ni ningún otro tipo de caracter que separe un número de documento de otro.
A la empresa le interesa tener en una nueva secuencia (Sec3) los datos de todas aquellas personas que cumplan la condición de que el nombre se encuentre en una posición impar.
La nueva secuencia debe generarse de la siguiente manera: el número de documento seguido (sin espacios) por una coma y luego (sin espacios) por el nombre y seguido al nombre un #.
Ejercicio 2.1.23¶
Realice un algoritmo para el enunciado del ejercicio 1.22, pero considerando que los datos que se deben copiar en la Sec3 son los de aquellas personas que cumplan la condición de que: el número de documento comienza con un número impar.
Ejercicio 2.1.24¶
Realice un algoritmo para el enunciado del ejercicio 1.22, pero considerando que los datos que se deben copiar en la Sec3 son los de aquellas personas que cumplan la condición de que: el nombre no comienza con una vocal.
Ejercicio 2.1.25¶
Dada una secuencia texto de entrada que contiene palabras alfanuméricas, escribir un algoritmo que genere dos secuencias de salida. Una de ellas contendrá solo las palabras de la secuencia original que comienzan con vocal, en las cuales se reemplazarán todas las vocales por ‘#’, por ejemplo: entrada 'avión1', salida '#v##n1' y la otra será una secuencia numérica en la que se almacenarán las cantidades de vocales que se encontraron en cada una de las palabras que cumplieron la condición. Por final de proceso se deberá informar el promedio de palabras por oración.
Ejercicio 2.1.26¶
Se posee 2 secuencias (S1 y S2) con las cuales se desea generar una nueva secuencia (SAL) donde se intercalen las palabras de las secuencias de entrada, de la siguiente manera: copiar de S1 aquellas palabras que empiezan y terminan con la misma letra y de S2 aquellas palabras que posean al menos un digito numérico y además estén en posición par.
Ejercicio 2.1.27¶
Elaborar un procedimiento que dada una secuencia de caracteres como entrada genere otra del mismo tipo como salida.
La secuencia de caracteres que se recibe incluye números de tarjetas de crédito, donde cada número tiene 16 dígitos. Se desea obtener como resultado una nueva secuencia de salida con los números de tarjetas válidos.
El algoritmo para la validación de números de tarjetas de crédito es el siguiente:
Para entender mejor el método usaremos un número correcto: 4013-7001-0977-4812, al que nos referiremos en el texto. Nos centramos en los caracteres que ocupan posiciones impares.
4 0 1 3 7 0 0 1 0 9 7 7 4 8 1 2
Por cada uno de ellos obtenemos el doble del valor que representan. Si el número resultante es menor que 9, se deja tal cual, en caso contrario, se le resta 9. En nuestro ejemplo: 4 * 2 = 8; 1 * 2 = 2; 7 * 2 = 14, mayor que nueve, se le resta 9. 14 - 9 = 5; y así sucesivamente. Si el número resultante de la suma de las multiplicaciones y de los dígitos en posición par, es múltiplo de 10, y a la vez menor o igual a 150, es un número de tarjeta válido.
Para nuestro ejemplo: 8+0+2+3+5+0+0+1+0+9+5+7+8+8+2+2 = 60; por lo tanto el número es válido.
Ejercicio 2.1.28¶
La galería de pintura y arte nacional, PINTA DE ARGENTINA, almacena información sobre los artistas y sus obras de arte en secuencias de caracteres. Durante todo el año, las obras de arte son expuestas en eventos de subasta y exposición, en los cuales se comercializan al público en general.
A fin de año la Comisión Directiva de la Galería solicita que, a partir de toda esa información, se generen algunos informes.
Se debe tener en cuenta lo siguiente:
- En la secuencia ARTISTAS, se almacena el estilo de arte ('R' – Renacentista, 'M' – Arte Moderno, 'B' – Barroco, 'S' – Surrealismo), el nombre de cada artista, lugar de nacimiento, edad y cantidad de obras por artista.
- Los datos de cada artista están separados entre si por el símbolo '+' y finalizan con el símbolo '?'.
- En la secuencia OBRAS, se almacena el nombre de la obra, el año en que fue hecha, su precio, precedido siempre del signo '$' (solo 3 digitos) y su estado ('V' – Vendido, 'R' – Reservado, 'U' – Obra Única).
- Todos los datos de las obras están separados por el símbolo ',' y finalizan con el símbolo '/'.
- El creador de cada obra se determina de acuerdo al dato 'cantidad de obras' de la secuencia ARTISTAS, por ej.: el autor RENE BARTOL tiene 2 obras, por lo cual las primeras 2 obras de la secuencia OBRAS le pertenecen, las siguientes 6, pertenecen a JUAN B JUSTO, etc.
A continuación un ejemplo de ambas secuencias:
SECUENCIA ARTISTAS
M+RENE BARTOL+ROSARIO+34+2?R+JUAN B JUSTO+NEUQUEN+61+5?……..
SECUENCIAS OBRAS
SOL Y PARANA,1997,$913,V/GRITO DE ESPERANZA,2003,$235,R/PENAS,1997,$781,V/………
A partir de lo expuesto anteriormente, se pide:
- Generar una secuencia de salida con información de los artistas Renacentistas. La secuencia debe contener el nombre del artista, su estilo de arte, seguido de sus obras (nombre y año de creación). Los datos correspondientes al mismo artista deben separarse entre sí con el signo '+' y finalizar con el signo '?'.
- Al final del proceso informar:
- la mayor cantidad de obras vendidas por un artista.
- el porcentaje de obras de artistas "renacentistas" sobre el total de obras.
Ejercicio 2.1.29¶
Dado el ejercicio anterior, pensar: cómo cambia el algoritmo solución en caso de que el 'estilo de arte' se indique al principio de los datos de cada artista en la secuencia de artistas? Por qué? Hacer el algoritmo.
Ejercicio 2.1.30¶
El siguiente es un ejercicio del primer recuperatorio del primer parcial del año 2017:
La AFIP dispone de dos secuencias de caracteres:
-
PERSONAS Contiene los siguientes datos de personas físicas o Empresas: nombre completo y fecha (de nacimiento o de creación, respectivamente), agrupadas por provincias. No existe carácter separador entre personas, el fin de cada provincia se indica con el carácter &.
Ejemplo:María Góm-14021977Carlos Alberto Rodriguez-20061990....&Lionel Messi-24061987....&....{fin}
nombre-ddmmaaaanombre-ddmmaa....&
-
CUIT: contiene la Clave Unica de Identificación Tributaria de las personas de la secuencia PERSONAS (existiendo una correspondencia una a una, es decir la primer persona con el primer cuit, la segunda con el segundo y asi sucesivamente) Cada número de CUIT se almacena por medio de 11 caracteres: los 2 primeros indican el tipo, los 6 siguientes el número de DNI (en caso de personas físicas) o de sociedad (en caso de Empresas) y el último es un digito verificador.
Ejemplo:**20123456786**23134567823**30712434445**
Los tipos pueden ser:20, 23, 24 y 27 para Personas Físicas y 30, 33 y 34 para Empresas.
Se solicita.
- Generar una secuencia de salida que contenga DNI, y el nombre completo de todas las personas físicas cuyo nombre comience con vocal.
- Para cada Provincia calcular el total de personas físicas y el porcentaje sobre el total de la provincia.
Ejercicio 2.1.31¶
El siguiente es un ejercicio del primer parcial del año 2017: La empresa TICKET-TEC ha generado una secuencia de caracteres con información de sus ventas para los eventos de los últimos 3 meses, cuya estructura se describe a continuación. Inicialmente existe el nombre del local de los eventos, cuya longitud se desconoce, termina con un #; a continuación se tiene la información de todos los tickets vendidos para ese local, separado cada ticket del siguiente con el caracter !, y al final de todas las ventas para ese local, el caracter &. Por último la marca de fin de secuencia. También en el caso de butaca se desconoce la longitud del número, termina con un guión.
EJEMPLO
Teatro Opera#270520171A45-2030!270520173D120-2230!280520172C233-2030!&Galpon de las
Luces#070720171C5-2030!301020172A233-2230!&{fin}
local de eventos#Fecha del evento[ddmmaaaa] codigo del evento[1..3] butaca [sector [A,C o D], número] - horario evento [hhmm]!
Solo hay dos horarios 20:30 y 22:30.
La empresa solicita un algoritmo que cumpla con las siguientes consignas:
-
Generar una nueva secuencia de salida con el mismo formato, que contenga los tickets correspondientes a un mes ingresado por el usuario.
-
Informar total general de tickets vendidos, total de tickets por evento y porcentaje de cada uno sobre el total general.
Ejercicio 2.1.32¶
Se posee una secuencia con los mensajes internos enviados entre los empleados de una empresa, la secuencia está formada de la siguiente manera: 3 caracteres para el destino, 3 caracteres para el origen, 3 caracteres que indican la cantidad de caracteres que tiene el mensaje y el mensaje. No existe ningún carácter que separe un mensaje de otro. se pide:
- Escribir una secuencia de salida con todos los mensajes (incluyendo origen y destino) que van hacia el área de Mantenimiento (que destino comience con 1).
- Contar la cantidad de mensajes que se dirigen hacia el área de sistemas (que destino comience con 23).