Documente Academic
Documente Profesional
Documente Cultură
1. La computadora
5. Estructuras de control
iterativas
4.1 Esquema
4.2 Ejercicios resueltos
6. Anidamiento
4.1 Esquema
4.2 Ejercicios resueltos
2. Algoritmo
7. Subprogramas
4.1 Esquema
3. Conceptos tradicionales
de la programacin
3.1 Pseudocdigo y su
informalizacin
3.2 Recepcin de conceptos
prcticos
8. Arreglos
unidimensionales
4.1 Esquema
4.2 Ejercicios resueltos
9. Cadena de caracteres
4.1 Esquema
4. Estructuras de control
selectivas
10. Matrices
4.1 Esquema
4.1 Esquema
4.2 Ejercicios resueltos
Captulo 1
La computadora
1.1 Conceptos generales:
Antes de estudiar y esquematizar las diferentes propiedades que envuelven
los estudios de la ciencia de la computacin, es necesario entender bajo qu
condiciones trabajaremos y en que entorno se emplearn todos los mtodos
habidos y por haber. Se requiere un ligero esfuerzo mental para entender
que la vida real y un entorno abstracto del calibre de una computadora son
entornos de trabajo muy distintos, pero que empleando las analogas del
caso, sern fciles de relacionar. Si bien a continuacin se tratarn mtodos
para almacenar nmeros, segn la estructura de una computadora, se le
pide al lector que tenga paciencia y lea todo en el orden en el que ya est;
se profundizar a fondo las analogas que se queran estudiar ahora en el
Captulo 3.1
Acelerando las cosas para cumplir con lo que se estudiar cronolgicamente
(segn el slabo), empecemos a discutir como una computadora almacena
nmeros. Es bien sabido que un sistema de computadoras est construido
en base a respuestas opuestas y descartables; es decir, de cumplirse la
primera, no se entrar a analizar la segunda. Esto, traducido al mundo real,
se lee como ceros (0) y unos (1), representando casos de verdad o
falsedad (si deseas investigar un poco (solo un poco, casi nada) ms a
fondo de ste tema, te sugiero buscar a cerca de variables booleanas). Es
til que la comunicacin entre el ser humano y la mquina sea de esta
manera, agiliza procesos y simplifica la bsqueda de posibles errores. Pero
si un sistema digital como lo es una computadora est basado en esta base
binaria, cmo se almacenaran nmeros diferentes a stos dos? A
continuacin se resolvern stos problemas estrechamente ligados al
almacenamiento numrico.
1.2 Almacenamiento:
Se debe entender primero cmo una computadora recepciona data y la
guarda, para qu la guarda y cmo podra discernir entre los diferentes tipos
de data. Para esto primero se presentarn unidades y elementos propios de
una computadora.
Bit: Unidad mnima de almacenamiento digital. Son dgitos representados
por los smbolos 0 y 1. No presentan valor numrico.
Celdas de memoria: Tambin llamadas solamente como celdas. Son
unidades manejables discretamente para organizar y administrar la
memoria de una computadora
Byte: Celda compuesta por 8 bits
Grficamente podemos representar una celda como un cajn con un nmero
asociado:
Tomando como ejemplo una celda de longitud 8 bits (byte), sealaremos sus
partes:
Ntese que todo lo que se est haciendo con los nmeros del 0 al 15 es
transformarlos a la base binaria, completando ceros por la izquierda (cosa
que es obvio dado que de completar por el otro sentido se alterara el valor
numrico original). Luego, a partir del 10, se remplazarn los valores
numrico 10, 11, 12, etc. Por letras del abecedario correctamente ordenas
de la A a la F. Tomando en cuenta estas pautas, procederemos con el
ejemplo:
Sea el nmero:
311
311 = 100110111
Contando, de derecha a izquierda, grupos de cuatro cifras cada uno, se
tiene:
1 0011 0111
Luego, segn la tabla, reemplazamos los valores preestablecidos, de
izquierda a derecha. Al excedente que no llega a completar un grupo se le
rellenar con ceros para poder completar los cuatros necesarios
Captulo 3
Conceptos tradicionales de la
programacin
3.1 Pseudocdigo y su informalizacin:
Si bien de todo lo que llevamos discutiendo, solo mencionamos cdigo por
aqu y cdigo por all, es necesario que el lector, por un tema de orden y
formalidad, aprenda a crear programas utilizando solo pseudocdigo, antes
de utilizar un lenguaje de programacin formal; esto le har entender cmo
funcionan las estructuras de control y cundo y de qu manera se aplican.
Si bien usted debe tener alguna nocin de qu es un lenguaje formal (por
ejemplo: java, c++, python, entre otros), es necesario explicar a detalle una
cualidad de stos que no presenta un lenguaje informal (pseudocdigo): la
unicidad estructural. Si bien solo existe una y solo una manera de escribir
una estructura en lenguaje formal, existen muchas por no decir infinitas
maneras de escribir una estructura en pseudocdigo, por lo que a usted lo o
la evaluarn solo por la funcionalidad del programa que cree y no como lo
cree. Esto se detallar a fondo en cada uno de los captulos siguientes con
el primer problema resuelto.
X2 = 4
Y adems nos dice que x es un nmero no positivo natural, es fcil decir que
X solo puede ser igual a -2. Algo similar sucede con los parmetros, estas
variables se usan y manipulan con cdigo dentro de un programa. Tomemos
por ejemplo el siguiente cdigo (formal obviando el cuerpo)
de valor llegar a llenar esta celda. As, al crear la variable entero a lo que
hacemos es crear una celda llamada a a la cual llegar un dato especfico,
el cual ser un numero entero. Anlogamente, al crear el entero b = 3, lo
que hacemos es crear una celda llamada b y la cual llenamos tan pronto
como la creamos, con el valor de 3
<> Usted se est preguntando Qu tal si quiero almacenar un numero pero
solo como caracter? Es decir, solo quiero tomar en cuenta el smbolo y no el
valor numrico que representa. Esto si es posible y muy til, pero no se
profundizar en el tema en este escrito; consultelo con su profesor y hgalo
volar a l, a m no me moleste.
<> Usted se est preguntando Hara alguna diferencia crear los
parmetros dentro del inicio? Para esta parte no habra ninguna diferencia,
sin embargo, cuando lleguemos al captulo en el que hablamos de
subprogramas, tendremos que definir lo que son variables locales y
globales, por lo que s ser til y har una diferencia si es que los
sentenciamos fuera o dentro del INICIO-FIN.
Ahora hablemos de asignacin de valores a parmetros (o variables).
Primero tenemos que entender que involucra asignar una propiedad A a un
elemento B. Partamos de un ejemplo simple: Supongamos que la edad del
lector era 17 y que estudi por un periodo de 2 aos para ingresar a la
universidad y por tercera opcin; entonces si inicialmente tena 17 aos y
han transcurrido 2, su edad actual (tomando la inicial y aadiendo 2
unidades) ser 19 Simple no? Ahora, pensemos como una computadora
piensa (Si no entiende lo que viene a continuacin, intente leerlo de todas
maneras y complementarlo con la imagen del cdigo que se expondr
cuando acabe la explicacin). Si a lo largo de un cuerpo de cdigo tenamos
que un parmetro al que llamamos edad vala 17 y queremos
transformarlo a un 19, solo hace falta aumentarle 2 unidades a la variable
edad, luego la variable edad se ha TRANSFORMADO, por lo cual es
imposible regresar al valor original (as como usted no podr volver a tener
17 aos de nuevo). Luego, lo que acabamos de hacer es asignarle un nuevo
valor a un parmetro existente con un valor inicial; adems este valor inicial
se PIERDE.
*** 17 + 2
6. La computadora opera:
*** 19
7. Luego, la ceguera temporal de la computadora acaba porque la operacin
ha terminado, y procede a leer a lo que apunta la flecha
edad 19
8. Ahora, todo se resume a una simple asignacin, en la que sin importar lo
que este almacenado en edad, se lo reemplazar por un 19
Acabado este proceso, el nuevo valor de edad ser 19 y se perder el
valor original (17)
Notas importantes:
<> Usted se est preguntando Por qu al crear parmetros no puedo usar
una flecha para asignarles un valor inicial? Esto es solo por convencin.
Entonces, siempre que se creen parmetros y se desee asignarles
valores iniciales, estos solo se asignarn con el smbolo igual que
(=)
Ahora bien, para acabar con sta seccin, discutamos unas cuantas
operaciones predefinidas que usaremos al escribir cdigo.
Operaciones aritmticas:
En general estn definidas las operaciones de suma, resta, multiplicacin y
divisin sobre los reales; pero adems se tienen dos nuevos operadores
A DIV B = Cociente de dividir A/B
A MOD B = Residuo de dividir A/B
Operaciones elementales:
Leer(a) = Se prepara a la computadora para que lo siguiente que ingrese el
usuario se almacene en la variable a
Escribir(Texto) = Imprime en pantalla lo que est entre comillas
Estos dos grupos de operaciones se mostrarn en el ejemplo a continuacin:
Veamos en el ejemplo:
Captulo 4
Estructuras de control selectivas
4.1 Esquema:
Para entender esta primera estructura de control basta con estudiar los
posibles problemas que debe enfrentar una computadora con una tarea
sencilla: Si esta condicin se cumple Qu debo hacer?
Dejaremos esta interrogante para primero proponer un ejemplo que nos
ayude a entender la utilidad de este tipo de estructura. Supongamos un
detector de metales; ste dispositivo est diseado de tal manera que, si
una persona cruza las inmediaciones de su dominio, ste indicar con una
alarma si el sujeto portaba algn tipo de objeto metlico. Ahora analicemos
lo obvio de una manera ms precisa. Hgase las siguientes preguntas:
1.2.3.4.5.-
Ahora bien, analicemos este otro problema que si bien es algo un poco ms
complejo, no debera ser problema si se razona. Supongamos que queremos
atender una caja registradora de una tienda que solo vende agua, jugo y
limonada. Entonces, cada vez que el detector de cdigo de barras lea un
cdigo correspondiente al producto agua, aadiremos 1 sol al precio total,
si se lee una producto jugo se aadir 1.5 soles y 2 soles para el producto
limonada. Entonces, ya no sera muy til utilizar los 2 primeros tipos de
estructura dado que no se analiza una condicin y su negacin, sino que se
i. Ntese como ahora, para cada caso, se le aade un dos puntos (:), cosa
que no se hizo en el ejercicio anterior. De nuevo, no es obligatorio aadirlo,
pero demuestra orden y formalidad hacerlo, y forma una buena
predisposicin para lenguajes formales que ver mas adelante.
Captulo 5
podremos distinguir el ltimo piso una vez estemos all? (Esta ltima
pregunta es un poco ms compleja pero tengo fe en ti) Entonces, la
alternativa de escribir estas 4 lneas de cdigo una y otra y otra vez hasta
quemar la placa madre de tu computadora no es opcin. A continuacin
empezaremos a pensar otra alternativa de solucin que nos llevar a la
definicin de esta nueva estructura de control.
Posibles factores para la solucin de este problema:
i. Debemos crear alguna especie de indicador que nos permita ir subiendo
un piso a la vez
ii. Debemos crear un cuerpo de cdigo o algn mtodo para repetir estas
lneas de cdigo que revisan si estamos en el ltimo piso o no
iii. Cuando lleguemos al objetivo, necesitamos que esta estructura deje de
funcionar
Posible solucin:
a. Qu tal si el indicador en el que pensbamos en i. debe cumplir una
condicin? Luego esta nos controlara la cantidad de veces que quiero que
el cdigo (esas 4 lneas) se ejecuten y una vez la condicin necesaria para
que esto pase sea falsa (y que esta falsedad implique haber llegado ya al
ltimo piso) la estructura deje de funcionar y se contine con el resto del
cdigo (como pensamos en iii.)
Ahora bien, a continuacin se definirn los tres tipos de estructuras de
control iterativas; resolviendo primero el problema en cuestin y al final del
esquema (antes de la resolucin de problemas) definiremos formalmente
esta estructura.
Solucin 1 (Usando la estructura de control iterativa de tipo Mientras)
Simulacin:
1. La computadora reconoce que se asigna el valor de 1 a la variable
llamada Piso_actual
2. La computadora se topa con una estructura iterativa Mientras
3. Se lee la condicin la cual establece que el valor de Piso_actual debe
ser diferente al de Ultimo_piso. Dado que esto es una simulacin,
tomemos un valor arbitrario de 3; es decir, Ultimo_piso tiene un valor
igual a 3. Luego, regresando a la condicin entre parntesis, como
Piso_actual = 1 y Ultimo_piso=3, la condicin se puede leer como: Ser 1
diferente a 3?
Dado que esto es verdadero, la computadora procede a leer el cdigo
dentro de la estructura mientras (Esto porque la condicin de la L. 9 es
VERDADERA)
4. Se lee la lnea 10 que aumenta el valor de Piso_actual en una unidad,
ahora su valor es 2
5. Se llega a la lnea Fin mientras. Lo natural es que salga de la estructura,
contine con la lnea 12 y finalice el programa, pero esta estructura obliga a
la computadora a volver a evaluar la condicin primero.
6. Se evala la condicin por segunda vez, ahora se revisa si 2 es diferente
a 3 (Dado que el valor de Piso_actual ha aumentado en una unidad); como
esto es verdadero, se vuelve a ejecutar la lnea 10
7. Nuevamente el valor de Piso_actual aumenta en uno y se convierte en
tres (3)
8. Volvemos a llegar al final de la estructura mientras y la computadora se
ve obligada a regresar a la condicin.
9. Dado que ahora el valor de Piso_actual es 3 y el valor de Ultimo_piso
tambin lo es, la condicin (3 diferente a 3) es FALSA, luego no se ejecuta
el cdigo dentro del Mientras y la computadora se saltea hasta la lnea de
Fin mientras, continua leyendo el resto de cdigo y acaba su tarea.
Si bien es un poco complejo al principio, todo lo que debe entender de esta
estructura es que basta que la computadora lea la condicin como
verdadera, no hay nada que la saque de esta estructura hasta que se haga
falsa. Si lo ayuda este ejemplo, suponga un cuerpo de cdigo con un
Mientras cuya condicin sea (4 < 5); si cree que este Mientras se
ejecutar infinitamente, est en lo correcto, dado que estos nmeros no
varan y la condicin siempre ser verdadera. Otra ayuda que puede serle
til es el otro nombre de estas estructuras, conocidas como estructuras de
control repetitivas. En general, se crearon para realizar trabajos que la