La programación es el arte de crear instrucciones para que...
Diagramas de Flujo y Pseudocódigo: Representación de Procesos























Representación gráfica y evolución de la programación
Los algoritmos complejos necesitan representaciones visuales para ser comprendidos fácilmente. Por eso utilizamos diagramas de flujo y pseudocódigo para expresar la lógica de manera clara y estructurada.
La programación ha evolucionado desde sus inicios con el lenguaje máquina (instrucciones binarias directas), pasando por el lenguaje ensamblador (con nombres nemotécnicos), hasta los modernos lenguajes de alto nivel que son más cercanos al pensamiento humano. Esta evolución ha sido impulsada por principios clave como la abstracción, encapsulación, modularidad y jerarquía.
Un programa de calidad debe ser eficaz (cumplir su función correctamente), eficiente (usar bien los recursos), íntegro (ejecutar todas las operaciones necesarias), claro (fácil de leer) y portable (funcionar en diferentes plataformas).
💡 Tip práctico: Cuando estés aprendiendo a programar, no te preocupes por escribir código optimizado desde el principio. Primero enfócate en que tu solución funcione correctamente, luego podrás mejorar su eficiencia.

Ciclo de desarrollo del software
Crear software no es solo escribir código; es un proceso estructurado que comienza con identificar un problema y termina con un programa funcionando. Este ciclo incluye:
- Definición de necesidades y análisis del problema para entender qué debe hacer el programa
- Diseño de la solución usando algoritmos y diagramas
- Codificación en un lenguaje de programación
- Prueba y depuración para encontrar y corregir errores
Las etapas finales son la documentación (registrar cómo funciona el programa), la implementación (ponerlo en uso) y el mantenimiento (actualizarlo según sea necesario).
Además de las características técnicas, un buen programa debe ser usable (fácil de usar), mantenible (sencillo de modificar) y fiable (funciona correctamente siempre).
💡 Consejo útil: Dedica tiempo suficiente a la fase de diseño antes de empezar a programar. Un buen diseño previo te ahorrará muchas horas de correcciones más tarde.

Herramientas para el pseudocódigo
El pseudocódigo es como un borrador de tu programa: no es código real pero describe la lógica de manera que cualquiera pueda entenderla. Para trabajar con pseudocódigo podemos usar herramientas como PSeInt, que nos permite escribir y simular nuestros algoritmos.
En programación, necesitamos variables para almacenar datos temporalmente. Cada variable debe tener un nombre y un tipo que determine qué clase de información puede guardar:
- Entero: Números sin decimales como 1, 42 o -10
- Real: Números con decimales como 3.14 o -0.5
- Carácter: Letras, números o símbolos entre comillas como 'a' o "hola"
- Lógico: Valores verdadero o falso (booleanos)
💡 Dato importante: Elegir el tipo de dato adecuado es crucial no solo para que tu programa funcione correctamente, sino también para optimizar el uso de memoria.

Tipos de datos y operaciones básicas
Los tipos de datos determinan qué valores puede almacenar una variable y qué operaciones se pueden realizar con ella. Cada tipo tiene características específicas:
Los enteros y reales permiten trabajar con valores positivos y negativos, pero los enteros no pueden tener decimales. Los caracteres se definen entre comillas y pueden ser cualquier símbolo. Los valores lógicos solo pueden ser verdadero o falso, perfectos para condiciones.
En PSeInt, las variables se declaran al inicio del algoritmo usando la palabra clave Definir. Por ejemplo: Definir num Como Entero. Los comentarios se añaden con // y son ignorados durante la ejecución, pero muy útiles para documentar tu código.
Para interactuar con el usuario utilizamos comandos básicos: Leer captura datos ingresados por el usuario, mientras que Escribir muestra información en pantalla.
💡 Consejo práctico: Nombra tus variables de forma descriptiva. Es mejor usar
edadEstudianteque simplementee, así tu código será más fácil de entender cuando lo revises en el futuro.

