SlideShare una empresa de Scribd logo
1 de 73
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Fundamentos
de
Programación
FUNDAMENTOS DE ALGORITMOS
 Computabilidad: Término matemático para nombrar a los
estudios sobre teoría de la computación. Consiste en encontrar
la representación adecuada para la descripción de un
problema o un fenómeno.
 Conocimiento transmisible: se da si se cierra el ciclo
Descripción Representación
FUNDAMENTOS DE ALGORITMOS
 Modelo: Especificación, generalmente en términos
de un lenguaje matemático, de los pasos necesarios
para reproducir, aquí y ahora, un subconjunto
determinado de la realidad descrito previamente
 Pregunta:
 ¿Todo aquello que es descriptible es representable?
 ¿Habrá una representación que simule
completamente lo descrito?
 Cuanto más adecuada sea la descripción del
proceso, tanto mejor será el resultado que emula lo
real
FUNDAMENTOS DE ALGORITMOS
 Supongamos que se crea una máquina para
producir descripciones en términos de cadenas de
símbolos.
 Dada una descripción cualquiera, la analiza durante
un tiempo finito y después emite su dictámen (si o
no) con respecto al problema
 Pregunta : ¿existirá una máquina así?
Descripción
Procedimiento
De
decisión
SI
NO
HAY
SOLUCIÓN
FUNDAMENTOS DE ALGORITMOS
 Máquina de Turing: Es un modelo matemático para
especificar formalmente los pasos primitivos necesarios
para representar una descripción en términos totalmente
explícitos y claros, sin hacer la menor referencia a
conceptos u operaciones ambiguos o sobreentendidos.
 Elementos:
– Una cinta de longitud infinita, dividida en celdas (cada
celda puede contener un símbolo
– Un diccionario de símbolos predefinido (De aquí se
toman los símbolos para las celdas)
– Un control finito, que posee un cojunto de estados y que
tiene la capacidad de examinar algún símbolo de alguna
celda y tomar una decisión (La decisión depende del
símbolo observado y del estado en el que se encuentre en
ese momento)
FUNDAMENTOS DE ALGORITMOS
 Funcionamiento: Mediante un conjunto de funciones
matemáticas simples se indica el comportamiento
completo del proceso que está siendo representado,
mostrando detalladamente los estados por los que
atraviesa para lograrlo. Se parte de un estado inicial y se
recorre un conjunto de estados intermedios hasta llegar
al estado final, que marca entonces el final de la
computación
S10 S0 S7 S14 S4 S2 …
CONTROL
FINITO
CONTROL
FINITO
FUNDAMENTOS DE ALGORITMOS
 Teoría de la computabilidad Encontrar formas de
representar descripciones de procesos, de manera
tal que siempre se pueda decir que la solución de un
problema existe o no
 Un problema se dice que es Computable si existe
una máquina de decisión para él
 Pregunta: ¿Todos los procesos son computables?
 Un problema se dice que es No Computable si la
máquina de decisión para él llega a un estado en
donde no es capaz de decir que si o que no
FUNDAMENTOS DE ALGORITMOS
1. Definición o análisis del
problema: Descripción
específica y comprensible
del problema a resolver
2. Diseño del algoritmo:
Planteamiento de los
pasos a seguir para
resolver el problema
3. Transformación del
algoritmo en un programa
independientemente del
lenguaje de programación.
4. Ejecución y validación del
programa
5. Mejoras y correcciones al
programa
FUNDAMENTOS DE ALGORITMOS
 Algoritmo: Conjunto ordenado y finito de pasos u
operaciones que permite hallar la solución de un
problema. Es un método formal y sistemático de
representar la descripción de un proceso.
 CARACTERÍSTICAS:
– Definido: debe indicar el orden de la realización de cada paso y
no debe tener ambigüedad
– Preciso: Si se sigue dos veces o más se obtendrá e el mismo
resultado cada vez
– Finito: Debe terminar en algún momento. Tiene un número
determinado de pasos
FUNDAMENTOS DE ALGORITMOS
– Correcto: Sin errores
– Debe tener al menos una salida
– Su solución debe ser concreta
– Debe ser sencillo y legible
– Eficiente y efectivo
– Se ha de desarrollar en el menor tiempo posible
 Un algoritmo debe describir tres partes:
– Entrada(s) : elementos o condiciones iniciales
necesarios para resolver el problema.
– Proceso : elaboración del procedimiento.
– Salida(s): Resultados que se desean obtener
FUNDAMENTOS DE ALGORITMOS
 Pseudocódigo: Representación descriptiva de las
operaciones de un algoritmo. Representa una secuencia lógica
de actividades, que llevarán en conjunto a la solución de un
problema. Los elementos que debe llevar un algoritmo son
– Cabecera del algoritmo: Existen pasos o procedimientos
que se realizan para comenzar un programa. Siempre que
se haga debe ponerse un encabezado de programa, en
donde debe expresarse el identificador o nombre
correspondiente con la palabra reservada que señale el
lenguaje, generalmente ésta suele ser program que en
algoritmia significa algoritmo
– Declaración de Variables: En este punto se describen
todas las variables que son usadas en el algoritmo,
haciendo una lista de sus nombres y especificando a qué
tipo corresponde cada uno.
FUNDAMENTOS DE ALGORITMOS
– Declaración de Constantes: En este punto se
declararán todas las constantes de carácter estándar;
es decir, que tengan nombre y un valor ya conocido o
valores que ya no pueden variar en el transcurso del
algoritmo
– Cuerpo del algoritmo: Una vez añadidas la cabecera
y la declaración de variables y constantes se procede
a realizar los pasos del algoritmo
 A continuación se muestra un ejemplo:
FUNDAMENTOS DE ALGORITMOS
Algoritmo Área_Círculo
{Cálculo del área de un circulo
pidiendo el radio al usuario}
var r, A: real
cte: π:real
Inicio
Mostrar “Dame el radio”
Leer r
A <- π*r^2
Mostrar “El área es:”, A
Fin
 Cabecera
– Nombre del algoritmo
– {Comentario con descripción
del problema}
 Declaración de variables y
constantes
 Cuerpo del algoritmo
FUNDAMENTOS DE ALGORITMOS
 Diagrama de flujo: Es la representación gráfica de las
operaciones de un algoritmo. Contiene símbolos gráficos
que se encuentran estandarizados. Los símbolos más
comúnes son:
Diagramasdeflujomáscomúnes
Diagramasdeflujomáscomúnes(cont.)
InicioInicio
var r, A: real
cte: π:real
var r, A: real
cte: π:real
“Dame el
radio:”
“Dame el
radio:”
rr
A <- π*r^2A <- π*r^2
AA
AA
“El área es ”, A,
“u^2”
“El área es ”, A,
“u^2”
FinFin
FUNDAMENTOS DE ALGORITMOS
 Instrucciones que se le dan a la
Computadora
 Un algoritmo se compone de muchos pasos,
todos diferentes, los que son interpretados
como instrucciones (lenguaje de bajo nivel),
sentencias o proposiciones (lenguaje de alto
nivel). Entonces, en un programa, la
secuencia de instrucciones especifica las
operaciones que la computadora debe
realizar.
FUNDAMENTOS DE ALGORITMOS
 Las instrucciones básicas y comunes pueden
dividirse en cuatro grupos:
– Instrucciones de Entrada /Salida: Transferencia de datos
e información entre dispositivos periféricos (teclado,
impresora, unidad de disco, etc.) y memoria central.
– Instrucciones Aritmético-Lógicas: Tienen la función de
ejecutar operaciones aritméticas (suma, resta,
multiplicación, división, potenciación), lógicas (operaciones
and, or, not, etc.).
– Instrucciones Selectivas: Estas permiten la elección de
una tarea entre varias alternativas en función de los
resultados de diferentes expresiones condicionales.
– Instrucciones Repetitivas: Permiten la repetición de
secuencias de instrucciones, un número determinado o
indeterminado de veces.
FUNDAMENTOS DE ALGORITMOS
 CONSTANTES Y VARIABLES
 Las constantes son datos cuyos valores no cambian,
pero existen datos cuyos valores sí varían durante la
ejecución del programa, a éstos los llamamos variables.
En la mayoría de los lenguajes de programación se
permiten diferentes tipos de constantes: enteras, reales,
caracteres y boolean o lógicas, quienes representan
datos de estos tipos.
 Entonces una variable se conoce como un objeto, o
partida de datos cuyo valor puede cambiar durante la
ejecución del algoritmo o programa.
 A las variables y a las constantes se les conoce o
identifica por los atributos siguientes: nombre o
identificador que lo asigna y tipo que describe el uso de
la variable.
FUNDAMENTOS DE ALGORITMOS
 Identificadores:
– Deben empezar con letra, excepto ñ o Ñ, o guión bajo
y estar seguidos de cero o más letras, números o
guiones bajos
– No se permiten símbolos como
– $ ¡ ! ¿ ? ° | & - % # @ , . ‘ “ /  o espacios en blanco y
tabuladores
 Palabras reservadas: Existe un conjunto
palabras que se utilizan tanto en pseudocódigo
como en los lenguajes de programación no
pueden ser utilizadas como nombres de
identificadores ni de funciones.
FUNDAMENTOS DE ALGORITMOS
 OPERACION DE ASIGNACION
 Se le otorgan valores a una variable. Esta operación
de asignación se conoce como instrucción o
sentencia de asignación, si es que está en un
lenguaje de programación
 La operación de asignación es representada por un
símbolo u operador:
 La acción de asignar puede ser destructiva ya que
puede perderse el valor que tuviera la variable
antes, siendo reemplazado por el nuevo valor. Las
acciones de asignación se clasifican según sea el
tipo de expresiones en: Asignación aritméticas,
Asignación lógica y Asignación de caracteres
FUNDAMENTOS DE ALGORITMOS
 EXPRESIONES
 Son la combinación de constantes, variables, símbolos
de operación, paréntesis y nombres de funciones
especiales, idea que puede ser utilizada en notaciones
de matemática tradicional. Los valores de las variables
nos permitirán determinar el valor de las expresiones,
debido a que éstos están implicados en la ejecución de
las operaciones indicadas. Estas constan de operandos y
operadores.
 Según el tipo de objetos que manipulan, pueden
clasificarse en:
– Aritméticas -> resultado tipo numérico.
– relacionales -> resultado tipo lógico.
– lógicas -> resultado tipo lógico.
– caracter -> resultado tipo caracter.
FUNDAMENTOS DE ALGORITMOS
 Expresiones Aritméticas
 Estas expresiones son análogas a las fórmulas
matemáticas. Las variables y constantes son
numéricas (real o entera) y las operaciones son las
aritméticas
 Operadores aritméticos
 Precedencia
 - (operador monario)
 ^ (exponenciación), (radicación)
 *, / (división real),
 +, -
 div o / (cociente de división entera) , mod o %
(residuo de división entera)
FUNDAMENTOS DE ALGORITMOS
 Expresiones lógicas: Su valor es siempre
verdadero o falso.
 Se forman combinando constantes lógicas ,
variables lógicas y otras expresiones lógicas,
utilizando los operadores lógicos y los
operadores relacionales
 Operadores relacionales
 Precedencia
 >, <
 >=, <=
 = o == (igualdad)
 <> o != (desigualdad)
FUNDAMENTOS DE ALGORITMOS
 Operadores lógicos
 Precedencia
 ! o ~ o not (negado)
 and o && (conjunción)
 or o || (disyunción)
 Nota: En C un valor
falso se toma como 0 y
un valor verdadero se
toma como cualquier
valor diferente de cero
A NOT
F V
V F
A B AND OR
F F F F
F V F V
V F F V
V V V V
FUNDAMENTOS DE ALGORITMOS
 ENTRADA Y SALIDA DE INFORMACION
 El ingreso de datos es importante para que la
computadora realice los cálculos; esta operación es
la entrada, luego, estos datos se convertirán en
resultados y serán la salida.
 A la entrada se le conoce como operación de
Lectura (read). La operación de lectura se realiza a
través de los dispositivos de entrada que son
(teclado, unidades de disco, CD-Rom, etc.).
 La operación de salida se realiza por medio de
dispositivos como (monitor, impresora, etc), a esta
operación se le conoce como escritura (write).
INTRODUCCION A LA
PROGRAMACION ESTRUCTURADA
 El entendimiento de los algoritmos y luego
de los programas, exige que su diseño sea
fácil de comprender y su flujo lógico un
camino fácil de seguir
 La descomposición de programas en
módulos más simples de programar se dará
a través de la programación modular, y la
programación estructurada permitirá la
escritura de programas fáciles de leer y
modificar.
PROGRAMACION MODULAR
 Este es uno de los métodos para el diseño más flexible y
de mayor performance para la productividad de un
programa. En este tipo de programación el programa es
dividido en módulos, cada uno de las cuales realiza una
tarea específica, codificándose independientemente de
otros módulos. Cada uno de éstos son analizados,
codificados y puestos a punto por separado.
 Los programas contienen un módulo denominado módulo
principal, el cual supervisa todo lo que sucede,
transfiriendo el control a submódulos (los que son
denominados subprogramas), para que puedan realizar
sus funciones. Sin embargo, cada submódulo devolverá
el control al módulo principal una vez completada su
tarea. Si las tareas asignadas a cada submódulo son
demasiado complejas, se procederá a una nueva
subdivisión en otros módulos más pequeños aún.
PROGRAMACION MODULAR
 Este procedimiento se realiza hasta que cada uno de los
módulos realicen tareas específicas. Estas pueden ser
entrada, salida, manipulación de datos, control de otros
módulos o alguna combinación de éstos. Puede ser que
un módulo derive el control a otro mediante un proceso
denominado bifurcación, pero se debe tomar en cuenta
que esta derivación deberá ser devuelta a su módulo
original.
 Los módulos son independientes, de modo que ningún
módulo puede tener acceso directo a cualquier otro
módulo, excepto el módulo al que llama y sus
submódulos correspondientes. Sin embargo, los
resultados producidos por un módulo pueden ser
utilizados por otro módulo cuando se transfiera a ellos el
control.
PROGRAMACION MODULAR
PROGRAMACION ESTRUCTURADA
 Cuando hablamos de Programación Estructurada, nos
referimos a un conjunto de técnicas que con el transcurrir del
tiempo han evolucionado. Gracias a éstas, la productividad de
un programa se ve incrementada de forma considerable y se
reduce el tiempo de escritura, de depuración y mantenimiento
de los programas. Aquí se hace un número limitado de
estructuras de control, se reduce la complejidad de los
problemas y se minimiza los errores.
 Gracias a la programación estructurada, es más fácil la
escritura de los programas, también lo es su verificación, su
lectura y mantenimiento. Esta programación es un conjunto de
técnicas que incorpora:
– diseño descendente (top-down)
– recursos abstractos
– estructuras básicas
PROGRAMACION ESTRUCTURADA
 Los recursos abstractos son utilizados como un
apoyo en la programación estructurada, en vez
de los recursos concretos de los que se dispone
(lenguaje de programación determinado).
 Para separar un programa en términos de
recursos abstractos debemos descomponer
acciones complejas en acciones más simples,
las que son capaces de ejecutar o constituyen
instrucciones de computadora disponible.
PROGRAMACION ESTRUCTURADA
 Diseño descendente (Top-Down)
 Este es un proceso en el cual el problema se
descompone en una serie de niveles o pasos
sucesivos (stepwise). Esta metodología consiste
en crear una relación entre las etapas de
estructuración, las que son sucesivas, de tal
forma que se interrelacionen mediante entradas
y salidas de información. Considerando los
problemas desde dos puntos de vista: ¿que
hace? y ¿cómo lo hace?
PROGRAMACION ESTRUCTURADA
FUNDAMENTOS DE ALGORITMOS
 Estructuras básicas de control
 En un programa estructurado, el flujo lógico se
gobierna por las estructuras de control básicas:
– Secuenciales
– Selectivas o de selección
– Repetitivas
 Teorema de la Programación Estructurada:
 Un programa propio puede ser escrito utilizando
sólo los tres tipos de estructuras de control
antes mencionadas
PROGRAMACION ESTRUCTURADA
 ESTRUCTURA SECUENCIAL
 Es la estructura en donde una acción (instrucción) sigue
a otra de manera secuencial.
 Las tareas se dan de tal forma que la salida de una es la
entrada de la que sigue y así en lo sucesivo hasta
cumplir con todo el proceso.
PROGRAMACION ESTRUCTURADA
 ESTRUCTURA DE DECISIÓN
 Decisión: Elegir una alternativa o camino en el flujo del
algoritmo cuando se cumpla o no una determinada
condición.
 El resultado de la condición se evalúa como falso o
verdadero y se obtiene al comparar dos expresiones
mediante operadores relacionales. De ser necesario
realizar más de una comparación al mismo tiempo se
asocian con operadores lógicos
Guía de referencia rápida de lenguaje
C
 Estructuras de control
PROGRAMACION ESTRUCTURADA
Estructuras de control
Decisiones (cont.)
En algunas ocasiones para realizar
las comparaciones también se
hace uso de una variable
booleana o bandera (flag). Una
bandera es una variable que sólo
puede tener dos valores: falso o
verdadero
PROGRAMACION ESTRUCTURADA
 Estructuras de control
 Ciclo, loop, lazo o bucle: Repetir un conjunto de
instrucciones varias veces con base en que se cumpla o no
una determinada condición.
 A cada ejecución del conjunto de instrucciones en un ciclo se
le llama iteración
PROGRAMACION ESTRUCTURADA
Tipos de ciclos:
– Mientras (while): Se lleva a cabo mientras se cumpla una
condición. Primero evalúa la condición y luego ejecuta el conjunto
de instrucciones. De no cumplirse la condición desde el inicio, no
hace nada y sigue con el flujo normal del algoritmo
– Hacer mientras (do while): Realiza un conjunto de instrucciones
y continua mientras se cumpla una condición. A diferencia del
anterior, este ciclo se ejecuta por lo menos una vez
– Desde hasta (for): Se utiliza cuando se conoce el número de
veces que se va a repetir un conjunto de instrucciones. Requiere
de un valor inicial, un valor final y un contador
PROGRAMACION ESTRUCTURADA
 Contador: variable que almacena el número
de veces que se ha repetido un conjunto de
instrucciones en un ciclo; en otras palabras,
indica el número de veces que se ha
ejecutado el ciclo
 En un ciclo, también hay otro tipo de que se
hacer usa frecuentemente
 Acumulador: aquella variable que almacena
el resultado de una operación anterior y se
utiliza para obtener el siguiente resultado
PROGRAMACION ESTRUCTURADA
Decisiones anidadas
Cuando se tiene una serie de
estructuras de control de la forma
PROGRAMACION ESTRUCTURADA
 si condición1 entonces
– si condición2 entonces
…
si condiciónN entonces
sino
fin_si
– sino
– fin_si
 sino
 fin_si
PROGRAMACION ESTRUCTURADA
Decisión múltiple o alternativa
selectiva múltiple (según_sea, caso
de/case)
Cuando una variable puede tomar
varios valores, generalmente de tipo
entero o caracter, se puede hacer uso
de la decisión anidada para evaluar
los distintos casos, sin embargo, se
puede simplificar al poner una
estructura del tipo
PROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADA
 Arreglos
 Un arreglo es un conjunto ordenado de variables del
mismo tipo que se encuentran reunidas bajo un mismo
nombre
 La forma de declarar un arreglo en términos de
algoritmos es
– var arrNombre(7): arreglo de tipo
– var arrNombre(1..7):tipo
 La forma de acceder a cada elemento del arreglo es
por medio de un índice, p. ej.
 var arrentero(1..7):entero
 arrentero(4)  18
10 0 7 14 4 2 -10
0 1 2 3 4 5 6
Funciones comunes a todos los
lenguajes de programación
Matemática Algorítmica Matemática Algorítmica
abs(x) sinh(x)
sqrt(x) cosh(x)
exp(x) tanh(x)
log(x) asinh(x)
log10(x) acosh(s)
sin(x) atanh(x)
cos(x)
tan(x)
asin(x)
acos(s)
x
x
ex
ln x( )
log10 x( )
sen x( )
cos x( )
tan x( )
sen−1
x( )
cos−1
x( )
tan−1
x( )
senh x( )
cosh x( )
tanh x( )
senh−1
x( )
cosh−1
x( )
tanh−1
x( )
Cadenas y sus operaciones
 Representación
 Dependiendo del lenguaje las cadenas se
pueden representar entre comillas simples o
dobles
 Por ejemplo:
‘cadena con comillas simples’
“cadena con comillas dobles”
Cadenas y sus operaciones
 Declaración y asignación de cadenas
 En general, las cadenas son un tipo de
variable, sin embargo, depende del lenguaje
de programación la forma en que se
declaren y se asignen
 En lenguaje algorítmico simplemente
podemos declararlas así:
var nombre_cadena: cadena
var nombre_cadena: string
Cadenas y sus operaciones
 Al declararlas de esta forma podemos hacer
uso de varias funciones y operaciones que
permiten manipularlas y que son comunes
en los lenguajes de programación.
 La forma en como se asigna una cadena en
lenguaje algorítmico puede ser de la
siguiente manera:
var micadena: cadena
micadena <- “hola qué tal”
Cadenas y sus operaciones
 En lenguaje algorítmico las funciones que
manipulan cadenas llevan un símbolo de “$”
al final de su nombre.
 Longitud de una cadena: Devuelve el
número de caracteres que contiene la
cadena
var len:entero
len <- length$ micadena
{len=12}
Cadenas y sus operaciones
 Leer y mostrar cadenas: Para únicamente
leer o mostrar cadenas se hace uso de las
funciones read$ y print$, respectivamente.
Por ejemplo:
var micadena: cadena
micadena <- “hola qué tal”
print$ micadena
print$ “ahora introduce una nueva cadena”
read$ micadena
print$ “La nueva cadena es: “, micadena
Cadenas y sus operaciones
 Concatenación de cadenas
 La concatenación es una operación especial
que consiste en la yuxtaposición de 2 o más
cadenas. En lenguaje algorítmico la
podemos representar como:
var cadena1, cadena2, cadena3: cadena
cadena1 <- “hola qué”
cadena2 <- “ tal”
cadena3 <- cadena1 + cadena2
print$ cadena3
{Muestra en pantalla hola qué tal}
Cadenas y sus operaciones
 Observe que la concatenación no es
conmutativa
cadena3 <- cadena2 + cadena1
print$ cadena3
{Muestra en pantalla talhola que}
Cadenas y sus operaciones
 Comparación de cadenas y ordenamiento
 Se pueden comparar cadenas
lexicográficamente y determinar si son
iguales o no lo son,
si cadena2 = cadena1
print$ “Las cadenas son iguales”
sino
print$ “Las cadenas no son iguales.”
Cadenas y sus operaciones
 o si una de ellas se encuentra en orden
alfabético primero que otra
si cadena2 > cadena1
print$ cadena2, “va después de ”
print$ cadena1
sino
print$ cadena1, “va después de ”
print$ cadena2
{podría usarse < pero habría que cambiar
el orden de las sentencias}
Cadenas y sus operaciones
 Obtención de una subcadena
 Otra de las operaciones más comunes con
cadenas es la obtención de una subcadena
a partir de un caracter, por ejemplo:
var cadena1, cadena2: cadena
cadena1 <- “hola qué tal”
cadena2 <- substr$ cadena1, ‘q’
print$ cadena2
{Muestra en pantalla la subcadena qué
tal}
Cadenas y sus operaciones
 Del ejemplo anterior se obtuvo una subcadena que
empieza con el caracter indicado, sin embargo, si no
existiera dicho caracter la función podría devolver el
valor NULL (nil, null)
 NULL es un valor especial que, en este caso, indica
que la cadena está vacía o que no existe la cadena
solicitada y se debería de tratar como error
cadena2 <- substr$ cadena1, ‘z’
{Con el valor anterior de cadena 1,
cadena2 vale NULL porque no existe
z}
 Pueden existir también cadenas vacías y su
longitud es de 0.
 Asignar una cadena vacía a una variable de
tipo cadena podría servir para limpiar el
contenido de esa variable.
 No todos los lenguajes permiten cadenas
vacías
Cadenas y sus operaciones
 Es posible obtener una subcadena a partir de que se
le indique las posiciones inicial y final o solamente la
posición inicial
 Podría regresar NULL si las posiciones de la cadena
exceden la longitud de la misma
Cadenas y sus operaciones
cadena2 <- substr$ cadena1,3,6
{cadena2 = “la q”}
cadena2 <- substr$ cadena1,3
{cadena2 = “la qué tal”}
Cadenas y sus operaciones
 Búsqueda de subcadenas
 Una operación frecuente es tratar de localizar si una
cadena forma parte de una cadena más grande o
buscar la posición en que aparece determinado
caracter o secuencia de caracteres de texto
var cadena1: cadena
var posicion:entero
cadena1 <- “hola qué tal”
posicion <- instr$ cadena1, “la”
print posicion
{Muestra en pantalla 2}
Cadenas y sus operaciones
 La función instr$ devuelve el índice de la
posición donde se encuentra el primer
elemento de la subcadena deseada
 Si la subcadena no existe en la cadena
devuelve 0.
Cadenas y sus operaciones
 Inserción de una cadena dentro de otra.
Se inserta una cadena dentro de otra en la posición
indicada. Si la posición excede a la longitud de la
cadena devuelve NULL
var cadena1, cadena2, cadena3: cadena
cadena1 <- “hola qué tal”
cadena2 <- “ABC”
cadena3 <- insert$ cadena1, cadena2, 4
print$ cadena3
{Muestra en pantalla la cadena
holaABC qué tal}
Cadenas y sus operaciones
 Borrar una subcadena de una cadena.
Para eliminar una subcadena que comienza
en la posición p y tiene una longitud l.
var cadena1, cadena2, cadena3: cadena
cadena1 <- “hola qué tal”
cadena2 <- remove$ cadena1, 3, 4
print$ cadena2
{Muestra en pantalla la cadena
houé tal}
{p = 3, l = 4}
Cadenas y sus operaciones
 Sustitución de una subcadena por otra.
Para reemplazar una subcadena de una
cadena por otra subcadena se tiene:
var cadena1, cadena2, cadena3: cadena
cadena1 <- “hola qué tal”
cadena2 <- “ola”
cadena3 <- replace$ cadena1, cadena2, “ABC”
print$ cadena3
{Muestra en pantalla la cadena
hABC qué tal}
Cadenas y sus operaciones
 Obtención de un caracter de una cadena
 La función chrstr$ obtiene un caracter de la posición
indicada. Si la posición es mayor que la longitud de
la cadena se devolvería NULL
var cadena1: cadena
var car: caracter
cadena1 <- “hola qué tal”
car <- chrstr$ cadena1, 4
print car
{Muestra en pantalla el caracter ‘a’}
Cadenas y sus operaciones
 Sustitución de un caracter en una cadena
var cadena1: cadena
var car: caracter
cadena1 <- “hola qué tal”
read car {Suponiendo que se leyó ‘w’}
cadena1 <- strchr$ cadena1, 4, car
print$ cadena1
{Muestra en pantalla la cadena holw
qué tal}
Cadenas y sus operaciones
 La función strchr$ reemplaza el caracter de la
cadena en la posición indicada por un nuevo
caracter
 Si se excede de la longitud de la cadena devolvería
el valor NULL.
Cadenas y sus operaciones
 Inserción de un caracter en una cadena. Para
añadir un caracter a una cadena en una posición
dada tenemos.
var cadena1: cadena
var car: caracter
cadena1 <- “hola qué tal”
read car {Suponiendo que se leyó ‘w’}
cadena1 <- istrchr$ cadena1, 4, car
print$ cadena1
{Muestra en pantalla la cadena holwa
qué tal}
 Conversión de cadenas a números
Cadenas y sus operaciones
var cadena1: cadena
var num: entero
cadena1 <- “1250”
num <- strtonum$ cadena1
print num
{Muestra en pantalla el número
convertido}
 Conversión de números a cadenas
Cadenas y sus operaciones
var cadena1: cadena
var num: entero
num <- 1250
cadena1 <- numtostr$ num
print$ cadena1
{Muestra en pantalla la cadena
convertida}

Más contenido relacionado

La actualidad más candente

Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Facultad de Ciencias y Sistemas
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladoresJoOsee Kette
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpuIsaí Beto Matz Mijes
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistemaIsrael Rey
 
Diagrama de actividades uml
Diagrama de actividades umlDiagrama de actividades uml
Diagrama de actividades umlcamiloan40
 
EJEMPLO DE ALGORITMOS ESTRUCTURADOS
EJEMPLO DE ALGORITMOS ESTRUCTURADOS EJEMPLO DE ALGORITMOS ESTRUCTURADOS
EJEMPLO DE ALGORITMOS ESTRUCTURADOS Edwin Vega Orozco
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionJorge Daza Gómez
 
Proceso de análisis
Proceso de análisisProceso de análisis
Proceso de análisisJesus Peralta
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaOmar B.
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Humano Terricola
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Estructura de datos y algoritmos
Estructura de datos y algoritmos Estructura de datos y algoritmos
Estructura de datos y algoritmos Javierciba19
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriosAnel Sosa
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de ProgramaciónKudos S.A.S
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Magyll
 
Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Ariel Tonatiuh Espindola
 

La actualidad más candente (20)

Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Tipos De Datos
Tipos De DatosTipos De Datos
Tipos De Datos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores1.3 lenguajes de simulacion y simuladores
1.3 lenguajes de simulacion y simuladores
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 
Diapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacionDiapositivas fundamentos-de-programacion
Diapositivas fundamentos-de-programacion
 
Diagrama de actividades uml
Diagrama de actividades umlDiagrama de actividades uml
Diagrama de actividades uml
 
EJEMPLO DE ALGORITMOS ESTRUCTURADOS
EJEMPLO DE ALGORITMOS ESTRUCTURADOS EJEMPLO DE ALGORITMOS ESTRUCTURADOS
EJEMPLO DE ALGORITMOS ESTRUCTURADOS
 
Unidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacionUnidad 1 verificacion y-validacion
Unidad 1 verificacion y-validacion
 
Proceso de análisis
Proceso de análisisProceso de análisis
Proceso de análisis
 
Desarrollo de lógica algorítmica
Desarrollo de lógica algorítmicaDesarrollo de lógica algorítmica
Desarrollo de lógica algorítmica
 
Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1Portafolio Lenguajes y Autómatas Unidad 1
Portafolio Lenguajes y Autómatas Unidad 1
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Estructura de datos y algoritmos
Estructura de datos y algoritmos Estructura de datos y algoritmos
Estructura de datos y algoritmos
 
simulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatoriossimulacion numeros pseudoaleatorios
simulacion numeros pseudoaleatorios
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado
 
Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)Normalización de Bases de Datos (Hasta Boyce-Codd)
Normalización de Bases de Datos (Hasta Boyce-Codd)
 

