Programación Digital

88

Transcript of Programación Digital

Page 1: Programación Digital
Page 2: Programación Digital

Algoritmos

Visual Basic

Page 3: Programación Digital

Nociones Básicas:Arquitectura de una ComputadoraLas computadoras tienen dos componentes principales

que son el hardware y el software que trabajan en coordinación para lograr sus objetivos.

Hardware: Hard (duro) – ware (componente) representa la parte física de la computadora

Page 4: Programación Digital

Software: Soft (blando) – ware (componente) representa la parte

lógica de la computadora (los programas) estos se encuentran almacenados en los componentes físicos de la computadora, tales como memorias RAM, ROM, discos duros (hard disk) entre otros.

LINUX

Microsoft

Office

Page 5: Programación Digital

Los programas (Software)

Un programa o Software es un conjunto de instrucciones ordenadas para ejecutarse en una computadora en forma rápida y precisa.

El software se divide en dos grupos; software de sistema operativo y software de aplicaciones.

El proceso de escribir un programa se denomina programación y el conjunto de instrucciones que se utilizan para escribir un programa se llama lenguaje de programación.

Page 6: Programación Digital

Algoritmo:Algoritmo es sinónimo de procedimiento

computacional y fundamental para la ciencia de la computación.

Un algoritmo toma un valor (o un conjunto) como entrada y produce un valor (o un conjunto) como salida. Un algoritmo es una secuencia de pasos computacionales que transforma la entrada en una salida

Entrada

Salida

Page 7: Programación Digital

Un algoritmo es una secuencia finita de instrucciones, cada cual con un significado concreto.

Algoritmo es todo proceso, rutina, método que además de ser un conjunto de instrucciones que resuelven un determinado problema, cumple las siguientes condiciones.

Ser finito. La ejecución de un algoritmo acaba en un tiempo finito.

Ser Preciso. Cada instrucción de un algoritmo debe ser precisa, no debe ser ambigua, esta definición es la definibilidad.

Poseer entradas. Las estradas son un conjunto de valores que inician el algoritmo.

Poseer salidas. Puede ser una o mas, las cuales son la transformación de la entrada.

Ser efectivo. Es efectivo cuando todas las operaciones se efectúan de un modo exacto.

Page 8: Programación Digital

Secuencia de Instrucciones

Finitud Definibilida

dEntrada Salida

Efectividad

Algoritmo+ =

Page 9: Programación Digital

Fases en la construcción de algoritmosHay tres fases en la elaboración de un algoritmo:

1. Análisis. En esta se determina cuál es exactamente el problema a resolver. Que datos forman la entrada del algoritmo y cuáles deberán obtenerse como salida.

2. Diseño. Elaboración del algoritmo.3. Prueba. Comprobación del resultado. Se observa si

el algoritmo obtiene la salida esperada para todas las entradas.

Page 10: Programación Digital

Herramientas de un algoritmo

Para expresar la solución de un problema se pueden usar diferentes herramientas de programación tales como:

Pseudocódigo. Diagramas N-S (Nassi Schneiderman). Diagramas de flujo (Flow chart).

Page 11: Programación Digital

Siendo un algoritmo un conjunto de instrucciones es necesario contar con un lenguaje que permita expresarlo.

La presentación de un algoritmo en un lenguaje natural, utilizando el inglés estructurado, se conoce como pseudocódigo; éste, es una forma general de presentar un algoritmo, independientemente de cualquier lenguaje de computadoras.

Aquí se muestra un ejemplo de la construcción de pseudocódigo, diagrama N-S y diagrama de flujo para el Algoritmo de Euclides.

Page 12: Programación Digital

El uso de la palabra algoritmo aparece con el algoritmo de Euclides; éste obtiene el máximo común divisor de dos números x e y:

MCD(x-y, y) si x>yMCD (x,y)=

MCD(x, y-x) en otro caso

MCD(40, 30) = MCD(40-30, 30) = MCD(10, 30)

= MCD(10, 30-10) = MCD(10, 20)= MCD(10, 20-10) = MCD(10, 10)= 10

Page 13: Programación Digital

Cuando realice un pseudocódigo utilice las siguientes convenciones:

1. La sangría es sinónimo de bloque; así while a ≠ n

incrementar a indica que bajo el control del bucle se encuentra la

instrucción incrementar a; es decir el bloque, es de la construcción while.

