Está en la página 1de 22

Unidad introductoria

Generalidades de la materia
Hola, esta asignatura aporta al perfil del Ingeniero la capacidad para desarrollar
aplicaciones de software de baja complejidad, sensibilidad y conocimientos básicos
para hacer uso
eficiente de las herramientas de programación de alto nivel.
Es una materia que se enfoca en profundizar los conceptos de algorítmica y procesos
de tal forma que la programación se constituya en una herramienta transversal en el
quehacer del futuro Ingeniero.
En esta Unidad podrás encontrar, a nivel de recursos, el Plan Global de la Materia que
te permitirá tener una visión general de lo que veremos este semestre en la materia.
Te sugiero descargar el archivo y tenerlo siempre presente.
Debo aclarar que el espacio oficial para el registro de Notas es el SIAA por lo que en
esta plataforma solo trabajaremos el contenido de la materia y no así la evaluación.

UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO”


DEPARTAMENTO DE INGENIERÍA
Carrera: Ingeniería de Sistemas
Introducción al a Programación

I. Datos Generales
Sigla y Código: SIS-111 Nivel 1er Semestre 5 hrs./Semana, en tres sesiones

Nro. Créditos: 6 Pré-requisitos: NINGUNO


Gestión: 1-2022
Carga horaria
[n°] presenciales: 100 hrs/Semestre

[n°] tutoriales: 50 hrs/ Semestre Docente: CRISTHIAN FABIAN URIONA HERRERA


[n°] investigación: 50 hrs/ Semestre

1
II. Justificación
Vivimos en un mundo digitalizado, computarizado, programable y para poder entender esa realidad
necesitamos la ciencia de la computación. El ingeniero que usa un computador para diseñar soluciones
debe entender cómo operan estos sistemas.
Aquellas empresas que tomen la decisión de conformar un equipo de desarrollo de software interno a la
organización, requieren ingenieros capaces de abstraer las soluciones a sus problemas en términos de
manejo y organización de información; de esta manera, son capaces de analizar, diseñar, implementar y
personalizar sus soluciones aplicando paradigmas de programación y adecuando las mismas a los planes
estratégicos de desarrollo.
Los estudiantes de ingeniera aprenden razonamiento lógico, pensamiento algorítmico y solución de
problemas, además toman conciencia de los recursos requeridos para implementar y desplegar una
solución, aprenden a manejar las restricciones impuestas por el mundo real. Estas habilidades pueden
aplicarse en muchos contextos, desde ciencia e ingeniería hasta humanidades y negocios.
III. Competencias previas

Conocimientos básicos de matemáticas (Lógica matemática)


Utilizar herramientas de software básicas como: Sistema Operativo Windows, Herramientas de
Ofimática, Internet, etc.
Operar el hardware de la PC correctamente

IV. Competencia de la asignatura


Producir programas de software para resolver problemas de baja complejidad aplicando el
paradigma estructurado.
V. Elementos, Saberes y Unidades de aprendizaje

2
Cuadro No. 1
Competencia, elementos, saberes de aprendizaje y unidades

Elementos de Saberes Unidades De


Competencia
Competencia Conceptuales Procedimentales Actitudinales Aprendizaje
Elemento de Algoritmos y Determina la Reflexivo en el análisis Algoritmos
competencia 1: sus propiedades entrada(datos), el y resolución
Elaborar proceso y la salida Crítico y objetivo en sus
de
algoritmos Formas de (información) apreciaciones
estructurados representación problemas
que permitan de los Elabora soluciones a Dispuesto al aprendizaje
sistematizar un algoritmos problemas simples continuo
procedimiento utilizando algoritmos de
correcto de Reutilización de procesamiento
solución. algoritmos numérico y de
tratamiento de cadenas
Estructuras
condicionales y Reconoce y utiliza
repetitivas correctamente
estructuras
Pruebas de condicionales en la
escritorio elaboración de un
algoritmo para
solucionar un problema

Producir Reconoce y utiliza


