Saltar al contenido
EjemplosEnglishEspacio →

Agenda de contactos

Agrega, lista y busca contactos en una agenda que crece.

Nivel
Avanzado
Conceptos:
Entrada y salida
Arreglos
Redimensionar
Repetir
Segun
Texto
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Redimensionar hace crecer dos arreglos paralelos cada vez que agregas un contacto. Un menú con Segun dentro de Repetir ... Hasta Que organiza las opciones.

Código

contacts.psc · 48 líneas
Algoritmo Agenda    Definir nombres, telefonos, buscado Como Caracter    Definir total, opcion, i Como Entero    Definir encontrado Como Logico    total <- 0    Dimension nombres[1], telefonos[1]    Repetir        Escribir ""        Escribir "1. Agregar   2. Ver todos   3. Buscar   4. Salir"        Leer opcion        Segun opcion Hacer            1:                total <- total + 1                Redimensionar nombres[total]                Redimensionar telefonos[total]                Escribir "Nombre:"                Leer nombres[total]                Escribir "Teléfono:"                Leer telefonos[total]                Escribir "Contacto guardado."            2:                Si total = 0 Entonces                    Escribir "La agenda está vacía."                SiNo                    Para i <- 1 Hasta total Hacer                        Escribir i, ". ", nombres[i], " - ", telefonos[i]                    FinPara                FinSi            3:                Escribir "¿A quién buscas?"                Leer buscado                encontrado <- Falso                Para i <- 1 Hasta total Hacer                    Si Mayusculas(nombres[i]) = Mayusculas(buscado) Entonces                        Escribir nombres[i], ": ", telefonos[i]                        encontrado <- Verdadero                    FinSi                FinPara                Si NO encontrado Entonces                    Escribir "No encontré a ", buscado, "."                FinSi            4:                Escribir "¡Hasta pronto!"            De Otro Modo:                Escribir "Opción no válida."        FinSegun    Hasta Que opcion = 4FinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo AgendaSíNoSíNoSíNo1234De Otro ModoNoSíAlgoritmo AgendaAlgoritmo AgendaDefinir nombres, telefonos, buscado Como CaracterDefinir nombres, telefonos,buscado Como CaracterDefinir total, opcion, i Como EnteroDefinir total, opcion, i ComoEnteroDefinir encontrado Como LogicoDefinir encontrado Como Logicototal <- 0total <- 0Dimension nombres[1], telefonos[1]Dimension nombres[1],telefonos[1]Escribir ""Escribir ""Escribir "1. Agregar 2. Ver todos 3. Buscar 4. Salir"Escribir "1. Agregar 2. Vertodos 3. Buscar 4. Salir"Leer opcionLeer opcionSegun opcion Haceropciontotal <- total + 1total <- total + 1Redimensionar nombres[total]Redimensionar nombres[total]Redimensionar telefonos[total]Redimensionar telefonos[total]Escribir "Nombre:"Escribir "Nombre:"Leer nombres[total]Leer nombres[total]Escribir "Teléfono:"Escribir "Teléfono:"Leer telefonos[total]Leer telefonos[total]Escribir "Contacto guardado."Escribir "Contacto guardado."Si total = 0 Entoncestotal = 0Escribir "La agenda está vacía."Escribir "La agenda estávacía."Para i <- 1 Hasta total HacerPara i <- 1 Hasta totalEscribir i, ". ", nombres[i], " - ", telefonos[i]Escribir i, ". ", nombres[i]," - ", telefonos[i]Escribir "¿A quién buscas?"Escribir "¿A quién buscas?"Leer buscadoLeer buscadoencontrado <- Falsoencontrado <- FalsoPara i <- 1 Hasta total HacerPara i <- 1 Hasta totalSi Mayusculas(nombres[i]) = Mayusculas(buscado) EntoncesMayusculas(nombres[i]) =Mayusculas(buscado)Escribir nombres[i], ": ", telefonos[i]Escribir nombres[i], ": ",telefonos[i]encontrado <- Verdaderoencontrado <- VerdaderoSi NO encontrado EntoncesNO encontradoEscribir "No encontré a ", buscado, "."Escribir "No encontré a ",buscado, "."Escribir "¡Hasta pronto!"Escribir "¡Hasta pronto!"Escribir "Opción no válida."Escribir "Opción no válida."Hasta Que opcion = 4opcion = 4FinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

 1. Agregar   2. Ver todos   3. Buscar   4. SalirRespuesta del usuario: 1Nombre:Respuesta del usuario: AnaTeléfono:Respuesta del usuario: 555-1234Contacto guardado. 1. Agregar   2. Ver todos   3. Buscar   4. SalirRespuesta del usuario: 1Nombre:Respuesta del usuario: LuisTeléfono:Respuesta del usuario: 555-9876Contacto guardado. 1. Agregar   2. Ver todos   3. Buscar   4. SalirRespuesta del usuario: 21. Ana - 555-12342. Luis - 555-9876 1. Agregar   2. Ver todos   3. Buscar   4. SalirRespuesta del usuario: 3¿A quién buscas?Respuesta del usuario: luisLuis: 555-9876 1. Agregar   2. Ver todos   3. Buscar   4. SalirRespuesta del usuario: 4¡Hasta pronto!

Desafío

Agrega una opción para contar cuántos contactos empiezan con una letra dada.

Ver pista

Compara Mayusculas(Subcadena(nombres[i], 1, 1)) con la letra que leíste.

Abrir en Codoritmo