Destacado

Conceptos basicos de la programacion
Conceptos basicos de la programacionConceptos basicos de la programacion
Conceptos basicos de la programacionyamy matin
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionJose Marroquin
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de ProgramacionPablo Torres
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.guestdf1874
 
Fundamentos de la programacion (Luis Joyanes) 3era Edicion
Fundamentos de la programacion (Luis Joyanes) 3era EdicionFundamentos de la programacion (Luis Joyanes) 3era Edicion
Fundamentos de la programacion (Luis Joyanes) 3era EdicionDeveloper Software
 
Operaciones aritmeticas notacion cientifica
Operaciones aritmeticas notacion cientificaOperaciones aritmeticas notacion cientifica
Operaciones aritmeticas notacion cientificaNildabel Acosta
 
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de Educación
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de EducaciónRVM N° 052 2016-MINEDU Reglamento del Auxiliar de Educación
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de EducaciónJulio Carlos Ochoa Mitacc
 
Potencias y notación científica
Potencias y notación científica Potencias y notación científica
Potencias y notación científica Gran Pachacutec
 
Análisis numérico richard burden 7ma edición
Análisis numérico richard burden 7ma ediciónAnálisis numérico richard burden 7ma edición
Análisis numérico richard burden 7ma ediciónKyllie Rajim
 