Diagramas de flujo: la guía visual de tus algoritmos
Los diagramas de flujo son representaciones gráficas que muestran la secuencia de pasos para resolver un problema. Utilizan símbolos estándar que hacen más fácil visualizar la lógica de un programa antes de codificarlo.
Cada símbolo en un diagrama de flujo tiene un significado específico: los rectángulos representan procesos o acciones, los rombos indican decisiones o comparaciones, las flechas muestran la dirección del flujo, y los paralelogramos son para entradas o salidas de datos.
En el ejemplo de la imagen, podemos ver un diagrama completo para un algoritmo de suma: comienza definiendo variables, luego lee los valores de entrada, realiza la suma y muestra el resultado. Cada paso está claramente representado, lo que facilita entender cómo funciona el algoritmo.
💡 Para recordar: Dibuja un diagrama de flujo antes de empezar a programar problemas complejos. Te ayudará a identificar la lógica necesaria y a detectar posibles errores antes de escribir una sola línea de código.

Elementos de decisión en diagramas de flujo
Los diagramas de flujo son especialmente útiles para visualizar estructuras de decisión, donde el programa debe tomar diferentes caminos según ciertas condiciones.
En un diagrama de flujo, una decisión se representa con un rombo que contiene la condición a evaluar. De este rombo salen dos caminos: uno para cuando la condición es verdadera (generalmente marcado con "V" o "Sí") y otro para cuando es falsa (marcado con "F" o "No").
Por ejemplo, cuando comparamos si dos números son iguales, el rombo contendría la condición (num1=num2). Si son iguales, seguiríamos el camino verdadero y mostraríamos "Números Iguales"; si son diferentes, seguiríamos el camino falso y mostraríamos "Números Diferentes".
El diagrama termina con el símbolo de fin del algoritmo, que indica que todas las operaciones se han completado y el programa debe terminar.
💡 Consejo útil: Cuando dibujes diagramas de flujo con decisiones, asegúrate siempre de que cada camino (verdadero y falso) eventualmente llegue al final del algoritmo o se una con otro camino. Evita dejar "caminos sin salida".

Diagramas complejos y comparación con código
Los diagramas de flujo pueden representar algoritmos más complejos como encontrar el mayor de tres números. En este caso, necesitamos decisiones anidadas: primero comparamos si el primer número es mayor que los otros dos, y si no lo es, comparamos el segundo con el tercero.
Cada elemento del diagrama tiene un propósito específico: el inicio y fin marcan los límites del algoritmo, los procesos realizan operaciones, las entradas y salidas interactúan con el usuario, y las decisiones determinan el flujo basado en condiciones.
Esta representación visual facilita la transición al código real. En lenguajes como C++, las variables deben declararse especificando su tipo de dato. Por ejemplo, una variable de texto puede definirse como un arreglo de caracteres (char) en C tradicional, o como un objeto string en C++ moderno usando la biblioteca correspondiente.
💡 Dato clave: Al convertir un diagrama de flujo a código, mantén la misma estructura lógica. Cada rombo se convierte en una instrucción
if, cada proceso en una o más líneas de código, y cada entrada/salida en instrucciones comocinycouten C++.

Variables y datos en C++
En C++, debemos declarar las variables especificando su tipo antes de usarlas. Esta declaración le dice al compilador qué espacio de memoria reservar y qué operaciones se pueden realizar con la variable.
Para trabajar con texto en C++, tenemos dos opciones principales:
- Usar arrays de caracteres (estilo C):
char saludo[100] = "Hola Mundo";con la funciónprintf()para mostrar el texto. - Usar el tipo string (C++ moderno):
string saludo = "Hola Mundo";concoutpara la salida, lo que requiere incluir la biblioteca<string>y el espacio de nombresstd.
La segunda opción es más moderna, flexible y fácil de usar, ya que gestiona automáticamente la memoria y proporciona métodos útiles para manipular texto.
💡 Consejo práctico: Aunque C++ permite ambas formas de manejar texto, es recomendable usar
stringpara proyectos nuevos por su seguridad y facilidad de uso. Los arrays de caracteres estilo C son más propensos a errores como desbordamiento de buffer.

Tipos de datos y constantes en C++
C++ ofrece varios tipos de datos para satisfacer diferentes necesidades:
- int: Para números enteros como 42 o -10
- float/double: Para números con decimales (float para precisión simple, double para doble precisión)
- char: Para almacenar un solo carácter como 'A' o '5'
- string: Para cadenas de texto como "Hola mundo"
- bool: Para valores lógicos (true/false)
La declaración de una variable incluye el tipo y el nombre: tipo nombreVariable = valor;. Por ejemplo: int edad = 25;.
Las constantes son valores que no pueden cambiar durante la ejecución del programa. Se declaran con la palabra clave const antes del tipo de dato. Por ejemplo: const double PI = 3.14159;. Es una buena práctica nombrar las constantes con MAYÚSCULAS para distinguirlas fácilmente de las variables.
💡 Dato importante: Usar constantes en lugar de "números mágicos" (valores literales dispersos en el código) hace que tu programa sea más fácil de mantener. Si necesitas cambiar un valor usado en múltiples lugares, solo tendrás que modificarlo en la declaración de la constante.