programas de correctamente
estructuras de control en
software para la elaboración de un
resolver algoritmo para
solucionar un problema
problemas de
Elabora las pruebas de
baja
escritorio para sus
complejidad algoritmos
aplicando el Elemento de Estructura de un Identifica los tipos de Persistente ante las Elementos
competencia 2: programa datos necesarios de dificultades de la de un
paradigma
acuerdo al dominio del programación
lenguaje
estructurado Codificar Tipos de datos problema
algoritmos en básicos Manejo responsable de los formal
un lenguaje de Implementa en lenguaje recursos Computacionales
programación Variables y de programación Programaci
constantes estructurado una Honesto a la hora de admitir ón y
solución a un problema sus errores y valiente para
pruebas
Operadores afrontarlos
Prueba que una solución
Cadenas de es adecuada dentro del Creativo para detectar errores Manejo de
caracteres dominio del problema y solucionar problemas estructuras
unidimensi
Creativo a la hora de onales
implementar programas
fáciles de utilizar

3
VI. Planificación didáctica

Cuadro No. 2
Planificación didáctica

Entorno de
Estrategias didácticas, técnicas y aprendizaje y Evidencias
Elementos de competencia Duración Recursos
actividades Alianzas Estratégicas Esperadas

Elaborar algoritmos estructurados que Aprendizaje Basado en Problemas ABP Práctica con
problemas para
permitan sistematizar un procedimiento 25 horas Pizarra Aula
Prácticas individuales y grupales elaborar las
correcto de solución. donde se diseñan algoritmos académicas soluciones utilizando
algoritmos de tipo
Exposición magistral y dialogada Papel y lápiz grupal y/o individual
Solución de
Juegos virtuales que permiten ejercicios propuestos
entender la lógica de programación PC e internet durante la clase
Prueba individual
escrita.

Codificar algoritmos en un lenguaje de Aprendizaje Basado en Mini Proyectos Laboratorio Práctica con
Programación problemas para
75 horas PC e internet implementar las
Desarrollo de tutoriales en laboratorio
académicas Empresas de soluciones en un
lenguaje de
Asignación de prácticas y mini Cañón de desarrollo de software programación del
proyectos tipo grupal y/o
proyección
individual
Solución de
Pizarra ejercicios propuestos
durante la clase
Prueba individual
Papel y lápiz escrita.

3
Fundamentación metodológica de la planificación didáctica

La clase trata de seguir la teoría CONSTRUCTIVISTA, ya que permite al alumno construir sus propios procedimientos para resolver
varias situaciones problemáticas, lo cual implica que las ideas se modifiquen y se siga aprendiendo de manera activa sobre estructuras
mentales previas.

El aprendizaje basado en problemas trata de que el alumno se sienta motivado y desarrolle habilidades de razonamiento perdurables,
mediante la implementación de algoritmos en la solución de varios problemas durante todo el semestre.

El aprendizaje basado en mini proyectos da muy buenos resultados en cuanto a la motivación y a la resolución de problemas de
mediana envergadura.

4
VII. Planificación de la Evaluación del aprendizaje
A continuación, el plan de evaluación del aprendizaje que se realizará en la asignatura.

Cuadro Nº 3
Plan de evaluación

Técnicas
Elementos de Criterios de Momento de Instrumento y
Cronograma Puntaje
competencia desempeño Evaluación tipo de
Evaluación
Sigue instrucciones
simples
Diagnóstica Dinámicas Primera semana -
Comprende lo que Primera semana grupales
lee
Juegos en PC
Identifica Portafolio de Cada clase en dos 16
correctamente
evidencias presentaciones (8,8)
Entradas y Salidas
Elaborar de un algoritmo (validada por la
algoritmos asistencia a
Emplea las
estructurados que estructuras clases)
condicionales y
permitan Pruebas 3 pruebas 54
ciclos al elaborar
sistematizar un algoritmos Formativa (10 16, 28)
procedimiento Durante todo el
Emplea en C los Mini Proyecto 1 mini Proyectos en 20
correcto de tipos de datos y semestre
estructuras de dos presentaciones
solución.
programación más (10,10)
adecuados a la
resolución de un Análisis de 1 presentación 10
problema. Artículos
Divide y reutiliza
Codificar
mediante funciones
algoritmos en un
lenguaje de Adquirió la
programación Final
competencia de la Prueba 1 prueba 100
Fin del semestre
asignatura

Prueba Proyecto Portafolio Prueba Informes Prueba Proyecto Portafolio

18/03/2022 25/03/2022 25/03/2022 22/04/2022 06/05/2022 20/05/2022 27/05/2022 27/05/2022

10 10 8 16 10 28 10 8

5
VIII. Bibliografía
Obligatoria
JOYANES AGUILAR, Luis,
Algoritmos y Estructuras de datos
Editorial: McGraw-Hill 2002
JOYANES AGUILAR, Luis
Programación en C
Editorial: McGraw-Hill 2002
Opcional

