Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Elementos Generales de Un Programa
Elementos Generales de Un Programa
Palabras reservadas: Son un conjunto de palabras especiales que nos sirven para
definir la estructura del programa, y solo se pueden usar para el fin para el que
está n reservadas.
Cada lenguaje de programació n exige o no una estructura rígida para organizar los
elementos que conformará n el programa. A continuació n se muestran las estructuras
generales de un programa escrito en lenguaje C/C++, Java y Python.
Comentarios
Inclusión de archivos
main()
{
variables locales
flujo de sentencias (instrucciones)
Solució n de problemas por computador Isaac Zú ñ iga Silgado
}
Definición de funciones creadas por el programador utilizadas en main()
Los comentarios nos sirven para escribir informació n que nos referencie al programa
pero que no forme parte de él. Por ejemplo especificar que hace el programa, quien lo
elaboró , en que fecha, que versió n es, etc.
El lenguaje Python no exige una estructura rígida en los có digos, pero se debe tener
presente que los mó dulos y funciones deben ser programados o cargados antes de ser
invocados en el có digo. La sintaxis se debe tener muy presente y poner especial
atenció n en los espacios o INDENTACION, ya que Python identifica los finales de
bloques con estos espacios.
Los programas trabajan con datos, los leen o los generan, los procesan y los
transforman en informació n para la toma de decisiones.
Dato: es cualquier objeto de informació n con los que trabajan los programas.
Todos los datos tienen un tipo asociado a ellos. Esto nos sirve para poder conocer con
qué informació n se trabaja.
Existen dos (2) tipos de datos de datos: los simples (primitivos) y los estructurados
(no primitivos).
Son aquellos que no está n considerados por el lenguaje y tendrá n que ser definidos
por el programador, empleando para ello los tipos de datos simples o bá sicos.
Solució n de problemas por computador Isaac Zú ñ iga Silgado
4.2.2 Variables
Para que un programa pueda reconocer una variable se debe darle un nombre. Por lo
tanto, una variable tiene asociado un nombre y un valor.
Las variables se clasifican en dos grandes categorías, que son: a) por su contenido o
valor: numéricas, ló gicas, cará cter, etc; b) por su uso: de trabajo, contadores y
acumuladores.
Acumuladores: Es una variable que sirve para llevar la suma acumulativa de una serie
de valores que se van leyendo o calculando progresivamente.
4.2.3 Constantes
Solució n de problemas por computador Isaac Zú ñ iga Silgado
4.2.4 Identificadores
Un identificador es una secuencia de caracteres que sirve para identificar una posició n
de memoria que nos permite acceder a su contenido. En pocas palabras, un
identificador es el nombre que le damos a una posició n/direcció n de memoria. En este
sentido, en una posició n de memoria podemos guardar un valor o dato.
4.2.5 Operadores
Los operadores son símbolos que se utilizan para definir las operaciones que el
computador puede realizar con los datos.
Los operadores son símbolos que relacionan de forma diferente los valores de una o
má s variables y/o constante. Los valores sobre los que actú an los operadores se
denominan operandos.
Tipos de operadores:
Solució n de problemas por computador Isaac Zú ñ iga Silgado
Para manejar estos operadores, cada uno de los lenguajes de programació n debe
definir los siguientes requerimientos:
Operado
Nombre Ejemplo Algunos lenguajes de programació n tienen otros
r
operadores como el de divisió n entera (DIV),
+ Suma 7=3+4 potenciació n (^ ó **), entre otros.
Diferenci
- -1=3-4
a
* Producto 12=3*4
2.8=20/
/ Cociente Casi todos los lenguajes de programació n tienen
7
los siguientes operadores relacionales cuyo
% o MOD Mó dulo 6=20%7
significado se muestra en la tabla siguiente.
Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el
resultado de la comparació n es correcto la expresió n considerada es verdadera, en
caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se
representa por el valor true del tipo bá sico boolean, en cambio, 8<4 (ocho menor que
cuatro) es falsa, false. En la primera columna de la tabla anterior, se dan los símbolos
de los operadores relacionales, el la segunda, el nombre de dichos operadores, y a
continuació n su significado mediante un ejemplo.
AND y OR trabajan con dos operandos y retornan un valor ló gico basadas en las
denominadas tablas de verdad. El operador NOT actú a sobre un operando. Estas
tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo:
"si hace sol Y tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si
llueve O hace viento, iré al cine". Las tablas de verdad de los operadores AND, OR y
NOT se muestran en las tablas siguientes
X y resultado
True true true
True false false
False true false
False false false
El operador ló gico OR
Solució n de problemas por computador Isaac Zú ñ iga Silgado
X y resultado
True true true
True false true
false true true
false false false
x Resultado
true False
false True
4.2.6 Expresiones
El computador utiliza los operadores y las expresiones para poder ejecutar las
operaciones sobre los datos.
Toda expresió n tiene asociada un tipo que corresponde con el tipo del valor que
devuelve la expresió n cuando se evalú a, por lo que habrá tantos tipos de expresiones
como tipos de datos. Habrá expresiones numéricas y ló gicas.
Expresiones aritméticas
SIGNO SIGNIFICADO
+ Suma
- Resta
* Multiplicació n
/ Divisió n
^ Potenciació n
() Agrupa operaciones
El orden de prioridad en la evolució n de los operadores aritméticos es el siguiente:
1) Paréntesis
2) Potenciació n
3) Multiplicació n y Divisió n
4) Suma y Resta
Expresiones relacionales
SIGNO SIGNIFICADO
< Menor que
> Mayor que
Solució n de problemas por computador Isaac Zú ñ iga Silgado
= Igual a
<= Menor o igual que
>= Mayor o igual que
<> Distinto de
También se puede comparar datos alfanuméricos (estos datos también son tipo
cadena o string). En este caso se comparan uno a uno los caracteres, comenzando
desde la izquierda. Si los datos tienen diferentes longitudes, pero son exactamente
iguales hasta el ú ltimo cará cter del má s corto, entonces se considera que el má s largo
es el mayor. El ú nico caso en que los datos son iguales, es cuando tienen la misma
longitud y los mismos caracteres, en el mismo orden. Las letras minú sculas son
mayores que las mayú sculas. Tenga en cuenta que el espacio en blanco también es un
cará cter.
Ejemplo:
Expresiones lógicas
Una expresió n ló gica es una combinació n de constantes y/o variables y/o expresiones
matemá ticas o relacionales, unidas o relacionadas con operadores lógicos.
SIGNOS SIGNIFICADO
AND Producto ló gico (y)
OR Suma ló gica (0)
NOT Negació n (NO)
1) NOT
2) AND
3) OR
AND: es el operador ló gico de conjunció n. La expresió n que se evalú a de có mo
resultado verdadero si y solo si todos las condiciones son verdaderas. Dicho de otra
manera, es suficiente que unas de las condiciones sea falsa para que el resultado sea
falso.
A B A OR B
Falso Falso Falso
Falso Verdadero Verdadero
Verdadero Falso Verdadero
Verdadero Verdadero Verdadero
Condición 1 Resultado
A Not A
FALSO VERDADERO
VERDADERO FALSO
EJEMPLOS: A =9, B: 2, C: 5, D: 3
Expresiones alfanuméricas
Una expresió n alfanumérica se utilizan para unir datos alfanuméricos. Recuerde que
los datos alfanuméricos no pueden utilizarse en expresiones aritméticas
OPERADOR SIGNICADO
+ CONCATENACION
En síntesis,
a) Estos cuatro (4) tipos de expresiones se pueden combinar para establecer las
condiciones y/o comparaciones en las en las sentencias condicionales.
b) Orden de evaluación (Reglas de prioridad). En el momento de establecer un
condició n combinando varios o todos los tipos de expresiones, se debe seguir y
respetar el siguiente orden de precedencia de los operadores.
4.2.7 Comentarios
Los comentarios pueden ser de dos tipos: de una sola línea o multi-línea y cada
lenguaje de programació n utilizan símbolos propios para poder expresarlos.
Los comentarios de una sola línea puede abarcar toda la línea o escribirse después
que termina una instrucció n, pero nunca abarcará má s de una línea, es decir, siempre
terminara en la misma línea donde empezó .
Por ejemplo,
b) en lenguaje Python…
Los comentarios de una sola línea empiezan con el caracter #
Los comentarios multi-línea empiezan con los caracteres """ se escribe el
comentario y terminan con los caracteres """
c) En lenguaje Ensamblador…
Solució n de problemas por computador Isaac Zú ñ iga Silgado
Los comentarios son de una sola línea y empiezan con el caracter punto y
coma (;).
d) en lenguaje Ruby…
Estos tres tipos de estructuras ló gicas de control pueden ser combinados para
producir programas que manejen cualquier tarea de procesamiento de informació n. El
resto de repertorio de estructuras de control que tienen los lenguajes de
programació n, pueden ser construidas mediante estas tres bá sicas citadas.
su vez, otras estructuras de control); para construir una secuencia de acciones basta
con escribir cada acció n en una línea diferente.
Existe una forma alternativa de expresar una estructura secuencial escribiendo varias
acciones en la misma línea pero utilizando el punto y coma, ;, como separador entre
una acció n y la que le sigue. Sin embargo, esta ú ltima notació n es no es aconsejable
puesto que puede llegar a hacer el có digo bastante difícil de leer.
Estructura multialternativa:
O lo que es lo mismo:
Cuando se está dentro del ciclo (entre el para y fin-para), cada vez que se llega (de
arriba hacia abajo) al fin-para, el programa salta hasta el para, y el mismo incrementa
o decrementa la variable contadora, y ejecuta las acciones del ciclo mientras no
sobrepase el valor final; de lo contrario salta (hacia abajo) a ejecutar las instrucciones
que está n debajo del fin-para.
Ejemplo No. 2:
Algoritmo en Pseudocódigo Programa Python
producto = 1 #usando decremento en el ciclo for
para j = 5000 hasta 100, 10 hacer: (5000, hasta 100, decremento 10)
producto = producto * j producto =1
fin para for j in range(5000,99,-10):
producto = producto * j
print "j = ", j
verdadera; en caso contrario, se continú a en la acció n situada fuera del bucle tras el
fin mientras.
La condició n tiene una variable asociada. Esta variable debe estar inicializada en un
valor o tener algú n valor asociado; ademá s dentro del conjunto de acciones del ciclo,
debe haber por lo menos una donde se actualice dicha variable, de lo contrario la
condició n siempre será verdadera y nunca se saldrá del ciclo (a esto se le llama ciclo
infinito).
Ejemplo: Algoritmo que muestra los nú meros del 1 al 100 utilizando la sentencia
mientras.
repetir
acció n // conjunto de acciones a ejecutar dentro del bucle
hasta expresió n ló gica
Solució n de problemas por computador Isaac Zú ñ iga Silgado
Ejemplo: Algoritmo que muestra los nú meros del 1 al 100 utilizando la sentencia
repetir.
Bucles infinitos
Los bucles infinitos deben evitarse pues significan perder el control del programa.
Cada lenguaje de programació n utiliza una combinació n de teclas para interrumpir la
ejecució n de un bucle infinito: por ejemplo, en Python para interrumpir un bucle
infinito, hay que pulsar la combinació n de teclas Ctrl+C.
i=1
while i <= 10: Imprime infinitamente (nunca sale del ciclo)
print(i, "", end=") 1 1 1 1 1 1 1 1 ...
i=1
while i > 0:
print(i, "", end="") Imprime infinitamente (nunca sale del ciclo)
i += 1 1 2 3 4 5 6 7 8 9 10 11 ...
En muchos programas se necesitan variables que cuenten cuá ntas veces ha ocurrido
algo (contadores) o que acumulen valores (acumuladores).
Variable Contador
Se entiende por contador una variable que lleva la cuenta del nú mero de veces que se
ha cumplido una condició n. El ejemplo siguiente es un ejemplo de programa con
contador.
Ejemplo: Elaborar un algoritmo que nos averigü e e imprimir cuá ntos nú meros
mú ltiplos de 7 hay en los 1000 primeros nú meros enteros positivos.
print("Comienzo")
cuenta = 0
for i in range(1, 1001):
if i % 7 == 0:
cuenta = cuenta + 1
print("Desde 1 hasta 1000 hay", cuenta, "mú ltiplos de 7")
Detalles importantes:
Solució n de problemas por computador Isaac Zú ñ iga Silgado
Variable Acumulador
Se entiende por acumulador una variable que acumula el resultado de una operació n.
El ejemplo siguiente es un ejemplo de programa con contador El ejemplo siguiente es
un ejemplo de programa con contador.
Ejemplo: Elaborar un algoritmo que nos imprima la suma de los primeros 4 nú meros
enteros positivos.
print("Comienzo")
suma = 0
for i in [1, 2, 3, 4]:
suma = suma + i
print("La suma de los nú meros de 1 a 4 es", suma)
Detalles importantes:
El acumulador se modifica en cada iteració n del bucle. (en este caso, el valor de
i se añ ade al acumulador suma).
Antes del bucle se debe dar un valor inicial al acumulador (en este caso, 0)
Si continuar vale
Verdadero verdadero se repite
Continuar Sí Sí Sí
Falso un bucle y si vale
falso se sale de él
Almacena la
Verdadero
Opinion contestació n a una Sí No No
Falso
pregunta de un test
Elabore un programa de computador que lea los siguientes datos para un nú mero
desconocido de personas:
Edad de la persona
Sexo (1 si es masculino, 2 si es femenino)
Estado civil (1 si es soltero, 2 si es casado)
Se desea saber:
SOLUCIÓ N:
Solució n de problemas por computador Isaac Zú ñ iga Silgado
# aquí el algoritmo
Solució n de problemas por computador Isaac Zú ñ iga Silgado
numero_total_personas = 0
personas_aptas_para_votar = 0
numero_hombres_aptos = 0
numero_mujeres_aptas = 0
numero_personas_solteras_aptas = 0
numero_personas_casadas_aptas = 0
sw = “N”
mientras ((sw = “N”) or (sw = “n”)) haga
# Captura de Datos de la Persona
leer "Edad (en añ os) de la persona: ”, Edad_persona
leer "Sexo (1 si es masculino, 2 si es femenino): ”, Sexo_persona
leer ("Estado civil (1 si es soltero, 2 si es casado): ”,
Estado_civil_persona
numero_total_personas = numero_total_personas + 1
si (Edad_persona >= 18) entonces # Persona apta para votar
personas_aptas_para_votar = personas_aptas_para_votar + 1
si (Sexo_persona == 1) entonces # Hombre
numero_hombres_aptos = numero_hombres_aptos + 1
sino # Mujer
numero_mujeres_aptas = numero_mujeres_aptas + 1
finsi
si (Estado_ civil_persona == 1) entonces # Soltero
numero_personas_solteras_aptas = numero_personas_solteras_aptas + 1
sino # Casado
numero_personas_casadas_aptas = numero_personas_casadas_aptas + 1
finsi
sino
escriba “Persona no apta para votar”
finsi
leer "Desea salir del programa (S/N): ", sw
finmientras
personas_no_aptas_para_votar = numero_total_personas - personas_aptas_para_votar
escriba "Informe de Personas Aptas para Votar en Colombia:"
escriba "El nú mero de hombres que pueden votar: ", numero_hombres_aptos
escriba "El nú mero de mujeres que pueden votar: ", numero_mujeres_aptas
escriba "El nú mero total de personas solteras que pueden votar: ",
numero_personas_solteras_aptas
escriba "El nú mero total de personas casadas que pueden votar: ",
numero_personas_casadas_aptas
escriba "El nú mero total de personas que pueden votar: ",
personas_aptas_para_votar
escriba "El nú mero total de personas que no pueden votar: ",
personas_no_aptas_para_votar
Fin
El nú mero de ventas diarias es desconocido. Esto es obvio porque ninguna tienda sabe
cuantas ventas va a realizar en un día cualquiera.
SOLUCIÓ N:
# aquí el algoritmo
Cant_arti_tipo1 = 0
Cant_arti_tipo2 = 0
Cant_arti_tipo3 = 0
Cant_arti_tipo4 = 0
Venta_total = 0
Numero_ventas = 0
sw = “N”
mientras ((sw = “N”) or (sw = “n”)) haga
# Captura de Datos de la Persona
leer "Digite el có digo del artículo: ”, Codigo_articulo_vendido
leer "Digite el costo unitario del artículo: ”, Costo_unitario_artículo
leer "Digite el tipo de artículo: ”, Tipo_articulo
leer "Digite la cantidad de artículos en esta venta: ”, Cantidad_vendida_articulo
# Procesamientos de los datos capturados
Venta_total = Venta_total + Cantidad_vendida_articulo *
Costo_unitario_artículo
Numero_ventas = Numero_ventas + 1
segun Tipo_articulo
caso 1:
Cant_arti_tipo1 = Cant_arti_tipo1 + 1
caso 2:
Cant_arti_tipo2 = Cant_arti_tipo2 + 1
caso 3:
Cant_arti_tipo3 = Cant_arti_tipo3 + 1
caso 4:
Cant_arti_tipo4 = Cant_arti_tipo4 + 1
Solució n de problemas por computador Isaac Zú ñ iga Silgado
otro caso:
escribir “ERROR: tipo de artículo incorrecto”
fin segun
leer "Desea salir del programa (S/N): ", sw
finmientras
#
personas_no_aptas_para_votar = numero_total_personas - personas_aptas_para_votar
escriba "Informe de Ventas Realizadas en un Día en la Supertienda:"
escriba "El nú mero de hombres que pueden votar: ", numero_hombres_aptos
escriba "Cantidad total vendida en día del artículo tipo 1: ", Cant_arti_tipo1
escriba "Cantidad total vendida en día del artículo tipo 2: ", Cant_arti_tipo2
escriba "Cantidad total vendida en día del artículo tipo 3: ", Cant_arti_tipo3
escriba "Cantidad total vendida en día del artículo tipo 4: ", Cant_arti_tipo4
escriba “Cantidad total vendida (en pesos) en el día: “, Venta_total
escriba “Nú mero de ventas (transacciones) realizadas en el día: ”, Numero_ventas
Fin
Solució n de problemas por computador Isaac Zú ñ iga Silgado
BIBLIOGRAFÍA
[1] Introduction to Algorithms (2nd ed), Cormen, T. H., Leiserson, C. E., Rivest, R. L. y
Stein, C.
[2] Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford. Introduction
to algorithms. Cambridge, Massachusetts: The MIT Press. 2009. ISBN 978-0-262-
53305-8.
[3] Luis Joyanes Aguilar. (2008). FUNDAMENTOS DE PROGRAMACIÓ N Algoritmos,
Estructuras de datos y Objetos. Ed. Mc Graw Hill.
[4] Isaac Zú ñ iga y Alfonso De La Rosa. FUNDAMENTOS DE COMPUTACIÓ N.
Universidad Tecnoló gica de Bolívar. 2004.
[5] Isaac Zú ñ iga y Alfonso De La Rosa. PROBLEMARIO DE FUNDAMENTOS DE
COMPUTACIÓ N. Universidad Tecnoló gica de Bolívar. 2004.
[6] Harvey M. Deitel; Paul J Deitel coaut.; Alfonso Vidal Romero Elizondo tr.; Jorge
Octavio García Pérez tr.; Gabriela Azucena Campos García rev. Có mo programar en C+
+. México D.F Pearson, 4 ed. 2003. 005.133 D324co
[7] Herbert Schildt; Javier Gonzá lez Sá nchez trad.; Rosana Ramos Morales trad. Java
manual de referencia. México D. F. Mc-Graw-Hill, 7 ed. 2009. 005.133 S334j
[8] Eugenia Bahit. Curso: Python para Principiantes 2012.
www.eugeniabahit.com. Buenos Aires, Argentina.
[9] Roger S. Pressman. Ingeniería del software: Un enfoque prá ctico, 7ma Edició n.
McGraw-Hill. 2010. (CAPÍTULO 1. El software y la ingeniería de software PARTE UNO.
EL PROCESO DEL SOFTWARE; CAPÍTULO 14. Conceptos de calidad; CAPÍTULO 16.
Aseguramiento de la calidad del software; CAPÍTULO 17. Estrategias de prueba de
software)
[10] Ian Sommerville. Ingeniería de software, 9ª Edició n. Pearson Education. 2011.
(Capítulo 2 Procesos de software; Capítulo 3 Desarrollo á gil de software; Capítulo 8
Pruebas de software; Capítulo 9 Evolució n del software; Capítulo 16 Reutilizació n de
software)
[11] Kenneth E. Kendall. Aná lisis y diseñ o de sistemas, 8ª Edició n. Pearson Education.
2011. (Capítulo 7 Uso de diagramas de flujo de datos; Capítulo 17 Implementació n
exitosa del sistema de informació n)
[12] Javier Tuya. ISO/IEC/IEEE 29119 El nuevo está ndar internacional para pruebas
de software. Presentado en la “Jornada Informativa de AENOR”, Madrid, 2014-06-18.
[13] Javier Tuya. Standarization effort: ISO/IEC 29119 Software Testing. AST Network
Meeting, Seville, 2011-10-19.
[14] Stuart Reid. ISO/IEC 29119: The New International Software Testing Standard. V
Conferencia Internacional de Testing y Calidad del Software (expo:QA), Madrid, 2008-
22-27.
Bö hm, Jacopini. "Flow diagrams, turing machines and languages with only two
formation rules" Comm. ACM, 9(5):366-371, May 1966
Solució n de problemas por computador Isaac Zú ñ iga Silgado