2. Las variables (i, j, k) son locales al procedimiento. 3. Los arreglos son precedidos por la especificación del

nombre del arreglo seguido por el índice en corchetes; así:

for i = 1 to nleer A[i]

indica que se lee el índice i del arreglo A.

Page 14: Programación Digital

4. Dar un nombre al pseudocódigo para dar la apariencia de una declaración de procedimiento, y cerrar el pseudocódigo con un fin de procedimiento, como una indicación de retorno.

F de X y = b * b - 4 * a * b

End F de X El algoritmo de Euclides visto como un pseudocódigo es como

sigue: Euclides while x ≠ y

if x > y then x = x – y else y = y – X

MCD es x End Euclides

Page 15: Programación Digital

Una carta N-S o de Nassi Schneiderman es la presentación gráfica de un algoritmo y es la carta prototipo de los lenguajes estructurados.Estructura

sPseudocód

igoN-S

Secuencia x=3y

DecisiónIf – then -

elseRepeticiónMientras While

Hacer o Para forRepetir - hasta Repeat - until

repeatuntil

for

while

ifT E

x=3y

Page 16: Programación Digital

El algoritmo se puede expresar así: mientras que x sea diferente a y, realice la prueba de si x es mayor que y restar y de x, en caso contrario restar x de y. Entonces la carta N-S es:

while x ≠ y

if (x>y)the

n else x = x -

y y = y - x

Page 17: Programación Digital

Una herramienta gráfica aparte de N- S es el diagrama de flujos.

El diagrama de flujos es la herramienta mas conocida para el diseño de procedimientos.Significa

doGráfico Significado Gráfico

Inicio y fin

Preparación

Proceso/Secuencia

Flujos

Entrada/salida

Conector

Decisión SubAlgoritmo

Page 18: Programación Digital

Inicio

x, y : entero

Leer x,y

x <> y F

VV Fx > y

x = x - y y = y - x

Imprimir x

Fin

Diagrama de flujo del Algoritmo de Euclides

Page 19: Programación Digital

InstruccionesSon las acciones que debe realizar un algoritmo, para

resolver un problema.Las instrucciones mas comunes son las siguientes: Instrucción de inicio / fin. Instrucción de asignación. Instrucción de lectura. Instrucción de bifurcación.

Instrucción de inicio / fin: Representa el inicio y fin del algoritmo

Diagrama de flujo Pseudocódigo inicio

fin

inicio

fin

Page 20: Programación Digital

Instrucción de asignación: Representa la asignación de un valor a una variable; se puede representar usando una flecha o el símbolo de igualdad, que es el símbolo usado por muchos lenguajes de programación.

Diagrama de flujo Pseudocódigo N 10

N = 10 Instrucción de Lectura: Representa el ingreso de

datos mediante un dispositivo de entrada. Diagrama de flujo Pseudocódigo

Leer N

N 10

N = 10

Leer N

Page 21: Programación Digital

Instrucción de Escritura: Representa la salida de la

información mediante un dispositivo de salida, puede ser representado por el símbolo de entrada / salida, por símbolo de pantalla o impresora.

Diagrama de flujo

PseudocódigoEscribir R

Escribir R

Escribir R

Escribir R

Page 22: Programación Digital

Instrucción de Bifurcación Cambia el flujo del

programa según el resultado de una expresión lógica (condicional).

Diagrama de flujo Pseudocódigo

Si <Exp. Lóg.> entonces

if then

instrucción sino else

instrucción Fin si End

V FExp. Lóg.

Instrucción Instrucción

Page 23: Programación Digital

ComentariosPermiten describir, explicar y sirve como ayuda para

recordar y entender las operaciones que se van a ejecutar.

Los comentarios no son instrucciones, por lo tanto al ser traducido el código fuente a código binario, los lenguajes de programación las ignoran.

Dependiendo el lenguaje de programación los comentarios se escriben usando cierta simbología, en Visual Basic es una comilla simple ( ‘ ) Ejemplo:‘ Suma de los números pares

SumaPares = 0 ‘ Se inicializa la variable SumaPares al valor 0

Page 24: Programación Digital

Palabras ReservadasSon palabras usadas por el lenguaje de programación y

que no deben ser utilizadas como identificadores de variables, funciones entre otros.

Algunas palabras reservadas en Visual Basic (VB)For, If, Loop, Next , Val, Hide, Caption, And,…

IdentificadoresSon los nombres que asignamos a las variables,

