Programación 1 (01) Prof. Flor Narciso ([email protected]) Prof. Domingo Hernández Departamento de...
-
Upload
sandalio-fulgencio -
Category
Documents
-
view
111 -
download
0
Transcript of Programación 1 (01) Prof. Flor Narciso ([email protected]) Prof. Domingo Hernández Departamento de...
Programación 1 (01)
Prof. Flor Narciso ([email protected])Prof. Domingo Hernández
Departamento de ComputaciónGrupo de Ingeniería de Datos y Conocimiento (GIDyC)
Escuela de Ingeniería de SistemasFacultad de Ingeniería
Sistema computacional = Hardware + Software + Usuarios
Componentes físicos o equipo (hardware)
Componentes lógicos o programas (software)
Usuarios o personas
Componentes de la computadora
Prof. Flor Narciso 2Programación 1Semestre B-2010
Software
El software es un objeto abstracto asociado a un sistema de computación para:
• Dar solución a un problema
• Automatizar procesos de información y decisión
• Satisfacer requisitos de un conjunto de usuarios
Prof. Flor Narciso 3Programación 1Semestre B-2010
Software = Programas + Datos + Documentación
Software vs. Programa
Prof. Flor Narciso 4Programación 1Semestre B-2010
Software
Programa 1 Programa 2 Programa n
Sentencia 1 Sentencia m
…..
…..
Lenguajes de Programación
Prof. Flor Narciso 5Programación 1
Semestre B-2010
Lenguaje de programación: Notación que permite escribir programas
Léxico : Vocabulario
Sintaxis : Reglas gramaticales
Semántica: Reglas que permiten determinar el significado de las sentencia del lenguaje
Creado por el ser humano para poder comunicarnos con las computadoras
Clasificación de los Lenguajes de Programación
Prof. Flor Narciso 6Programación 1Semestre B-2010
Lenguaje de máquina: Lenguaje de programación que entiende directa-mente la computadora. Utiliza el alfabeto binario, es decir, el 0 y el 1Lenguaje ensamblador o de bajo nivel: Abreviaturas similares al inglés, llamadas instrucciones mnemotécnicas, que permiten represen-tar las operaciones elementales de la computadora
Lenguaje de alto nivel: Son muy similares al lenguaje humano
0001 0101 1000 00010001 0111 1000 00100001 0110 1000 0011
LOAD A ADD B STORE C
C = A + B
SEGMENTO DE PROGRAMA
Operaciones básicasCargar datos desde la memoriaAlmacenar datos en memoriaOperaciones aritméticasOperaciones de comparación
Lenguaje de Máquina
Prof. Flor Narciso 7Programación 1Semestre B-2010
Con estos dos únicos dígitos (0 y 1), conocidos como bits, se forma lo que se conoce como cadenas binarias (combinaciones de ceros y unos) con las que se escriben las instrucciones que el microprocesador de la computadora entiende. Fue el primer lenguaje de programación. Este tipo de lenguaje de programación dejó de utilizarse por su gran dificultad y por la facilidad para cometer errores
Estas instrucciones son fáciles de leer por la computadora y difíciles por un programador, y viceversa
0001 0101 1000 00010001 0111 1000 00100001 0110 1000 0011
Lenguaje Ensamblador o de Bajo Nivel
Prof. Flor Narciso 8Programación 1Semestre B-2010
Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucede con el lenguaje máquina
Todo programa escrito en un lenguaje ensamblador particular tendrá que ser reescrito si se va a ejecutar en otro tipo de computadora
LOAD A ADD B STORE C
Fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos
Lenguaje Ensamblador o de Bajo Nivel
Prof. Flor Narciso
Programa escrito en lenguaje ensamblador (código fuente)
Programa escrito en lenguaje de máquina (código objeto)
Ensamblador
9Programación 1Semestre B-2010
La computadora no entiende directamente lenguaje ensamblador por lo que un programa escrito en este lenguaje tiene que ser traducido a lenguaje de máquina por un software llamado un ensamblador para que pueda ser ejecutado por la computadora
LOAD A ADD B STORE C
0001 0101 1000 00010001 0111 1000 00100001 0110 1000 0011
Lenguaje de Alto Nivel
Prof. Flor Narciso 10Programación 1Semestre B-2010
Permite a los programadores escribir programas en un lenguaje mas familiar para ellos y que contiene notaciones matemáticas comúnmente utilizadas (independiente de la máquina)
La programación es mas fácil para los programadores ya que no necesitan conocer la arquitectura de la computadora
Son independientes de la máquina, cualquier programa escrito en un lenguaje de alto nivel particular (que tiene una versión estandarizada) puede ser ejecutado en cualquier computadora
C = A + B
Lenguaje de Alto Nivel
Prof. Flor Narciso
CompiladorPrograma escrito en lenguaje de alto nivel (código fuente)
Programa escrito en lenguaje de máquina (código objeto)
11Programación 1Semestre B-2010
La computadora no entiende directamente lenguaje de alto nivel, por lo que un programa escrito en este lenguaje tiene que ser traducido a lenguaje de máquina por un programa llamado un compilador para que pueda ser ejecutado por la computadora
C = A + B 0001 0101 1000 00010001 0111 1000 00100001 0110 1000 0011
Prof. Flor Narciso 12Programación 1Semestre B-2010
Lenguaje de Alto NivelLenguajes de programación imperativos
FORTRAN, BASIC, COBOL, C, PHP
Lenguajes de programación declarativosPROLOG, LISP, SCHEME, Haskell, SQL
Lenguajes de programación orientados por objetosSmalltalk
Lenguajes de programación imperativos + orientado por objetos
ADA, Java, C++, Pascal, Delphi, Ocalm, Perl
Lenguaje de Programación C Nació en los Laboratorios Bell de AT&T
Su desarrollo está estrechamente vinculado al del sistema operativo UNIX
Diseñado e implementado por Brian Kernighan y Dennis Ritchie en 1973, a partir de los lenguajes BCPL (1967) y B (1970)
Prof. Flor Narciso 13
Un poco de historia!!
Brian Kernighan Department of Computer Science Princeton University Princeton, NJ 08544http://www.cs.princeton.edu/~bwk/
Dennis RitchieBell Labs, Rm 2C-517 600 Mountain Ave. Murray Hill, New Jersey 07974-0636, USAhttp://inferno.bell-labs.com/who/dmr/
Prof. Flor Narciso 14Programación 1Semestre B-2010
Lenguaje de Programación C
Prof. Flor Narciso
Lenguaje de nivel intermedio: Combina características de los lenguajes de alto nivel (sentencias de control y manipulación de datos) y de los lenguajes de bajo nivel (manejo de bits)
Independiente del hardware
Todo está constituido a base de funciones
Los programas escritos en C son fácilmente transportables a otros sistemas
Fácil de aprender
Programación estructurada
Características
15Programación 1Semestre B-2010
Lenguaje de programación C
• Quick C• C++• Turbo C• Turbo C ++• Borland C• Borland C++• Microsoft C• C#
Prof. Flor Narciso 16Programación 1Semestre B-2010
c Elementos sintácticos
Ù Palabras reservadasÙ IdentificadoresÙ DelimitadoresÙ Caracteres especialesÙ Comentarios
Lenguaje de programación CLas palabras reservadas
El lenguaje C está formado por un conjunto pequeño de palabras clave (reservadas) o comandos (keywords) que tienen un significado especial para el compilador y están reservadas para uso especial del lenguaje de programación
Prof. Flor Narciso 17Programación 1Semestre B-2010
Lenguaje de programación C
Los identificadores
Para dar un nombre a variables, constantes y funciones tenemos que usar un identificador. La longitud de un identificador puede variar entre uno y varios caracteres (letras y/o números), por lo general, 32. En la mayoría de los casos el primer carácter debe ser una letra o un símbolo de subrayado
Prof. Flor Narciso 18Programación 1Semestre B-2010
Correcto Incorrecto
cuenta 1cuenta
prueba23 hola!
puerto_paralelo puerto..paralelo
Cuenta ≠ cuenta
Lenguaje de programación CLos delimitadores
Permiten al compilador separar y reconocer las diferentes unidades sintácticas del lenguaje
Prof. Flor Narciso 19Programación 1Semestre B-2010
Signo Significado
; (punto y coma) Terminación, es necesario cuando finaliza cada una de las sentencias o declaraciones
, (coma) Separa dos elementos consecutivos de una lista
( ) (paréntesis) Enmarca una lista de parámetros, expresiones o condiciones
[ ] (corchetes) Enmarca la dimensión o el subíndice de un arreglo
{ } (llaves) Enmarca un bloque de sentencias o una lista de valores iniciales
Lenguaje de programación C
Los caracteres especiales
Prof. Flor Narciso 20Programación 1Semestre B-2010
Lenguaje de programación C
Los comentarios
Permiten que el programador documente sus programas . Sirven para facilitar la legibilidad de un programa
Prof. Flor Narciso 21Programación 1Semestre B-2010
Programas en C
Los comentarios
/* Ejemplo1.c Julio, 2010 Autores: Flor Narciso Domingo Hernández Sumar dos valores a y b, asignar el resultado a c */
int main(){
int a, b, c; /* Declaración de variables locales */
a = 3;b = 7;
c = a + b; /* Calcular la suma */return 0;
}
Prof. Flor Narciso 22Programación 1Semestre B-2010
Programas en CSintaxis formal
/* Comentarios iniciales */Declaración de importaciones /* Opcional */Definición de constantes /* Opcional */
int main(){
Declaración de variables locales /* Opcional */
Sentenciasreturn 0;
}
Prof. Flor Narciso 23Programación 1Semestre B-2010
Programas en CEjemplo
/* ejemplo2.c Julio, 2010 Autores: Flor Narciso Domingo Hernández Imprime el mensaje "BIENVENIDO AL CURSO DE PROGRAMACIÓN 1” */
#include <stdio.h> // Declaración de importaciones
int main(){
printf("BIENVENIDO AL CURSO DE PROGRAMACIÓN 1”);return 0;
}
Prof. Flor Narciso 24Programación 1Semestre B-2010
Lenguaje de programación C
Prof. Flor Narciso 25Programación 1Semestre B-2010
Función Descripción
printf Usada para imprimir salidas de datos (escritura)
scanf Usada para introducir datos de entrada (lectura)
Lenguaje de programación C
Prof. Flor Narciso 26Programación 1Semestre B-2010
Programas en CEjemplo
/* ejemplo2.c Julio, 2010 Autores: Flor Narciso-Domingo Hernández Imprime el mensaje "BIENVENIDO AL CURSO DE PROGRAMACIÓN 1” */
#include <stdio.h> // Declaración de importaciones#define VALOR 34 // Definición de constante
int main(){
printf("BIENVENIDO AL CURSO DE PROGRAMACIÓN 1”);return 0;
}
Prof. Flor Narciso 27Programación 1Semestre B-2010
Programación Estructurada
• El proceso de diseño del algoritmo y posterior codificación del programa consiste en definir las acciones o sentencias que resolverán el problema
• La programación estructurada es una forma de escribir programas de manera clara
• La visión clásica de la programación estructurada se refiere al control de ejecución
Prof. Flor Narciso 28Programación 1Semestre B-2010
Programación EstructuradaEsta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijkstra (1930-2002), que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras básicas de control siguientes:
Prof. Flor Narciso 29Programación 1Semestre B-2010
Secuencial: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra
Selección: la instrucción condicional con doble alternativa, de la forma "if condición then instrucción-1 else instrucción-2”
Iteración: el bucle o lazo condicional "while condición do instrucción", que ejecuta la instrucción repetidamente mientras la condición sea verdadera
Estructuras secuencialesSe ejecutan en secuencia sin posibilidad que la sentencia siguiente a ejecutar pueda ser otra diferente de la que sigue en la secuencia
Prof. Flor Narciso 30Programación 1Semestre B-2010
Definición de Estructuras Secuenciales
Prof. Flor Narciso 31Programación 1Semestre B-2010
Sentencia Pseudocódigo Código en C
Comienzo Inicio {
Fin Fin }
Entrada (lectura) Leer scanf
Salida (escritura) Escribir printf
Asignación A 5 ó A = 5 A = 5
Permite leer determinados valores (datos de entrada) y asignarlos a determinadas variables. Los datos de entrada se introducen a la computadora mediante los dispositivos de entrada (teclados, unidades de disco,etc.)
Sentencia de Entrada (Lectura)
Prof. Flor Narciso Programación 1Semestre B-2010
32
Leer (lista de variables de entrada)
Leer(a)
Leer(x, y)
Leer (hora, minutos, segundos)
scanf("%<tipo_dato>",&<variable>);
scanf(“%f”, &a);
scanf(“%d %f”, &x, &y);
scanf(“%d %d %d”, &hora, &minutos, &segundos);
Sentencia de Entrada (Lectura)
Prof. Flor Narciso Programación 1Semestre B-2010
33
Notación en C
%d Si el dato que se leerá será un número entero%f Si el dato que se leerá será un número real%c Si el dato que se leerá será un carácter%s Si el dato que se leerá será una cadena
¿Qué es %<tipo_dato>?
Sentencia de Entrada (Lectura)
Ejemplo: Programa que calcula el número de días vividos
0. Inicio1. Leer (edad)2. edad = edad * 3653. Fin
/*Programa que calcula el numero de dias vividos*/
#include<stdio.h>
int main(){
int edad;
scanf(”%d",&edad);edad=edad * 365;
return 0;}
Prof. Flor Narciso Programación 1Semestre B-2010
34
Sentencia de Salida (Escritura)
Prof. Flor Narciso Programación 1Semestre B-2010
35
Permite escribir los resultados de un programa. La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc.)
Escribir (mensajes y/o variables de salida)
Escribir(“Hola”)
Escribir(promedio1, promedio2)
Escribir (“El resultado es”, resultado)
Sentencia de Salida (Escritura)
Prof. Flor Narciso Programación 1Semestre B-2010
36
printf(“Mensaje”);
printf(“Mensaje \n”);
printf(“valor = %<tipo_variable>”, variable);
Notación en C
%d Si el dato que se leerá será un número entero%f Si el dato que se leerá será un número real%c Si el dato que se leerá será un carácter%s Si el dato que se leerá será una cadena
¿Qué es %<tipo_dato>?
Sentencia de Salida (Escritura)
Ejemplo: Programa que calcula el número de días vividos
0. Inicio1. Escribir (“Introduce tu
edad: ”)2. Leer (edad)3. edad = edad * 3654. Escribir(“Has vivido”, edad,
“dias”)5. Fin
Prof. Flor Narciso
/*Programa que calcula el numero de dias vividos*/
#include<stdio.h>int main(){
int edad;
printf(“Introduce tu edad: ”);scanf("%i",&edad);edad=edad * 365;printf(“Has vivido %d dias”, edad);
return 0;}
Programación 1Semestre B-2010
37
Sentencia de Asignación
variable = valor constante x = 3;
variable = variable x = y;
variable = expresión x = (y + 1)/2;
Leer (variable) scanf(“%d”, &x);
Prof. Flor Narciso
Cuatro maneras de asignar valores a las variables !!!
38Programación 1Semestre B-2010
Prof. Flor Narciso
RAIS: Seguimiento del Desarrollo del Producto
Reunión semanal de trabajo y su informe
¿Qué ejecuto la compañía de la lista de acciones prometida en la última semana
¿Qué problemas y/o necesidades presenta el desarrollo del producto?
¿Qué tareas va la compañía a ejecutar para la semana próxima?
¿Qué ejecutó Usted de lo que la compañía se comprometió a realizar?
39Programación 1Semestre B-2010