Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CONCEPTOS Y TECNICAS DE
RESOLUCIÓN DE PROBLEMAS
-------
OTROS CONCEPTOS
ADICIONALES
-1-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
PENSAMIENTO LATERAL
Por pensamiento lateral se conoce una forma de pensamiento que consiste en solucionar problemas
de una forma creativa. El término fue acuñado por Edward de Bono en el año 1967, en el libro New
Think: the Use of Lateral Thinking. A partir de este material, se han diseñado diversos acertijos que,
presentados como un problema tradicional, ponen a prueba los principios lógicos del que ha de
resolverlos. Se trata de, como se dice en inglés, de “pensar fuera de la caja”.
A continuación presentamos algunos de los acertijos clásicos relacionados con esta manera de pensar.
(Verlos en el Anexo 1). No te preocupes: aunque la respuesta parezca evidente una vez conocida, no
resulta tan sencillo encontrarla si no hemos sido capaces de encontrar la clave para responderla.
MAGNITUDES Y MEDICIONES
Conceptos Fundamentales:
Conceptos Abstractos: Son Conceptos Ideales, que surgen de la mente humana para dar explicación o
solución a situaciones o fenómenos de la cotidianidad. No tienen una representación tangible,
representan un objeto o cualidad particular. Son ejemplo de esto los conceptos de Unidad, Números,
Medida, Magnitud, etc. Hemos resaltado “unidad”, porque es un concepto que no ha sido definido.
Unidad. Una unidad de medida es una cantidad de una determinada magnitud física, definida y
adoptada por convención o por ley. Cualquier valor de una cantidad física puede expresarse
como un múltiplo de la unidad de medida.
Tiempo. Aún no se ha podido definir, pero entendemos de forma intuitiva que transcurre de
forma indetenible, mientras ocurren y sucede todo a nuestro alrededor. Para dar inicio al
estudio de Física, que es el estudio de los fenómenos naturales relacionados con movimiento y
energía en sus distintas formas, excluyendo aquellos que modifican la estructura molecular de
los cuerpos, debemos comenzar presentando conceptos fundamentales que dan soporte a
todo lo que trataremos a continuación.
-2-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Magnitudes. Son todas aquellas propiedades que pueden ser medidas y expresar su resultado
mediante un número y una unidad. En física las Magnitudes Fundamentales son las que no
dependen de otras para establecer su medida. Por ejemplo: tiempo, longitud, masa, etc.
El SI es el sistema básico, aceptado en el mundo entero. Las unidades del SI que cuantifican los
parámetros de masa, longitud y tiempo son respectivamente, el kilogramo [kg], el metro [m] y el
segundo [s], a éstas se las llama unidades básicas o patrón. Si bien existen otras, que son las
denominadas unidades prácticas, que en ocasiones, son más usadas que las anteriores, como lo son el
gramo, el kilómetro y la hora, por nombrar algunas.
Hay unidades derivadas que surgen de hacer alguna operación matemática y dependen de otras
unidades. Por ejemplo la densidad de un objeto es la masa presente en una unidad de volumen. La
medida de la densidad depende de las unidades empleadas para medir la masa y el volumen. Es así
que la densidad puede expresarse en gramos por centímetro cúbico [g/cm3] o si es en el SI se
expresaría en kilogramos por metros cúbico [kg/m3].
MÚLTIPLOS BINARIOS
La confusión entre estos dos términos (BIT y BYTE) tiene su origen desde los comienzos de la
computación. La unidad básica en informática (y cuyo valor es binario) es el bit y, de éste, el byte (1
byte = 23 bits). Cuando comenzó a hablarse de números grandes de bytes, se hizo necesario hablar de
nuevas unidades.
Tras notar que un grupo de 210 bytes tenía un valor cercano a los 1000 bytes (210 = 1024), a nadie
pareció molestarle demasiado que fuera llamado «kilobyte», dada la aparente aproximación con el
valor que implica el prefijo «kilo» del SI. Con el aumento de capacidad computacional, comenzó a
-3-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
hablarse de «megas», «gigas», etcétera, haciendo la aparente aproximación cada vez más imprecisa
(como se puede ver en la última columna de la siguiente tabla, en la que además se muestran sus
valores).
Estos prefijos determinan múltiplos y submúltiplos para establecer mediciones más pequeñas o más
grandes.
https://youtu.be/qjX4wKUoK7E
https://youtu.be/W4AwXQfn_o4
Disposición de la IEC
Para terminar con esta confusión, la Comisión Electrotécnica Internacional (IEC, por sus siglas en
inglés) introdujo los prefijos Kibi, Mebi, Gibi, Tebi, Pebi, Exbi, Zebi y Yobi los cuales están formados con
las primeras dos letras de los prefijos del SI y el sufijo 'bi' (por binario).
-4-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Algunos estudiantes tienen éxito con este método cuando resuelven problemas en el mismo contexto,
pero otros experimentan dificultades cuando el contexto del problema es diferente. Esto motivó a
investigar por qué estas ideas no daban resultado o no son consideradas como guía en el proceso
docente a la hora de impartir este contenido.
Al revisar algunos estudios realizados en ciencias cognoscitivas e inteligencia artificial se encontró que
en estas disciplinas se han producido programas que son capaces de resolver problemas en áreas
como ajedrez, lógica simbólica y cálculo integral con mucho éxito. Las ideas empleadas en los
programas incorporan procedimientos usados por expertos al resolver problemas. Para describir y
posteriormente codificar las actividades usadas por los expertos se emprende una observación
sistemática del proceso que ellos utilizan al resolver problemas.
Los resultados de este procedimiento mostraron un progreso en la forma en que los estudiantes
resuelven problemas. Sin embargo, este método no era suficiente. Por ejemplo, algunos estudiantes
sabían el procedimiento pero no reconocían cuando utilizarlos.
Por ejemplo:
El problema: “El hermano mayor de una familia con tres hermanos tiene 4 años más que el segundo y
este 3 más que el menor. Si entre todos tienen la edad del padre que tiene 40 años ¿qué edad tiene
cada hermano?”.
Para resolver estos problemas debemos elegir algún valor desconocido para llamarle “x”.
A partir de ello, expresar los datos del problema y plantear una igualdad (ecuación) con ellos. Será:
-5-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Hacer bien un ejercicio en lógica, matemática o ciencias exactas se basa más que en conocer la
materia; en concretar qué técnicas se usan, cuándo y cómo.
Sistema de creencias: incluye las ideas que los estudiantes tienen acerca de la matemática, la
lógica y las ciencias y cómo resolver problemas.
Actividades de aprendizaje: es donde los estudiantes son expuestos a estrategias que pueden
ayudarlos a leer argumentos matemáticos.
Los estudiantes deben reconocer los principios epistemológicos de esta disciplina para poder estar en
posición de éxito:
1. Resolver problemas nuevos en la clase con la finalidad de mostrar a los estudiantes las
decisiones tomadas durante el proceso de resolver problemas.
-6-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Ejercitación:
En cada uno de los siguientes problemas plantea la ecuación correspondiente y luego resuelve:
10) La suma entre un número y el doble de su consecutivo es igual al opuesto de 10. ¿Qué número es?
11) Pienso un número, lo elevo al cuadrado, divido por tres y sumo dos. Obtengo 50 ¿Qué número
pensé?
12) Compré un libro y una carpeta. El libro cuesta $7 más que la carpeta. Gasté en total $25. ¿Cuánto
cuesta cada cosa?
13) Juan tiene 5 años más que Luis y entre los dos tienen 37 años. ¿Qué edad tiene cada uno?
14) Si al doble de un número se lo disminuye en el triple de 4 da como resultado la cuarta parte de 80.
¿Cuál es el Nº?
15) α = 2x+30º y β = x + 80º son dos ángulos opuestos por el vértice. ¿Cuánto miden?
-7-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
MAS CONCEPTOS ….
¿Qué es un Algoritmo?
Partes de un Algoritmo
Ordenados. Presentan una secuencia clara y precisa para poder llegar a la solución.
-8-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Tipos de algoritmos
En razón de la tarea que se propone que cumplan, los algoritmos se clasifican en tipos.
Particularmente en las ciencias informáticas tenemos:
A continuación, vamos a ver un ejemplo de algoritmo informático que utilizamos este año
para resolver un enigma que planteamos en nuestras redes sociales para celebrar el Día del
Programador.
El reto o situación de partida que proponíamos era el siguiente: «Si Java es Ñfaf y Javascript
es Ñfafxhwnuy, resuelve a través de la rueda de cifrado la siguiente frase con tu solución
programada: KJPNE INF IJ PTX UWTLWFQFITWJX».
-9-
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
function decoded(encodedTxt) {
let alphabet = "abcdefghijklmnñopqrstuvwxyz".split("");
let decodedTxt = "";
encodedTxt.toLowerCase().split("").forEach(item => {
if (item === " ") {
decodedTxt += item;
}
else if (alphabet.indexOf(item) != -1) {
if (alphabet.indexOf(item) >= 5) {
decodedTxt += alphabet[(alphabet.indexOf(item) - 5)];
}
else if (alphabet.indexOf(item) <= 4) {
decodedTxt += alphabet[alphabet.length + alphabet.indexOf(item) - 5];
}
}
});
console.log(decodedTxt.toUpperCase());
}
const txtEncrypted = 'KJPNE INF IJ PTX UWTLWFQFITWJX';
decoded(txtEncrypted);
Finalmente, nuestro algoritmo nos proporcionó la solución que buscábamos: el mensaje FELIZ
DIA DE LOS PROGRAMADORES.
Conclusión
Como hemos visto, un algoritmo informático no es más que un conjunto de instrucciones para
conseguir un fin. Los algoritmos están muy presentes en el ámbito de la informática, pero
también en nuestra vida cotidiana. Existen numerosos tipos y ejemplos de algoritmos y,
dependiendo de la situación en que nos encontremos, unos u otros nos ayuda rán a llegar a la
solución que necesitemos.
- 10 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
MAS CONCEPTOS …
Los datos aisladamente pueden no contener información humanamente relevante. Solo cuando
un conjunto de datos se examina conjuntamente a la luz de un enfoque, hipótesis o teoría se puede
apreciar la información contenida en dichos datos. Los datos pueden consistir en números, estadísticas
o proposiciones descriptivas. Los conceptos de datos, información, conocimientos y sabiduría están
inter-relacionados. Los datos convenientemente agrupados, estructurados e interpretados se
consideran que son la base de la información humanamente relevante que se pueden utilizar en la
toma de decisiones, la reducción de la incertidumbre o la realización de cálculos. Es de empleo muy
común en el ámbito informático y, en general, prácticamente en cualquier investigación científica.
En programación, un dato es la expresión general que describe las características de las entidades
sobre las cuales opera un algoritmo. En estructura de datos, es la parte mínima de la información.
Las variables:
Ejemplo:
Son variables de las personas: la edad, sexo, talla, peso, contextura, color del cabello, color de ojos,
grado de atención, conocimientos previos, confesión religiosa, procedencia, clase social, etc.
Son variables de las cosas, objetos: forma, color, tamaño, peso, conservación, antigüedad, etc.
- 11 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Durante las entrevistas con los Profesores de Matemática fue posible obtener información relevante
sobre los errores que habitualmente cometen los alumnos durante la formación de Nivel Medio.
Así, en el tercer ciclo de la Educación General Básica, los Profesores de Matemática aducen que los
errores más frecuentes de sus alumnos se encuentran cuando:
• Aplican la “regla de los signos” de la multiplicación al efectuar sumas o restas de números enteros.
• Suman números racionales efectuando la adición de numeradores por un lado y denominadores por
el otro.
• Asocian que un decimal periódico se obtiene, en todos los casos, como una fracción cuyo numerador
es igual al número sin la coma y con su período truncado; o expresando la parte entera como
numerador y el período como denominador.
• Consideran que tienen un número negativo elevado a cierto exponente cuando el signo menos se
antepone a la potencia.
• Asumen que toda potencia de exponente nulo da por resultado cero, o es igual a la base de la
misma.
• Estiman que la raíz con radicando negativo e índice impar tiene un doble resultado, o que no posee
solución en el campo de los reales.
• Decodifican incorrectamente los valores representados por literales en una recta numérica.
• No logran determinar jerarquías ni tipos de operaciones que intervienen en los términos de una
ecuación.
• Consideran que un factor negativo se transpone dividiendo y cambiado de signo; o que forma parte
de una resta por lo que se pasa sumando al otro miembro.
• No identifican las figuras geométricas elementales cuando se presentan en posiciones “no estándar”.
- 12 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
• Brindan respuestas que prescinden de las unidades de medida en problemas que involucran
magnitudes.
Por otra parte, para el Ciclo de Especialización, los Profesores de Matemática establecieron que los
errores más comunes de los alumnos son los siguientes:
• Identifican la semántica de potencias con base entera y exponente fraccionario negativo, con tomar
el inverso multiplicativo del exponente.
• Asocian que si el exponente de una potencia es un entero negativo, y la base es una suma
algebraica, se debe tomar en primera instancia los inversos multiplicativos de los sumandos.
• Multiplican las raíces de igual índice y radicando cuando se tratan de adiciones, o aplican distributiva
de la raíz con respecto a la suma algebraica.
• Ofrecen como resultados de sumas algebraicas entre números racionales e irracionales, sólo una
expresión que involucra una determinada cantidad de radicales.
• Asocian que el exponente de la potencia de un producto, afecta sólo a uno de los factores.
• Asumen que el denominador de una fracción divide sólo a uno de los sumandos del numerador.
• Encuentran redundante la presencia del signo “–” cuando se sustituyen números negativos en una
expresión en las que aparecen restas.
• Brindan un resultado numérico cuando a cierta cantidad de literales se le resta sólo uno de ellos.
• Aplican distributivas cuando tienen el cociente entre un número y una suma algebraica.
• Realizan traducciones incorrectas de las expresiones que aparecen en las situaciones problemáticas.
• Conciben que cualquier letra siempre representa a un número positivo, y que simboliza un negativo
si se le antepone el signo menos.
• Aplican la fórmula para hallar las raíces de una ecuación de segundo grado, sin cerciorarse que la
expresión se encuentre igualada a cero.
- 13 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
• Utilizan todos los datos que aparecen en un problema sin tener en cuenta si el cálculo realizado
responde a la pregunta solicitada.
Cabe aclarar que los errores detallados por los Profesores de Matemática se circunscribieron, casi con
exclusividad, a la Aritmética y al Álgebra, y sólo se citaron algunos de ellos en temas de Geometría.
Conclusión
Se incluye el párrafo precedente, dada la gran similitud existente entre los errores en los ejercicios
matemáticos de los estudiantes en general, y los errores en las resoluciones de problemas de lógica y
desarrollo de problemas de programación de software y a los efectos de establecer criterios de
referencia. Aunque no se vea la similitud fácilmente, poseer una mente matemáticamente entrenada,
potencia enormemente la facilidad para la resolución de problemas informáticos. Por supuesto existen
excepciones, y todo se puede entrenar. Por ello es que estudiantes provenientes de formaciones
humanísticas o sociales, con muy poco entrenamiento matemático, pueden lograr mediante un
adecuado esfuerzo, desempeñarse productivamente en la resolución de problemas de software y
actividades de desarrollo.
- 14 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
INFORMACION COMPLEMENTARIA
EL PERFIL PROFESIONAL DEL EGRESADO DE LAS CARRERAS DE DESARROLLO DE SOFTWARE (VER Res
CGES 501/19 – PERFIL PROFESIONAL) INCLUYE ALGUNOS DE ESTOS RASGOS DISTINTIVOS:
2. Elevada especialización profesional, al interior de sub ramas relevantes del quehacer profesional
contemporáneo. Se alcanza mediante la atención en el proceso de enseñanza al desarrollo de
competencias profesionales específicas. Permite desempeños exitosos dentro de campos cada vez
más estrechos de desempeño profesional. Garantiza la focalización en determinadas áreas de
interés, casi siempre identificadas como de interés académico, y garantiza la reproducción de
especialistas de alto rango y perfil estrecho.
3. Apertura hacia las problemáticas vinculadas a las NTICs (Nuevas Tecnologías de la Información y la
Comunicación) y la informatización de la sociedad.
Garantiza tanto el manejo de herramientas generales, como de otras específicas de las profesiones,
que elevan su efectividad práctica.
4. Limitadas capacidades y habilidades para el diálogo con otros campos profesionales, en particular
los opuestos en el binomio ciencias-humanidades.
Es el costo de la especialización, que descuida el resto de la formación universitaria y produce
como efecto de largo plazo, dos debilidades asociadas: 1) la incapacidad para el diálogo con otras
especialidades relativamente lejanas. 2) la profundización de la separación en dos “culturas”
incapaces de dialogar entre sí, la humanística y la científico-técnica.
5. Falta de una formación “para-científica”, que complemente el currículo con información de elevada
utilidad para el desempeño profesional, concerniente a legislación, economía y procesos
económicos, política (en especial de ciencia, tecnología y educación), inserción social de los
conocimientos y aplicación de los resultados de la ciencia y la tecnología en la vida social. Esta
trama curricular prácticamente inexistente en el nivel universitario enfrenta al egresado a una
práctica social que demanda conocimientos ausentes, que se buscan entonces mediante la
improvisación en la práctica y en algunas actividades de postgrado que los introducen. Se debe en
parte a una debilidad de la formación académica práctico-productiva, que tiene un carácter casi
siempre formal y complementario; y en parte a la imposibilidad de sobrecargar el currículo
universitario intentando incorporar la diversidad de la vida profesional real.
6. Formación ambiental débil, que apenas rebasa los niveles de información mínimos para superar la
educación anti ambiental heredada de la modernidad europea.
Es una de las debilidades más agudas de la formación universitaria actual que cumple parcialmente
con los objetivos de la educación ambiental y la educación para el desarrollo sostenible.
- 15 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
La caracterización del perfil del egresado que se requiere debe tomar en cuenta las siguientes líneas
principales de tensión problemática actual, y su previsible mantenimiento y profundización en los
próximos años.
Cambios en el mundo del trabajo y la vida social bajo el influjo del desarrollo tecnológico y el
intervencionismo científico.
Esto implica:
- 16 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Todos estos factores están lejos de incluirlo todo, pero permiten caracterizar el tipo de demanda que
enfrentan las casas de estudios superiores, tanto para la preparación de los profesionales, como para
la transformación del pensamiento y la enseñanza mediante una reforma paradigmática, que habilite
un pensamiento capaz de enfrentar el reto fundamental del creciente entretejimiento (complejidad)
de los procesos sociales, económicos, científicos, educativos, etc. en la sociedad actual.
Al considerar estas tensiones y el perfil del egresado actual, se puede caracterizar el perfil deseable
para un egresado de educación superior/universitario- Este puede servir de base para considerar
entonces lo posible a realizar en los próximos 5-25 años.
TRABAJO EN EQUIPO
En muchas ocasiones hemos visto como diferentes personajes públicos hablaban de la importancia del
trabajo en equipo. Desde políticos a deportistas han hecho especial hincapié en lo valioso que puede
llegar a ser un buen trabajo en equipo.
Winston Churchill mencionó una vez “si estamos juntos no hay nada imposible. Si estamos divididos
todo fallará.” También Michel Jordan dijo lo siguiente: "el talento gana partidos, pero el trabajo en
equipo y la inteligencia gana campeonatos”. Un concepto que también se puede ver reflejado en el
proverbio africano “Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado”.
- 17 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
A partir de la definición de trabajo en equipo, vemos que este genera una sinergia positiva, pero para
lograrlo se debe mantener un gran sentido de la unión y tener empatía con todos los integrantes.
Como resultado encontramos un mayor rendimiento, productividad y satisfacción personal y laboral.
Además, en el trabajo en equipo el liderazgo es compartido por todos. Por ello, es muy importante el
estilo de comunicación
Crea unión
Uno de los beneficios del trabajo en equipo es que cada uno de los integrantes del equipo aporta sus
conocimientos a todos y estos sumados tienen un mayor impacto y beneficio para lograr los objetivos
que el grupo se ha propuesto
Refuerza la responsabilidad
El hecho de que cada uno de los integrantes del grupo tenga un rol asignado, hace que deban
responder a sus tareas y estás sean esenciales para poder alcanzar el objetivo grupal. Así pues, cada
integrante tiene un sentido de la responsabilidad más elevado que en otras circunstancias.
Todos son el motor del equipo: se caracteriza principalmente por tener un guía que conduce el
equipo pero no lo controla, es decir el rol de liderazgo es compartido y cada miembro del equipo
puede aportar su opinión o modo de ver las cosas para alcanzar el objetivo.
Uso de la confrontación colectiva: otra de las características del trabajo en equipo. Cuando hay un
conflicto o problema este se resuelve permitiéndole a cada miembro aportar su idea para solventarlo.
Espíritu colectivo: la cohesión y la cooperación son dos valores fundamentales en el trabajo en
equipo. Todos unidos hacía un mismo propósito, generando satisfacción y unión grupal para realizar
las tareas.
- 18 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Trabajo interdependiente: se trabaja así para alcanzar los objetivos personales y colectivos. La
responsabilidad que desempeña cada miembro del grupo es tanto individual como colectiva.
Comunicación fluida: la comunicación empleada en el trabajo en equipo es abierta con todos los
miembros del grupo.
Según Tom Peters, especialista en gestión empresarial y para muchos considerado el padre del
Management moderno, describió los cinco componentes que debe tener un equipo (las cinco c del
trabajo en equipo) para lograr un alto rendimientos. Estos son la complementariedad,
la coordinación, la comunicación, la confianza y el compromiso que se adopta.
Lo ideal es que este sea abierto y con feedback constante.
ARMA UN EQUIPO DE ESTUDIO QUE TE GENERE CADA DÍA MÁS COMPROMISO DE SEGUIR ADELANTE.
LOS DOS ERRORES MÁS COMUNES PARA LLEGAR A LA MAESTRÍA SON: NO DAR EL PRIMER PASO Y NO
RECORRER EL CAMINO COMPLETO.
- 19 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
ANEXO I
ACERTIJOS CLÁSICOS
EJERCICIOS
- 20 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
33. Un gallo sube a lo alto de la montaña y pone un huevo. Si el viento sopla de Este a Oeste.
¿Hacia dónde caerá el huevo?
34. ¿Hasta dónde puede correr un zorro hacia el bosque?
35. Yo actúo como un gato, me veo como un gato, sin embargo, no soy un gato. ¿Qué soy yo?
36. ¿Qué te pertenece, pero otras personas lo usan más que tú?
37. Dos niñas tienen los mismos padres y nacieron a la misma hora del mismo día del mismo mes,
pero no son gemelas. ¿Cómo puede ser esto posible?
38. Un caballo está atado a una cuerda de 5 metros y hay una paca de heno a 7 metros de
distancia. Sin embargo, el caballo todavía puede comer del heno. ¿Cómo es esto posible?
39. ¿En qué número está estacionado el auto?
- 21 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
- 22 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
- 23 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
98. ¿Cual es el parentesco más cercano que puede tener contigo la cuñada de la hermana de tu
padre?
99. Uno solo, al siguiente ya no estaría el estómago vacío.
100. La madre de Juan tiene 5 hijos, al primero lo llamó, LELO, al segundo LILO, al tercero LULO y al
cuatro LALO. ¿Cómo se llamaba el quinto hijo?
101. ¿Cuánta arena hay en un hoyo de 30 x 30 x 30 metros?
102. ¿Qué es lo primero que hace el Sol cuando sale?
103. ¿Cuánto tiempo hace falta para cocer un huevo duro?
104. Presionando el botón de llamada.
105. El padre de Juan le dice a su hijo que le va a otorgar dos monedas de curso legal. “Entre las dos
suman tres pesos, pero una de ellas no es de un peso”. ¿Cuáles son las monedas?
106. Juan se levanta por la mañana y descubre que la luz de la habitación no funciona. Abre el cajón
de los guantes, en el que hay diez guantes negros y diez azul oscuro. ¿Cuántos debe tomar para
asegurarse de que obtiene un par del mismo color?
107. ¿Cuántas veces puede restarse el número 1 del número 1.111?
108. Dos personas viajan en coche. La menor es hija de la mayor, pero la mayor no es su padre.
¿Quién es?
109. En una carrera, un corredor adelanta al que va segundo. ¿En qué posición se coloca?
110. ¿Cómo puede sobrevivir alguien que cae de un edificio de 50 pisos?
111. Una mujer compra en una tienda de animales a un loro que, según le promete el dependiente,
es capaz de repetir todo lo que oiga. Y, sin embargo, la mujer devuelve al animal una semana después
puesto que no ha pronunciado ni un solo sonido, a pesar de que le ha hablado continuamente. Sin
embargo, el dependiente no la ha engañado. ¿Qué ha pasado?
112. Conduces un autobús, en el que suben 18 personas. En la siguiente parada, se bajan 5 pero
suben otras 13. Al llegar a la siguiente estación, se bajan 21 y se suben otras 4. ¿De qué color son los
ojos del conductor?
113. Un granjero tiene 10 conejos, 20 caballos y 40 cerdos. Si llamamos “caballos” a los “cerdos”,
¿cuántos caballos tendrá?
114. Siempre estoy entre la tierra y el cielo. Suelo estar a distancia. Si intentas acercarte, me
alejaré.
115. En una carrera de 4 corredores, se sabe que C ha llegado justo detrás de B, y B ha llegado en
medio de Ay C. ¿Cuál es el orden de llegada de los corredores?
116. Si Luisa come más tarta que Cris, María come más que Cris y menos que Rosa, pero ella come
más que Luisa. ¿Cuál de ellas come menos tarta?
117. Un nadador se ve rodeado por tiburones con bastantes problemas de visión,3 no veían por el
ojo izquierdo y 3 no veían por el ojo derecho.3 podían ver por el derecho y 3 por el izquierdo, 3 podían
ver tanto por el derecho como el izquierdo. Otros 3 eran completamente ciegos. ¿Cuántos tiburones
había como mínimo?
118. Tienes que elegir entre morir en la hoguera o envenenado, tienes que pronunciar una frase y si
es cierta, morirás envenenado y si es falsa morirás en la hoguera. Finalmente te salvas, ¿cómo lo has
logrado?
119.
- 24 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
Realiza dos trazos rectos para dividir la esfera de este reloj en tres partes en la que los números que
contiene cada parte sumen 26
Qué condición ha de tener un número para que al restarle la suma de sus cifras el resultado sea
divisible por 9.
- Qué curioso, dice el señor Rojo, el color de nuestras corbatas se corresponden con los colores de
nuestros apellidos, pero ninguno lleva el color de su apellido.
122. Si el gen del albinismo es recesivo y hay un albino por cada 10000 personas, ¿qué proporción
de población mundial es portadora del gen del albinismo?
123. Dos trenes van por la misma vía en dirección contraria directos a chocarse. Uno de los trenes
viaja a 130 km/h, mientras que el otro viaja a 170 km/h. Entre ellos media 215 km. ¿A qué
distancia estarán un minuto antes de chocar?
124. Dibuja cinco puntos sobre un papel, ¿de qué formas se pueden conectar estos cinco puntos de
manera que cada uno esté unido a otros dos (pero solo a dos)
125. ¿Cuántas veces después de medianoche, y antes del mediodía, la aguja de los minutos coincide
con la de las horas?
- Tantos como las dos últimas cifras del año de mi nacimiento y he nacido en el siglo xx, contesta.
¿Qué edad tienen María y su abuela teniendo en cuenta que la conversación sucede en 1994?
127. Tienes que lograr formar una T con estas figuras desordenadas
- 25 -
DIRECCIÓN GENERAL DE ESCUELAS DIRECCIÓN DE EDUCACIÓN SUPERIOR
INSTITUTO DE EDUCACIÓN SUPERIOR Nº 9-012 “SAN RAFAEL EN INFORMÁTICA”
Paunero esq. Almirante Brown – San Rafael – Mza.
Gral. Roca N° 279- Gral. Alvear- Mza.
128. Encontrar dos números cuya suma sea 45 y su resta sea 21.
129. Alberto y su padre se llevan 25 años de edad. Encontrar la edad de Alberto sabiendo que
dentro de 15 años la edad de su padre será el doble que la suya.
130. Se tiene un rectángulo cuya altura mide 2 cm más que la base y cuyo perímetro es 24 cm.
¿Qué dimensiones tiene el rectángulo?
131. Un joven empleado, interrogado acerca de su edad, respondió: “el doble del cuadrado de la
edad que tendré dentro de cuatro años menos el cuádruple del cuadrado de la edad que tenía
hace cuatro años, es el cuádruple de la edad que tendré dentro de doce años”. ¿Qué edad
tiene el empleado?
Para resolver algunas situaciones necesitaremos convertir unidades, por ejemplo:
0, 0000000004=
0,0000009=
0,0002=
0,000001=
1000000000=
20000=
400000000=
3500000000000=
132. Sabiendo que el tiempo se mide en Sistema sexagesimal, ¿Cuántos minutos dura un año de
365 días?
133. Sabiendo que Conforme datos del Instituto Nacional de Vitivinicultura
(INV), Argentina produjo en 2018 un total de 14.521.510 Hl (hectolitros) de vino,
representando este valor un incremento del 22,8% respecto al año 2017.
134. ¿Cuántos litros de vino se produjeron en ambos años?
135. Sabiendo que 1Kw-h de energía eléctrica cuesta…………. cuánto cuesta por segundo la
electricidad?
136. Si la velocidad c de la luz se considera aproximadamente 3.108 m/s. ¿Cuántos km/s son?
137. Sabiendo que 1 Kgf es equivalente a 9,8N, calcule en N una fuerza de 3,5 Kgf.
- 26 -
Introducción a la Programación – Curso de Ingreso
INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN
BLOQUE - UNO
INTRODUCCIÓN:
Muchas veces el término programación puede llegar tener interpretaciones tan variadas como
confusas. Lo cierto es que la programación en el ser humano es tan connatural de lo que
pensamos. Los programas de computadoras pueden ser comparados como una receta de
cocina. Si Ud. tiene un problema a resolver y quiere realizar la preparación de un huevo frito,
deberá seguir las instrucciones que diga la receta para ese tipo de preparación, es decir, se
deberá respetar una serie de pasos para llegar a la preparación del plato de cocina. Estos
pasos deben respetarse siguiendo un camino lógico, porque de lo contrario, si no se respetase
no se podría llegar al fin que es la preparación del plato. Por ejemplo, para preparar una tortilla
de papa la receta podría ser:
Ahora bien, si en estos pasos que nos indica la receta, llegáramos a invertir o permutar
cualquiera de sus pasos, se podría correr el riesgo de no llegar a concluir la preparación de la
comida propuesta, es decir, no se llegaría al fin propuesto. Es decir que las recetas se pueden
definir con el conjunto de pasos, ordenados con un criterio adecuado, para cumplir un
determinado fin. Lo mismo ocurre con los programas informáticos, también son un conjunto de
instrucciones ordenadas lógicamente, que el computador es capaz de interpretar, con el fin de
conseguir un fin determinado.
Para ilustrar, otro ejemplo de la vida cotidiana, se verá el caso de los pasos que realizamos
para ver una película de vídeo, podría hacer:
Ejercicio Grupal:
En grupo de hasta 4 alumnos, deberán dar un ejemplo de la vida cotidiana donde se deberá
detallar los pasos a seguir para cumplir el fin del ejemplo propuesto.
Hasta aquí, han aparecido conceptos muy significativos para introducirnos en el mundo de la
programación, ellos son: conjunto, secuencia, orden, problema, ambigüedad, etc.
De ahí que nace un concepto que se puede abarcar de manera intuitiva, y es el concepto de
Algoritmo. Se puede considerar al Algoritmo como la series de pasos a seguir, ordenados
lógicamente de acuerdo a un criterio determinado, con el fin de resolver un problema concreto.
¿QUÉ ES UN ALGORITMO?
Esta palabra se deriva MUSA AL-KHOWARIZMI, nombre de un matemático árabe que vivió en
el siglo IX. El diccionario de la RAE lo define como el “método y notación en las distintas formas
de cálculo”.
La conceptualización algoritmo, para los fines de éste curso, se va a definir como el conjunto
de operaciones perfectamente especificadas y ordenadas, cuyo objeto es obtener un resultado
partiendo de unos datos a fin de resolver un problema concreto.
Ejemplo 1:
“S”, “A” y “T” son las variables de nuestro algoritmo porque las mismas varían
según el valor que le asignemos a “A” y “T”.
En este ejemplo “A” y “T” se denominan variables independientes porque a
dichas variables se le pueden asignar valores arbitrarios o al azar.
A la variable “S”, se la denomina variable dependiente porque “depende” su
valor del valor asignado por las variables independientes.
Por ejemplo: si A=3 y T=4, entonces S=12; en cambio, si A=8 y T=9, entonces
S=72.
Ejemplo 2:
La superficie de un triángulo es base por altura, todo divido por dos.
La representación de un algoritmo podría ser:
Por analogía del ejemplo 1, podemos decir que R, A, B son la variables de nuestro
algoritmo (porque se valor varían dependiendo del ejemplo que busquemos).
Las variables B y A son variables independientes, y la variable R es dependiente.
Ahora, bien, el valor “2”, dentro del algoritmo, siempre va a seguir siendo “2”. Decimos
pues, que el 2 de nuestro algoritmo es una constante del problema porque nunca va a
variar su valor.
A saber, siempre en un algoritmo aparecen dos elemento fundamentales las constantes y las
variables.
DEFINICIÓN DE CONSTANTE
TIPOS DE CONSTANTES
Existen gran variedad de tipos de constantes, nosotros vamos a ver dos clasificaciones:
a) Constantes Numéricas: representadas por todo el campo numérico, ej. 3, 100, -4, 0, ½,
etc.
La importancia de las constantes numéricas radica porque en ellas se pueden realizar
operaciones matemáticas como suma, multiplicación, etc.
DEFINICIÓN DE VARIABLE
Variable: es una “cosa” que contiene dentro de ella un valor determinado a lo largo de la
resolución de un algoritmo.
El valor de una variable siempre va hacer el mismo durante la ejecución de un algoritmo, salvo,
que le asignemos a dicha variable un valor diferente.
Como la palabra lo dice, se llama variable porque su contenido puede cambiar o “variar” del
procesamiento de un algoritmo. Una característica de las variables es que le podemos asignar
nombres a ellas como por ejemplo: superficie_del_rectangulo, resultado, valor_cobrar,
nombre_persona, etc.
Al igual que las constantes, existen muchos tipos de variables pero por ahora vamos a ver dos
tipos:
a) Variable Numérica: se denominan a aquellas que solamente poseen valores
numéricos y por consecuencia se pueden aplicar operaciones matemáticas sobre ellas.
Ejemplo 1:
A=23
(Significa que hemos creado una variable llamada “A” y su valor es del tipo numérico que
equivale a 23)
Ejemplo 2:
base=1456
(Significa que hemos creado una variable llamada “base” y su valor es 1456)
Ejemplo 3:
nombre =”Juan Agustín Flores”
(Significa que hemos creado una variable llamada “nombre” y su valor es ”Juan Agustín
Flores”, en este caso, a diferencia del ejemplo 1 y 2 que son valores numéricos, el valor del
ejemplo 3 es del tipo alfanumérico o tambien conocido como: cadena, string, etc.)
DEFINICIÓN DE OPERADORES
Operadores: son los símbolos que representan el conjunto de todas las operaciones
aritméticas y lógicas que se pueden hacer con las variables y las constantes.
DEFINICIÓN DE EXPRESIONES
Ejemplo de Expresiones:
a) A= (23 x base)/2
b) 23 > 2x14
c) altura<=1232
d) valor_calculado<>232
e) valor1<>valor2
f) etc.
Ejercitación Grupal:
Actividades: formar grupos de 4 personas. Dados los siguientes ejercicios, identificar cuales
son las variables, constantes, operadores y expresiones.
Por ejemplo:
Solo el 2.
Operadores Matemáticos:
()x/
Operadores Lógicos
=
Expresiones
sup_tri = (base x altura )/2
Ejercicios a resolver:
BLOQUE DOS
¿QUÉ ES UN PROGRAMA?
ALGORITMO PROGRAMA
Orden 1
Orden 2
PROGRAMA
Orden 3
...
Orden n
Entonces la persona al cual yo estoy ordenando puede cumplir mi orden sentándose en una
silla, o en el suelo, o en la mesa, etc.
En cambio si digo: Siéntate en esta silla de madera... , entonces se podrá cumplir la orden sin
lugar a dudas.
¿Porqué decimos que los comandos, órdenes o instrucciones deben estar ordenadas?
Rta. Veamos con un ejemplo: si en la vida cotidiana necesitamos poner en marcha el arranque
de un automóvil, el número los pasos serían:
1. Abrir la puerta
2. Sentarse
3. Colocar la llave en el tambor
4. Dar arranque
5. Escuchar que el motor arranque
6. Se encendió el motor.
Ejercicio Grupal:
Nota: así como en el ejercicio grupal, el integrante que interpretaba las acciones del
computador solo reconocía la orden “presionar”, entonces a la palabra “presionar” la
denominaremos palabra reservada del lenguaje de programación.
Lenguajes de Programación.
Introducción.
Así como nosotros utilizamos el lenguaje para comunicarnos, también lo los computadores
tienen sus propios lenguajes para procesar información y comunicarse.
Si nosotros solamente hablamos español, entonces no entenderíamos nada de una persona
que hable alemán o hebreo o japonés. Esto es así porque cada lenguaje tiene su propia reglas
de construcción, de significación (mesa en español) (table en ingles), de palabras reservadas,
de reglas gramaticales, sintácticas, morfológicas, fonéticas, etc.
era terriblemente tedioso programar en esta nomenclatura binaria, con el tiempo se fueron
perfeccionando los lenguajes de programación llevándolos a un nivel de entendimiento “lo mas
humano posible”, de esta forma nacieron los denominados “lenguajes de alto nivel”; entonces,
por ejemplo, la orden para imprimir era 101110111010010001111010011001 ahora con un solo
comando “Imprimir” bastaría. Entonces ya no tenemos que preocuparnos por tantos ceros y
unos, sino por palabras reservadas mas entendibles para el humano como ser: imprimir, borrar,
guardar, ordenar, sumar, ....
Lenguaje Binario (entiende el Computador, lenguajes que están mas a nivel del Hardware)
Lenguaje Alto Nivel (mas entendible para el humano, es el que vamos a usar...)
Como explicitamos anteriormente, las palabras reservadas del lenguaje son aquellas que el
mismo las puede reconocer e interpretar. No se pueden utilizar para ningún otro fin, por
ejemplo no se puede asignar el nombre de una variable con el de una palabra reservada. Por
ejemplo si estoy trabajando en un lenguaje de programación donde la orden para imprimir un
listado es PRINT , entonces si o si debo utilizar la palabra PRINT para imprimir; pero si estoy
trabajando con otro lenguaje de programación diferente al primero y para imprimir su palabra
reservada DOPRINTER, entonces debo utilizar si o si DOPRINTER para imprimir.
Para hacer uso de los juegos, se deben ingresar a las siguientes sitios web:
http://armorgames.com/play/6061/light-bot-20
http://armorgames.com/play/2205/light-bot
http://www.cnc.una.py/sl/SL-index.html
A los fines pedagógicos del presente curso, no se utilizarán ningún lenguaje de programación
en particular, sino la aplicación de dos software de licencia Libre (free software) denominados:
El objetivo del presente curso, es que el alumno aprenda la lógica de resolución de problemas
a través del uso de la algoritmia independientemente del uso de un lenguaje de programación
en particular.
BLOQUE TRES
INTRODUCCIÓN A PSEINT
Consideraciones Previas:
Uno de las mayores dificultades con las que se encuentran los hispanoparlantes que empiezan
a programar es el idioma.
Por una parte, la mayoría de lenguajes de programación se basan en el inglés, por lo que un
estudiante de habla hispana tiene que aprender que "write" o "print" son las palabras
equivalentes a "escribir".
Además, la mayoría de lenguajes tienen órdenes que realmente son abreviaturas de una o
varias palabras inglesas, de modo que el aprendiz tiene que entender o memorizar palabras
como "printf" o "writeln" incluso para realizar las tareas más sencillas. Para colmo, la mayoría
de entornos de programación están también en inglés (menús, mensajes de error y aviso, etc).
Por eso, una herramienta habitual para ayudar a los que empiezan es el "Pseudocódigo", algo
así como un falso lenguaje de programación en español, que permite asimilar con más facilidad
las ideas básicas. El pseudocódigo soluciona el primer problema: no hace falta aprender otros
idiomas para entender los conceptos básicos. Pero "históricamente" no solucionaba el
problema del "entorno de programación": no existían entornos para programar en
pseudocódigo, así que típicamente ha sido una herramienta para usar "con lapiz y papel".
Algunas universidades han creado sus propios "intérpretes de pseudocódigo", para ayudar a
los alumnos de primer curso a crear los programas "pensando en español", pero permitiéndoles
además probar esos programas desde un entorno "casi real".
En cuanto a estos "intérpretes de pseudocódigo", que permiten teclear nuestro programa y ver
cual sería el resultado, hay uno que me parece especialmente bueno: PSEINT, que además
realza con colores la sintaxis de nuestros programas para ayudar a detectar errores, tiene
autocompletado para permitir ganar tiempo, está disponible para Windows y Linux, es gratuito
(1), etc. Éste es el que usaremos en este curso introductorio.
Eso sí, no existe un estándar claro en cuanto a pseudocódigo, puede que la sintaxis que
empleen en tu universidad o centro de estudios sea ligeramente diferente a la que veremos
aquí. Aun así, esperamos poder ayudarte a coger con facilidad las nociones básicas.
(1) PSEINT realmente es "de código abierto": cualquiera puede ver cómo está creado, de forma
que incluso si su autor perdiera el interés por el proyecto, otras personas podrían retomarlo, lo
que le garantiza una vida mucho mayor. PSEINT se puede descargar desde
http://pseint.sourceforge.net/
PseInt, a pesar de ser una herramienta útil, es muy limitada. De hecho, en 2010 parece estar
abandonado por su autor original, quien ni siquiera responde a los mensajes, por lo que es de
suponer que sea relativamente difícil incluso que otro programador tome el proyecto en su
lugar para solucionar alguno de los problemas que tiene o para añadirle más posibilidades.
Si no te asusta el inglés, bien porque lo conozcas o bien porque estés dispuesto a aprender 30
palabras, estás de suerte: el pseudocódigo en inglés se parece a varios lenguajes de
programación, así que podrías aprender los conceptos básicos usando "entornos reales".
Posiblemente Pascal sería el lenguaje que más se parecería al pseudocódigo, y por eso
durante mucho tiempo se ha considerado un lenguaje muy adecuado para aprender. Pero
como ya hay muchos cursos de Pascal.
Nuestro programa debería tener un nombre: se nos propone que se llame "sin_titulo", pero
mejor podemos hacer clic en esa palabra y escribir otro título que recuerde mejor lo que va a
hacer nuestro programa. De momento, bastará con "Ejemplo001", por eso de que es nuestro
primer ejemplo.
Cuando terminamos la palabra "Escribir", se nos propone que escribamos una o más
expresiones, separadas por comas; en nuestro caso, será la palabra "Hola", entre comillas:
Y entonces aparecerá una nueva ventana que nos muestra el resultado de nuestro programa
(por supuesto, se trata de la palabra Hola):
Hola
Por supuesto, no sólo podemos escribir textos prefijados. Podemos usar nuestro ordenador
como calculadora, que nos muestre el resultado de una operación aritmética:
Proceso Ejemplo002
Escribir 20+30
FinProceso
Y como despedida por hoy, vamos a hacer algo un poco más complejo: vamos a sumar dos
números que no estén prefijados dentro del programa, sino que deberá teclear el usuario. Para
eso, usaremos la orden "Leer", que nos permite leer lo que el usuario teclee y dejarlo guardado
para utilizarlo después. Debemos dar un nombre temporal a estos datos que leemos del
usuario. Parece razonable que el primer número que teclee el usuario se llame algo como
"primerNumero", y el segundo sea algo como "segundoNumero". El resultado que queremos
obtener será la suma de ese primer número y ese segundo número, así que nuestro programa
podría quedar así:
Proceso Ejemplo003
Escribir "Dime un numero"
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
Escribir "Su suma es ", primerNumero + segundoNumero
FinProceso
En la próxima entrega puntualizaremos un poco más lo que hemos hecho en este último
programa y veremos cómo comprobar condiciones. Eso será dentro de una semana...
Nuestro último programa pedía dos números al usuario y mostraba su suma, así
Proceso Ejemplo003
Escribir "Dime un numero"
Leer primerNumero
Escribir "Dime otro numero"
Leer segundoNumero
Escribir "Su suma es ", primerNumero + segundoNumero
FinProceso
Proceso Ejemplo003b
Por otra parte, no siempre querremos que el valor de una variable lo introduzca el usuario.
Habrá veces que seamos nosotros mismos los que demos el valor inicial a una variable desde
nuestro programa, bien para usarlo en una serie de cálculos posteriores, o bien por legibilidad
(es más fácil entender algo como "longitudCircunferencia = 2 * pi * radio" que algo como
"longitudCircunferencia = 6.28 * radio".
La forma de dar un valor a una variable es con la secuencia de símbolos "<-":
radio <- 3
longitudCircunferencia <- 2 * pi * radio
(esos símbolos representan una flecha, para indicar que el valor 3 se va a guardar en el
espacio de memoria reservado para la variable llamada "radio").
¿Y qué ocurre si usamos una variable sin haberle dado valor? Esto pasa a veces por despiste,
si tecleamos mal el nombre de una variable, como en este fragmento de programa:
primerNumero <- 2
Escribir primerNmero
Si lees ese fragmento con cuidado, verás que el nombre de la variable que aparece en la
segunda línea es incorrecto, falta la letra "u". ¿Qué sucede en ese caso? En algunos lenguajes
(pocos, afortunadamente) se da por sentado que es una variable nueva, y se le da el valor 0;
en el caso de PseInt, igual que en la mayoría de lenguajes actuales, obtendremos un mensaje
de error que nos dirá que estamos usando una variable que no tenía valor.
Si condicion Entonces
pasos_a_dar_si_es_verdadero
Si No
pasos_a_dar_si_es_falso
FinSi
El bloque "Si No" es opcional: podemos optar por no indicar lo que queremos que se haga
cuando no se cumpla la condición.
Para ayudarnos a planificar el comportamiento de una secuencia de instrucciones, se suele
usar como ayuda los llamados "diagramas de flujo". En estos diagramas, una condición se
representa como un rombo, del que salen dos flechas: una para la secuencia de acciones a
realizar si se cumple la condición y otra para cuando no se cumple:
Así, si en PSeInt hacemos clic en el icono de la parte derecha que representa la condición SI,
aparece un esqueleto de programa casi completo, para que hagamos los cambios que nos
interesen:
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si
se cumple y si no se cumple, de modo que nuestro programa podría quedar así:
Proceso Ejemplo004
FinProceso
En ese ejemplo hemos comparado si un valor es mayor que el otro (>). Los operadores de
comparación que tenemos disponibles son:
También podemos comprobar varias condiciones a la vez, para hacer construcciones como: "si
a es mayor que b y b es mayor que c", o como "si a es igual a 1 o b es igual a 1". Los
operadores lógicos que de los que disponemos son:
Los operadores que podemos usar para comparar no son exactamente los mismos que en
PseInt:
Y las condiciones se pueden enlazar usando "y" (que se escribirá en inglés, "and"), "o" (que
será "or") o "no" ("not").
Ejercicio propuesto: un programa que pida al usuario 3 números y diga cual es el mayor de
los tres.
En la próxima entrega veremos más formas de comprobar condiciones...
Es frecuente tener que comprobar más de una condición a la vez, o bien varias
condiciones consecutivas. En concreto, un caso espercialmente habitual es el
de que una variable pueda tomar distintos. Por ejemplo, ciertas notas
numéricas tienen "nombres" en español: un 5 es un aprobado, un 9 y un 10 son
sobresaliente, etc. Si queremos hacer un programa que convierta de la nota
numérica a su equivalente escrito, podríamos emplear varias órdenes IF, una
tras la otra. Pero en muchos lenguajes de programación (y por tanto, también
El bloque "De Otro Modo" es opcional: si detallamos todos los valores posibles, no sería
necesario utilizarlo.
El número de valores que podemos probar es indefinido: no tiene por qué ser 3, sino que
pueden ser menos casos o muchos más.
Según la variante de pseudocódigo (o el lenguaje de programación) que empleemos, puede
haber restricciones en el tipo de datos que es aceptable. Por ejemplo, en el caso de PseInt, la
variable tiene que tener un valor numérico, no puede ser un texto.
Al igual que ocurría con la orden SI, existe un símbolo que podemos usar en los diagramas de
flujo para ayudarmos a planificar nuestro programa (aunqe este símbolo está menos extendido
que el de SI):
Así, si en PseInt hacemos clic en el icono de la parte derecha que representa la condición SI,
aparece un esqueleto de programa casi completo, para que hagamos los cambios que nos
interesen:
Sólo tenemos que escribir la condición que realmente nos interesa, y la serie de pasos a dar si
se cumple y si no se cumple, de modo que nuestro programa podría quedar así:
Proceso EjemploCasos
Escribir "Introduzca la nota";
Leer nota;
Segun nota Hacer
10:
Escribir "Ha obtenido un sobresaliente alto";
9:
Escribir "Ha obtenido un sobresaliente bajo";
8:
Escribir "Ha obtenido un notable alto";
7:
Escribir "Ha obtenido un notable bajo";
6:
Escribir "Ha obtenido un aprobado alto";
5:
Escribir "Ha obtenido un aprobado";
De Otro Modo:
Escribir "Ha suspendido";
FinSegun
FinProceso
Pero no siempre habrá que comprobar condiciones una única vez. Es muy frecuente que haya
que hacerlo de forma repetitiva. Por ejemplo, "pedir una contraseña al usuario hasta que sea la
correcta", o aún más cercano al mundo real, "pedir una contraseña al usuario hasta que sea la
correcta o agote sus intentos". De eso hablaremos en la próxima entrega.
6 - Condiciones repetitivas
Habitualmente, una condición se deberá comprobar más de una vez. Por ejemplo, una
condición de error puede repetirse: el usuario que introduce mal una contraseña por primera
vez puede equivocarse en una segunda ocasión.
Por eso, igual que cualquier lenguaje de programación tiene una orden "si", la gran mayoría de
ellos tendrá una orden "mientras", que permite que un fragmento de un programa se repita
mientras una cierta condición se siga cumpliendo (por ejemplo, mientras la contraseña que
teclee el usuario sea incorrecta, el usuario deberá volver a introducirla).
También existe un símbolo habitual en los diagramas de flujo para representar este tipo de
condiciones repetitivas, en las que si se cumple la condición, se realiza una serie de acciones y
se vuelve a comprobar la condición, y así sucesivamente hasta que la condicion no se cumpla:
Por ejemplo, un programa capaz de sumar muchos números, todos los que el usuario quisiera,
y en el que hubiera que escribir "0" para indicar que queremos terminar, podría ser así:
Proceso Mientras01
Escribir "Dime un numero";
Leer x;
suma <- 0;
Mientras x <> 0 Hacer
suma <- suma + x;
Escribir "Hasta ahora, la suma es ", suma;
Escribir "Dime otro numero";
Leer x;
FinMientras
Escribir "Terminado";
FinProceso
Por ejemplo, un programa que pida al usuario una clave de acceso, y que no le permita seguir
hasta que la introduzca correctamente, se podría hacer así:
Proceso Repetir01
Repetir
Escribir "Dime tu clave de acceso";
Leer clave;
Si clave <> 1234 Entonces
Escribir "Clave incorrecta";
FinSi
Hasta Que clave=1234
Escribir "Bienvenido!";
FinProceso
Clave Incorrecta
Dime tu clave de acceso
> 123
Clave Incorrecta
Dime tu clave de acceso
> 543
Clave Incorrecta
Queda otra forma de repetir fragmentos de programa. Pronto estaremos con ella...
Por ejemplo, un programa que mostrara los números del 1 al 10, podría ser:
Proceso Para01
Para x <- 1 Hasta 10 Hacer
Escribir x;
FinPara
FinProceso
Escribir x;
FinPara
FinProceso
Y obtendríamos:
Hemos visto casi todas las construcciones que podremos encontrar en los lenguajes de
programación convencionales (y, por tanto, al planificarlos usando pseudocódigo). En la
próxima entrega veremos alguna otra posibilidad, como el manejo de matrices y las funciones
matemáticas, para pasar después a algunos ejemplos completos.
10 - Funciones matemáticas
Función Significado
RC(X) Raíz Cuadrada de X
ABS(X) Valor Absoluto de X
LN(X) Logaritmo Natural de X
EXP(X) Función Exponencial de X
SEN(X) Seno de X
COS(X) Coseno de X
TAN(X) Tangente de X
ASEN(X) Arco seno de X
ACOS(X) Arco coseno de X
ATAN(X) Arco tangente de X
TRUNC(X) Parte entera de X
REDON(X) Entero más cercano a X
AZAR(X) Entero aleatorio entre 0 y x-1
(Si no sabes qué hace alguna de estas funciones, no te preocupes mucho, es señal de
que hasta ahora no la has necesitado... Las más importantes de ellas las probaremos
directamente como parte de los ejercicios)
11 - Ejercicios resueltos
a) Enunciados
1.- Crear un algoritmo que escriba "Hola" cinco veces.
2.- Crear un algoritmo que pida al usuario un número y le diga si es positivo, negativo o
cero.
3.- Crear un algoritmo que pida al usuario 5 datos y muestre su suma.
4.- Crear un algoritmo que calcule la raíz cuadrada del número que introduzca el
usuario. Si se introduce un número negativo, debe mostrar un mensaje de error y volver
a pedirlo (tantas veces como sea necesario).
5.- Crear un algoritmo que pida al usuario un número y un símbolo, y dibuje un
cuadrado usando ese símbolo. El cuadrado tendrá el tamaño que ha indicado el
usuario. Por ejemplo, si el usuario introduce 4 como tamaño y * como símbolo, deberá
escribirse algo como:
****
****
****
****
b) Ejemplos de soluciones
1.- Crear un algoritmo que escriba "Hola" cinco veces.
// 1.- Crear un algoritmo que escriba "Hola" cinco veces.
Proceso Resuelto01
Para x <- 1 Hasta 5 Hacer
Escribir "Hola";
FinPara
FinProceso
2.- Crear un algoritmo que pida al usuario un número y le diga si es positivo, negativo o cero.
// 2.- Crear un algoritmo que pida al usuario un numero y le diga si es positivo, negativo o cero.
Proceso Resuelto02
Escribir "Dime un numero";
Leer x;
Si x > 0 Entonces
Escribir "Es positivo";
Sino
Si x < 0 Entonces
Escribir "Es negativo";
Sino
Escribir "Es cero";
FinSi
FinSi
FinProceso
Proceso Resuelto03
suma <- 0
Para x <- 1 Hasta 5 Hacer
Escribir "Dime un dato";
Leer x;
suma <- suma + x;
FinPara
Escribir "Su suma es ", suma;
FinProceso
o de forma alternativa, usando matrices:
// 3.- Crear un algoritmo que pida al usuario 5 datos y muestre su suma.
// Forma (b), usando matrices
Proceso Resuelto03
Dimension dato[5]
suma <- 0
4.- Crear un algoritmo que calcule la raíz cuadrada del número que introduzca el usuario.
Si se introduce un número negativo, debe mostrar un mensaje de error y volver a pedirlo
(tantas veces como sea necesario).
// 4.- Crear un algoritmo que calcule la raíz cuadrada del número
// que introduzca el usuario. Si se introduce un número negativo,
// debe mostrar un mensaje de error y volver a pedirlo
// (tantas veces como sea necesario).
Proceso Resuelto04
Repetir
Escribir "Dime un numero";
Leer x;
Si x < 0 Entonces
FinProceso
Proceso Resuelto05
Escribir "Dime el lado";
Leer lado;
FinProceso
BLOQUE CUATRO
INTRODUCCIÓN AL SOFTWARE SL
Bienvenidos a la página de SL
SL es un lenguaje diseñado para apoyar la formación profesional de estudiantes de
Informática. Las construcciones del lenguaje fueron cuidadosamente seleccionadas para que el
alumno se concentre en la búsqueda de las soluciones algorítmica apropiadas, obviando
detalles de implementación que seguramente tendrá ocasión de estudiar en otras etapas de su
aprendizaje.
El lenguaje presenta características que lo hacen apropiado para expresar algoritmos de las
etapas iniciales del aprendizaje, pero simultáneamente reúne un rico conjunto de
construcciones que posibilitan el tratamiento de tópicos más avanzados de estructuras de
datos y programación modular.
Las principales características del lenguaje se describen aquí. También puede encontrar
algunos ejemplos sencillos.
El entorno de desarrollo se llama SLE. La versión más reciente de SLE está disponible para
Windows (Windows 95/98, 2000, NT, XP) y Linux.
SL es gratuito
Si usted es docente y quiere utilizarlo como apoyo a su actividad educativa, simplemente
puede descargar el instalador y realizar las copias para sus alumnos, ya que SL es gratuito. Si
desea, puede enviar un email a soporte-sl@cnc.una.py con sus sugerencias y comentarios.
Quién usa SL
SL está en uso desde hace ya varios años en varias universidades del Paraguay (entre ellas la
UNA y la UCA). Además, varios colegios técnicos lo utilizan también como su lenguaje de
introducción a la programación.
Bienvenidos a la página de SL
SL es un lenguaje diseñado para apoyar la formación profesional de estudiantes de
Informática. Las construcciones del lenguaje fueron cuidadosamente seleccionadas para que el
alumno se concentre en la búsqueda de las soluciones algorítmica apropiadas, obviando
detalles de implementación que seguramente tendrá ocasión de estudiar en otras etapas de su
aprendizaje.
El lenguaje presenta características que lo hacen apropiado para expresar algoritmos de las
etapas iniciales del aprendizaje, pero simultáneamente reúne un rico conjunto de
construcciones que posibilitan el tratamiento de tópicos más avanzados de estructuras de
datos y programación modular.
Las principales características del lenguaje se describen aquí. También puede encontrar
algunos ejemplos sencillos.
El entorno de desarrollo se llama SLE. La versión más reciente de SLE está disponible para
Windows (Windows 95/98, 2000, NT, XP) y Linux.
SL es gratuito
Si usted es docente y quiere utilizarlo como apoyo a su actividad educativa, simplemente
puede descargar el instalador y realizar las copias para sus alumnos, ya que SL es gratuito. Si
desea, puede enviar un email a soporte-sl@cnc.una.py con sus sugerencias y comentarios.
Quién usa SL
SL está en uso desde hace ya varios años en varias universidades del Paraguay (entre ellas la
UNA y la UCA). Además, varios colegios técnicos lo utilizan también como su lenguaje de
introducción a la programación.
Principales características de SL
Posee un conjunto simplificado de tipos de básicos: numéricos (enteros y reales, sin distinción),
cadenas y booleanos.
Se acepta la ñ (mayúscula y minúscula) como carácter constituyente de un identificador.
Pueden definirse registros y arreglos uni- y multidimensionales de cualquier tipo. Los arreglos
pueden tener un tamaño fijo o se declarados “abiertos”, en cuyo caso pueden ser
“dimensionados” durante la ejecución.
Las cadenas son dinámicas, es decir, su longitud se ajusta automáticamente para contener la
secuencia de caracteres que se requiera, sin obligar a la definición explícita de una longitud
máxima.
Los subprogramas comprenden funciones y subrutinas, los que pueden recibir parámetros por
valor o por referencia. Las funciones pueden retornar valores de cualquier tipo de datos,
incluyendo registros y arreglos.
Los subprogramas no necesitan “prototipos” y pueden aparecer en cualquier orden dentro del
cuerpo del programa fuente.
Las variables, nombres de tipos de datos y constantes pueden ser globales o pertenecer en
ámbito un subprograma en particular.
La inicialización de las variables puede combinarse con su declaración. Incluso el tipo de dato
puede omitirse si los valores iniciales son expresiones que corresponden a uno de los tipos
primitivos.
Cuenta con un rico conjunto de operadores aritméticos y relacionales lógicos. Además, se
soporta concatenación de cadenas y de acceso a cada carácter en forma individual y directa,
como si la cadena fuese un vector.
Novedades
A mediados de febrero del 2004 se ha publicado SLE versión 2. Esta versión está disponible
para Windows (Windows 95/98, 2000, NT, XP) y Linux.
SLE versión 2 incorpora todas las características presentes en la versión previa y agrega:
Coloración de los elementos sintácticos del programa fuente, con lo que es más
sencillo identificar las estructuras del programa.
Ayuda en línea, con capacidad de búsqueda. Los capítulos que inicialmente se
incluyen en la ayuda se refieren a las funciones y procedimientos incorporados.
Paulatinamente se incorporarán otros elementos del lenguaje y el entorno, como ser
las declaraciones, las sentencias, el uso del depurador y los mensajes de error.
Impresión del programa fuente en modo gráfico, incluyendo soporte para
impresoras láser y a chorro de tinta. Nota: En Linux se requiere una impresora
PostScript o un conversor a este lenguaje de impresión.
Ventana independiente para el programa SL en ejecución, con lo que resulta
mucho más sencillo ver los cambios que se van produciendo en la pantalla como
consecuencia de la ejecución del programa SL.
Histórico de valores ingresados previamente, haciendo que la ejecución repetida de
un programa, por ejemplo cuando se lo está depurando, sea mucho más rápida, pues
los valores de prueba se tipean una sola vez.
SLE en acción
A continuación se muestra un ejemplo de SLE versión 2 durante la depuración de un
programa sobre Windows XP. En la imagen puede apreciarse el editor, el evaluador de
expresiones, la ventana de ejecución y la indicación de la línea que se ejecutaría a
continuación.
* (c) jsegovia@cnc.una.py
*/
var
A : vector [10] numerico
m, n : numerico
inicio
imprimir (“\nIngrese “, alen (A), “ números separados por
comas:\n”)
leer (A)
desde m=1 hasta alen(A)-1 {
desde n=m+1 hasta alen (A) {
si ( A [m] > A [n] ) {
intercambiar (A [m], A [n])
}
}
}
imprimir ("\nEl vector ordenado es:\n”, A)
fin
El Pseudo-código
Las características del este pseudolenguaje fueron propuestas en 2001 por el responsable de
la asignatura Fundamentos de Programación (Horacio Loyarte) de la carrera de Ingeniería
Informática de la FICH-UNL. Las premisas son:
Sintaxis sencilla
Manejo de las estructuras básicas de control
Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y lógico
(verdadero-falso).
Estructuras de datos: arreglos
Proceso SinTitulo
accion 1;
accion 1;
.
.
.
accion n;
FinProceso
Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue una
secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de
instrucciones es una lista de una o más instrucciones, cada una terminada en punto y coma.
Asignación
Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los
Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores
obtenidos de evaluar N expresiones. Dado que puede incluir una o más
expresiones, mostrará uno o más valores.
Dimensionamiento
La instrucción Dimension permite definir un arreglo, indicando sus dimensiones.
Si <condición>
Entonces
<instrucciones>
Sino
<instrucciones>
FinSi
condición es falsa. La condición debe ser una expresión lógica, que al ser
evaluada retorna Verdadero o Falso.
La cláusula Entonces debe aparecer siempre, pero la cláusla Sino puede no
estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y
la ejecución del programa continúa con la instrucción siguiente.
Selección Multiple
<instrucciones>
FinMientras
Repetir
<instrucciones>
Hasta Que <condición>
* Multiplicación
/ División
^ Potenciación
Algunas Observaciones
Se pueden introducir comentarios luego de una instrucción, o en líneas
separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a //,
hasta el fin de la línea, no será tomado en cuenta al interpretar el algoritmo.
Note que no puede haber instrucciones fuera del programa, aunque si
comentarios.
Las estructuras no secuenciales pueden anidarse. Es decir, pueden contener
otras adentro, pero la estructura contenida debe comenzar y finalizar dentro de
la contenedora.
Los identificadores, o nombres de variables, deben constar sólo de letras y
números, comenzando siempre con una letra.
Las constantes de tipo carácter se escriben entre comillas ( " ).
En las constantes numéricas, el punto ( . ) es el separador decimal.
Las constantes lógicas son Verdadero y Falso.
AdivinaNumero.psc
// Juego simple que pide al usuario que adivine un numero en 10
intentos
Proceso Adivina_Numero
intentos<-9;
num_secreto <- azar(100)+1;
Si intentos=0 Entonces
Escribir "El numero era: ",num_secreto;
Sino
Escribir "Exacto! Usted adivino en ",11-intentos,"
intentos.";
FinSi
FinProceso
BIBLIOGRAFÍA
Problemas
y algoritmos
Un enfoque práctico
Edith Lovos
Martín Goin
Problemas y algoritmos
Lecturas de Cátedra
Problemas y algoritmos
Un enfoque práctico
Edith Lovos
Martín Goin
Utilice su escáner de
código qr para acceder
a la versión digital
Índice
Dedicatorias................................................................................................9
Agradecimientos ........................................................................................10
Prólogo.........................................................................................................11
Capítulo 1. Conceptos básicos de programación.....................................13
1. 1. Etapas en la programación.......................................................15
1. 1. 1. Definición del problema ............................................................. 16
1. 1. 2. Análisis del problema ................................................................. 16
1. 1. 3. Diseño del algoritmo ................................................................... 16
1. 2. Pre y poscondiciones de un algoritmo....................................17
1. 3. Ejercicios propuestos................................................................18
1. 4. Expresión de algoritmos...........................................................19
Capítulo 2. Diagramación lógica...............................................................21
2. 1. Programa FreeDFD ...................................................................23
2. 2. ¿Qué son las variables?..............................................................27
2. 2. 1. Cómo darle valor a una variable ................................................ 28
2. 2. 2. Intercambio de variables ............................................................ 29
2. 3. Estructuras de control ..............................................................30
2. 3. 1. Estructura de control de decisión o selección.......................... 30
2. 3. 1. 1. Estructura de control de decisión simple......................... 30
2. 3. 1. 2. Estructura de control de decisión doble........................... 32
2. 3. 1. 3. Estructura de control de decisiones anidadas ................ 35
2. 3. 1. 4. Estructura de control de decisiones independientes.... 36
2. 4. Operadores de relación.............................................................37
2. 5. Operadores lógicos....................................................................37
2. 5. 1. Conjunción lógica o producto lógico «and»............................. 38
2. 5. 2. Disyunción lógica inclusiva o suma lógica «or»...................... 39
2. 5. 3. Negación o complemento lógico «not»..................................... 39
2. 6. Otros operadores matemáticos especiales.............................43
2. 7. Problemas: Diagramación lógica – Estructura de control
de decisión...............................................................................48
2. 8. Estructura de control de repetición.........................................50
2. 8. 1. Estructura de control de repetición (sentencia «para»)......... 53
2. 8. 2. Variables como acumuladores .................................................. 55
2. 8. 3. Variable contadora ...................................................................... 55
2. 8. 4. Máximos y mínimos................................................................... 62
2. 8. 5. Problemas: Diagramación lógica – Estructura de control
de repetición «para».................................................................... 65
2. 8. 6. Estructura de control de repetición (sentencia «mientras»).66
2. 8. 7. Problemas: Diagramación lógica – Estructura de control de
repetición «mientras»................................................................. 72
Capítulo 3. Pseudocódigo...........................................................................73
3. 1. PSeInt.........................................................................................73
3. 2. Operadores lógicos....................................................................80
3. 3. Ejercicios: pseudocódigo..........................................................87
Capítulo 4. Entorno de programación visual...........................................89
4. 1. Variables del programa DaVinci ..............................................93
4. 2. Conociendo la ciudad del robot ...............................................94
4. 2. Repetición..................................................................................97
4. 3. Modularización .........................................................................106
4. 4. Parámetros formales y reales...................................................110
4. 5. Variables globales y locales.......................................................112
4. 6. Ejercicios Da Vinci ....................................................................114
Dedicatorias
Dedicatoria |9
Agradecimientos
10 | Lovos y Goin
Prólogo
Prólogo | 11
De esta forma se ofrecen diversas herramientas de asistencia en el
aprendizaje de los conceptos básicos de programación, sumado a un con-
junto de ejemplos.
En el libro se presentan ejemplos prácticos resueltos. Además se pro-
pone un conjunto de situaciones problemáticas que le permitirán al lector
desarrollar las habilidades de resolución de problemas usando algoritmos.
12 | Lovos y Goin
Capítulo 1
Conceptos básicos de programación
Aprender a programar
es programar para aprender
Mitchel Resnick (1956)
La frase pertenece al destacado profesor, físico,
informático, periodista y programador. Participó
del diseño y desarrollo del Scratch (lenguaje
de programación para educación, 2005).
Los programadores
son los magos del futuro
Gabe Newell (1962)
Director general de Valve Software (empresa
desarrolladora de videojuegos)
El verbo programar tiene varios usos. Se refiere a idear y ordenar las ac-
ciones que se realizarán en el marco de un proyecto, como por ejemplo la
preparación de máquinas para cumplir con una cierta tarea específica, la
preparación de un espectáculo deportivo o artístico, la preparación de da-
tos necesarios para obtener la solución de un cálculo a través de una calcu-
ladora, el diseño del sistema y la distribución de materias para una carrera
o de temas para un curso o asignatura, etcétera.
En la actualidad, la noción de programación se encuentra más asocia-
da a la programación en ciencias informáticas. En este sentido, programar
14 | Lovos y Goin
podría resumirse como el proceso por el cual un programador escribe,
prueba, depura y mantiene un código a partir del uso de un lenguaje de
programación. Así, aprender a programar implica aprender ciencia y tec-
nología. La tecnología puede verse como el conjunto de herramientas, téc-
nicas y estándares que permiten llevar adelante la programación. Al hablar
de ciencia se hace referencia a una teoría amplia y profunda que permite
entender la programación. Ambos conocimientos son importantes, ya que
posibilitan enfrentar los retos de la evolución tecnológica.
Por otra parte, en estos tiempos, como señalan Patricia Compañ-Rosique
y otros (2015), la programación es una vía posible para el desarrollo del pen-
samiento computacional. Es decir, hacer uso de conceptos fundamentales de
la informática para resolver problemas del quehacer cotidiano.
1. 1. Etapas en la programación
Esta fase está dada por la especificación del problema, el cual requiere una
definición clara y precisa. Es importante saber lo que se desea que realice la
computadora; mientras esta definición no sea lo suficientemente clara, no
tiene mucho sentido continuar con la siguiente etapa.
En esta etapa se determina cómo debe ser el proceso que lleva a la resolución
del problema. La palabra algoritmo deriva del nombre de un matemático
árabe del siglo ix, llamado Al-Khuwarizmi, quien describió varios métodos
para resolver cierto tipo de problemas aritméticos.
El diseño de algoritmos es un recurso fundamental que permite resol-
ver problemas relacionados con casi todas las disciplinas.
La intención de este libro es que el lector adquiera las bases necesarias
para poder diseñar e implementar, de manera fácil y rápida, soluciones
algorítmicas.
Definición de algoritmo: es una secuencia no ambigua, finita y ordena-
da de pasos para poder resolver un problema.
• No ambigua implica que cada paso del algoritmo debe poder ser in-
terpretado de una única forma.
• Finita significa que la cantidad de pasos que componen el algoritmo
está limitada. El algoritmo empieza y termina.
16 | Lovos y Goin
• Orden. Los pasos del algoritmo deben seguirse en una determinada
secuencia para llegar a la solución del problema.
Ejemplos
1. 3. Ejercicios propuestos
18 | Lovos y Goin
Algoritmo 1 Algoritmo 2
Me visto rápidamente. Traer las herramientas que voy a usar.
Me levanto por la mañana. Hacer el arreglo con esmero.
Tomo una ducha de 10 minutos. Localizar el desperfecto
Tomo un té con leche y me voy. del depósito.
Termino de ducharme a las 7:25. Pasar la factura por el trabajo hecho.
Llego temprano al colegio. Organizar cómo voy a hacer el trabajo.
El reloj marca las 7:15. Ver qué tipo de arreglo necesita.
Comprobar la eficiencia del arreglo.
1. 4. Expresión de algoritmos
La computadora es el Proteo de
las máquinas. Su esencia es su
universalidad, su poder de simular.
Seymour Papert (1928-2016)
La frase pertenece al destacado científico
en computación, matemática y educación.
Es uno de los pioneros de la inteligencia
artificial y creador del Logo (lenguaje
de programación para educación).
Fuente: Adaptado de ak_mardini, 2006.
20 | Lovos y Goin
Capítulo 2
Diagramación lógica
Comienza el algoritmo.
Diagramación lógica | 21
Salida de datos (en este caso se
imprime lo que contiene la variable C)
Termina el algoritmo.
22 | Lovos y Goin
Nota: En la salida se pueden alternar carteles (mensajes) y datos, mien-
tras los primeros estén entre comillas y ambos separados por comas. En
este caso será “El Perímetro es “,P,” y el Área es “,A.
Ejemplo: si ingresamos b y h como 3 y 5 entonces la salida imprime lo
siguiente: El Perímetro es 16 y el Área es 15
Atención: Las operaciones aritméticas en los algoritmos deben expresar-
se siempre en una línea, por ejemplo si queremos realizar la siguiente
operación:
−B + 9
C=
2A
es necesario escribirla de la siguiente manera: C = (-B+9)/(2*A). El asterisco *
representa la multiplicación y la barra inclinada a derecha / la división.
2. 1. Programa FreeDFD
Diagramación lógica | 23
Figura 1. 3. Pantalla FreeDFD
En la parte superior tenemos el menú principal para acceder a todas las op-
ciones posibles y, debajo, la barra de herramientas que funcionan como atajos.
Más abajo, el sector de edición de trabajo. Siempre comienza con los
conectores «inicio» y «fin».
Respecto a la barra de herramientas o botones:
24 | Lovos y Goin
1. Para introducir entre los conectores «inicio» y «fin» el símbolo de
ingreso, primero hacemos click en el ícono «lectura» de la barra «ob-
jetos» y luego nos acercamos con el mouse al destino deseado (a).
La mano nos indica el sector permitido para colocar el objeto, de lo
contrario aparecerá un cartel de prohibido (b).
Luego de elegir la ubicación del objeto aparecen las marcas que indi-
can que está seleccionado (c).
a b c
Diagramación lógica | 25
4. Luego de armar por completo el diagrama de flujo como se observa
en el primer ejemplo, hay que ponerlo a prueba, aunque se reco-
mienda primero guardar el archivo («Archivo» – «Guardar como»).
26 | Lovos y Goin
7. Si el programa funcionó sin generar errores, FreeDFD nos mostrará
la siguiente ventana:
Diagramación lógica | 27
Ejemplos válidos: A, a , B1 , A20 , AA1 , Aa1 , B2B , Promedio , SUMATORIA
, A_1 , b1_2
Ejemplos no validos: 1B , 2c , _S , ¿A, La variable
28 | Lovos y Goin
2. 2. 1. Cómo darle valor a una variable
Diagramación lógica | 29
Importante: Una cuestión problemática con las variables es su va-
lor o contenido inicial. En algunos lenguajes si una variable se usa
sin antes haberle asignado un valor, se le dará un valor por defecto,
mientras que en otros lenguajes eso podría generar un error duran-
te la ejecución del programa. Entonces para evitar estas situacio-
nes, siempre que usemos una variable debemos darle un valor inicial.
Sugerencia: Editar y ejecutar los problemas propuestos en el software
FreeDFD para una mejor comprensión.
2. 2. 2. Intercambio de variables
2. 3. Estructuras de control
30 | Lovos y Goin
2. 3. 1. Estructura de control de decisión o selección
Diagramación lógica | 31
En este caso, si al ejecutar el algoritmo se ingresa un valor de radio
negativo o cero, el programa simplemente termina, ya que solo funciona
cuando la condición radio > 0 (expresión lógica) es verdadera.
Cuando se cumple la condición dentro del rombo el flujo de datos va
para el lado del Sí, caso contrario se dirige hacia el No.
Lo cual es incorrecto.
32 | Lovos y Goin
2. 3. 1. 2. Estructura de control de decisión doble
Nota: Los carteles en la salida siempre van entre comillas, en este caso
“ERROR”.
Diagramación lógica | 33
Veamos otro ejemplo.
Problema 5: Se pide ingresar dos números y luego mostrar por mensaje cuál es
el mayor.
Nota: ¿Qué sucede si ingresamos dos números iguales? ¿Cuál sería el re-
sultado? Lo verificamos ejecutando el algoritmo.
34 | Lovos y Goin
2. 3. 1. 3. Estructura de control de decisiones anidadas
Problema 6: Mostrar el número más grande (entre dos) ingresado por teclado.
Si los dos números son iguales mostrar el cartel “Son iguales”.
Diagramación lógica | 35
2. 3. 1. 4. Estructura de control de decisiones independientes
Problema 7: Ingresar dos números por teclado y sumarlos. En caso que los
números sean negativos, previo a la suma se debe cambiar su signo.
Nota: En este caso tenemos dos decisiones simples que son independien-
tes (podrían estar en cualquier orden). La operación N = (-1)*N hace cam-
biar el signo de negativo a positivo.
36 | Lovos y Goin
2. 4. Operadores de relación
2. 5. Operadores lógicos
Diagramación lógica | 37
Es decir que una decisión depende de la anterior.
38 | Lovos y Goin
resultado el valor falso, puesto que basta con que una de las dos variables
tenga valor falso para que ambas no sean simultáneamente verdaderas.
Diagramación lógica | 39
Problema 8: Solicitar al usuario un número natural y verificar que el número
ingresado se encuentre dentro de la primera docena de números naturales,
es decir entre el 1 y el 12.
40 | Lovos y Goin
Nota: Si al evaluar (A=B) se obtiene un resultado falso entonces no es
necesario evaluar la expresión (A=C). Esto se denomina evaluación de
circuito corto, si la primera expresión es falsa como el operador que las
vincula es un and aunque la segunda sea verdadera el resultado será falso,
de ahí que no tenga sentido realizar la evaluación.
Diagramación lógica | 41
La expresión lógica: (Cat=’A’)or((Ant>=10)and(Ant<=20)) permite ase-
gurar que el socio cumple con las condiciones impuestas.
42 | Lovos y Goin
Es común cometer errores usando operadores lógicos, por ejemplo:
Potencia ^ N1^N2
Diagramación lógica | 43
Problema 10: Se lee desde el teclado el valor de un ángulo en grados. Se desea
mostrar el coseno y el seno.
44 | Lovos y Goin
Problema 11: Se ingresan por teclado los catetos de un triángulo rectángulo. Se
desea hallar y mostrar su hipotenusa.
Problema 12: Ingresar un número natural por teclado. Se desea saber y mostrar
si es par o impar.
Diagramación lógica | 45
El operador «mod» nos devuelve el resto de la división entre números
enteros. Para este caso cualquier número natural (1,2,3,..,∞) dividido 2 nos
da un 1 o un 0 (cero), entonces los números pares tendrán como resultado
un 0, mientras que los impares un 1.
46 | Lovos y Goin
Ejemplos Rango de valores obtenidos
random(2) 0y1
radom(10)+1 Del 1 al 10
random(21)-10 Del -10 al 10
random(100)/10 Del 0,0 al 9,9
random(101)/10 Del 0,0 al 10,0
random(1001)/100-5 Del -5,00 al 5,00
random(10)*2 0, 2, 4, 6, 8, 10,…,18
Diagramación lógica | 47
Sabemos que son 6 las caras de un dado, entonces la expresión ran-
dom(6)+1 genera números del 1 al 6. ¿Qué podría suceder si cambiamos la
primera instrucción de asignación por dado ← random(7)?
Problema 15: Generar aleatoriamente una temperatura entre los -20º y los 40º
y mostrar el resultado.
48 | Lovos y Goin
5. Diseñar un algoritmo que pida un número por teclado y luego im-
prima el número siguiente al ingresado.
6. Diseñar un algoritmo que genere un número aleatorio del 0 al 200,
lo muestre y luego calcule y muestre el mismo número aumentado
en un 30 %.
7. Diseñar un algoritmo que genere un número aleatorio del 10 al 50,
lo muestre y luego calcule y muestre el mismo número disminuido
en un 15 %.
8. Diseñar un algoritmo que, dados tres números enteros, calcule e im-
prima el promedio entre ellos.
9. Diseñe un algoritmo para ingresar dos palabras (A, B) y luego realice
el intercambio de sus valores. Finalmente mostrar el contenido de
A y de B.
10. Diseñar un algoritmo que imprima el área y el perímetro de un rec-
tángulo ingresando su base y altura.
11. Realice un algoritmo que calcule el volumen de un cilindro a partir
de los valores de su radio y altura.
12. Crear un algoritmo que convierta y muestre un valor ingresado en
centímetros a yardas, metros, pies y pulgadas.
13. Diseñar un algoritmo que convierta y muestre la temperatura en
Fahrenheit ingresando la temperatura en Celsius.
14. Diseñar un algoritmo que calcule el volumen de un cilindro dados su
radio y altura (primero el programa deberá verificar si son positivas).
15. Crear un algoritmo que calcule si dos números son divisibles. Para
ello, se piden un primer número y un segundo número, entonces
mostrar un cartel que diga “es divisible” si el segundo número es
divisible al primero.
16. Diseñar un algoritmo para calcular el porcentaje de hombres y de
mujeres que hay en un grupo, dados los totales de hombres y de
mujeres.
17. Diseñar un algoritmo que indique con carteles si el número ingresa-
do es negativo, positivo o nulo.
18. Ingresar tres números y mostrar el mayor (asuma que todos son dis-
tintos entre sí).
19. Realice un algoritmo para mostrar un cartel que indique si un trián-
gulo es «escaleno», «equilátero» o «isósceles» ingresando sus lados.
20. Diseñar un algoritmo que imprima con un cartel el número de do-
cena («primera», «segunda» o «tercera») dado el resultado de una
jugada de ruleta (del 0 al 36). Utilizar el operador lógico and.
21. Crear un algoritmo que permita obtener y mostrar la cantidad de dígi-
tos de un número ingresado, sabiendo que el máximo permitido es 4.
Diagramación lógica | 49
22. Crear un algoritmo que muestre cada uno de los dígitos de un nú-
mero ingresado por el usuario. El máximo permitido es de 4 dígitos.
Por ejemplo: si se ingresa el número 187, entonces debe mostrar en
un único cartel lo siguiente: “d1 = 0, d2 = 1, d3 = 8 y d4 =7”.
23. Ídem al anterior pero se pide que muestre la suma de los dígitos del
número ingresado (máximo 4 dígitos).
24. Diseñar un algoritmo que imprima con un cartel «Correcto» según
el siguiente caso: si el numero N es múltiplo de 5 y se encuentra en-
tre los 25 primeros números. N debe ser obtenido aleatoriamente
entre números del 1 al 1000. Primero debe mostrar N.
25. Diseñar un algoritmo que ingresando un numero de 5 dígitos detec-
te si es capicúa y muestre un cartel «Es capicúa» o «No es capicúa»
según el resultado.
26. Crear un algoritmo que muestre las soluciones de una ecuación cua-
drática (usando Bhaskara), a partir del ingreso de los valores de los co-
eficientes del polinomio. El polinomio tiene la forma: P(x) = ax2+bx+c
27. Probar con: a) P(x) = x2+3x+2 b) P(x) = 2x2+4x+2 c) P(x) = 3x2+2
50 | Lovos y Goin
Problema 16: Ingresar 10 números (edades de personas) y luego hallar y
mostrar su promedio.
Solución 1
Diagramación lógica | 51
Solución 2
52 | Lovos y Goin
La primera solución resuelve el problema en pocas líneas, pero utiliza
una gran cantidad de variables. La segunda solución utiliza pocas variables,
pero muchas líneas de comando que se repiten de a pares (leer y sumar).
Basta imaginar si el algoritmo en vez de resolver el promedio con diez
números debiera resolverlo para cien, necesitaríamos para la solución 1
cien variables y para la solución 2 más de doscientas líneas de trabajo.
Para poder tratar con este tipo de situaciones, existen las estructuras de
control de repetición: «para», «mientras» y «hacer-mientras».
Diagramación lógica | 53
De esta manera todo lo que encierra desde Para hasta Fin (Para) se re-
pite tantas veces como lo indica el control de repetición.
La variable S funciona como sumador o acumulador de A.
54 | Lovos y Goin
2. 8. 2. Variables como acumuladores
Es una variable que, como su nombre lo indica, va a ser usada para sumar
sobre sí misma un conjunto de valores. Cuando se utiliza dentro de un ciclo
de repetición Para, al finalizar el mismo, esta variable contendrá la suma-
toria de todos los valores que cumplen una determinada condición (tam-
bién puede servir para decrementar valores variables). Es necesario haber
inicializado su valor antes del comienzo de un ciclo de repetición «para».
La inicialización consiste en asignarle al sumador un valor inicial, es de-
cir el valor desde el cual necesitamos se inicie la sumatoria (por lo general
comienzan en cero).
Ejemplo: S = 0
S=S+N
2. 8. 3. Variable contadora
Diagramación lógica | 55
Problema 18: En una veterinaria se desea saber el promedio de edad de gatos
y perros (por separados) que fueron asistidos durante un mes. En total se
registraron 30 animales y la veterinaria solo atiende gatos y perros.
56 | Lovos y Goin
Problema 19: Se pide lo mismo que el problema anterior, pero la diferencia
radica en que no solo la veterinaria atiende gatos y perros, puede que sean
otros animales también. Justamente lo que se pide es además contar la
cantidad de esos animales que no son ni gatos y ni perros.
Diagramación lógica | 57
Es decir que, por descarte, otro tipo de animal caería en el último No de
la decisión y, entonces, incrementaría en uno la variable CA.
58 | Lovos y Goin
Problema 20: Solicitar al usuario que ingrese un número entero N, luego
generar en forma aleatoria N números enteros comprendidos entre 1 y 100
y determinar cuántos son pares y cuántos impares.
Diagramación lógica | 59
Pregunta: ¿Qué precondición debe cumplir N? ¿Qué sucede si el número
que ingresa el usuario es -1?
Problema 21: Solicitar al usuario que ingrese un valor N y mostrar todos los
valores comprendidos entre N y 1, comenzando desde N.
60 | Lovos y Goin
Problema 22: El factorial de un número entero se denota de la siguiente manera
«n!» y su resultado es n!=n*(n-1)*(n-2)*…*1. Por ejemplo: 5!=5*4*3*2*1
siendo el resultado 120. Se pide desarrollar un programa que lee un valor N
y determine su factorial.
Diagramación lógica | 61
2. 8. 4. Máximos y mínimos
Problema 23: Hallar la persona de mayor edad, sabiendo que se leen datos
correspondientes a 20 muestras.
62 | Lovos y Goin
Tomar en cuenta que si se produce el caso de empate la condición es
falsa, por lo tanto, no sufre efecto.
Si el ejercicio además solicitara hallar la mínima edad entre las 20 per-
sonas, entonces será necesario agregar otra variable, por ejemplo EMIN
y asignarle un valor extremadamente grande de entrada (por ejemplo:
EMIN = 1000) y la condición (E < EMIN) para la decisión.
A continuación se muestra un ejemplo de cómo hallar el mínimo.
Problema 24: Hallar la persona de menor altura, sabiendo que se leen datos
correspondientes a las alturas de 30 personas. El ingreso es en números
enteros y en cm.
Diagramación lógica | 63
El valor absurdo de entrada será AMIN=1000 (ninguna persona mide 10 m).
¿Qué sucede si además de registrar la mínima altura de la persona, se
desea conocer en qué ubicación (orden dentro de la lista de valores leídos)
se encuentra tal persona?
64 | Lovos y Goin
A la variable UMIN se le asigna el valor de la variable de iteración i del
Para. Por ejemplo, si la altura mínima se produce en la vuelta 8 significa que
i es igual a 8.
De esta manera se tiene el registro de cuándo se produce la última con-
dición verdadera de la decisión.
En caso de empate, el único registro que se produce es el primero que llega.
Diagramación lógica | 65
2. 8. 6. Estructura de control de iteración (sentencia «mientras»)
Problema 26: Calcular la suma de los números ingresados por teclado hasta
que se ingrese un cero.
66 | Lovos y Goin
Es necesario leer el valor de la variable N antes de comenzar con el bucle
«mientras», porque se debe evaluar la condición al entrar al ciclo de repeti-
ción. Luego es importante no olvidarse de volver a leer N dentro del bucle,
porque si no lo hacemos caeremos en un ciclo de repetición infinito.
¿Cuál será el resultado si arrancamos ingresando un cero?
Problema 27: Hallar el promedio de números ingresados por teclado hasta que
se lea un número impar o uno menor a 20.
Diagramación lógica | 67
Nota: También se puede introducir en la salida la combinación de un car-
tel y un cálculo, como en el caso anterior donde se realiza el promedio S/C
sin depender de otra variable: prom ← S/C.
Esto es así porque estamos dividiendo por cero, ya que C nunca pudo
incrementarse. ¿Cómo podríamos solucionar este problema? ¿En qué casos
es posible hallar el promedio?
Nota: Para poder solucionar este problema tendremos que recurrir a una
decisión antes de efectuar la división, de la siguiente manera:
68 | Lovos y Goin
Problema 28: Se leen números que ingresa el usuario desde teclado, hasta que
llega un valor negativo. Se pide que determine cantidad de impares y pares
leídos. El cero no se cuenta.
Diagramación lógica | 69
Mientras la condición del ciclo de repetición cumpla con N mayor o
igual a cero, se determina si dicho número es distinto a 0 y luego si es par o
impar para incrementar CP o CI respectivamente.
Nota: No olvidarse de leer N antes del ciclo y dentro del mismo. ¿Qué
sucedería si no leemos dentro del ciclo?
Problema 29: Diseñar un algoritmo que calcule cuánto es el cociente entre dos
números (únicamente dos números pares). Si el usuario ingresa un número
impar, le pide otra vez el número hasta ingresar uno que sea par.
70 | Lovos y Goin
Nota: Se asignan al inicio del algoritmo a las variables N1 y N2 el valor 1
(uno) para que puedan entrar a los ciclos de repetición «mientras» y así
pedir el nuevo valor.
Prueben ingresar valores impares y verán como repite el ingreso hasta
que se lea un valor par.
Problema 30: Diseñar usando FreeDFD un algoritmo que muestre por pantalla
10 números impares generados al azar (del 1 al 9, solo impares). Si el número
obtenido al azar es par debe continuar hasta hallar un impar.
Diagramación lógica | 71
Nota: Antes de entrar al ciclo de repetición Para se le asigna a la variable N un
valor 2 obligando a entrar al ciclo «mientras» hasta encontrar un número N
impar. Esto sucede 10 veces porque se encuentra dentro del Para.
72 | Lovos y Goin
Capítulo 3
Pseudocódigo
Pseudo deriva del griego seudo, que significa ‘falso’, mientras que código pro-
viene del latín: codices, codex. Estos se empleaban para referirse a los docu-
mentos o libros donde los romanos tenían escritas todas y cada una de sus
leyes. En definitiva pseudocódigo significa ‘falso lenguaje’.
Como se explicó en el capítulo introductorio, el diseño del algoritmo es
independiente del lenguaje de programación, es decir, una solución a un
problema puede ser escrita en diferentes lenguajes. Así, el pseudocódigo
está diseñado para facilitar la comprensión de la solución algorítmica. En
pocas palabras, es una herramienta que facilita el proceso de programar.
Aunque no existe una sintaxis estándar para el pseudocódigo, las dife-
rentes versiones utilizan un lenguaje similar al lenguaje natural y, en gene-
ral, su escritura exige la indentación (sangría en el margen izquierdo) de
diferentes líneas. En el caso de este libro, se usará la sintaxis provista por el
aplicativo PSeInt.
3. 1. PSeInt
Pseudocódigo | 73
Una vez descargado e instalado se puede ejecutar a través del icono:
74 | Lovos y Goin
Se describen con detalle todos los pasos a seguir en PSeInt para resolver
el problema 1.
Pseudocódigo | 75
Una vez terminado el programa en el sector de trabajo es necesario
probarlo ejecutándolo con el ícono o directamente con la tecla F9.
Importante:
i) Evitar dejar líneas de comando en blanco.
ii) Tener en cuenta al nombrar variables que no se diferencian mi-
núsculas de mayúsculas.
iii) Las palabras reservadas del programa aparecen en negrita.
iv) Guardar los archivos.
v) Probar el funcionamiento de cada programa.
vi) Para empezar un nuevo algoritmo hacer un click en el ícono .
Nota: Realizar en PSeInt el problema 2 (del capítulo 2).
76 | Lovos y Goin
Atención: Es muy importante tomar en cuenta las tabulaciones que se
presentan. En este caso, lo que va dentro del Si y Sino se tabula. Esta
acción tiene por nombre indentación y PSeInt la realiza automáticamente.
La indentación es lo que permite determinar un bloque de acciones que
se ejecutarán juntas. Luego, cada lenguaje de programación usará sus
propios símbolos para esto, por ejemplo, en el lenguaje C se usan las llaves
{}; en Pascal, las palabras reservadas «Begin-End». Es muy importante
acostumbrarse a escribir código indentado ya que facilita la lectura y la
detección de errores.
Pseudocódigo | 77
A continuación, se muestra el problema 4, donde se presenta un caso de
decisión doble.
Problema 4 (del capítulo 2): Igual al ejemplo anterior pero en el caso de ingresar
un radio erróneo (cero o negativo) indicarlo con el cartel “Error”.
78 | Lovos y Goin
Problema 6 (del capítulo 2): Mostrar el número más grande (entre dos) ingresado
por teclado. Si los dos números son iguales mostrar el cartel “Son iguales”.
Pseudocódigo | 79
Problema 7 (del capítulo 2): Ingresar dos números por teclado y sumarlos, con
la condición de que cada uno sea positivo (de lo contrario cambiar el signo).
No olvidarse de comentar las variables en uso.
3. 2. Operadores lógicos
80 | Lovos y Goin
Problema 8 (del capítulo 2): Verificar que el número ingresado por teclado se
encuentra dentro de la primera docena de números naturales, es decir entre
el 1 y el 12.
Pseudocódigo | 81
Problema 12 (del capítulo 2): Ingresar un número natural por teclado. Se desea
saber y mostrar si es par o impar.
82 | Lovos y Goin
Para el caso de la estructura de control de repetición «para», el comando
del PSeInt es:
Pseudocódigo | 83
Nota: En el problema 18 se utilizan variables de diferentes tipos; entero,
decimales y alfanuméricos. Con la intención de mejorar la lectura del
código se han agrupados los tipos por línea.
84 | Lovos y Goin
Nota: Realice los problemas 20, 21 y 22 directamente utilizando el programa
PSeInt sin depender del diagrama de flujo.
Pseudocódigo | 85
Para el caso de la estructura de control de repetición «mientras» el co-
mando del PSeInt es:
Nota: Realizar los problemas 27, 28, 29 y 30 del capítulo anterior utilizando
directamente el software PSeInt (sin la necesidad de recurrir al diagrama
de flujo).
86 | Lovos y Goin
3. 3. Ejercicios: pseudocódigo
46. Se ingresan por teclado 10 pares de temperaturas (T1 y T2) para hallar
el promedio de las temperaturas que están entre 5° y 15° (incluidos).
47. Se ingresan 10 números por teclado para hallar tres datos:
a. La cantidad de números negativos.
b. La suma de los números que se encuentran entre el 1 y el 10 (no
incluidos).
c. El promedio de todos los números.
48. Se generan números enteros en forma aleatoria entre [0 y 200] hasta
que la sumatoria de los mismos sea mayor a 500. Al finalizar indicar:
a. La cantidad de números nulos (0) leídos.
b. La sumatoria de los números que se encuentran entre el 10 y el 100
(incluidos).
c. El promedio de los números menores a 150.
d. El número mayor generado.
49. La sucesión de Fibonacci genera la siguiente secuencia de números:
1, 1, 2, 3, 5, 8, etcétera. Es decir que se obtiene de sumar los dos nú-
meros anteriores.
El siguiente es el término general: an=an-1+an-2
Se pide que diseñe un programa que le solicite al usuario un número
entero positivo K y luego muestre en pantalla el K-ésimo término
de la sucesión de Fibonacci. Por ejemplo, si el usuario ingresa por
teclado el número 10 entonces el algoritmo debe mostrar el valor
correspondiente a a10
50. Realice los ejercicios 25, 37, 38, 43 y 46 del capítulo anterior en
pseudocódigo.
Pseudocódigo | 87
Capítulo 4
Entorno de programación visual
90 | Lovos y Goin
Figura 4.1. Entorno gráfico del programa DaVinci
DaVinci PSeInt
Programa Proceso
Pedir Leer
Informar Mostrar por pantalla
Fin FinProceso
92 | Lovos y Goin
Ejemplo 2: Pedimos que el usuario ingrese los lados de un rectángulo para
mostrar el perímetro y área del mismo en un único cartel de salida “El períme-
tro es __ y el área es __“
Las asignaciones difieren en el símbolo “:=” (en PSeInt es) A ← L1*L2 (en Da-
Vinci es) A := L1*L2
Al igual que en el PSeInt se pueden alternar en la salida texto y variables con
la instrucción «informar».
Operaciones
Tipo Contenido
Aritmética Comparación
Número Números enteros +-*/% <= >= ><<> =
Combinación entre +
Texto <= >= ><<> =
números y letras (para concatenar)
Lógico v/f (verdadero/falso) &|! = <>
94 | Lovos y Goin
Figura 4.3. Configuración de ciudad
Dado que el robot solo puede girar a la derecha es necesario moverlo 3 veces a
derecha para orientar el robot a la izquierda y para eso utilizamos repetir 3.
96 | Lovos y Goin
Ejemplo 5: Recorrer en forma de escalera desde avenida 2 y calle 4, comenzando
horizontalmente hasta llegar a la avenida 7 y calle 8 e informar la posición final.
Los comandos posAV y posCA nos brindan la posición del robot, en este caso,
al finalizar el recorrido.
4. 2. Repetición
98 | Lovos y Goin
La primitiva hayflorenlaesquina devuelve verdadero si en la esquina
hay alguna flor o falso en caso contrario.
Ejemplo 8b: ¿Qué sucede si deseamos que el robot cuente la cantidad de flo-
res halladas pero sin alterar el estado de la ciudad? Es decir, dejando flores y
papeles en el mismo sitio.
El robot también puede moverse teletransportándose, es decir, sin la necesi-
dad de caminar a la esquina deseada, simplemente usando el comando pos.
A continuación, presentamos un ejemplo relacionado.
Atención: Primero, para dirigir el robot hacia abajo debemos girar dos
veces 90º con derecha derecha. La estructura de repetición se efectúa 5
veces para recorrer las avenidas impares 1,3,5,7 y 9 que se incrementan de
dos en dos con la asignación avenida:=avenida+2.
Ejemplo 12: Recorrer todas las esquinas de las avenidas 4 y 8 e informar la can-
tidad de esquinas donde hay flores y no papeles.
En este caso, el robot recorre las dos avenidas dejando la marca porque
estamos usando la instrucción mover.
Nota: Podemos agregar una por esquina y el límite está determinado por
la cantidad total de esquinas de la ciudad.
Nota: Por cada paso que da el robot, se evalúa la estructura de control mien-
tras y se decide si avanza o no el ciclo dependiendo de dos situaciones:
a) Que no se pase del límite de la ciudad avenida<11.
b) Que no aparezca en su camino un obstáculo !hayobstaculo.
Atención: Para probar la solución, previo a la ejecución, agregar a la
ciudad por lo menos un obstáculo.
4. 3. Modularización
Ejemplo 15: Juntar todas las flores de las esquinas de la avenida 6. Tenga en
cuenta que podría existir más de una flor.
Ejemplo 18: El robot se dirige a una esquina elegida por el usuario para contar la
cantidad de papeles y flores. Además, indique pre y poscondiciones para el módulo.
Nota: El robot primero solicita la esquina elegida por el usuario y luego llama
(invoca) al procedimiento ContarPapelFlor que tiene dos parámetros de en-
trada (av, calle) y dos parámetros de salida (Papeles, Flores). ¿Cuáles son las
precondiciones que deben cumplir los parámetros de entrada?
• Análisis
• Diseño detallado
• Verificación
• Construcción • Depuración
• Reutilización de elementos
existentes • Optimización
• Mantenimiento
• Programación nueva y completa
Analizar
Autogestionar Modelizar
Documentar Verificar
Desarrollar
Perfil profesional – Según resolución 501-DGE-19
Analizar
Examinar detalladamente una cosa (elemento, objeto,
situación, tarea), separando o considerando por separado
sus partes, para conocer sus características o cualidades,
o su estado, y extraer conclusiones.
Modelizar
Verificar
Interpretar el código.
• Analizar sistemáticamente el código.
• Identificar partes relacionadas con posibles malfuncionamientos (errores, problemas).
• Revisar detalladamente las partes.
Diagnosticar defectos.
• Determinar las causas de posibles defectos, considerando su corrección.
• Corregir defectos a partir del diagnostico de las causas.
Depurar defectos.
• Ejecutar acciones correctivas (criterio de calidad).
• Cumplir con buenas prácticas de programación.
• Aplicar normas de calidad vigentes para el proceso de desarrollo de software (adecuada documentación)
Diseñar los casos de pruebas y pruebas unitarias.
Desarrollar
Documentar
Autogestionar
2. Verbos auxiliares: No se puede conjugar un verbo en todos sus tiempos sin la ayuda de los
verbos auxiliares, que sirven para construir las formas compuestas.
He is working
(El está trabajando)
Sujeto + auxiliar + verbo conjugado
Los auxiliares más utilizados son: To Be (Ser, estar), To Do (Hacer), To Have (Tener,
haber), Shall , Will (Querer).
3. Verbos auxiliares modales: llamados así porque, expresan un modo o forma en que se realiza
la acción (posibilidad, probabilidad, certeza, obligación, etc).
También se los llama “Defectivos”, porque les falta conjugación en algunos tiempos. Se los
estudia por separado porque presentan diferencias.
o He may come (Él puede ser que venga) (Existe la posibilidad que venga).
o They must do it (Ellos tienen que hacer eso) (Es necesario que lo hagan).
La forma Continua o Progresiva (o forma en- ing), que se utiliza para acciones que
están/estaban o estarán sucediendo en el momento, con el verbo en voz activa (active voice).
La forma Enfática, utilizada cuando se quiere poner énfasis o acentuación en la acción,
(remarcándola o resaltándola).
Sintetizando…
En español, la forma "básica" o "más neutra" de los verbos siempre termina en -ar, -er o -
ir (tradicionalmente, esta forma se llama infinitivo).
Ejemplos de verbos:
caminar, ayudar, ser, trabajar, asustar, perder, gustar, imaginar, amar, tener, partir...
En español (como en muchos idiomas), los verbos tienen (entre otras) varias características:
cambian de forma para reflejar o indicar el tiempo:
lo hice (ayer)
lo haré (mañana)
cambian de forma para reflejar o indicar el sujeto (informalmente, la "cosa" o "persona" que
provoque la acción indicada por el verbo1):
lo hago (yo)
lo haces (tú)
existen varias formas sintéticas, en que varios sufijos se juntan en una sola palabra; por
ejemplo, en la forma podríamos se juntan la raíz pod-, el elemento -r- (="futuro"), el elemento -ía-
(="pasado") y -mos (designa el sujeto nosotros);
existen igualmente varias formas compuestas o analíticas, en que uno o varios
verbos auxiliares "ayudan" en la construcción:
me dijiste que ibas a poder venir
no lo hemos terminado
En general, los verbos del inglés tienen características similares, pero:
3
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
en inglés, los verbos tienen pocas formas (sintéticas) distintas: por ejemplo, no existen en
inglés ni forma de "futuro" (caminarás) ni forma de "condicional"/"futuro-en-el-pasado" (caminarías),
ni forma de "imperfecto" (caminabas)— en casos así, la única opción en inglés es utilizar
una construcción con verbo auxiliar;
en inglés, y a diferencia del español, muy pocas veces la forma del verbo refleja el sujeto: el
inglés tiene sólo un sufijo para indicar éste, utilizado en el tiempo presente cuando el sujeto es de la
tercera persona singular (él/ella)...
...entonces, con pocas excepciones, se usa siempre el pronombre para indicar el sujeto si éste
no está representado por alguna otra palabra (es decir, por un sustantivo). Por
ejemplo, I = yo, you =tú/usted(es) etc.
Verbos Auxiliares
El verbo to be
- El verbo "to be" significa ser o estar.
Entre los usos del verbo to be están:
Indicar profesión
I am a pilot . / yo soy piloto
Expresar sentimientos
I am tired. / yo estoy cansado
Informar sobre precios/dinero
How much is the car? / ¿Cuándo cuesta el coche?
Informar sobre la edad
I am ten years old. / tengo diez años
- To be es uno de los verbos auxiliares en inglés junto con to do, to have . Se usa de auxiliar en los
siguientes tiempos verbales:
Presente continuado (present continuous)
Pasado continuado (past continuous)
Pasado perfecto continuado (past perfect continuous)
Futuro continuado (future continuous)
Adicionalmente se usa como auxiliar para construir la voz pasiva.
4
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Gramática
El verbo to be es el único verbo copulativo pleno en inglés, lo que significa que utiliza adjetivos en
lugar de adverbios para completar el significado del verbo:
My boss is good. / Mi jefe es bueno.
Conjugación Significado
I am yo soy/ estoy
he is él es/ está
she is ella es/ está
it is ello es/ está
5
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
Conjugación Significado
NOTA: La interrogación y la negación del verbo to be no se forma con el auxiliar did en el "past
simple" como el resto de verbos sino que was/were hace las veces de auxiliar:
Oración interrogativa:
Where were you last night? / ¿Dónde estabas anoche?
6
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Oración negativa:
You weren't in class / Tú no estabas en clase.
Subjuntivo
El verbo to be es el único verbo en inglés que tiene subjuntivo.
La estructura es:
SUJETO + were
Conjugación Significado
I were yo fuera
he were él fuera
she were ella fuera
it were ello fuera
7
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
I am I'm
he is he's
she is she's
it is it's
we are we're
Como se puede observar para todas las personas, menos para la primera del singular, existen 2
posibilidades de contracción. Por ejemplo:
8
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
you are not se contrae en you're not si se quiere destacar el not o en you aren't si se quiere
destacar you.
EJERCICIOS
LEER LAS ORACIONES:
1- Subrayar el verbo “ To Be”.
2- Decir si actúa como verbo principal o auxiliar.
3- Traducir.
1. He is very tall.
2. She was eating.
3. It is horrible.
4. Are you crazy?
5. They are kind of weird.
6. We are too smart.
7. She is pretty.
8. They weren’t funny.
9
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Significados:
1.- El verbo "to do" significa hacer
I usually do my homework with my girlfriend / Normalmente hago mis deberes con mi novia
2.- To do es uno de los verbos auxiliares en inglés junto con to have, to be . Cuando "To do"
funciona con el rol de verbo auxiliar no tiene significado.
Presente Simple
La estructura es:
SUJETO + do/does
Conjugación Significado
I do yo hago
you do tú haces
he does él hace
she does ella hace
it does ello hace
we do nosotros hacemos
10
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Pasado Simple
La estructura es:
SUJETO + did
Conjugación Significado
I did yo hice
he did él hizo
she did ella hizo
it did ello hizo
La negación
Como en la interrogación, con los tiempos present simple y past simple puede aparecer 2 veces:
I didn't do a good job / No hice un buen trabajo
do not don't
EJERCICIOS
LEER LAS ORACIONES:
1- Subrayar el verbo “ To do”.
2- Decir si actúa como verbo principal o auxiliar.
3- Traducir.
1.- I do many things.
2.- Do you have any homework?
3.- She doesn’t write a letter .
4.- Did you buy four chairs?
5.- They do not find any pens and pencils.
6.- She did rice pudding.
7.-He does his homework in his room
8.-Did she cook pizza?
12
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
To have got
En el Reino Unido se usa el verbo to have got como sinónimo del verbo to have con el sentido de
posesión.
En Estados Unidos se dice:
I have a dog. / Yo tengo un perro.
En Reino Unido:
I have got a dog / Yo tengo un perro.
NOTA: Hay que destacar to have got se usa únicamente en presente. En los demás tiempos verbales su uso
es poco habitual.
Presente Simple
La estructura es:
Sujeto + have/has
Conjugación Significado
I have yo tengo
he has él tiene
she has ella tiene
it has ello tiene
Pasado Simple
La estructura es:
SUJETO + was/were
Conjugación Significado
I had yo tuve
13
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
he had él tuvo
she had ella tuvo
it had ello tuvo
I have I've
he has he's
she has she's
it has it's
we have we've
15
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
I had I'd
he had he'd
she had she'd
it had it'd
we had we'd
16
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Existe otra fórmula posible: I had not también se puede contraer en I'd not pero se usa con poca
frecuencia que I hadn't.
EJERCICIOS
LEER LAS ORACIONES:
1- Subrayar el verbo “To have”.
2- Decir si actúa como verbo principal o auxiliar.
3- Traducir.
1.- I had breakfast at 8 o’clock yesterday morning.
2.- She has a bath every day.
3.- Has he got a nice dream every night?
4.- I didn’t have a conversation with my father yesterday.
5.- I have a game of tennis twice a week.
6.- He has been in the bar the whole night.
7.- Had your father travelled to India?
8.- Has he ever written something?
17
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Condicional Continuo Perfecto (Conditional Continuous Perfect) I would have been dancing
Futuro Perfecto Continuo (Future Perfect Continuous) I will have been dancing
La construcción del presente simple (Present Simple) en inglés es realmente fácil, tiene la
estructura:
[SUJETO] + [VERBO] (en infinitivo sin to)
A tener en cuenta:
Si el sujeto es 3ª persona del singular se le añade una "-s" al verbo.
Veamos como ejemplo la conjugación del verbo to live (vivir) en presente simple:
Conjugación Significado
I live yo vivo
19
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
to go he goes
to wish he wishes
to reach he reaches
to express he expresses
to fix he fixes
to kiss he kisses
to buzz he buzzes
Adicionalmente, los verbos acabados en "-y" cuando la "y" no es precedida de una vocal, forman la
tercera persona en "-ies".
to ocuppy he ocuppies
to study he studies
EJERCICIOS
1- Completar las oraciones dadas con la forma correcta del verbo en presente simple.
2- Pasar las mismas a las formas posteriormente solicitada.
3- Traducir sólo el verbo conjugado.
1.- Aff: I (travel) ...........to Buenos Aires every week.
Neg:
Int:
2.- Aff: They (run) .......... in the park every Saturday.
Neg:
Int:
3.- Aff: My boss (work)..........hard.
Neg:
21
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Int:
4.- Aff: Mary (work) ...........in a bank.
Neg:
Int:
5.- Aff: You (study) ......... English.
Neg:
Int:
Conjugación Significado
I worked yo trabajé
he worked él trabajó
22
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Verbos irregulares
Para los verbos irregulares hay que memorizar su forma de pasado.
Veamos ejemplos de verbos irregulares:
to go Went Ir
Verbo Pasado
Use used
Die died
Conjugación Significado
Complementos Temporales
Usualmente con las oraciones en "pasado simple" es necesario detallar cuando se realizó la acción
(de manera explícita o por el contexto).
Por ejemplo:
I played a match last week / Jugé un partido la semana pasada
Enumeramos algunos otros complementos temporales de este tiempo verbal a modo de ejemplo:
Complemento Significado
yesterday ayer
in 2008 en 2008
24
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
on 01/01/2000 el 01/01/2000
in July en julio
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en pasado simple.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
Conjugación
25
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Nota: El auxiliar shall sólo se utiliza para la primera persona de singular ( I) y del plural (We) .
Mientras que el auxiliar will se puede utilizar en todos los casos.
Como ejemplo de la conjugación del futuro simple, veamos el verbo to work (trabajar):
Conjugación Significado
En inglés son muy frecuentes las contracciones. Los pronombres y el auxiliar will se contraen en las
siguientes formas:
Conjugación Significado
Conjugación Significado
26
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en futuro simple.
27
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
El Presente continuado
Conjugación Significado
28
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
29
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en presente continuado.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
30
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
Conjugación Significado
31
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en pasado continuado.
b- Pasar las mismas a las formas posteriormente solicitada.
c- Traducir sólo el verbo conjugado.
1.- Aff: The students (play) ...... football during the week.
Neg:
Int:
2.- Aff: Peter (practise) ...... English conversation before the exam.
Neg:
Int:
3.- Aff: Susan (drive) .......... when the accident happened.
Neg:
Int:
4.- Aff: My friends (study) ............. during the whole night.
32
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Neg:
Int:
5.- Aff: Mr. Robinson (teach) .............. language for ten hours.
Neg:
Int:
El Futuro Continuado
Conjugación del futuro continuado
La construcción del futuro continuo progresivo en inglés es:
SUJETO + will be + VERBO CON TERMINACIÓN-ing ( gerundio)
Conjugación Significado
La Interrogación
Como en el resto de los tiempos verbales, la interrogación se construye invirtiendo el orden del
sujeto y del verbo auxiliar "will":
will SUJETO + be + gerundio
will you be studying tomorrow? / ¿estarás estudiando mañana?
33
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en futuro continuado.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
34
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
Contracciones
En argot se contrae going to en gonna:
Un ejemplo claro es la oración:
Tonight is going to be a good night / hoy va a ser una buena noche
se convierte en:
Tonight is gonna be a good night
también puede contraerse “ tonight “ con “ is”, quedando:
Tonight gonna be a good night
35
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en futuro “going to”
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
36
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
Como pueden observar el auxiliar "has" se utiliza en la tercera persona del singular y el auxilar
"have" en los demás casos.
Verbos irregulares
Para los verbos irregulares hay que memorizar su forma de pasado y de participio.
Verbo Participio
to go Gone
to make Made
Verbo Participio
to hope Used
to excuse Excused
37
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
38
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
El matiz de este segundo ejemplo es, que aunque la acción de comprar terminó, el coche nos sigue
perteneciendo en el presente (continua el efecto de la acción).
Acciones que comenzaron y acabaron en el pasado pero que el intelocutor ha situado la
acción en un intervalo de tiempo no acabado. Esta situación de la acción en un intervalo temporal no
finalizado obliga a construir la oración en presente perfecto:
Intervalo temporal no finalizado (Present Perfect):
I have been in USA this year / He estado este año en Estados Unidos
Intervalo temporal finalizado (Past Simple):
I was in USA last year / Estuve el año pasado en Estados Unidos
Already (ya)
Already significa "ya", pero sólo con oraciones afirmativas y en Present Perfect:
I have already ordered the books / ya he pedido los libros
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en presente perfecto.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
39
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
40
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
41
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
The film had not started when I arrived / La película no había empezado cuando yo llegué
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en pasado perfecto.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
Nota: Como en el caso del futuro simple, el auxiliar shall sólo se utiliza para la primera persona
tanto del singular y como del plural. Mientras que el auxiliar will se puede utilizar siempre.
Para aclarar un poco la estructura veamos por ejemplo como se conjuga el verbo to
finish (terminar):
Conjugación Significado
Como hemos visto en el futuro simple los pronombres personales y el auxiliar "will" se pueden
contraer:
I will ➜ I'll
Conjugación Significado
I will not have completed/ I shall not have completed yo no habré completado
we will not have completed/ we shall not have completed nosotros no habremos completado
Como ya habíamos comentado en el futuro simple will not se contrae en won't y shall not se
contrae en shan't
43
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Conjugación Significado
EJERCICIOS
a- Completar las oraciones dadas con la forma correcta del verbo en futuro perfecto.
b- Pasar las mismas a las formas posteriormente solicitadas.
c- Traducir sólo el verbo conjugado.
1.- Aff: By the end of the month, she .............................. (decorate) her new office.
Neg:
Int:
2.- Aff: Before 9 o’clock, the student (present) ....................... the job.
Neg:
Int:
3.- Aff: I (understand) ......................... the problem by the time you explain it.
44
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Neg:
Int:
4.- Aff: Before he leaves the room, he (turn off) ........................ the computer.
Neg:
Int:
5.- Aff: After the accident, a crowd of people (gather) ..................... in the corner.
Neg:
Int:
Pasado Perfecto:
Futuro Perfecto:
…………………………………………………………………………………………………..
FORMA INTERROGATIVA
2) Presente Simple:
Pasado Simple:
45
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
Futuro Simple: WILL Artificial Intelligence INDICATE the capacity of a device to carry out
(INDICARÁ)
Futuro Continuado:
Presente Continuado:
Pasado Continuado:
Presente Perfecto:
Pasado Perfecto:
Futuro Perfecto:
……………………………………………………………………………………………………
FORMA NEGATIVA
3) Presente Simple:
Pasado Simple:
Futuro Simple:
Futuro Continuado:
Presente Continuado:
Pasado Continuado:
Presente Perfecto:
Pasado Perfecto: The expert system HADN’T TRIED to reproduce the human reasoning in
46
DIRECCIÓN GENERAL DE ESCUELAS - DIRECCIÓN DE EDUCACIÓN SUPERIOR
47