constantes, funciones, objetos entre otros y no pueden coincidir con las palabras reservadas porque seria ambiguo y el compilador no lo entendería.

Page 25: Programación Digital

Por lo general los identificadores deben cumplir lo siguiente:

Deben comenzar por una letra. Evite usar ñ y tilde. No deben coincidir con palabras reservadas del

lenguaje de programación que esta utilizando.

Error de compilación VB

‘ Identificador de variable es if‘ y esta es palabra reservada integer if;

Page 26: Programación Digital

VariablesRepresenta un espacio de memoria RAM que guarda un

valor que servirá para algún proceso en particular, dicho valor puede ser modificado en cualquier momento.

Las variables tienen por lo general un identificador (nombre) y asignado el tipo de dato que se esta utilizando, es decir si almacena un número (entero), si es texto o alfanumérico (cadena), si es un valor verdadero o falso (lógico).

Ejemplo : Pseudocódigo VB

‘ Variables ‘ VariablesN : Entero integer N;

Page 27: Programación Digital

Para asignarle un valor usamos el operador de asignación que para algoritmos usaremos la o el = que es mas usado por los lenguajes de programación.

Ejemplo : Pseudocódigo VB

‘ Asignar un valor ‘ Asignar un valorN 10 N = 10; ‘ Cambiar su valor ‘ Cambiar su valorN 50 N = 50;

Page 28: Programación Digital

Tipos de datos simples (primitivos)Al declarar una variable debemos indicar el tipo de dato

que es permitido almacenar en dicha variable .Cada lenguaje de programación trabaja con una

variedad de tipos de datos, por lo general todos usan los llamados tipos de datos primitivos, que son los siguientes:

Entero Real Carácter Lógico

Page 29: Programación Digital

Tipos de datos (en Visual Basic)Visual Basic dispone de varios tipos de datos , aplicables tanto para constantes

como para variables. La siguiente tabla muestra los tipos de datos para VB.

Tipo Descripción Carácter de declaración del tipo

Boolean Binario

Byte Entero corto

Integer Entero (2 bytes) %

Long Entero largo (4 bytes) &

Single Real simple precisión (4 bytes)

!

Double Real doble precisión (8 bytes)

#

Currency Número con punto decimal fijo

@

String Cadena de caracteres $

Date Fecha

Variant Fecha/hora; enteros ,.reales …

Page 30: Programación Digital

Tipos de datos complejos (estructurados)

Son aquellos que están constituidos por tipos de datos simples y definen una estructura de datos, un ejemplo claro es el tipo cadena, que esta compuesta por un conjunto de caracteres (tipos de datos caracter)

Existe una variedad de tipos de datos complejos, pero empezaremos con dos que son cadena y arreglos.

Page 31: Programación Digital

Operadores y Expresiones

Son los que permiten realizar los cálculos entre valores fijos y variables.

Los operadores se clasifican en:

Operadores Aritméticos Operadores Relacionales Operadores Lógicos Operadores de Cadena

Page 32: Programación Digital

Operadores Aritméticos:Son aquellos operadores que permiten realizar las

operaciones aritméticas, de la misma forma como se usa en matemática.Operador Descripción

+ Suma

- Resta

* Multiplicación

/ División

\ División entera

˄ Exponenciación

Mod Módulo (resto de una división)

Page 33: Programación Digital

Operadores Relacionales:Llamados también operadores de comparación y

permiten evaluar si dos valores guardan alguna relación entre si.Operador Descripción

= Igualdad

> Mayor que

>= Mayor o igual que

< Menor que

<= Menor o igual que

<> Diferente a

Page 34: Programación Digital

Operadores de Cadena:Son aquellos operadores que permiten realizar

operaciones con cadenas, por lo general permiten unir cadenas (concatenar)

Expresiones de cadena

Operador Descripción

+ Unir cadenas

& Unir cadenas

“Luis” + “ ” + “Alberto” Luis Alberto

“luisalberto” & “ @” & “hotmail.com”

[email protected]

Page 35: Programación Digital

Operadores Lógicos:Son aquellos operadores que se utilizan en combinación

con los operadores de relación.

Expresiones Lógicas8 > 4 Y 3 = 6 Falso8 > 4 O 3 = 6 verdaderoNO (8 > 4 ) falso

Operador Descripción

Y Y Lógico

O O Lógico

No No Lógico

Page 36: Programación Digital

Control de flujo