Estructuras condicionales
Las estructuras condicionales nos permiten tomar decisiones en nuestros programas, ejecutando diferentes bloques de código según se cumpla o no una condición.
La estructura más básica es if (si), que evalúa una expresión booleana y ejecuta un bloque de código solo si esa expresión es verdadera. Por ejemplo, en C++ podríamos escribir:
if (num1 == num2)
printf("Numeros Iguales");
else
printf("Numeros Distintos");
Esto compara si dos números son iguales y muestra un mensaje apropiado. La parte else (sino) es opcional y se ejecuta cuando la condición es falsa.
En esta estructura, es crucial entender los operadores de comparación como igual (==), distinto (!=), mayor que (>), menor que (<), mayor o igual (>=) y menor o igual (<=).
💡 Error común: No confundas el operador de asignación (
=) con el de comparación (==). Escribirif (num1 = num2)asignará el valor de num2 a num1 y evaluará si ese valor es distinto de cero, en lugar de comparar si son iguales.












Pensamos que nunca lo preguntarías...
Contenido similar
Contenidos más populares de Tecnología
9Ciberacoso
Tecnología
Sistema monge
...
Historia de la computadora
No se tecnología y punto
Freire
Pedagogia
FINAL DERECHO ROMANO
Derecho Sucesorio, como se da la herencia, que entra y que no. Miembros de la familia y el esclavo, el testamento que deja el testador a su futuro heredero. ¿Que es el derecho romano?, quienes son sujetos de derecho, diferencia entre hechos y acto...
Capacitores
Teoría y ejercicios
Materiales para la construcción
Arquitectura
Inteligencia artificial
Presentación
Circuitos Secuenciales: Introducción
Esta lección introduce los circuitos secuenciales, diferenciándolos de los combinacionales, y explica cómo los circuitos secuenciales utilizan la retroalimentación y el almacenamiento de información.
Contenidos más populares
9celula eucriota, membrana plasmática, núcleo, pared celular, citoplasma y citoesqueletos. nombre se las partes de la celula eucariota
Este quiz evalúa tu conocimiento sobre la célula eucariota, incluyendo la membrana plasmática, núcleo, pared celular, citoplasma y citoesqueleto.
Conceptos Clave de la Revolución Industrial
Explora los términos esenciales de la Revolución Industrial, sus clases sociales y la urbanización.
Países y Capitales de América
Aprende los países y capitales de América del Sur, Central, Caribe y del Norte.
Simple present
Estructura del present simple/simple present
Biologia
Fases
Geografía 1er año
definición geografía-coordenadas geográficas-meridianos-paralelos-definición latitud y longitud-elementos del mapa-definición mapa-localización relativa y absoluta
Contines y océanos
Geografía
Resumen gramática inglesa B2
Contiene los temas básicos necesarios para el FCE
Análisis sintáctico de oraciones
explicación de el análisis de oraciones
Mira lo que dicen nuestros usuarios. Les encantó — y a ti también te encantará.
La app es muy fácil de usar y está muy bien diseñada. Hasta ahora he encontrado todo lo que estaba buscando y he podido aprender mucho de las presentaciones. Definitivamente utilizaré la aplicación para un examen de clase. Y, por supuesto, también me sirve mucho de inspiración.
Esta app es realmente genial. Hay tantos apuntes de clase y ayuda [...]. Tengo problemas con matemáticas, por ejemplo, y la aplicación tiene muchas opciones de ayuda. Gracias a Knowunity, he mejorado en mates. Se la recomiendo a todo el mundo.
Vaya, estoy realmente sorprendida. Acabo de probar la app porque la he visto anunciada muchas veces y me he quedado absolutamente alucinada. Esta app es LA AYUDA que quieres para el insti y, sobre todo, ofrece muchísimas cosas, como ejercicios y hojas informativas, que a mí personalmente me han sido MUY útiles.
Diagramas de Flujo y Pseudocódigo: Representación de Procesos
La programación es el arte de crear instrucciones para que las computadoras realicen tareas específicas. En este módulo exploraremos los conceptos básicos que todo programador debe conocer, desde la representación gráfica de algoritmos hasta las estructuras de control y tipos...

