La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

VERÓNICA JUDITH HERNÁNDEZ MOYOTL

Presentaciones similares


Presentación del tema: "VERÓNICA JUDITH HERNÁNDEZ MOYOTL"— Transcripción de la presentación:

1 VERÓNICA JUDITH HERNÁNDEZ MOYOTL
PROGRAMACIÓN VERÓNICA JUDITH HERNÁNDEZ MOYOTL

2 ¿Qué es un ordenador? “Un Sistema digital con tecnología microelectrónica capaz de procesar información a partir de un grupo de instrucciones denominado programa” Componentes principales: Procesador (CPU: Central Processing Unit) Memoria (RAM: Random Access Memory) Componentes auxiliares: Disco duro Lector CD-ROM Teclado Pantalla etc.

3 Elementos de un ordenador Hardware
Memoria Principal (RAM) Procesador (CPU) Unidad aritmetica y logica (ALU)‏ Unidad de Control (CU)‏ Programa Dispositivos de entrada Dispositivos de salida Dispositivos de almacenamiento de datos teclado ratón pantalla impresora disco duro lector/grabador de CD-ROM

4 Software Software: conjunto de programas de computo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación. Clasificación Software de sistema (SO, controladores, herramientas de diagnostico) Software de programación (editores de texto, compiladores, IDEs) Software de aplicación bases de datos, sistemas de control videojuegos

5 Lenguajes de Programación
Conjunto de símbolos, reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones, con el objetivo de controlar el comportamiento físico y lógico de una maquina. Se clasifican en 3 grandes categorías Lenguajes de maquina instrucciones directamente entendibles por la computadora(0,1) Lenguajes de bajo nivel (ensamblador) instrucciones más comprensibles Lenguajes de alto nivel

6 Lenguajes máquina Sus Programas son secuencias de instrucciones compuestas de bytes: Ventajas: La CPU entiende estos programas Desventajas: Pensar en modo de 0’s y 1’s es muy difícil para nosotros

7 Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y números: LOD 15 6 LOD 16 8 ADD JMP 10 Ventajas: Más fácil a entender Desventajas: Todavía bastante abstracto Necesita traducir el código a lenguajes máquina

8 Lenguajes de alto nivel
Diseñados para ser más parecidos a lenguaje natural Ventajas: Utilizan instrucciones escritas con palabras similares a los lenguajes humanos. Son independientes de la maquina en la que se ejecutan Desventajas: Más complicado convertir en lenguajes máquina (Compilación)

9 Existen diversos tipos
Estructurados Orientados a objetos Declarativos Funcionales

10 Lenguajes de programación: ¿Por qué hay tantos
Lenguajes de programación: ¿Por qué hay tantos? ¿Cómo nacen, sobreviven y caducan? Diferentes dominios de aplicación: Programación de sistemas – rapidez y acceso de bajo nivel: C Inteligencia artificial – computación simbólica: LISP, Prolog Programación científica – fórmulas matemáticas: Fortran Negocios – transacciones: COBOL Uso específico: SQL (bases de datos), Perl (manipulación de textos), JavaScript (páginas web), Pascal (formación)

11 Diferentes necesidades:
Fiabilidad: Ada Escabilidad, paradigma orientado a objeto: C  C++ Portabilidad: Java Evolución: Mejora del hardware Mejor comprensión de como reforzar criterios de legibilidad, facilidad de aprender y escribir, fiabilidad… Importancia de la estandardización ¡Número de usuarios!

12 Entorno de programación
También conocidos como IDEs Editor Interprete o compilador Depurador Ayuda en línea

13 Tipos de datos

14 Representación de los datos en el ordenador
El único código que entiende la CPU son los bits. Los bits son representados en circuitos electrónicos que pueden estar en estado “on” (1) u “off” (0) Las instrucciones se mandan a la CPU en forma de bytes, que son palabras de 8 bits 1 byte = 8 bits 1 kilobyte = bytes 1 megabyte = kilobytes = bytes

15 Representación de los datos en el ordenador
Base 10: Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 1111 = 1* * * *100 Base 2: Dígitos = {0, 1} 1111 = 1*23 + 1*22 + 1*21 + 1*20 = = 15 ¿Cuántos valores puede representar un byte? 1 byte = 8 bits (Ej: ) Cada bit puede representar 2 valores (0 y 1) Un byte puede representar 28 = 256 valores

16 Representación de textos
TEXTO: My name is Anders. ASCII:

17 Representación de imagen
División de la imagen en una matriz de pixels (unidad de la imagen) Cada pixel asociado con un color

18 Representación de sonido
Discretización de la amplitud (valor numerico) Un byte para cada valor

19 Abstracciones de datos
Básicas: tipos básicos (Enteros, Reales, etc) Estructuradas: Tipos estructurados (Arreglos, registros) Unitarias: tipos estructurados de datos (TDAs), paquetes, clases, componentes.

20 Tipos de datos en C

21 Variables y constantes
Existen dos grupos principales de datos Constantes: su valor no puede cambiar durante la ejecución de un programa Variables: su valor puede cambiar durante la ejecución de un programa Ambas tienen un nombre y un valor Ambas permiten representar mediante un nombre a una posición de memoria que contiene el valor

22 Identificadores Es un nombre que el programador selecciona para diferentes elementos del programa Los identificadores se pueden definir para: Variables Constantes Nombre del programa Nombre de funciones

23 Operadores, operandos y expresiones
Operadores: Permiten realizar diferentes tipos de operaciones. Se clasifican en: Aritméticos. De asignación. Relacionales o de comparación. Lógicos o booleanos.

24 OPERADORES ARITMÉTICOS
Operación Ejemplo Resultado ^ Potencia 4 ^ 3 64 * Multiplicación 4 * 3 12 / División 4 / 2 2 + Suma 4 + 2 6 - Resta 4 – 2 = Asignación A = 3

25 Jerarquía de Operadores Jerarquía Resultado Comentario 1a.
( 4 / 2) paréntesis Se ejecutan antes que ninguna. 2a 4^3 = 64 Después del () 3a. 4 * 8 = 32 ó 4 / 2 = 2 Tienen la misma jerarquía 4a. 7 – 2 = 5 ó = 5 5a. A = A + 1 Al final de la operación se asigna el valor

26 Operadores de asignación
Permiten asignar un valor a una variable. El operador de asignación es “=“

27 Operadores de comparación o relacionales
Permiten realizar comparaciones y regresan un resultado booleano (true o false).

28 Operadores lógicos Para construir expresiones lógicas. Generan un resultado booleano (true o false).

29 Operadores (otros) Unitarios (+, -). Ejemplo: -x
Incrementales (++, --). Ejemplo: int x = 10; x++; Escribir (“x = “ + x); Concatenación de caracteres (+). String nombre; nombre = “Pedro ” + “Perez”;

30 Operandos Son los valores constantes, variables o expresiones sobre los cuales trabajan los operadores. Identificar los operandos del código: boolean x; x = ( 20 > y / 3) || ( m * 3 <= a / b);

31 Expresiones Una expresión es un conjunto de variables unidos por operadores. Son ordenes que se le dan a la computadora para que realice una tarea determinada.

32 Sentencia En c, una sentencia es una expresión que termina con punto y coma (;). Se pueden incluir varias sentencias en una línea, aunque lo habitual es usar una línea para cada sentencia. Ejemplo: i = 0; j = 5; x = i + j; // Línea de tres // sentencias

33 Introducción a la programación estrucutrada

34 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.

35 PROGRAMACION MODULAR

36 PROGRAMACION ESTRUCTURADA
Esta programación es un conjunto de técnicas que incorpora: diseño descendente (top-down) recursos abstractos estructuras básicas

37 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?

38 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 o de iteración Teorema de la Programación Estructurada: Un programa propio puede ser escrito utilizando sólo los tres tipos de estructuras de control antes mencionadas

39 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.

40

41

42 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

43 Clasificación de estructura de selección
Decisión Simple Doble Anidada Múltiple

44 Estructura IF simple si condición entonces hacer Instrucción A Finsi Condición = Expresión Lógica

45

46

47 Estructura IF – else (doble)
si condición entonces hacer acción A sino hacer acción B fin_si

48

49

50 Estructura IF anidado (multiple)
Si condición entonces hacer operaciones sino hacer sino … Finsi

51 Ejemplo: Dados dos números Ay B, Determina si A es mayor, igual o menor a B Escribir proporciona dos números Leer dos números Si A>B escribir A es mayor que B sino si A=B Escribir A es igual a B Sino Escribir A es menor que B Fin

52 Ejercicio: Realizar un programa que calcule el IMC de una persona y clasifique si tiene peso bajo, peso normal, sobrepeso u obesidad.