Todos los lenguajes de programación implementan estructuras para controlar la ejecución de un programa; estas son:

Estructura secuencial Estructura selectiva simple y doble Estructura selectiva múltiple Estructura repetitiva mientras Estructura repetitiva para

Page 37: Programación Digital

Son aquellos algoritmos que ejecutan instrucciones en forma consecutiva, es decir uno detrás del otro hasta terminar el proceso.

Las secuencias son operaciones que se utilizan para efectuar operaciones, abrir, cerrar un archivo, leer y escribir datos.

. Instrucción 1

Instrucción 2

Instrucción 3

Page 38: Programación Digital

Ejemplo 1: Realice los algoritmos de N-S , diagrama de flujos y pseudocódigo para hallar la suma al ingresar dos números enteros.

Ejemplo 2: Realice los algoritmos de N-S , diagrama de flujos y pseudocódigo para hallar el cociente y el resto de dos números enteros.

Page 39: Programación Digital

Inicio

n1, n2, s: entero

Leer n1, n2

s = n1+ n2

Imprimir s

Fin

Diagrama de flujo para la suma 2 números enteros.

Page 40: Programación Digital

Inicio

n1, n2, c, r: entero

Leer n1, n2

c = n1\n2r = n1 Mod n2

Imprimir c, r

Fin

Diagrama de flujo para hallar el cociente y el resto de dos números enteros.

Page 41: Programación Digital

Estructura Selectiva Simple

Evalúa una expresión lógica (condición), si es verdadero ejecuta una determinada instrucción o instrucciones.

Exp. Lóg, F

V

Instrucción 1

Instrcción n

Page 42: Programación Digital

Ejemplo: Dado dos números enteros diferentes, devolver el número Mayor.

n1>n2 F

Vm = n1

n1<n2 F

Vm = n2

Inicio

n1, n2, m : Entero

Leer n1, n2

Fin

Escribir m

Page 43: Programación Digital

Estructura Selectiva Doble

Evalúa una expresión lógica (condición), si es verdadero ejecuta una o varias instrucciones y si es falso ejecuta otro grupo de instrucciones

Exp. Lóg, FV

Instrucción 1

Instrucción n

Instrucción 1

Instrucción n

Page 44: Programación Digital

Ejemplo 4: Realice, diagrama de flujos para determinar si un número es par o impar.

Inicio

r, n : enteroc : cadena

Leer n

V F r <> 0

Imprimir c

Fin

r = n Mod 2

c = “Impar” c = “Par”

Page 45: Programación Digital

Estructuras AnidadasSon aquellas estructuras que contienen una o varias

estructuras, es decir esta permitido colocar dentro de una estructura otra estructura.

Exp. Lóg, FV

Instrucción 1Instrucción n

Instrucción 1Instrucción n

Exp. Lóg,

F

V

Instrucción 1Instrucción n

Exp. Lóg, FV

Page 46: Programación Digital

Ejemplo: Dado tres números enteros, devolver el número mayor

n2>n3FV

n1>n3FV

n1>n2F V

Inicio

n1, n2, n3, m : Entero

Leer n1, n2, n3

Imprimir m

Fin

m=n3m=n2 m=n3m=n1

Page 47: Programación Digital

Estructura Selectiva MúltiplePermite comparar un valor con varias alternativas, si la

comparación tiene éxito se ejecuta el grupo de instrucciones que contenga la alternativa seleccionada y luego sale de la estructura.

Exp. Lóg,

FValor1

Instrucciones

V

FValor2

Instrucciones

V

FValor3

Instrucciones

V

Page 48: Programación Digital

Ejemplo: Al ingresar un número del 1 al 4 devolver la estación del año de acuerdo a la siguiente tabla

Número Estación

1 verano2 Otoño3 Inviern

o4 Primav

era

n

Inicio

Leer n

n : enteroe : cadena

e=“VERANO”

e=“OTOÑO”

e=“INVIERNO”

e=“PRIMAVERA”

F1

V

F2

V

F3

V

F4

V

Imprimir e

Fin

Page 49: Programación Digital

Estructura Selectiva MúltipleMuchas pueden implementar en forma opcional una

alternativa por defecto, es decir al comparar con todas las alternativas propuestas y no se tiene éxito con ninguna, entonces se ejecuta la alternativa por defecto.

Exp. Lóg,

FValor1

Instrucciones

V

FValor2

Instrucciones

V