Representación gráfica y evolución de la programación
Los algoritmos complejos necesitan representaciones visuales para ser comprendidos fácilmente. Por eso utilizamos diagramas de flujo y pseudocódigo para expresar la lógica de manera clara y estructurada.
La programación ha evolucionado desde sus inicios con el lenguaje máquina (instrucciones binarias directas), pasando por el lenguaje ensamblador (con nombres nemotécnicos), hasta los modernos lenguajes de alto nivel que son más cercanos al pensamiento humano. Esta evolución ha sido impulsada por principios clave como la abstracción, encapsulación, modularidad y jerarquía.
Un programa de calidad debe ser eficaz (cumplir su función correctamente), eficiente (usar bien los recursos), íntegro (ejecutar todas las operaciones necesarias), claro (fácil de leer) y portable (funcionar en diferentes plataformas).
💡 Tip práctico: Cuando estés aprendiendo a programar, no te preocupes por escribir código optimizado desde el principio. Primero enfócate en que tu solución funcione correctamente, luego podrás mejorar su eficiencia.

Ciclo de desarrollo del software
Crear software no es solo escribir código; es un proceso estructurado que comienza con identificar un problema y termina con un programa funcionando. Este ciclo incluye:
- Definición de necesidades y análisis del problema para entender qué debe hacer el programa
- Diseño de la solución usando algoritmos y diagramas
- Codificación en un lenguaje de programación
- Prueba y depuración para encontrar y corregir errores
Las etapas finales son la documentación (registrar cómo funciona el programa), la implementación (ponerlo en uso) y el mantenimiento (actualizarlo según sea necesario).
Además de las características técnicas, un buen programa debe ser usable (fácil de usar), mantenible (sencillo de modificar) y fiable (funciona correctamente siempre).
💡 Consejo útil: Dedica tiempo suficiente a la fase de diseño antes de empezar a programar. Un buen diseño previo te ahorrará muchas horas de correcciones más tarde.

Herramientas para el pseudocódigo
El pseudocódigo es como un borrador de tu programa: no es código real pero describe la lógica de manera que cualquiera pueda entenderla. Para trabajar con pseudocódigo podemos usar herramientas como PSeInt, que nos permite escribir y simular nuestros algoritmos.
En programación, necesitamos variables para almacenar datos temporalmente. Cada variable debe tener un nombre y un tipo que determine qué clase de información puede guardar:
- Entero: Números sin decimales como 1, 42 o -10
- Real: Números con decimales como 3.14 o -0.5
- Carácter: Letras, números o símbolos entre comillas como 'a' o "hola"
- Lógico: Valores verdadero o falso (booleanos)
💡 Dato importante: Elegir el tipo de dato adecuado es crucial no solo para que tu programa funcione correctamente, sino también para optimizar el uso de memoria.

Tipos de datos y operaciones básicas
Los tipos de datos determinan qué valores puede almacenar una variable y qué operaciones se pueden realizar con ella. Cada tipo tiene características específicas:
Los enteros y reales permiten trabajar con valores positivos y negativos, pero los enteros no pueden tener decimales. Los caracteres se definen entre comillas y pueden ser cualquier símbolo. Los valores lógicos solo pueden ser verdadero o falso, perfectos para condiciones.
En PSeInt, las variables se declaran al inicio del algoritmo usando la palabra clave Definir. Por ejemplo: Definir num Como Entero. Los comentarios se añaden con // y son ignorados durante la ejecución, pero muy útiles para documentar tu código.
Para interactuar con el usuario utilizamos comandos básicos: Leer captura datos ingresados por el usuario, mientras que Escribir muestra información en pantalla.
💡 Consejo práctico: Nombra tus variables de forma descriptiva. Es mejor usar
edadEstudianteque simplementee, así tu código será más fácil de entender cuando lo revises en el futuro.