CARRETERO PÉREZ, Jesús; GARCÍA CARBALLEIRA, Félix; PÉREZ LOBATO, José


Manuel, Fundamentos de programación, Año: 2007 (005.1 C232 en la Biblioteca:
Tupuraya)
GARCIA, Félix, Programación en lenguajes estructurados. Desarrollo de
aplicaciones informáticas, Año: 2008 (005.133 G165 en la Biblioteca: Tupuraya)
Materiales de Apoyo en http://programacion.e-recursos.net/
Artículos de Análisis
Big Bang: un recurso didáctico-pedagógico en el aprendizaje de la implementación de
algoritmos en pseudocódigo - http://hdl.handle.net/10915/20836
Desarrollo e implementación de un Intérprete de Pseudocódigo para la
Enseñanza de Algorítmica Computacional - http://hdl.handle.net/10915/19177
ECDIA: Entorno Colaborativo para el Diseño e Implementación de Algoritmos -
http://hdl.handle.net/10915/23659
Entorno Virtual de Ayuda a la Docencia de un Curso de Programación Básica -
http://acme.udg.edu/articles/cidui1.pdf
Intérprete para probar un programa escrito en pseudocódigo -
http://www.redalyc.org/articulo.oa?id=81640855014
ALPHA: Una notación algorítmica basada en pseudocódigo -
http://publicaciones.urbe.edu/index.php/telematique/article/viewArticle/3738/html
Análisis del nivel de utilización de las herramientas de diagramación manejadas dentro
del diseño de algoritmos -
http://www.uaeh.edu.mx/investigacion/productos/4799/analisis_del_nivel_de_utilizacion_
de_las_herramientas_de_diagramacion_manejadas_dentro_del_diseno_de_algoritmos.pdf
Entornos de programación no mediados simbólicamente para el desarrollo del
pensamiento computacional - http://revistas.um.es/red/article/view/240301
Programación Estructurada en un Curso Introductorio - http://hdl.handle.net/10915/50639

6
IX. Anexos
Los instrumentos de evaluación concerniente a la evaluación diagnóstica, formativa y final se
encuentran detallados a continuación.
Mini Proyectos: Se presenta un problema que requiere de las habilidades y competencias de
la asignatura para su resolución, los alumnos presentan varias propuestas, se analiza y se
ven las ventajas y desventajas de cada posible solución. Finalmente se trabaja en equipos
para obtener un producto final.
Prueba: Permite verificar al docente que el alumno está incorporando los elementos de
competencia durante el semestre
Desarrollo de tutoriales en laboratorio: Esta técnica permite al docente que todos los
estudiantes tengan acceso a guías detalladas para resolver los problemas que se presentan
en laboratorio.
Asignación de prácticas: Permite que el alumno resuelva problemas o que investigue,
dependiendo del caso se puede trabajar en grupo o no, la clase siguiente se elige al azar a uno
o más alumnos para explicar lo que aprendieron o para mostrar las soluciones encontradas.

Prueba diagnóstica

1. Presentaciones
Aquí están tus últimas respuestas:

2. Pregunta 1
Si Ángela habla más bajo que Rosa y Celia habla más alto que Rosa, ¿habla Ángela más
alto o más bajo que Celia?
Respuesta: Más bajo
Respuesta correcta: Más bajo
Puntuación: 1 de cada 1 Sí

3. Pregunta 2
Son los datos iniciales que posee un algoritmo
Respuesta: Entradas
Respuesta correcta: Entradas
Puntuación: 1 de cada 1 Sí

4. Pregunta 3
Es una declaración clara y concisa que describe los síntomas del problema que se
desea abordar.
7
Respuesta: Planteamiento
Respuesta correcta: Planteamiento
Puntuación: 1 de cada 1 Sí

5. Pregunta 4
Son algunas de las características de un algoritmo.
Respuesta: Entrada, Proceso, Salida
Respuesta correcta: Validez, Eficiencia, Óptimo
Puntuación: 0 de cada 1 No

6. Pregunta 5
Es un conjunto ordenado y finito de operaciones que permite encontrar la solución de
un problema.
Respuesta: Algoritmo
Respuesta correcta: Algoritmo
Puntuación: 1 de cada 1 Sí