FSi No

Instrucciones

V

Page 50: Programación Digital

Estructura Selectiva Múltiple usando rangosUna estructura selectiva múltiple permite comparar un valor

(igualdad), pero cuando se requiere manejar rangos (>= Y <=) se puede usar una estructura selectiva múltiple similar a la estructura selectiva doble anidada.

F

Instrucciones

VExp. Lóg,

F

Instrucciones

F Instrucciones

VExp. Lóg,

VExp. Lóg,

Instrucciones

Page 51: Programación Digital

IntroducciónMuchas veces se requiere repetir una o varias instrucciones

para llevar a cabo una tarea, estas estructuras que permiten realizar este proceso son también llamados bucles ,iterativas, lazos , etc.

Dependiendo el lenguaje de programación estas incorporan dos o más estructuras repetitivas, dentro de las cuales las infaltables son mientras (while) y para (for), con las cuales se puede resolver todo problema que involucre procesos repetitivos.

Cuando se trabaja con estas estructuras se utiliza términos como contadores, acumuladores, forzar la salida del bucle y continuar al inicio del bucle.

bucle

Page 52: Programación Digital

ContadorSon variables enteras que

se incrementan (+) o decrementan (-) con un valor constante, por ejemplo una variable c cuyo valor se incrementa de 1 en 1, se conoce como variable contador.

Ejemplos Pseudocódigoc = c + 1i = i + 2j = j - 1

AcumuladorSon variables de

cualquier tipo que almacenan valores variables, por ejemplo la variable c cuyo valor se incrementa por el valor que va tomando otra variable llamada x.

Ejemplos

Pseudocódigoc = c + xi = i + cj = j - i

Page 53: Programación Digital

Salir del bucleEs una instrucción que

permite forzar la salida del bucle, para eso los lenguajes de programación incorporan una instrucción que permita realizar dicha operación.

Pseudocódigosalir

Continuar al inicio del bucle

Es una instrucción que permite saltar al inicio del bucle para volver a ejecutarse, para esto los lenguajes de programación incorporan una instrucción que permita realizar dicha operación.

Pseudocódigocontinuar

Page 54: Programación Digital

Estructura repetitiva MientrasPermite repetir una o mas instrucciones hasta que la

condición (condición lógica) sea verdadera, cuando la condición es falsa sale del bucle.

Pseudocódigo Mientras Expr.

Lóg.Instrucción 1Instrucción n

Fin Mientras

Exp. Lóg, F

V

Instrucción 1Instrcción n

Page 55: Programación Digital

Estructura repetitiva Mientras anidadaDentro de una estructura repetitiva es posible colocar una o

más estructuras repetitivas así como otras estructuras.

Pseudocódigo Mientras Expr. Lóg. Mientras Expr. Lóg. Instrucción 1 Instrucción n Fin Mientras Fin Mientras

Exp. Lóg. F

V

Instrucción 1Instrcción n

Exp. Lóg. F

V

Page 56: Programación Digital

Introducción

Cada vez que se desee repetir un proceso una cantidad de veces, deberá usar la estructura repetitiva para (for) que facilitará realizar en forma simple este trabajo.

Esta estructura usa una variable contador donde se establece el valor inicial (vi), valor final (vf) y el valor de incremento (inc), que determina la cantidad de veces a repetir la instrucción.

Page 57: Programación Digital

Estructura repetitiva Para

Permite repetir una o más instrucciones una cantidad de veces.

i Es nuestra variable contador, donde establecemos el valor inicial.

vf Representa el valor final de la variable contador.

+1 Valor de incrementoi<=vfi vi

i i+1

F

V Instrucciones

for i=vi to vf

Instrucciones

Page 58: Programación Digital

EjemploObtener la suma de los n primeros números naturales positivos.

i<=ni 1

i i+1

F

V

Inicio

Leer n

i, n, s : Entero

Escribir s

Fin

s s + i

Inicio

Leer n

i, n, s : Entero

Fin

for i=1 to n

s s + i

Escribir s

Page 59: Programación Digital

Estructura repetitiva Para AnidadaDentro de la estructura repetitiva es posible colocar una o

mas estructuras repetitivas así como otras estructuras.

F

V Instrucciones

j<=vfj vi

j j+1

i<=vfi vi

i i+1

F

V

Page 60: Programación Digital

IntroducciónEn muchas situaciones se necesita procesar una