Diagramas de flujo: la guía visual de tus algoritmos
Los diagramas de flujo son representaciones gráficas que muestran la secuencia de pasos para resolver un problema. Utilizan símbolos estándar que hacen más fácil visualizar la lógica de un programa antes de codificarlo.
Cada símbolo en un diagrama de flujo tiene un significado específico: los rectángulos representan procesos o acciones, los rombos indican decisiones o comparaciones, las flechas muestran la dirección del flujo, y los paralelogramos son para entradas o salidas de datos.
En el ejemplo de la imagen, podemos ver un diagrama completo para un algoritmo de suma: comienza definiendo variables, luego lee los valores de entrada, realiza la suma y muestra el resultado. Cada paso está claramente representado, lo que facilita entender cómo funciona el algoritmo.
💡 Para recordar: Dibuja un diagrama de flujo antes de empezar a programar problemas complejos. Te ayudará a identificar la lógica necesaria y a detectar posibles errores antes de escribir una sola línea de código.

Elementos de decisión en diagramas de flujo
Los diagramas de flujo son especialmente útiles para visualizar estructuras de decisión, donde el programa debe tomar diferentes caminos según ciertas condiciones.
En un diagrama de flujo, una decisión se representa con un rombo que contiene la condición a evaluar. De este rombo salen dos caminos: uno para cuando la condición es verdadera (generalmente marcado con "V" o "Sí") y otro para cuando es falsa (marcado con "F" o "No").
Por ejemplo, cuando comparamos si dos números son iguales, el rombo contendría la condición (num1=num2). Si son iguales, seguiríamos el camino verdadero y mostraríamos "Números Iguales"; si son diferentes, seguiríamos el camino falso y mostraríamos "Números Diferentes".
El diagrama termina con el símbolo de fin del algoritmo, que indica que todas las operaciones se han completado y el programa debe terminar.
💡 Consejo útil: Cuando dibujes diagramas de flujo con decisiones, asegúrate siempre de que cada camino (verdadero y falso) eventualmente llegue al final del algoritmo o se una con otro camino. Evita dejar "caminos sin salida".

Diagramas complejos y comparación con código
Los diagramas de flujo pueden representar algoritmos más complejos como encontrar el mayor de tres números. En este caso, necesitamos decisiones anidadas: primero comparamos si el primer número es mayor que los otros dos, y si no lo es, comparamos el segundo con el tercero.
Cada elemento del diagrama tiene un propósito específico: el inicio y fin marcan los límites del algoritmo, los procesos realizan operaciones, las entradas y salidas interactúan con el usuario, y las decisiones determinan el flujo basado en condiciones.
Esta representación visual facilita la transición al código real. En lenguajes como C++, las variables deben declararse especificando su tipo de dato. Por ejemplo, una variable de texto puede definirse como un arreglo de caracteres (char) en C tradicional, o como un objeto string en C++ moderno usando la biblioteca correspondiente.
💡 Dato clave: Al convertir un diagrama de flujo a código, mantén la misma estructura lógica. Cada rombo se convierte en una instrucción
if, cada proceso en una o más líneas de código, y cada entrada/salida en instrucciones comocinycouten C++.

Variables y datos en C++
En C++, debemos declarar las variables especificando su tipo antes de usarlas. Esta declaración le dice al compilador qué espacio de memoria reservar y qué operaciones se pueden realizar con la variable.
Para trabajar con texto en C++, tenemos dos opciones principales:
- Usar arrays de caracteres (estilo C):
char saludo[100] = "Hola Mundo";con la funciónprintf()para mostrar el texto. - Usar el tipo string (C++ moderno):
string saludo = "Hola Mundo";concoutpara la salida, lo que requiere incluir la biblioteca<string>y el espacio de nombresstd.
La segunda opción es más moderna, flexible y fácil de usar, ya que gestiona automáticamente la memoria y proporciona métodos útiles para manipular texto.
💡 Consejo práctico: Aunque C++ permite ambas formas de manejar texto, es recomendable usar
stringpara proyectos nuevos por su seguridad y facilidad de uso. Los arrays de caracteres estilo C son más propensos a errores como desbordamiento de buffer.

Tipos de datos y constantes en C++
C++ ofrece varios tipos de datos para satisfacer diferentes necesidades:
- int: Para números enteros como 42 o -10
- float/double: Para números con decimales (float para precisión simple, double para doble precisión)
- char: Para almacenar un solo carácter como 'A' o '5'
- string: Para cadenas de texto como "Hola mundo"
- bool: Para valores lógicos (true/false)
La declaración de una variable incluye el tipo y el nombre: tipo nombreVariable = valor;. Por ejemplo: int edad = 25;.
Las constantes son valores que no pueden cambiar durante la ejecución del programa. Se declaran con la palabra clave const antes del tipo de dato. Por ejemplo: const double PI = 3.14159;. Es una buena práctica nombrar las constantes con MAYÚSCULAS para distinguirlas fácilmente de las variables.
💡 Dato importante: Usar constantes en lugar de "números mágicos" (valores literales dispersos en el código) hace que tu programa sea más fácil de mantener. Si necesitas cambiar un valor usado en múltiples lugares, solo tendrás que modificarlo en la declaración de la constante.