Métodos espectroscópicos de análisis
Métodos espectroscópicos de análisisMétodos espectroscópicos de análisis
Métodos espectroscópicos de análisissamantha
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoJosé Antonio Sandoval Acosta
 
Evaluación del-desempeño-docente-2017
Evaluación del-desempeño-docente-2017 Evaluación del-desempeño-docente-2017
Evaluación del-desempeño-docente-2017 betsy villanueva laguna
 
METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraAdriana Oleas
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos ProgramacionMichele André
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Destacado (16)

Conceptos basicos de la programacion
Conceptos basicos de la programacionConceptos basicos de la programacion
Conceptos basicos de la programacion
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.
 
Fundamentos de la programacion (Luis Joyanes) 3era Edicion
Fundamentos de la programacion (Luis Joyanes) 3era EdicionFundamentos de la programacion (Luis Joyanes) 3era Edicion
Fundamentos de la programacion (Luis Joyanes) 3era Edicion
 
Operaciones aritmeticas notacion cientifica
Operaciones aritmeticas notacion cientificaOperaciones aritmeticas notacion cientifica
Operaciones aritmeticas notacion cientifica
 
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de Educación
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de EducaciónRVM N° 052 2016-MINEDU Reglamento del Auxiliar de Educación
RVM N° 052 2016-MINEDU Reglamento del Auxiliar de Educación
 
