INSTITUTO POLITÉCNICO NACIONAL
ESIME UNIDAD CULHUACAN
"FUNDAMENTOS DE PROGRAMACIÓN"
PROFA: RESENDIZ COLÍN PILAR
ALUMNO: HERRERA AGUILAR MARÍA FERNANDA
PROGRAMA SINTÉTICO
CARRERA: Ingeniería en Computación
ASIGNATURA: Fundamentos de Programación
SEMESTRE: Primero
OBJETIVO GENERAL:
El alumno resolverá problemas de ingeniería y ciencias ediante la programación estructurada.
CONTENIDO SINTÉTICO:
I. Introducción a la programación.
II. Fundamentos de programación estructurada.
III. Estructuras de flujo programático.
IV. Estructuras de datos.V. Aplicaciones.
METODOLOGÍA:Se utilizara la metodología del aprendizaje inductivo-deductivo o viceversa, para promover la participación activa y constante de los asistentes en la búsqueda, lectura y análisis de la información que posibilite la integración de los aspectos teóricos, prácticos, análisis y solución de problemas.
EVALUACIÓN Y ACREDITACIÓN:
80% de asistencia Teórico-Práctica.
Entrega de trabajos realizados en clase, tareas y prácticas de laboratorio.
Participación en actividades individuales y de equipo.
Tres exámenes departamentales.
BIBLIOGRAFIA:
B. W. KERNIGHAN; D. M. Ritchie, Lenguaje de Programación C. Prentice Hall.
CEBALLOS, Francisco Javier, Enciclopedia del Lenguaje C Computec-Rama, México,1994DEITEL, H. M.; Deitel,P.J. Como programar en C/C++, Prentice Hall Hispanoamericana.
UNIDAD I
I- SISTEMAS OPERATIVOS
El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.
En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.
- Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.
- Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.
- Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.
Clasificación de los Sistemas Operativos
Los sistemas operativos pueden ser clasificados de la siguiente forma:
- Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.
- Multiprocesador: soporta el abrir un mismo programa en más de una CPU.
- Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
- Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
- Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.
Cómo funciona un Sistema Operativo
Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.
Los sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que también se utilizan, como por ejemplo Linux.
Cómo se utiliza un Sistema Operativo
Un usuario normalmente interactúa con el sistema operativo a través de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar ypegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por una parte del sistema operativo llamada procesador de comandos o intérprete de la línea de comandos. Las interfaces gráficas permiten que utilices los comandos señalando y pinchando en objetos que aparecen en la pantalla.
II- COMPARACIÓN DE SISTEMAS OPERATIVOS
MS-DOS
|
WINDOWS
|
UNIX
|
LINUX
|
Sólo permite realizar una tarea a la vez.
|
Permite realizar varias tareas al mismo tiempo.
| ||
Es un sistema Monousuario.
|
Es un sistema Multiusuario.
| ||
No posee interfase gráfica.
|
Posee interfase gráfica.
| ||
Se maneja con comandos que deben escribirse.
|
Se maneja con menús, ventanas e iconos seleccionables.
| ||
No permite alta calidad en audio.
|
Posee Multimedia que permite alta calidad de audio, video e imágenes.
| ||
Almacena la información en directorios.
|
Almacena la información en carpetas.
| ||
Utiliza una técnica de paginación segmentada y un liberador de memoria que se usa una vez por segundo.
|
Utiliza un algoritmo de paginación adaptable y el liberador de memoria se ejecuta cuando es necesario.
| ||
Favorece la ejecución de procesos básicos, porque su núcleo no soporta múltiples hilos de ejecución. Esto impide que haya bloqueos entre los hilos y permite la eficiencia y el control de los procesos claves.
|
Favorece la administración de memoria en los sistemas multiprocesador con el costo de una mayor complejidad en el hardware y también la independencia entre los hilos de ejecución, lo que hace más difícil la comunicación entre ellos.
|
MS-DOS
|
WINDOWS
|
UNIX
|
LINUX
|
Es más fácil y más comercial por la disponibilidad de aplicaciones, facilidad de mantenimiento, soporte en el desarrollo de nuevas aplicaciones.
|
Es mas seguro, ya que la gran mayoría de los ataques de hackers son dirigidos a servidores Windows al igual que los virus, los cuales se enfocan a servidores con éste sistema operativo. La plataforma Linux es más robusta, lo cual hace más difícil que algún intruso pueda violar el sistema de seguridad.
| ||
Los programadores han logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidores Windows, lo cual se ve reflejado en tiempos de desarrollo menores. La curva de aprendizaje en el sistema Windows es mucho menor.
|
Al tener una plataforma más estable, esto favorece el desempeño de aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML, multimedia u otros. La eficiencia de su código fuente hace que la velocidad de las aplicaciones Linux hacen superiores a las que corren sobre Windows, lo cual se traduce en velocidad de su página.
| ||
Fue el más popular, debido al aplastante volumen de software disponible y a la base instalada de computadoras con procesadores Intel.
|
Es más costoso, debido a que es necesaria una frecuente atención y monitoreo contra ataques de virus, hackers y errores de código, así como también la instalación y actualización de parches y service packs.
|
Es más económico, ya que requiere menor mantenimiento. En servidores el software y las aplicaciones son de código abierto (gratuitos). No requieren supervisión tan estrecha ni pagos de pólizas de mantenimiento.
|
CUADRO COMPARATIVO DE LOS SISTEMAS OPERATIVOS
MS-DOS
|
WINDOWS
|
UNIX
|
LINUX
|
Es un sistema robusto, estable, multiusuario, multitarea, multiplataforma y con gran capacidad para la gestión de redes.
|
Comparte estos criterios, ya que fue creado basado considerando esas características.
| ||
Es usado en redes de corporaciones grandes.
|
Se basa en la plataforma de Unix. Se esta usando como sistema operativo de escritorio en el hogar y en la oficina.
| ||
El sistema operativo Minix es una versión reducida del Unix.
|
Es descendiente del sistema operativo Unix.
|
Un lenguaje de programación es aquel que utilizamos para expresar cada una de las instrucciones de un algoritmo de manera que el ordenador las puedas interpretar y ejecutar.
-Evolución histórica
El primer lenguaje que se utilizo fue el lenguaje máquina ( 0 y 1 ). El segundo fue el lenguaje ensamblador ( ya no utilizaba 0 y 1, utilizaba mnemotécnicos ). Luego aparecieron los lenguajes de alto nivel.
-Componentes y estructura
Este apartado es igual al apartado de algoritmos.
-Utilidad de los lenguajes de programación
Hacer el paso / traducción de las instrucciones de un algoritmo a instrucciones de programa y de esta manera el programa si las puede leer y ejecutar.
-Tipos de lenguajes de programación
Clasificación según su forma de validación: bajo nivel y alto nivel.
-Bajo nivel
Consta del lenguaje maquina y del lenguaje ensamblador.
Características:
- Cercanos al hardware
- Depende de la maquina (ordenador) en la que se esté programando.
- Requiere de un número grande de instrucciones a la hora de hacer un programa.
-Lenguaje maquina:
Es aquel que programa directamente 0 y 1. Su principal ventaja es que es directo (no requiere traducción ninguna, ya que estamos utilizando el lenguaje del ordenador).
-Lenguaje ensamblador:
Es aquel que utiliza mnemotécnico (abreviaturas) para programar.
Ejemplos de mnemotécnicos: mov, cpy, push, jump. La traducción de estos mnemotécnicos a lenguaje maquina (0 y 1) lo hace el ensamblador.
-Alto nivel
Son todo lo contrario a los de bajo nivel, es decir, son independientes de la maquina en la que se ejecutan: “Lenguaje independiente del hardware”, y con lenguajes de este tipo se necesitan muchas menos instrucciones (comparado con bajo nivel)
CARACTERISTICAS:
Legibilidad: consiste en si el lenguaje tiene una sintaxis sencilla, fáciles de leer y fáciles de compilar Ortogonalidad: permite combinar en una sola instrucción diversas características del lenguaje, de esta manera se consiguen programas mas cortos y mas compactos.
Naturalidad para la aplicación: consiste en el lenguaje proporcione herramientas adecuadas para el fin para el que esta pensado.
Soporte a la abstracción: Solucionar tipos de problemas y no problemas concretos. Debe permitir que el programador pueda crear funciones y procedimientos.
Entorno de programación: Los lenguajes han de ir acompañados de un entorno donde programar.
Portabilidad de los programas: Es un lenguaje que permite crear programas que funcionen en cualquier maquina pertenezca a la plataforma que quiera, distinto fabricante, etc.
IV.- COMPILADORES E INTERPRETES
- Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la de un traductor humano, que toma un libro y produce otro equivalente escrito en otra lengua.
- Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Su acción equivale a la de un intérprete humano, que traduce las frases que oye sobre la marcha, sin producir ningún escrito permanente. Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:
Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
Un compilador suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. En cambio, un intérprete se ve obligado generalmente a analizar cada instrucción tantas veces como se ejecute (incluso miles o millones de veces).
Un intérprete permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.
V.- AMBIENTE INTEGRAL DEL LENGUAJE C