Estructuras condicionales
Las estructuras condicionales nos permiten tomar decisiones en nuestros programas, ejecutando diferentes bloques de código según se cumpla o no una condición.
La estructura más básica es if (si), que evalúa una expresión booleana y ejecuta un bloque de código solo si esa expresión es verdadera. Por ejemplo, en C++ podríamos escribir:
if (num1 == num2)
printf("Numeros Iguales");
else
printf("Numeros Distintos");
Esto compara si dos números son iguales y muestra un mensaje apropiado. La parte else (sino) es opcional y se ejecuta cuando la condición es falsa.
En esta estructura, es crucial entender los operadores de comparación como igual (==), distinto (!=), mayor que (>), menor que (<), mayor o igual (>=) y menor o igual (<=).
💡 Error común: No confundas el operador de asignación (
=) con el de comparación (==). Escribirif (num1 = num2)asignará el valor de num2 a num1 y evaluará si ese valor es distinto de cero, en lugar de comparar si son iguales.












Pensamos que nunca lo preguntarías...
Contenido similar
Contenidos más populares de Tecnología
9Ciberacoso
Tecnología
Sistema monge
...
Historia de la computadora
No se tecnología y punto
Freire
Pedagogia
FINAL DERECHO ROMANO
Derecho Sucesorio, como se da la herencia, que entra y que no. Miembros de la familia y el esclavo, el testamento que deja el testador a su futuro heredero. ¿Que es el derecho romano?, quienes son sujetos de derecho, diferencia entre hechos y acto...
Capacitores
Teoría y ejercicios
Materiales para la construcción
Arquitectura
Inteligencia artificial
Presentación
Circuitos Secuenciales: Introducción
Esta lección introduce los circuitos secuenciales, diferenciándolos de los combinacionales, y explica cómo los circuitos secuenciales utilizan la retroalimentación y el almacenamiento de información.
Contenidos más populares
9celula eucriota, membrana plasmática, núcleo, pared celular, citoplasma y citoesqueletos. nombre se las partes de la celula eucariota
Este quiz evalúa tu conocimiento sobre la célula eucariota, incluyendo la membrana plasmática, núcleo, pared celular, citoplasma y citoesqueleto.
Conceptos Clave de la Revolución Industrial
Explora los términos esenciales de la Revolución Industrial, sus clases sociales y la urbanización.
Países y Capitales de América
Aprende los países y capitales de América del Sur, Central, Caribe y del Norte.
Simple present
Estructura del present simple/simple present
Biologia
Fases
Geografía 1er año
definición geografía-coordenadas geográficas-meridianos-paralelos-definición latitud y longitud-elementos del mapa-definición mapa-localización relativa y absoluta
Contines y océanos
Geografía
Resumen gramática inglesa B2
Contiene los temas básicos necesarios para el FCE
Análisis sintáctico de oraciones
explicación de el análisis de oraciones
Mira lo que dicen nuestros usuarios. Les encantó — y a ti también te encantará.
La app es muy fácil de usar y está muy bien diseñada. Hasta ahora he encontrado todo lo que estaba buscando y he podido aprender mucho de las presentaciones. Definitivamente utilizaré la aplicación para un examen de clase. Y, por supuesto, también me sirve mucho de inspiración.
Esta app es realmente genial. Hay tantos apuntes de clase y ayuda [...]. Tengo problemas con matemáticas, por ejemplo, y la aplicación tiene muchas opciones de ayuda. Gracias a Knowunity, he mejorado en mates. Se la recomiendo a todo el mundo.
Vaya, estoy realmente sorprendida. Acabo de probar la app porque la he visto anunciada muchas veces y me he quedado absolutamente alucinada. Esta app es LA AYUDA que quieres para el insti y, sobre todo, ofrece muchísimas cosas, como ejercicios y hojas informativas, que a mí personalmente me han sido MUY útiles.