Potencias y notación científica
Potencias y notación científica Potencias y notación científica
Potencias y notación científica
 
Análisis numérico richard burden 7ma edición
Análisis numérico richard burden 7ma ediciónAnálisis numérico richard burden 7ma edición
Análisis numérico richard burden 7ma edición
 
Métodos espectroscópicos de análisis
Métodos espectroscópicos de análisisMétodos espectroscópicos de análisis
Métodos espectroscópicos de análisis
 
Fundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujoFundamentos de Programacion - Unidad 4 control de flujo
Fundamentos de Programacion - Unidad 4 control de flujo
 
Evaluación del-desempeño-docente-2017
Evaluación del-desempeño-docente-2017 Evaluación del-desempeño-docente-2017
Evaluación del-desempeño-docente-2017
 
METODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -ChapraMETODOS NUMERICOS para ingenieria -Chapra
METODOS NUMERICOS para ingenieria -Chapra
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos Programacion
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a Fundamentos programación

Fundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptFundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptCarlosLopez1486
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo iiMauro Rangel
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacionnmqy28
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionBoris Salleg
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoClariza
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
Conceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaConceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaIEO Santo Tomás
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Orangel4
 
algoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionalgoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionMIKE_INK_RM
 
Presentacion algoritmo
Presentacion algoritmoPresentacion algoritmo
Presentacion algoritmoAnaConcepcion7
 

Similar a Fundamentos programación (20)

Fundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.pptFundamentos-de-Algoritmos.ppt
Fundamentos-de-Algoritmos.ppt
 
Algorimo1
Algorimo1Algorimo1
Algorimo1
 
Analisis de algoritmo ii
Analisis de algoritmo iiAnalisis de algoritmo ii
Analisis de algoritmo ii
 
Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacion
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Unidad 2 Principios de programación
Unidad 2 Principios de programaciónUnidad 2 Principios de programación
Unidad 2 Principios de programación
 
Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 
algoritmo
algoritmoalgoritmo
algoritmo
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
algortimos
algortimosalgortimos
algortimos
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
Conceptos básicos sobre algortimia
Conceptos básicos sobre algortimiaConceptos básicos sobre algortimia
Conceptos básicos sobre algortimia
 
Algoritmos 02
Algoritmos 02Algoritmos 02
Algoritmos 02
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introduccion.pptx
Introduccion.pptxIntroduccion.pptx
Introduccion.pptx
 
algoritmos y fundamentos de programacion
algoritmos y fundamentos de programacionalgoritmos y fundamentos de programacion
algoritmos y fundamentos de programacion
 
Presentacion algoritmo
Presentacion algoritmoPresentacion algoritmo
Presentacion algoritmo
 