colección de datos que están relacionados entre sí, por ejemplo la lista de proveedores de maquinaria pesada, nacionales y extranjeros, repuestos relacionados, etc.

Procesar este conjunto de datos en forma independiente con variables simples (primitivas), es demasiado difícil por ello los lenguajes de programación incorporan un mecanismo que facilita la manipulación y organización para una colección de datos llamada Estructura de datos.

Aquí solo hablaremos de una pequeña parte pero básica e importante de estructura de datos, llamada Array (arreglos)

Page 61: Programación Digital

Las estructuras de datos están subdivididas por estáticas (espacio fijo establecido en memoria) y dinámicas (sin restricciones y limitaciones usado en memoria)

Estructura de datos estáticaEstructura de datos dinámica

+ Arrays (vectores y matrices) + Listas (pilas y colas) + Cadenas + Listas enlazadas + Registros + Árboles + Ficheros + Grafos

17 25 14 10 7425 10 74 36

17 18 19 28

17 18 19 25

0 1 2 3 4Vector

0 1 2 3 Matriz

0

1

2

Page 62: Programación Digital

La diferencia entre cada estructura es de cómo se almacenan y manipulan el conjunto de datos, permitiendo así su eficiencia en el resultado de una operación sobre dichos datos.

Arrays (Arreglos)Es un conjunto finito (tamaño fijo) y ordenado (usa un índice)

de datos homogéneos (datos del mismo tipo).Los arreglos pueden ser de una dimensión (vector), dos

dimensiones (matriz) y n dimensiones (multidimensional).En todos los lenguajes de programación los arrays usan un

índice numérico para cada elemento que contiene, que por lo general inician con el índice 0 (cero), llamado límite inferior (Li) y el último elemento tendrá el índice llamado límite superior (Ls), que en si es la cantidad de elementos del array menos uno.

Page 63: Programación Digital

17 25 14 10 74

25 10 74 36

17 18 19 28

17 18 19 25

0 1 2 3 4

Vector de 5 ítems

Arreglo de una dimensión

0 1 2 3

Matriz de 3x4

0

1

2

Arreglo de dos dimensiones

2da Dimensión (Columnas)

Li Ls

Li

Ls

1ra Dimensión (Filas)

19

16

17

25

30

0

1

2

Li

Ls

3

4

5 elementos (Ítems)

Page 64: Programación Digital

Operaciones con Arrays

Las operaciones son el procesamiento y el tratamiento individual de los elementos del array, las cuales son las siguientes.

Asignación Lectura / Escritura Recorrido Actualización (insertar, borrar, modificar) Ordenación Búsqueda

Page 65: Programación Digital

Creación de Arrays

Para la creación de un array se requiere conocer el nombre, las dimensiones, el tamaño de elementos y el tipo de datos.

Pseudocódigo‘Array de una dimensión (vector)‘ 5 elementos Li = 0 y Ls = 4N[5] : Entero

‘Array de dos dimensiones (matriz)‘ 3x4 elementos‘ 1ra dimensión Li = 0 y Ls = 2‘ 2da dimensión Li = 0 y Ls = 3N[3][4] : Entero

Page 66: Programación Digital

Recorrido por los elementos del Arrays

Para realizar un recorrido por los elementos del array utilizamos la estructura repetitiva para (for).

En el siguiente diagrama se tiene el vector N y se asigna el valor 10 a cada elemento.

Pseudocódigo Para i 0 hasta 4 Inc

+1 N[i] 10

Fin Para

i<=4I 0

i i+1

F

V N[i] 10

Page 67: Programación Digital

En el siguiente diagrama se tiene la matriz de 3x4 elementos y se asigna el valor 10 a cada elemento.

Pseudocódigo

Para i 0 hasta 2 Inc +1 Para j 0 hasta 3 Inc

+1

N[i][j] 10

Fin Para Fin Para

F

V N[i][j] 10

j<=3j 0

j j+1

i<=2i 0

i i+1

F

V

Page 68: Programación Digital

Ejemplo: Dado 5 números obtener la suma.

i<=4i 0

i i+1

F

V

Inicio

Leer n[0], n[1], n[2], n[3], n[4]

i, s : Entero

Escribir s

Fin

s s + n[i]

n[5]: Entero

Pseudocódigo Inicio‘Variablesi, s : Entero‘Arreglo (Vector)n[5] : Entero‘EntradaLeer n[0], n[1], n[2], n[3], n[4]‘ProcesoPara i=0 hasta 4 Inc 1