7. Pregunta 6
Es la fase en la cuál se determina exactamente el problema que se quiere resolver.
Respuesta: Pruebas
Respuesta correcta: Análisis
Puntuación: 0 de cada 1 No

8. Pregunta 7
Es una situación que se debe resolver para llegar a una solución.
Respuesta: Análisis
Respuesta correcta: Problema
Puntuación: 0 de cada 1

Unidad 1

9. Conceptos generales
Algunas definiciones importantes
Algorítmica o Algorítmia

8
La algorítmica estudia los algoritmos, sus propiedades y su eficiencia. La algorítmica tiene como objetivo
el desarrollo de métodos y técnicas para el diseño de algoritmos y estructuras de datos (EDs) eficientes y
su análisis, así como el desarrollo de algoritmos y EDs que resuelvan problemas concretos.
Algoritmo
En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo es un
conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permite, típicamente,
solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades. ?
Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene
una solución. Los algoritmos son el objeto de estudio de la algoritmia.
Medios de expresión de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras, entre estas están:
• lenguaje natural,
• pseudocódigo,
• diagramas de flujo y
• lenguajes de programación entre otros.

Programación estructurada

Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de


un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección
y de iteración considerando innecesario y contraproducente el uso de la instrucción de transferencia
incondicional, que podría conducir a "código espagueti", que es mucho más difícil de seguir y de
mantener, y era la causa de muchos errores de programación.

Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini, y una famosa carta, La
sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968 y fue reforzado teóricamente por
el teorema del programa estructurado, y prácticamente por la aparición de lenguajes de programación
con adecuadas y ricas estructuras de control.

Pseudocódigo (o falso Lenguaje).

Es comúnmente utilizado por los programadores para omitir secciones de Código o para dar una
explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir
que el pseudocódigo no es programable sino facilita la programación.

El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más


detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la
codificación del mismo.

Caja Negra

9
10. Programación Estructurada
Definición de Programación Estructurada
Es una técnica en la cual la estructura de un programa, la escritura de sus partes se realiza tan claramente
como es posible mediante el uso de tres estructuras lógicas de control:
• Secuencia: Sucesión simple de dos o más operaciones.
• Selección: División condicional de una o más operaciones.
• Interacción: Repetición de una operación mientras se cumple una condición.
Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir programas que
manejen cualquier tarea de procesamiento de información.
Un programa estructurado esta compuesto de segmentos, los cuales puedan estar constituidos por unas
pocas instrucciones o por una pagina o más de codificación. Cada segmento tiene solamente una entrada
y una salida, estos segmentos, asumiendo que no poseen lazos infinitos y no tienen instrucciones que
jamás se ejecuten, se denominan programas propios. Cuando varios programas propios se combinan
utilizando las tres estructuras básicas de control mencionadas anteriormente, el resultado es también un
programa propio.
La Programación Estructurada esta basada en el Teorema de la Estructura*, el cual establece que
cualquier programa propio (un programa con una entrada y una salida exclusivamente) es equivalente a
un programa que contiene solamente las estructuras lógicas mencionadas anteriormente.
Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde
el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo
que ocurre con otros estilos de programación.
Esto es importante debido a que, es mucho más fácil comprender completamente el trabajo que realiza
una función determinada, si todas las instrucciones que influyen en su acción están físicamente cerca y
encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar
solamente tres estructuras de control y de eliminar la instrucción de desvío de flujo de control, excepto en
circunstancias muy especiales tales como la simulación de una estructura lógica de control en un lenguaje
de programación que no la posea.
VENTAJAS POTENCIALES
Un programa escrito de acuerdo a estos principios no solamente tendrá una estructura, sino también una
excelente presentación.
Un programa escrito de esta forma tiende a ser mucho más fácil de comprender que programas escritos
en otros estilos.
La facilidad de comprensión del contenido de un programa puede facilitar el chequeo de la codificación y
reducir el tiempo de prueba y depuración de programas. Esto ultimo es cierto parcialmente, debido a que
la programación estructurada concentra los errores en uno de los factores más generador de fallas en
programación: la lógica.
Un programa que es fácil para leer y el cual esta compuesto de segmentos bien definidos tiende a ser
simple, rápido y menos expuesto a mantenimiento. Estos beneficios derivan en parte del hecho que,
aunque el programa tenga una extensión significativa, en documentación tiende siempre a estar al día,
esto no suele suceder con los métodos convencionales de programación.
La programación estructurada ofrece estos beneficios, pero no se la debe considerar como una panacea
ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad.
TEOREMA DE LA ESTRUCTURA
El teorema de la estructura establece que un programa propio puede ser escrito utilizando solamente las
siguientes estructuras lógicas de control: secuencia, selección e iteración.
10
Un programa de define como propio si cumple con los dos requerimientos siguientes:
• Tiene exactamente una entrada y una salida para control del programa.
• Existen caminos seguibles desde la entrada hasta la salida que conducen por cada parte
del programa, es decir, no existen lazos infinitos ni instrucciones que no se ejecutan.
VENTAJAS DE LA PROGRAMACIÓN ESTRUCTURADA:
Con la programación estructurada elaborar programas de computador sigue siendo un albor que demanda
esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este nuevo estilo podemos obtener las
siguientes ventajas:

1. Los programas son más fáciles de entender. Un programa estructurado puede ser leído
en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica,
lo cual es típico de otros estilos de programación. La estructura del programa es más clara puesto
que las instrucciones están más relacionadas entre sí, por lo que es más fácil comprender lo que
hace cada función.
2. Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción
normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas("debugging")
se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir
mas fácilmente.
3. Programas más sencillos y más rápidos.
4. Aumento de la productividad del programador.
5. Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en
programación.
6. Los programas quedan mejor documentados internamente.
DEFINICIÓN DE SISTEMA
Un sistema informático es un conjunto de partes que funcionan relacionándose entre sí con un objetivo
preciso. Sus partes son: hardware, software y las personas que lo usan. Por ejemplo, una computadora,
sus dispositivos periféricos y la persona que la maneja, pueden constituir un sistema informático. Un
sistema informático puede formar parte de un sistema de información; en este último la información, uso y
acceso a la misma, no necesariamente está informatizada. Por ejemplo, el sistema de archivo de libros de
una biblioteca y su actividad en general es un sistema de información. Si dentro del sistema de información
hay computadoras que ayudan en la tarea de organizar la biblioteca, estonces ese es un sistema
informático. Diferencia entre sistema informático y sistema de información * En un sistema informático
se utilizan computadoras para almacenar, procesar y/o acceder a información. * En un sistema de
información se pueden utilizar computadoras, pero no es necesario. El acceso a la información puede ser
físico (por ejemplo, una persona se encarga de buscar en un archivador). * Tanto el sistema informático
como el sistema de información, incluyen a las personas que acceden o producen información dentro del
sistema. Las personas tienen que capacitarse para entender el funcionamiento y procedimientos que
soporta sistema. * Ambos sistemas tienen un propósito. Por ejemplo, gestionar el acceso y distribución de
libros una biblioteca, administrar la entrada/salida de mercadería, personal y otros recursos de un
comercio, etc.

1. PSEUDOCÓDIGO
Introducción
La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que
estos se puedan utilizar como resolución de problemas similares en muchos casos, dicho de otra forma:
la resolución del problema por medio de un programa informático debe funcionar para el uso de distintas
variables y en diferentes lenguajes de cómputo. Esa es principalmente la función de un pseudocódigo.
La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los
mismos resultados.
Definición
11
El pseudocódigo (o falso lenguaje) es comúnmente utilizado por los programadores para omitir secciones
de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus
códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más
detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la
codificación del mismo
El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas al lenguaje natural
del idioma de desarrollo (similares a sus homónimos en los lenguajes de programación), tales como
inicio, fin, mientras, si, ….etc.
Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final
(esto es, la traducción a un lenguaje de programación) relativamente fácil.
El pseudocódigo nació como un lenguaje similar al inglés (y luego adaptada al lenguaje de quien lo
desarrolla) y era un medio representar básicamente las estructuras de control de programación
estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse
posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser
ejecutado por una computadora.
Según Analía Lanzillotta: "Considerado como un lenguaje falso, el pseudocódigo es un lenguaje
intermedio entre nuestro lenguaje y el de programación, debido a que quien lo utiliza se guía por una
serie de normas pero sin llegar a usar una estructura tan rígida como la del lenguaje de programación. El
objetivo al que apunta es que quien lo pone en práctica se centre más en la solución del algoritmo o el
diseño de un software que en el programa que utiliza para crearlo. Y esto es posible porque es más fácil
de manipular ya que no tiene que tener en mente el lenguaje en sí y además, más fácil de codificar. Por
ejemplo, si alguien tiene que hacer un software con un fin determinado, utiliza un pseudocódigo propio
en donde confluyen frases del lenguaje coloquial y algunas palabras de programación, y una vez que se
logra concretar el software, se puede pasar al escalón siguiente que es el de la transformación al
lenguaje de programación formal que se vaya a utilizar. De esta manera, al ser un lenguaje intermedio,
no tiene una composición estandarizada por lo que no todos los programadores utilizan la misma sintaxis
con exactitud. Pero a la vez, como es una herramienta que está un paso previo al lenguaje formal de
programación, es fácil de transformar al que será ejecutado en la computadora.
Reglas de construcción
CARACTERÍSTICAS Y PARTES:
Las principales características de este lenguaje son:


o Se puede ejecutar en un ordenador
o Es una forma de representación sencilla de utilizar y de manipular.
o Facilita el paso del programa al lenguaje de programación.
o Es independiente del lenguaje de programación que se vaya a utilizar.
o Es un método que facilita la programación y solución al algoritmo del programa.
Todo documento en pseudocódigo debe permitir la descripción de:

o Instrucciones primitivas.
o Instrucciones de proceso.
o Instrucciones de control.
o Instrucciones compuestas.
o Instrucciones de descripción.
o Cabecera.
o Modulo.
12
o Tipos de datos.
o Constantes.
o Variables.
o Cuerpo.
o Inicio.
o Instrucciones.
o Fin.
LISTA DE PALABRAS RESERVADAS Y SU SIGNIFICADO

Instrucción Significado

algoritmo nombre Marca el comienzo de un algoritmo y le adjudica un nombre

Inicio Marca el comienzo del algoritmo

fin Marca el final del algoritmo

Nombre que se le da al identificador cuyo valor puede modificarse en el


variables
transcurso del algoritmo.

Declaración de identificador. Indica el identificador y el tipo de dato que se


nombre_var es tipo_de_datos
van a usar en el algoritmo

Nombre que se le da al identificador cuyo valor no puede modificarse en el


constantes
transcurso del algoritmo.

Declaración de constantes. La expresión se evalúa y su resultado se


nombre_const = expresión asigna a la constante. Este valor no puede modificarse a lo largo del
programa.

Conjunto de operandos y operadores que generan un resultado


Expresión
determinado.

Entrada de datos. El programa lee un dato desde un dispositivo de entrada


Pedir (variable)
(si no se indica otra cosa, el teclado), asignando ese dato a la variable

Salida de datos. Sirve para que el programa escriba un dato en un


Devolver (variable)
dispositivo de salida (si no se indica otra cosa, la pantalla).

variable = expresión Asignación. La expresión se evalúa y su resultado es asignado a la variable

si (condición) entonces
acción 1
Instrucción condicional simple. El ordenador evaluará la condición, que
acción 2 debe ser una expresión lógica. Si es verdadera, realiza las acciones. Si la
..... expresión de falsa, no se realiza ninguna acción y la ejecución continúa por
la siguiente instrucción.
acción n
fin si

13
si (condición) entonces
acción 1
acción 2
.....
acción n Instrucción condicional doble. El ordenador evaluará la condición, que debe
si no (c/c) ser una expresión lógica. Si es verdadera, realiza las acciones propias del
si, y, si es falsa, las acciones propias del si no o caso contrario.
acción 1
acción 2
.....
acción n
fin si

mientras (condición) hacer


acción 1
Bucle mientras. Las acciones se repiten en tanto la condición, que debe ser
acción 2 una expresión lógica, sea verdadera. La condición se evalúa antes de
entrar al bloque de acciones, de modo que pueden no ejecutarse ninguna
..... vez.
acción n
fin mientras
repetir
acción 1
Bucle repetir. Las acciones se repiten en tanto que la condición, que debe
acción 2 ser una expresión lógica, sea verdadera. Se parece mucho al anterior, pero
la condición se evalúa al final del bucle, por lo que éste se ejecuta, como
..... mínimo, una vez
acción n
mientras que (condición)

desde vc = expr-ini hasta vc = expr-fin hacer


acción 1 Bucle desde. Se evalúa la expresión expr-ini, que debe ser de tipo entero, y
se asigna ese valor a la variable. Dicha variable se incrementa en una
acción 2 unidad en cada repetición de las acciones. Las acciones se repiten hasta
que la variable alcanza el valor expr-fin.
.....
acción n
fin desde