53 Algoritmo Inicio Dar el peso den kilogramos (Peso) Dar la estatura en metros (Estatura) Realizar la operación Indice=Peso/(Estatura*Estatura) Mostrar el resultado “tu índice de masa corporal es: ” Si índice <18.5 entonces hacer indicar “La persona esta baja de peso” si Indice >= 18.5 y índice <25 entonces hacer indicar “La persona esta en su peso normal” si Indice >= 25 y índice <30 entonces indicar “La persona tiene sobrepeso” Si índice >=30 entonces Indicar “La persona tiene problemas de obesidad” Fin

54

55

56 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 siguiente tipo

57 Switch - Case Según (Expresión) case opción 1 proceso 1 break
case opción n proceso n default proceso n+1 FinSegun

58 Ejemplo Escriba un programa que permita escribir un numero entre el 1 y el 5 y de como resultado una vocal.

59 Ejercicio Proporcione un número del 1 al 12 numero=1 Escriba “Enero”
Escriba “Febrero” numero >12 Escriba Opción no valida Fin

60 Ejercicio: Casa de Cambio

61 Repetitivas o de iteración
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 Ciclos simples while do-while for anidados Otros tipos de ciclos simples son: Do Loop-Until, Repeat-Until, For-each que no se tratan en este documento

62 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. Otros tipos de ciclos son: Do Loop-Until, Repeat-Until, For-each que no se tratan en este documento

63 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. Acumulador: aquella variable que almacena el resultado de una operación anterior y se utiliza para obtener el siguiente resultado.

64 While

65 Do - While Do instrucción 1 instrucción 2 while Condición

66 For (Para) Para variable<-valor inicial hasta valor final incremento Instrucciones Finpara

67 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 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. 1 2 3 4 5 6 10 7 14 4 2 -10

68 Funciones comunes a todos los lenguajes de programación
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) atan(x) 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.

69 Cadenas y sus operaciones
Representación Dependiendo del lenguaje las cadenas se pueden representar entre comillas simples o dobles Por ejemplo: 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. ‘cadena con comillas simples’ “cadena con comillas dobles”

70 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

71 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”

72 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 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. var len:entero len <- length$ micadena {len=12}

73 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 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.

74 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: 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. var cadena1, cadena2, cadena3: cadena cadena1 <- “hola qué” cadena2 <- “ tal” cadena3 <- cadena1 + cadena2 print$ cadena3 {Muestra en pantalla hola qué tal}

75 Cadenas y sus operaciones
cadena3 <- cadena2 + cadena1 print$ cadena3 {Muestra en pantalla talhola que} Observe que la concatenación no es conmutativa

76 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, El uso del operador de igualdad para cadenas depende del lenguaje si cadena2 = cadena1 print$ “Las cadenas son iguales” sino print$ “Las cadenas no son iguales.”

77 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} El uso de los operadores de comparación depende del lenguaje

78 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: El nombre substr es una propuesta, variará dependiendo del lenguaje de programación var cadena1, cadena2: cadena cadena1 <- “hola qué tal” cadena2 <- substr$ cadena1, ‘q’ print$ cadena2 {Muestra en pantalla la subcadena qué tal}

79 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}

80 Cadenas y sus operaciones
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

81 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 cadena2 <- substr$ cadena1,3,6 {cadena2 = “la q”} cadena2 <- substr$ cadena1,3 {cadena2 = “la qué tal”}

82 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 instr$ es un nombre propuesto var cadena1: cadena var posicion:entero cadena1 <- “hola qué tal” posicion <- instr$ cadena1, “la” print posicion {Muestra en pantalla 2}

83 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.

84 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} insert$ es un nombre propuesto.

85 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} remove$ es un nombre propuesto

86 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} replace$ es un nombre propuesto

87 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’} chrstr$ es un nombre propuesto, puede variar de acuerdo al lenguaje de programación

88 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} strchr$ es un nombre propuesto

89 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.

90 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} istrchr$ es un nombre propuesto.

91 Cadenas y sus operaciones
Conversión de cadenas a números var cadena1: cadena var num: entero cadena1 <- “1250” num <- strtonum$ cadena1 print num {Muestra en pantalla el número convertido} strtonum$ es un nombre propuesto

92 Cadenas y sus operaciones
Conversión de números a cadenas var cadena1: cadena var num: entero num <- 1250 cadena1 <- numtostr$ num print$ cadena1 {Muestra en pantalla la cadena convertida} numtostr$ es un nombre propuesto


Descargar ppt "VERÓNICA JUDITH HERNÁNDEZ MOYOTL"

Presentaciones similares


Anuncios Google