s = 0s = s + n[i]

Fin Para‘SalidaEscribir s

Fin

Page 69: Programación Digital

Introducción

Inicialmente las computadoras fueron creadas con la finalidad de resolver problemas aritméticos, sin embargo hoy en día el manejo de datos alfanuméricos (texto) es importante para el procesamiento de operaciones con caracteres (cadenas) y es de gran utilidad.

Una cadena de caracteres es una secuencia de cero o más símbolos que incluye letras del alfabeto, dígitos y caracteres especiales.

Juego de caracteresLos lenguajes de programación utilizan un conjunto de

caracteres para comunicarse con las computadoras, dentro de las cuales existe diferentes tipos de juegos de caracteres de los que destacan el ASCII, UNICODE, etc.

Page 70: Programación Digital

33 !

34 “

35 #

36 $

37 %

38 &

39 ‘

40 (

41 )

42 *

43 +

44 ,

45 -

46 .

47 /

48 0

49 1

50 2

51 3

52 4

53 5

54 6

55 7

56 8

57 9

58 :

59 ;

60 <

61 =

62 >

Algunos caracteres del Standard ASCII (caracteres alfanuméricos)

Caracter (char) Representa un solo valor de tipo caracter, por lo general se representa con comillas simples.

Pseudocódigo‘Crear una variable‘caracterc : Caracter

‘Asignar un valor c ‘A’

Page 71: Programación Digital

Cadena de caracteres (String)Representa un conjunto de caracteres y por lo general lo

representamos entre comillas dobles

Pseudocódigo‘Crear una variable cadenac : Cadena

‘Asignar un valorc “ABC”

Page 72: Programación Digital

Operaciones con cadenasPara la manipulación con cadenas los lenguajes de

programación incorporan una variedad de funciones y/o métodos que permiten realizar operaciones con cadenas.

Concatenación Comparación Cálculo de longitud Extracción de cadenas (subcadenas) Búsqueda de cadenas Conversiones

Page 73: Programación Digital

ConcatenaciónUnir varias cadenas en una

sola.

Pseudocódigo

‘Unir cadenasc “ABC”+“XYZ”

ComparaciónIgualdad y desigualdad de

cadenas

Pseudocódigo

‘Igualdad (Falso) “AAA”=“aaa”

Cálculo de longitudObtener la cantidad de

caracteres de una cadena.

Pseudocódigo

‘Retorna 3l Longitud (“aaa”)

Page 74: Programación Digital

Extracción de cadenas (subcadenas)Extraer una parte específica de la cadena por lo general

cada caracter de una cadena se representa por una posición que inicia con 0 (cero), es decir “JUAN” consta de 4 caracteres J es el primer caracter cuya posición es 0, U segundo caracter cuya posición es 1, así sucesivamente.En Visual Basic las posiciones de los caracteres de una cadena inician con 1.

Pseudocódigo

‘Extraer el primer carácter A‘1 cantidad a extraer c Izquierda (“ABC”,1)

Page 75: Programación Digital

‘También se usa‘1 posición ‘1 cantidad a extraer c subcadena (“ABC”,1,1)

‘Extraer el último caracter C‘1 cantidad a extraer c derecha (“ABC”,1)

‘También se usa‘3 posición ‘1 cantidad a extraer c subcadena (“ABC”,3,1)

Page 76: Programación Digital

Ejemplo 1: Dado un nombre, obtener la cantidad de caracteres que contiene.

Inicio

nom : cadena can : cantidad

Leer nom

Imprimir can

Fin

can Longitud(nom)

Page 77: Programación Digital

Ejemplo 2: Ingrese un nombre y apellido y obtenga su nombre y apellido en mayúscula separado por una coma XXXXX,XXXXX

Inicio

nom,ape,nom_ape : cadena

Leer nom, ape

Imprimir nom_ape

Fin

nom_ape Mayus(nom+“,”+ape)

Page 78: Programación Digital

Introducción

Cuando nos encontramos con problemas complejos y extensos, el criterio mas adecuado de resolverlos es dividirlo en problemas más pequeños y sencillos que se encargaran de resolver temas específicos. A ello se le acuña el termino subalgoritmos (subprogramas).

Los subalgoritmos se dividen en dos tipos procedimientos (subrutinas) y funciones que evitará la duplicidad de código y ayuda a crear módulos más pequeños para un mejor mantenimiento, pudiendo reutilizarlo muchas veces.