REGLAS SINTÁCTICAS EN PSEUDOCÓDIGO

11. Identificadores

Un identificador es un nombre con el que se hace referencia a una entidad. para este efecto se debe
respetar lo siguiente:

14
1. Un identificador se forma con una secuencia de letras (minúsculas de la a a la z; mayúsculas de
la A a la Z; y dígitos del 0 al 9).
2. El carácter subrayado o underscore (_) se considera como una letra más.
3. Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los
citados, como por ejemplo (*,;.:-+, etc.).
4. El primer carácter de un identificador debe ser siempre una letra o un (_). No puede ser un dígito.
5. Se hace distinción entre letras mayúsculas y minúsculas.
Operando:
Referente al identificador que designa la dirección de los datos con los que se debe operar.
Operadores:
Un operador es el símbolo que determina el tipo de operación o relación que habrá que establecerse
entre los operandos de una expresión para alcanzar un resultado.
Expresión:
Una expresión es una secuencia de operadores y operandos que describe un cálculo. Normalmente una
expresión se evalúa en tiempo de ejecución.
Expresiones aritméticas
De la evaluación de una expresión aritmética siempre se obtiene un valor de tipo entero o real. En las
expresiones aritméticas se pueden utilizar los siguientes operadores aritméticos:
• + Suma
• - Resta
• * Multiplicación
• ^ Potencia (también se utiliza el doble asterisco **)
• / División real
• div División entera
• mod Módulo (resto de la división entera)
• + - Signos más y menos
• = asignación
Prioridad de los operadores aritméticos

15
Expresiones lógicas
De la evaluación de una expresión lógica siempre se obtiene un valor de tipo lógico (verdadero o falso).
En las expresiones lógicas se pueden utilizar dos tipos de operadores:
• Relacionales.
• Lógicos.
Un operador relacional se utiliza para comparar los valores de dos expresiones. Estas deben ser del
mismo tipo (aritméticas, lógicas, de carácter o de cadena).
Los operadores relacionales son:
• < Menor que
• <= Menor o igual que
• > Mayor que
• >= Mayor o igual que
• = Igual que
• <> Distinto que
Los operadores lógicos son:
• y Conjunción
• o Disyunción
• no Negación
Prioridad de los operadores relacionales y lógicos

RECUERDA: Tablas de verdad

16
12. Modularización
Uso de Módulos (subprogramas)
Qué es lo que se busca
• Reducir la complejidad del programa (“divide y vencerás”).
• Eliminar código duplicado.
• Limitar los efectos de los cambios (aislar aspectos concretos).
• Ocultar detalles de implementación (p.ej. algoritmos complejos).
• Promover la reutilización de código (p.ej. familias de productos).
• Mejorar la legibilidad del código.
• Facilitar la portabilidad del código.

CARACTERÍSTICAS
Cohesión
• Medida del grado de identificación de un módulo con una función concreta.

Cohesión aceptable (fuerte)


• Cohesión funcional (un módulo realiza una única acción).
• Cohesión secuencial (un módulo contiene acciones que han de realizarse en un orden particular
sobre unos datos concretos).
• Cohesión de comunicación (un módulo contiene un conjunto de operaciones que se realizan
sobre los mismos datos).
• Cohesión temporal (las operaciones se incluyen en un módulo porque han de realizarse al
mismo tiempo; p.ej. inicialización).
17
Objetivo
Aumentar la cohesión de los módulos.
Pasos para escribir un subprograma
1. Definir el problema que el subprograma ha de resolver.
2. Darle un nombre no ambiguo al subprograma.
3. Decidir cómo se puede probar el funcionamiento del subprograma.
4. Escribir la declaración del subprograma (cabecera de la función).
5. Buscar el algoritmo más adecuado para resolver el problema.
6. Definir entradas y salidas
7. Escribir los pasos principales del algoritmo como comentarios.
8. Revisar mentalmente cada fragmento de código.
9. Repetir los pasos anteriores hasta quedar completamente satisfecho.

13. Ejercicios Pseudocódigo