Fundamentos programación

  • 1. UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Fundamentos de Programación
  • 2. FUNDAMENTOS DE ALGORITMOS  Computabilidad: Término matemático para nombrar a los estudios sobre teoría de la computación. Consiste en encontrar la representación adecuada para la descripción de un problema o un fenómeno.  Conocimiento transmisible: se da si se cierra el ciclo Descripción Representación
  • 3. FUNDAMENTOS DE ALGORITMOS  Modelo: Especificación, generalmente en términos de un lenguaje matemático, de los pasos necesarios para reproducir, aquí y ahora, un subconjunto determinado de la realidad descrito previamente  Pregunta:  ¿Todo aquello que es descriptible es representable?  ¿Habrá una representación que simule completamente lo descrito?  Cuanto más adecuada sea la descripción del proceso, tanto mejor será el resultado que emula lo real
  • 4. FUNDAMENTOS DE ALGORITMOS  Supongamos que se crea una máquina para producir descripciones en términos de cadenas de símbolos.  Dada una descripción cualquiera, la analiza durante un tiempo finito y después emite su dictámen (si o no) con respecto al problema  Pregunta : ¿existirá una máquina así? Descripción Procedimiento De decisión SI NO HAY SOLUCIÓN
  • 5. FUNDAMENTOS DE ALGORITMOS  Máquina de Turing: Es un modelo matemático para especificar formalmente los pasos primitivos necesarios para representar una descripción en términos totalmente explícitos y claros, sin hacer la menor referencia a conceptos u operaciones ambiguos o sobreentendidos.  Elementos: – Una cinta de longitud infinita, dividida en celdas (cada celda puede contener un símbolo – Un diccionario de símbolos predefinido (De aquí se toman los símbolos para las celdas) – Un control finito, que posee un cojunto de estados y que tiene la capacidad de examinar algún símbolo de alguna celda y tomar una decisión (La decisión depende del símbolo observado y del estado en el que se encuentre en ese momento)
  • 6. FUNDAMENTOS DE ALGORITMOS  Funcionamiento: Mediante un conjunto de funciones matemáticas simples se indica el comportamiento completo del proceso que está siendo representado, mostrando detalladamente los estados por los que atraviesa para lograrlo. Se parte de un estado inicial y se recorre un conjunto de estados intermedios hasta llegar al estado final, que marca entonces el final de la computación S10 S0 S7 S14 S4 S2 … CONTROL FINITO CONTROL FINITO
  • 7. FUNDAMENTOS DE ALGORITMOS  Teoría de la computabilidad Encontrar formas de representar descripciones de procesos, de manera tal que siempre se pueda decir que la solución de un problema existe o no  Un problema se dice que es Computable si existe una máquina de decisión para él  Pregunta: ¿Todos los procesos son computables?  Un problema se dice que es No Computable si la máquina de decisión para él llega a un estado en donde no es capaz de decir que si o que no
  • 8. FUNDAMENTOS DE ALGORITMOS 1. Definición o análisis del problema: Descripción específica y comprensible del problema a resolver 2. Diseño del algoritmo: Planteamiento de los pasos a seguir para resolver el problema 3. Transformación del algoritmo en un programa independientemente del lenguaje de programación. 4. Ejecución y validación del programa 5. Mejoras y correcciones al programa
  • 9. FUNDAMENTOS DE ALGORITMOS  Algoritmo: Conjunto ordenado y finito de pasos u operaciones que permite hallar la solución de un problema. Es un método formal y sistemático de representar la descripción de un proceso.  CARACTERÍSTICAS: – Definido: debe indicar el orden de la realización de cada paso y no debe tener ambigüedad – Preciso: Si se sigue dos veces o más se obtendrá e el mismo resultado cada vez – Finito: Debe terminar en algún momento. Tiene un número determinado de pasos
  • 10. FUNDAMENTOS DE ALGORITMOS – Correcto: Sin errores – Debe tener al menos una salida – Su solución debe ser concreta – Debe ser sencillo y legible – Eficiente y efectivo – Se ha de desarrollar en el menor tiempo posible  Un algoritmo debe describir tres partes: – Entrada(s) : elementos o condiciones iniciales necesarios para resolver el problema. – Proceso : elaboración del procedimiento. – Salida(s): Resultados que se desean obtener
  • 11. FUNDAMENTOS DE ALGORITMOS  Pseudocódigo: Representación descriptiva de las operaciones de un algoritmo. Representa una secuencia lógica de actividades, que llevarán en conjunto a la solución de un problema. Los elementos que debe llevar un algoritmo son – Cabecera del algoritmo: Existen pasos o procedimientos que se realizan para comenzar un programa. Siempre que se haga debe ponerse un encabezado de programa, en donde debe expresarse el identificador o nombre correspondiente con la palabra reservada que señale el lenguaje, generalmente ésta suele ser program que en algoritmia significa algoritmo – Declaración de Variables: En este punto se describen todas las variables que son usadas en el algoritmo, haciendo una lista de sus nombres y especificando a qué tipo corresponde cada uno.
  • 12. FUNDAMENTOS DE ALGORITMOS – Declaración de Constantes: En este punto se declararán todas las constantes de carácter estándar; es decir, que tengan nombre y un valor ya conocido o valores que ya no pueden variar en el transcurso del algoritmo – Cuerpo del algoritmo: Una vez añadidas la cabecera y la declaración de variables y constantes se procede a realizar los pasos del algoritmo  A continuación se muestra un ejemplo:
  • 13. FUNDAMENTOS DE ALGORITMOS Algoritmo Área_Círculo {Cálculo del área de un circulo pidiendo el radio al usuario} var r, A: real cte: π:real Inicio Mostrar “Dame el radio” Leer r A <- π*r^2 Mostrar “El área es:”, A Fin  Cabecera – Nombre del algoritmo – {Comentario con descripción del problema}  Declaración de variables y constantes  Cuerpo del algoritmo
  • 14. FUNDAMENTOS DE ALGORITMOS  Diagrama de flujo: Es la representación gráfica de las operaciones de un algoritmo. Contiene símbolos gráficos que se encuentran estandarizados. Los símbolos más comúnes son:
  • 17. InicioInicio var r, A: real cte: π:real var r, A: real cte: π:real “Dame el radio:” “Dame el radio:” rr A <- π*r^2A <- π*r^2 AA AA “El área es ”, A, “u^2” “El área es ”, A, “u^2” FinFin
  • 18. FUNDAMENTOS DE ALGORITMOS  Instrucciones que se le dan a la Computadora  Un algoritmo se compone de muchos pasos, todos diferentes, los que son interpretados como instrucciones (lenguaje de bajo nivel), sentencias o proposiciones (lenguaje de alto nivel). Entonces, en un programa, la secuencia de instrucciones especifica las operaciones que la computadora debe realizar.
  • 19. FUNDAMENTOS DE ALGORITMOS  Las instrucciones básicas y comunes pueden dividirse en cuatro grupos: – Instrucciones de Entrada /Salida: Transferencia de datos e información entre dispositivos periféricos (teclado, impresora, unidad de disco, etc.) y memoria central. – Instrucciones Aritmético-Lógicas: Tienen la función de ejecutar operaciones aritméticas (suma, resta, multiplicación, división, potenciación), lógicas (operaciones and, or, not, etc.). – Instrucciones Selectivas: Estas permiten la elección de una tarea entre varias alternativas en función de los resultados de diferentes expresiones condicionales. – Instrucciones Repetitivas: Permiten la repetición de secuencias de instrucciones, un número determinado o indeterminado de veces.
  • 20. FUNDAMENTOS DE ALGORITMOS  CONSTANTES Y VARIABLES  Las constantes son datos cuyos valores no cambian, pero existen datos cuyos valores sí varían durante la ejecución del programa, a éstos los llamamos variables. En la mayoría de los lenguajes de programación se permiten diferentes tipos de constantes: enteras, reales, caracteres y boolean o lógicas, quienes representan datos de estos tipos.  Entonces una variable se conoce como un objeto, o partida de datos cuyo valor puede cambiar durante la ejecución del algoritmo o programa.  A las variables y a las constantes se les conoce o identifica por los atributos siguientes: nombre o identificador que lo asigna y tipo que describe el uso de la variable.
  • 21. FUNDAMENTOS DE ALGORITMOS  Identificadores: – Deben empezar con letra, excepto ñ o Ñ, o guión bajo y estar seguidos de cero o más letras, números o guiones bajos – No se permiten símbolos como – $ ¡ ! ¿ ? ° | & - % # @ , . ‘ “ / o espacios en blanco y tabuladores  Palabras reservadas: Existe un conjunto palabras que se utilizan tanto en pseudocódigo como en los lenguajes de programación no pueden ser utilizadas como nombres de identificadores ni de funciones.
  • 22. FUNDAMENTOS DE ALGORITMOS  OPERACION DE ASIGNACION  Se le otorgan valores a una variable. Esta operación de asignación se conoce como instrucción o sentencia de asignación, si es que está en un lenguaje de programación  La operación de asignación es representada por un símbolo u operador:  La acción de asignar puede ser destructiva ya que puede perderse el valor que tuviera la variable antes, siendo reemplazado por el nuevo valor. Las acciones de asignación se clasifican según sea el tipo de expresiones en: Asignación aritméticas, Asignación lógica y Asignación de caracteres
  • 23. FUNDAMENTOS DE ALGORITMOS  EXPRESIONES  Son la combinación de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales, idea que puede ser utilizada en notaciones de matemática tradicional. Los valores de las variables nos permitirán determinar el valor de las expresiones, debido a que éstos están implicados en la ejecución de las operaciones indicadas. Estas constan de operandos y operadores.  Según el tipo de objetos que manipulan, pueden clasificarse en: – Aritméticas -> resultado tipo numérico. – relacionales -> resultado tipo lógico. – lógicas -> resultado tipo lógico. – caracter -> resultado tipo caracter.
  • 24. FUNDAMENTOS DE ALGORITMOS  Expresiones Aritméticas  Estas expresiones son análogas a las fórmulas matemáticas. Las variables y constantes son numéricas (real o entera) y las operaciones son las aritméticas  Operadores aritméticos  Precedencia  - (operador monario)  ^ (exponenciación), (radicación)  *, / (división real),  +, -  div o / (cociente de división entera) , mod o % (residuo de división entera)
  • 25. FUNDAMENTOS DE ALGORITMOS  Expresiones lógicas: Su valor es siempre verdadero o falso.  Se forman combinando constantes lógicas , variables lógicas y otras expresiones lógicas, utilizando los operadores lógicos y los operadores relacionales  Operadores relacionales  Precedencia  >, <  >=, <=  = o == (igualdad)  <> o != (desigualdad)
  • 26. FUNDAMENTOS DE ALGORITMOS  Operadores lógicos  Precedencia  ! o ~ o not (negado)  and o && (conjunción)  or o || (disyunción)  Nota: En C un valor falso se toma como 0 y un valor verdadero se toma como cualquier valor diferente de cero A NOT F V V F A B AND OR F F F F F V F V V F F V V V V V
  • 27. FUNDAMENTOS DE ALGORITMOS  ENTRADA Y SALIDA DE INFORMACION  El ingreso de datos es importante para que la computadora realice los cálculos; esta operación es la entrada, luego, estos datos se convertirán en resultados y serán la salida.  A la entrada se le conoce como operación de Lectura (read). La operación de lectura se realiza a través de los dispositivos de entrada que son (teclado, unidades de disco, CD-Rom, etc.).  La operación de salida se realiza por medio de dispositivos como (monitor, impresora, etc), a esta operación se le conoce como escritura (write).
  • 28. INTRODUCCION A LA PROGRAMACION ESTRUCTURADA  El entendimiento de los algoritmos y luego de los programas, exige que su diseño sea fácil de comprender y su flujo lógico un camino fácil de seguir  La descomposición de programas en módulos más simples de programar se dará a través de la programación modular, y la programación estructurada permitirá la escritura de programas fáciles de leer y modificar.
  • 29. PROGRAMACION MODULAR  Este es uno de los métodos para el diseño más flexible y de mayor performance para la productividad de un programa. En este tipo de programación el programa es dividido en módulos, cada uno de las cuales realiza una tarea específica, codificándose independientemente de otros módulos. Cada uno de éstos son analizados, codificados y puestos a punto por separado.  Los programas contienen un módulo denominado módulo principal, el cual supervisa todo lo que sucede, transfiriendo el control a submódulos (los que son denominados subprogramas), para que puedan realizar sus funciones. Sin embargo, cada submódulo devolverá el control al módulo principal una vez completada su tarea. Si las tareas asignadas a cada submódulo son demasiado complejas, se procederá a una nueva subdivisión en otros módulos más pequeños aún.
  • 30. PROGRAMACION MODULAR  Este procedimiento se realiza hasta que cada uno de los módulos realicen tareas específicas. Estas pueden ser entrada, salida, manipulación de datos, control de otros módulos o alguna combinación de éstos. Puede ser que un módulo derive el control a otro mediante un proceso denominado bifurcación, pero se debe tomar en cuenta que esta derivación deberá ser devuelta a su módulo original.  Los módulos son independientes, de modo que ningún módulo puede tener acceso directo a cualquier otro módulo, excepto el módulo al que llama y sus submódulos correspondientes. Sin embargo, los resultados producidos por un módulo pueden ser utilizados por otro módulo cuando se transfiera a ellos el control.
  • 32. PROGRAMACION ESTRUCTURADA  Cuando hablamos de Programación Estructurada, nos referimos a un conjunto de técnicas que con el transcurrir del tiempo han evolucionado. Gracias a éstas, la productividad de un programa se ve incrementada de forma considerable y se reduce el tiempo de escritura, de depuración y mantenimiento de los programas. Aquí se hace un número limitado de estructuras de control, se reduce la complejidad de los problemas y se minimiza los errores.  Gracias a la programación estructurada, es más fácil la escritura de los programas, también lo es su verificación, su lectura y mantenimiento. Esta programación es un conjunto de técnicas que incorpora: – diseño descendente (top-down) – recursos abstractos – estructuras básicas
  • 33. PROGRAMACION ESTRUCTURADA  Los recursos abstractos son utilizados como un apoyo en la programación estructurada, en vez de los recursos concretos de los que se dispone (lenguaje de programación determinado).  Para separar un programa en términos de recursos abstractos debemos descomponer acciones complejas en acciones más simples, las que son capaces de ejecutar o constituyen instrucciones de computadora disponible.
  • 34. PROGRAMACION ESTRUCTURADA  Diseño descendente (Top-Down)  Este es un proceso en el cual el problema se descompone en una serie de niveles o pasos sucesivos (stepwise). Esta metodología consiste en crear una relación entre las etapas de estructuración, las que son sucesivas, de tal forma que se interrelacionen mediante entradas y salidas de información. Considerando los problemas desde dos puntos de vista: ¿que hace? y ¿cómo lo hace?
  • 36. FUNDAMENTOS DE ALGORITMOS  Estructuras básicas de control  En un programa estructurado, el flujo lógico se gobierna por las estructuras de control básicas: – Secuenciales – Selectivas o de selección – Repetitivas  Teorema de la Programación Estructurada:  Un programa propio puede ser escrito utilizando sólo los tres tipos de estructuras de control antes mencionadas
  • 37. PROGRAMACION ESTRUCTURADA  ESTRUCTURA SECUENCIAL  Es la estructura en donde una acción (instrucción) sigue a otra de manera secuencial.  Las tareas se dan de tal forma que la salida de una es la entrada de la que sigue y así en lo sucesivo hasta cumplir con todo el proceso.
  • 38. PROGRAMACION ESTRUCTURADA  ESTRUCTURA DE DECISIÓN  Decisión: Elegir una alternativa o camino en el flujo del algoritmo cuando se cumpla o no una determinada condición.  El resultado de la condición se evalúa como falso o verdadero y se obtiene al comparar dos expresiones mediante operadores relacionales. De ser necesario realizar más de una comparación al mismo tiempo se asocian con operadores lógicos
  • 39. Guía de referencia rápida de lenguaje C  Estructuras de control
  • 40. PROGRAMACION ESTRUCTURADA Estructuras de control Decisiones (cont.) En algunas ocasiones para realizar las comparaciones también se hace uso de una variable booleana o bandera (flag). Una bandera es una variable que sólo puede tener dos valores: falso o verdadero
  • 41. PROGRAMACION ESTRUCTURADA  Estructuras de control  Ciclo, loop, lazo o bucle: Repetir un conjunto de instrucciones varias veces con base en que se cumpla o no una determinada condición.  A cada ejecución del conjunto de instrucciones en un ciclo se le llama iteración
  • 42. PROGRAMACION ESTRUCTURADA Tipos de ciclos: – Mientras (while): Se lleva a cabo mientras se cumpla una condición. Primero evalúa la condición y luego ejecuta el conjunto de instrucciones. De no cumplirse la condición desde el inicio, no hace nada y sigue con el flujo normal del algoritmo – Hacer mientras (do while): Realiza un conjunto de instrucciones y continua mientras se cumpla una condición. A diferencia del anterior, este ciclo se ejecuta por lo menos una vez – Desde hasta (for): Se utiliza cuando se conoce el número de veces que se va a repetir un conjunto de instrucciones. Requiere de un valor inicial, un valor final y un contador
  • 43. PROGRAMACION ESTRUCTURADA  Contador: variable que almacena el número de veces que se ha repetido un conjunto de instrucciones en un ciclo; en otras palabras, indica el número de veces que se ha ejecutado el ciclo  En un ciclo, también hay otro tipo de que se hacer usa frecuentemente  Acumulador: aquella variable que almacena el resultado de una operación anterior y se utiliza para obtener el siguiente resultado
  • 44. PROGRAMACION ESTRUCTURADA Decisiones anidadas Cuando se tiene una serie de estructuras de control de la forma
  • 45. PROGRAMACION ESTRUCTURADA  si condición1 entonces – si condición2 entonces … si condiciónN entonces sino fin_si – sino – fin_si  sino  fin_si
  • 46. PROGRAMACION ESTRUCTURADA Decisión múltiple o alternativa selectiva múltiple (según_sea, caso de/case) Cuando una variable puede tomar varios valores, generalmente de tipo entero o caracter, se puede hacer uso de la decisión anidada para evaluar los distintos casos, sin embargo, se puede simplificar al poner una estructura del tipo
  • 48. PROGRAMACION ESTRUCTURADA  Arreglos  Un arreglo es un conjunto ordenado de variables del mismo tipo que se encuentran reunidas bajo un mismo nombre  La forma de declarar un arreglo en términos de algoritmos es – var arrNombre(7): arreglo de tipo – var arrNombre(1..7):tipo  La forma de acceder a cada elemento del arreglo es por medio de un índice, p. ej.  var arrentero(1..7):entero  arrentero(4)  18 10 0 7 14 4 2 -10 0 1 2 3 4 5 6
  • 49. Funciones comunes a todos los lenguajes de programación Matemática Algorítmica Matemática Algorítmica abs(x) sinh(x) sqrt(x) cosh(x) exp(x) tanh(x) log(x) asinh(x) log10(x) acosh(s) sin(x) atanh(x) cos(x) tan(x) asin(x) acos(s) x x ex ln x( ) log10 x( ) sen x( ) cos x( ) tan x( ) sen−1 x( ) cos−1 x( ) tan−1 x( ) senh x( ) cosh x( ) tanh x( ) senh−1 x( ) cosh−1 x( ) tanh−1 x( )
  • 50. Cadenas y sus operaciones  Representación  Dependiendo del lenguaje las cadenas se pueden representar entre comillas simples o dobles  Por ejemplo: ‘cadena con comillas simples’ “cadena con comillas dobles”
  • 51. Cadenas y sus operaciones  Declaración y asignación de cadenas  En general, las cadenas son un tipo de variable, sin embargo, depende del lenguaje de programación la forma en que se declaren y se asignen  En lenguaje algorítmico simplemente podemos declararlas así: var nombre_cadena: cadena var nombre_cadena: string
  • 52. Cadenas y sus operaciones  Al declararlas de esta forma podemos hacer uso de varias funciones y operaciones que permiten manipularlas y que son comunes en los lenguajes de programación.  La forma en como se asigna una cadena en lenguaje algorítmico puede ser de la siguiente manera: var micadena: cadena micadena <- “hola qué tal”
  • 53. Cadenas y sus operaciones  En lenguaje algorítmico las funciones que manipulan cadenas llevan un símbolo de “$” al final de su nombre.  Longitud de una cadena: Devuelve el número de caracteres que contiene la cadena var len:entero len <- length$ micadena {len=12}
  • 54. Cadenas y sus operaciones  Leer y mostrar cadenas: Para únicamente leer o mostrar cadenas se hace uso de las funciones read$ y print$, respectivamente. Por ejemplo: var micadena: cadena micadena <- “hola qué tal” print$ micadena print$ “ahora introduce una nueva cadena” read$ micadena print$ “La nueva cadena es: “, micadena
  • 55. Cadenas y sus operaciones  Concatenación de cadenas  La concatenación es una operación especial que consiste en la yuxtaposición de 2 o más cadenas. En lenguaje algorítmico la podemos representar como: var cadena1, cadena2, cadena3: cadena cadena1 <- “hola qué” cadena2 <- “ tal” cadena3 <- cadena1 + cadena2 print$ cadena3 {Muestra en pantalla hola qué tal}
  • 56. Cadenas y sus operaciones  Observe que la concatenación no es conmutativa cadena3 <- cadena2 + cadena1 print$ cadena3 {Muestra en pantalla talhola que}
  • 57. Cadenas y sus operaciones  Comparación de cadenas y ordenamiento  Se pueden comparar cadenas lexicográficamente y determinar si son iguales o no lo son, si cadena2 = cadena1 print$ “Las cadenas son iguales” sino print$ “Las cadenas no son iguales.”
  • 58. Cadenas y sus operaciones  o si una de ellas se encuentra en orden alfabético primero que otra si cadena2 > cadena1 print$ cadena2, “va después de ” print$ cadena1 sino print$ cadena1, “va después de ” print$ cadena2 {podría usarse < pero habría que cambiar el orden de las sentencias}
  • 59. Cadenas y sus operaciones  Obtención de una subcadena  Otra de las operaciones más comunes con cadenas es la obtención de una subcadena a partir de un caracter, por ejemplo: var cadena1, cadena2: cadena cadena1 <- “hola qué tal” cadena2 <- substr$ cadena1, ‘q’ print$ cadena2 {Muestra en pantalla la subcadena qué tal}
  • 60. Cadenas y sus operaciones  Del ejemplo anterior se obtuvo una subcadena que empieza con el caracter indicado, sin embargo, si no existiera dicho caracter la función podría devolver el valor NULL (nil, null)  NULL es un valor especial que, en este caso, indica que la cadena está vacía o que no existe la cadena solicitada y se debería de tratar como error cadena2 <- substr$ cadena1, ‘z’ {Con el valor anterior de cadena 1, cadena2 vale NULL porque no existe z}
  • 61.  Pueden existir también cadenas vacías y su longitud es de 0.  Asignar una cadena vacía a una variable de tipo cadena podría servir para limpiar el contenido de esa variable.  No todos los lenguajes permiten cadenas vacías Cadenas y sus operaciones
  • 62.  Es posible obtener una subcadena a partir de que se le indique las posiciones inicial y final o solamente la posición inicial  Podría regresar NULL si las posiciones de la cadena exceden la longitud de la misma Cadenas y sus operaciones cadena2 <- substr$ cadena1,3,6 {cadena2 = “la q”} cadena2 <- substr$ cadena1,3 {cadena2 = “la qué tal”}
  • 63. Cadenas y sus operaciones  Búsqueda de subcadenas  Una operación frecuente es tratar de localizar si una cadena forma parte de una cadena más grande o buscar la posición en que aparece determinado caracter o secuencia de caracteres de texto var cadena1: cadena var posicion:entero cadena1 <- “hola qué tal” posicion <- instr$ cadena1, “la” print posicion {Muestra en pantalla 2}
  • 64. Cadenas y sus operaciones  La función instr$ devuelve el índice de la posición donde se encuentra el primer elemento de la subcadena deseada  Si la subcadena no existe en la cadena devuelve 0.
  • 65. Cadenas y sus operaciones  Inserción de una cadena dentro de otra. Se inserta una cadena dentro de otra en la posición indicada. Si la posición excede a la longitud de la cadena devuelve NULL var cadena1, cadena2, cadena3: cadena cadena1 <- “hola qué tal” cadena2 <- “ABC” cadena3 <- insert$ cadena1, cadena2, 4 print$ cadena3 {Muestra en pantalla la cadena holaABC qué tal}
  • 66. Cadenas y sus operaciones  Borrar una subcadena de una cadena. Para eliminar una subcadena que comienza en la posición p y tiene una longitud l. var cadena1, cadena2, cadena3: cadena cadena1 <- “hola qué tal” cadena2 <- remove$ cadena1, 3, 4 print$ cadena2 {Muestra en pantalla la cadena houé tal} {p = 3, l = 4}
  • 67. Cadenas y sus operaciones  Sustitución de una subcadena por otra. Para reemplazar una subcadena de una cadena por otra subcadena se tiene: var cadena1, cadena2, cadena3: cadena cadena1 <- “hola qué tal” cadena2 <- “ola” cadena3 <- replace$ cadena1, cadena2, “ABC” print$ cadena3 {Muestra en pantalla la cadena hABC qué tal}
  • 68. Cadenas y sus operaciones  Obtención de un caracter de una cadena  La función chrstr$ obtiene un caracter de la posición indicada. Si la posición es mayor que la longitud de la cadena se devolvería NULL var cadena1: cadena var car: caracter cadena1 <- “hola qué tal” car <- chrstr$ cadena1, 4 print car {Muestra en pantalla el caracter ‘a’}
  • 69. Cadenas y sus operaciones  Sustitución de un caracter en una cadena var cadena1: cadena var car: caracter cadena1 <- “hola qué tal” read car {Suponiendo que se leyó ‘w’} cadena1 <- strchr$ cadena1, 4, car print$ cadena1 {Muestra en pantalla la cadena holw qué tal}
  • 70. Cadenas y sus operaciones  La función strchr$ reemplaza el caracter de la cadena en la posición indicada por un nuevo caracter  Si se excede de la longitud de la cadena devolvería el valor NULL.
  • 71. Cadenas y sus operaciones  Inserción de un caracter en una cadena. Para añadir un caracter a una cadena en una posición dada tenemos. var cadena1: cadena var car: caracter cadena1 <- “hola qué tal” read car {Suponiendo que se leyó ‘w’} cadena1 <- istrchr$ cadena1, 4, car print$ cadena1 {Muestra en pantalla la cadena holwa qué tal}
  • 72.  Conversión de cadenas a números Cadenas y sus operaciones var cadena1: cadena var num: entero cadena1 <- “1250” num <- strtonum$ cadena1 print num {Muestra en pantalla el número convertido}
  • 73.  Conversión de números a cadenas Cadenas y sus operaciones var cadena1: cadena var num: entero num <- 1250 cadena1 <- numtostr$ num print$ cadena1 {Muestra en pantalla la cadena convertida}

Notas del editor

  1. Otros tipos de ciclos simples son: Do Loop-Until, Repeat-Until, For-each que no se tratan en este documento
  2. Otros tipos de ciclos son: Do Loop-Until, Repeat-Until, For-each que no se tratan en este documento
  3. La declaración de arreglos dependerá del lenguaje de programación, ésta es una notación propuesta Los índices de las posiciones del arreglo que se manejan pueden variar dependiendo del lenguaje, por ejemplo, para Pascal y Matlab el índice empieza en 1, mientras que para C el índice empieza en 0.
  4. Existen en todos los lenguajes de programación, sin embargo, su notación puede variar en la primera letra, que puede ser mayúscula o minúscula dependiendo del lenguaje.
  5. Se podría representar una cadena sin comillas, sin embargo, se puede prestar a ambigüedades ya que si las comillas no sería posible distinguir una cadena de una variable.
  6. Los nombres de las funciones y los operadores que manipulan cadenas dependen del lenguaje de programación por lo que deberás familiarizarte con dicho lenguaje antes de utilizarlas.
  7. En diagrama de flujo las funciones read$ y print$ no son necesarias, solamente en pseudocódigo.Ya vimos los símbolos para leer y escribir variables de cualquier tipo mediante diagramas de flujos.
  8. Recuerda que estas operaciones dependen del lenguaje de programación. El operador ‘+’ podría no ser el que se utilice en un lenguaje de programación sino una función.
  9. El uso del operador de igualdad para cadenas depende del lenguaje
  10. El uso de los operadores de comparación depende del lenguaje
  11. El nombre substr es una propuesta, variará dependiendo del lenguaje de programación
  12. instr$ es un nombre propuesto
  13. insert$ es un nombre propuesto.
  14. remove$ es un nombre propuesto
  15. replace$ es un nombre propuesto
  16. chrstr$ es un nombre propuesto, puede variar de acuerdo al lenguaje de programación
  17. strchr$ es un nombre propuesto
  18. istrchr$ es un nombre propuesto.
  19. strtonum$ es un nombre propuesto
  20. numtostr$ es un nombre propuesto