El método de diseñar la solución de un problema principal (main) en subproblemas se conoce como diseño descendente (top-dow design), difundida por la programación modular.

Page 79: Programación Digital

El problema principal corresponde al programa o algoritmo principal y la solución de los subproblemas mediante subprogramas (procedimientos y funciones), en el lenguaje algoritmico se conoce como subalgoritmos.

El subprograma recibe datos y es invocado por el programa principal, después de terminar el proceso que tuvo que realizar el subprograma devuelve el resultado correspondiente al programa principal.

Problema Principal

Subproblema 1

Subproblema 2

Subproblema 3

Page 80: Programación Digital

ProcedimientosLos procedimientos se caracterizan por realizar una

tarea específica y no retornan un resultado, sin embargo si es posible implementar que devuelva resultados por intermedio de parámetros llamados de salida o por referencia.

Pseudocódigo

‘Crear un procedimiento Procedimiento Proc1(E:Param1:Entero)

<Instrucciones> Fin Procedimiento

‘Invocar el Procedimiento

Llamar Proc1()

Page 81: Programación Digital

FuncionesSon más conocidos por devolver un valor como resultado de la

tarea realizada, los lenguajes de programación incorporan funciones que realizan algunas tareas ya programadas conocidas como funciones internas, pero las funciones programadas por el usuario (programador) se conoce como externas o funciones definidas por el usuario.

Pseudocódigo

‘Crear una función Función Func1(E:Param1:Entero):Cadena

<Instrucciones>

Retorna <valor> Fin Función

‘Invocar la función

c func1()

Page 82: Programación Digital

Paso de parámetros

Muchas veces los procedimientos y funciones requieren que le envíen una lista de valores llamados parámetros (argumentos), para usarlos en la solución de la tarea encomendada.

Los parámetros son variables muchas veces de entrada (reciben valores) y de salida (devuelven resultados) o ambos de entrada/salida.

Estos parámetros también toman el nombre de parámetros por valor (entrada) y parámetros por referencias (salida).

Page 83: Programación Digital

Parámetros por valor (entrada)

Los valores que se envían a los parámetros son asignados como una copia de los valores originales, desconectando el programa principal con el subprograma, es decir si los valores de los parámetros cambian dentro del subprograma no afecta al programa principal.

Page 84: Programación Digital

Pseudocódigo‘Crear un método Función Incrementar(E:N:Entero):Entero ‘Modifica el valor de N

N N + 1 Retorna N Fin Función‘Invocar el métodoNum 5‘El valor de Num se copia en NRes Incrementar(Num)Imprimir Num‘Su valor sigue siendo 5Imprimir Res‘Su valor es 6

Page 85: Programación Digital

Parámetros por referencia (salida)

Se asignan las referencias de las variables (dirección de memoria de la variable) a los parámetros, conectando el programa principal con el subprograma, es decir si los valores de los parámetros cambian dentro del subprograma afectan a las variables del programa principal .

Page 86: Programación Digital

Pseudocódigo‘Crear una función Función Incrementar(S:N:Entero):Entero ‘Modifica el valor de N

N N + 1 Retorna N Fin Función‘Invocar la funciónNum 5‘El parámetro N hace referencia a NumRes Incrementar(Num)Imprimir Num‘Su valor ahora es 6Imprimir Res‘Su valor es 6

Page 87: Programación Digital

Ejemplo1: Dado dos números enteros, hallar la suma. Cree una función para resolver el problema.

Sumar(E:Num1:Entero,E:Num2:Entero):Entero

Inicio

n1, n2, s: Entero

Leer n1, n2

Imprimir s

Fin

s Sumar(n1,n2)

Inicio

Num1,Num2,s: Entero

Leer Num1,Num2

Escribir s

Fin

s Num1 + Num2

Principal

Sumar

Page 88: Programación Digital

Ejemplo2: Dado dos números enteros diferentes, devolver el número mayor. Cree una función para resolver el problema.Mayor(E:n1:Entero,E:n2:Entero):Entero

Inicio

n1, n2, m: Entero

Leer n1, n2

Imprimir m

Fin

m Mayor(n1,n2)

Principal

Mayor

n1>n2 F

Vm = n1

n1<n2 F

Vm = n2

Inicio

n1, n2, m : Entero

Leer n1, n2

Fin

Escribir m