14. Instrucciones
Ejercicios
1.- Realice el pseudocódigo que sirva para determinar la hipotenusa de un triángulo
rectángulo conocidas las longitudes de sus dos catetos.
2.- Desarrolla un algoritmo (pseudocódigo) que permita determinar el área y volumen
de un cilindro dado su radio (R) y Altura (H)
3.- Desarrollar un algoritmo (pseudocódigo) que nos calcule el cubo de los 9 primeros
números naturales.
4.- Desarrollar un algoritmo (pseudocódigo) que permita encontrar el cociente y
residuo de una división usando solamente operadores de suma (+) y resta (-).
5.- Desarrollar un algoritmo (pseudocódigo) que dado un año, nos diga si es bisiesto o
no. Un año es bisiesto bajo las siguientes condiciones:
• Un año divisible por 4 es bisiesto pero no debe ser divisible entre 100.
• Si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto.

6.- Desarrollar un algoritmo (pseudocódigo) que permita encontrar el promedio de las


edades de un grupo de 50 personas.

18
UNIDAD 2

PROGRAMACIÓN

CODIFICACIÓN
ALGORITMICA

Lenguaje de programación en c
Lenguaje C
• Compilador
• Enlazador
• No tiene un entorno que nos permita escribir código y generar un programa de computadora.
• IDE (Entorno de desarrollo Integrado) => CodeBlocks
• ANSI C = Estructurada
• C++ =Orientada a objetos (también me deja programar en estructurado)

COMPILACIÓN

ENLAZADO

1.- Une todo lo necesario


Para que se genere una
REVISAR SI TIENE Aplicación ARCHIVO
ERRORES DE 2.-Genera un archivo ejecutable
SINTAXIS ARCHIVO OBJETO ejecutable en el S.O.
ARCHIVO FUENTE que estemos manejando.

Archivo intermedio
Archivo tipo texto COMPILADOR entre el código fuente y ENLAZADOR
.c o .cpp
el código fuente y el programa
ejecutable.
Solo se crea SI EL CODIGO
FUENTE NO TIENE ERRORES.

.o o .obj

19
ARCHIVO EJECUTABLE.- Ejecutar la solución a través de un programa de
computadora .exe

IDE Code Blocks – Instalación

Lineamientos GENERALES del TRABAJO FINAL


Estimad@s estudiantes a continuación les paso la descripción de lo que será el
trabajo de fin de semestre.Imagen relacionada

Objetivo:

Aplicar los conocimientos de programación para generar un programa en


computadora.

A. Recomendaciones

Se trabajará con los grupos conformados en la clase (publicados en la Plataforma),


pero la defensa será individual y con el entendido de que si una(o) de los
participantes del grupo no presenta un rendimiento adecuado, esto afectará la
calificación de sus colegas del grupo.
El grupo puede presentar periódicamente avances del proyecto los últimos 20
minutos antes de terminar cada clase, previa coordinación con mi persona.
En las presentación de todas las etapas del trabajo final se valorará
favorablemente la creatividad con la que se hagan las mismas.
El código fuente en Lenguaje C debe estar debidamente "tabulado” y con
comentarios explicativos.
Cualquier intento de fraude anula el trabajo.
La propuesta del trabajo debe ser presentada hasta el día lunes 28 de marzo de
2022 (POR PLATAFORMA) y los avances de acuerdo a solicitud del docente. El
docente se encargará de revisar las propuestas y "dimensionar" el tamaño de las
sugerencias para que puedan ser "realizables" en el tiempo que se tiene definido.
B. Documentación para presentar el trabajo al final del semestre

Informe impreso con lo siguiente:

Caratula
Índice
Introducción
Definición del problema
Análisis
Diseño (algoritmos)
Implementación en lenguaje de programación ANSI C.
Pruebas
20
Conclusiones y recomendaciones
Bibliografía
Anexos
C. La propuesta

Para poder plantear la propuesta deben considerar lo siguiente:

Pensar en un problema de carácter social que afecte a la población en


Cochabamba.
Pensar cómo, dentro de ese problema, ustedes como grupo, pueden aportar
proponiendo un programa de computadora que permita resolver una pequeña
parte del problema.
Reunirse en grupo.
Analizar la situación y proponer la creación de una herramienta (programa) que
ayude a resolver el problema.
Presentar un documento resumen de la propuesta incorporando el PROTOTIPO.
Plantearla al curso.
D. Las presentaciones

La presentación oficial de la Propuesta será en formato digital (a través de la


plataforma en un documento con caratula y su propuesta) el día lunes 28 de marzo
de 2022 (POR PLATAFORMA). Debe ser un documento en Word cargado a la
Plataforma.

La Primera Presentación y Segunda Presentación del trabajo final se coordinará


con el curso..

21

También podría gustarte