Presentacion general (Fundamentos de Programacion)

77
Instituto Politécnico Nacional Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan Nombre: Ramírez Monroy Manuel Grupo: 1CV2 Materia: Fundamentos de Programación Prof. Roberto Osornio Soto

Transcript of Presentacion general (Fundamentos de Programacion)

Page 1: Presentacion general (Fundamentos de Programacion)

Instituto Politécnico NacionalEscuela Superior de Ingeniería Mecánica y Eléctrica

Unidad Culhuacan

Nombre: Ramírez Monroy Manuel

Grupo: 1CV2

Materia: Fundamentos de Programación

Prof. Roberto Osornio Soto

Page 2: Presentacion general (Fundamentos de Programacion)

Definición De un Sistema Operativo

Un Sistema Operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas usados por el usuario para utilizar un computador. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos y actúa como estación para las aplicaciones que se ejecutan en la máquina.

Uno de los propósitos de un Sistema Operativo como programa estación principal, consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. Se encuentran en la mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar. (teléfonos móviles, reproductores de DVD, computadoras, radios, etc.)

Page 3: Presentacion general (Fundamentos de Programacion)

¿Cómo está conformado un sistema operativo?

Un Sistema Operativo está conformado básicamente por

cuatro módulos:

Núcleo o Kernel. Administrador de memoria. Sistema de entrada/salida. Administrador de archivos.

Page 4: Presentacion general (Fundamentos de Programacion)

Núcleo Es el módulo de más bajo nivel de un sistema operativo, pues

descansa directamente sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una vía de comunicación entre los distintos programas. En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un submódulo denominado "planificador", el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas.

Page 5: Presentacion general (Fundamentos de Programacion)

Administrador de memoria

Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De este modo, cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es.

Page 6: Presentacion general (Fundamentos de Programacion)

Sistema de entrada/salida (E/S)

Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.

Page 7: Presentacion general (Fundamentos de Programacion)

Administrador de archivos

Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.

Page 8: Presentacion general (Fundamentos de Programacion)

Características De un Sistema Operativo

Permitir la concurrencia de procesos, traslapándose el tiempo de entrada/salida (E/S) con el de cálculo y ocupando la memoria con varios programas.

Posibilitar la ejecución de cualquier proceso en el momento que se solicite siempre y cuando haya suficientes recursos libres para él.

Ser eficiente en cuanto a reducir: el tiempo medio que ocupa cada trabajo, el tiempo que no se usa la CPU, el tiempo de respuesta en sistemas multiacceso y el plazo entre dos asignaciones de CPU a un mismo programa.

Ser eficiente en cuanto a aumentar la utilización de recursos en general, tales como memoria, procesadores, dispositivos de E/S, discos magnéticos, datos, etc.

Ser fiable, es decir, un sistema operativo no debe tener errores y debe prever todas las posibles situaciones.

Ser de tamaño pequeño. Posibilitar y facilitar en lo posible el "diálogo" entre computadora y usuario

de la misma. Permitir compartir entre varios usuarios los recursos de hardware con que

cuenta una computadora. Permitir a los usuarios compartir datos entre ellos, en caso necesario. Facilitar la E/S de los diferentes dispositivos conectados a una

computadora.

Page 9: Presentacion general (Fundamentos de Programacion)

Funciones De un Sistema Operativo

Aceptar los trabajos y conservarlos hasta su finalización. Detectar errores y actuar de modo apropiado en caso de que se produzcan. Controlar las operaciones de E/S. Controlar las interrupciones. Planificar la ejecución de tareas. Entregar recursos a las tareas. Retirar recursos de las tareas. Proteger la memoria contra el acceso indebido de los programas. Soportar el multiacceso. Proporcionar al usuario un sencillo manejo de todo el sistema. Aprovechar los tiempos muertos del procesador. Compartir los recursos de la máquina entre varios procesos al mismo tiempo. Administrar eficientemente el sistema de cómputo como un todo armónico. Permitir que los diferentes usuarios se comuniquen entre sí, así como protegerlos

unos de otros. Permitir a los usuarios almacenar información durante plazos medianos o largos. Dar a los usuarios la facilidad de utilizar de manera sencilla todos los recursos,

facilidades y lenguajes de que dispone la computadora. Administrar y organizar los recursos de que dispone una computadora para la mejor

utilización de la misma, en beneficio del mayor número posible de usuarios. Controlar el acceso a los recursos de un sistema de computadoras.

Page 10: Presentacion general (Fundamentos de Programacion)

Clasificación De un Sistema Operativo

Debido a la evolución de los sistemas operativos fue necesario realizar una

clasificación; considerando las diferencias existentes entre sus

componentes los podemos clasificar en: Sistemas operativos por lotes.

Sistemas operativos multiprogramación. Sistemas operativos multiusuario.

Sistemas operativos de tiempo compartido. Sistemas operativos de tiempo real.

Page 11: Presentacion general (Fundamentos de Programacion)

Sistemas operativos por lotes

Los sistemas operativos por lotes requieren que la información esté reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de admisión, según el modelo de "primero en llegar primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas transitorios para su ejecución. Cuando termina la ejecución de un programa se carga un nuevo programa en la misma zona de memoria

Page 12: Presentacion general (Fundamentos de Programacion)

Sistemas operativos multiprogramación

Los sistemas de multiprogramación son capaces de soportar dos o más procesos concurrentes múltiples, permiten que residan al mismo tiempo en la memoria primaria las instrucciones y los datos procedentes de dos o más procesos. Estos sistemas implican la operación de multiproceso, para el manejo de la información. Se caracterizan principalmente por un gran número de programas activos simultáneamente que compiten por los recursos del sistema, como el procesador, la memoria , y los "dispositivos de E/S". Estos sistemas monitorean el estado de todos los programas activos y recursos del sistema.

Page 13: Presentacion general (Fundamentos de Programacion)

Sistemas operativos multiusuario

Los sistemas operativos multiusuario permiten acceder simultáneamente a un sistema de computadoras a través de dos o más terminales. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente.

Page 14: Presentacion general (Fundamentos de Programacion)

Sistemas operativos de tiempo compartido

Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo de los recursos comunes para dar la impresión a los usuarios de que poseen una computadora independiente. En estos sistemas el administrador de memoria proporciona aislamiento y protección de los programas, ya que generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la asignación a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El administrador de archivos proporciona protección y control en el acceso de la información, dada la posibilidad de concurrencia y conflictos al tratar de acceder a los archivos.

Page 15: Presentacion general (Fundamentos de Programacion)

Sistemas operativos detiempo real

Estos sistemas tienen como objetivo proporcionar tiempos más rápidos de respuesta, procesar la información sin tiempos muertos. En estos sistemas el administrador de memoria es relativamente menos solicitado debido a que muchos procesos residen permanentemente en memoria. El administrador de archivos se encuentra normalmente en grandes sistemas de tiempo real y su objetivo principal es manejar la velocidad de acceso, más que la utilización eficaz del almacenamiento secundario.

Page 16: Presentacion general (Fundamentos de Programacion)

Bibliografía

http://entrenate.dgsca.unam.mx/introduccion/sistoper.html

Page 17: Presentacion general (Fundamentos de Programacion)

MS-DOS

MS-DOS (Sistema operativo de disco de Microsoft)

Desarrollado en 1981 y lanzado en 1982 para la IBM PC

Su desarrollo se detuvo en el año 2000

Era un sistema monousuario, es decir, no da la posibilidad de que distintos usuarios desde distintos puestos puedan trabajar simultáneamente sobre un único S.O.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 18: Presentacion general (Fundamentos de Programacion)

Posee la siguiente estructura:

1. Sistema de entrada/salida.Contiene el tratamiento de la e/s y el sistema de gestión

de ficheros.

2. Procesador de comandos.Permite la relación entre el usuario y el resto de las

partes del sistema. Traduce los comandos y los ejecuta.

3. UtilitariosSon los comandos externos y se usan para tareas

como:- Formatear y copiar discos.

-Comparar ficheros.

- Observar el árbol de subdirectoriosjueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 19: Presentacion general (Fundamentos de Programacion)

Windows

Es una serie de sistemas operativos desarrollados por Microsoft desde 1981, año en que el proyecto se denominaba "Interface Manager".

Se comercializo hasta 1985

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 20: Presentacion general (Fundamentos de Programacion)

Sistema de archivos

El sistema de archivos utilizado por estos sistemas operativos comenzó siendo FAT16 o simplemente FAT. La primera versión de Windows en incorporar soporte nativo para FAT32 fue Windows 95 OSR2. Por otro lado, los Sistemas Operativos basados en NT emplean los sistemas de archivos NTFS desde el origen y a partir de Windows 2000 se otorgó también soporte para FAT32.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 21: Presentacion general (Fundamentos de Programacion)

Versiones

Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble clic con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 22: Presentacion general (Fundamentos de Programacion)

Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciones para mejorar la eficacia del trabajo.

Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 23: Presentacion general (Fundamentos de Programacion)

Caracteristicas

Es un sistema operativo de interfaz gráfica de ordenadores personales.

Es el más utilizado por su fácil manejo. Principalmente se utiliza en

computadoras personales. Garantiza mayor compatibilidad con

Software. Garantiza mayor compatibilidad con

Hardware.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 24: Presentacion general (Fundamentos de Programacion)

Linux

LINUX es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) mas un gran número de programas /librerías que hacen posible su utilización.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 25: Presentacion general (Fundamentos de Programacion)

Características principales del LINUX

Multitarea La palabra multitarea describe la

habilidad de ejecutar varios programas al mismo tiempo.

Multiusuario Muchos usuarios usando la misma

máquina al mismo tiempo.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 26: Presentacion general (Fundamentos de Programacion)

Multiplataforma Las plataformas en las que en un principio se

puede utilizar Linux son 386, 486, Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

Multiprocesador Soporte para sistemas con mas de un

procesador está disponible para Intel y SPARC. Protección de la memoria entre procesos de

manera que uno de ellos no pueda colgar el sistema.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 27: Presentacion general (Fundamentos de Programacion)

Gestión de Memoria La memoria se gestiona como un

recurso unificado para los programas de usuario y para la caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 28: Presentacion general (Fundamentos de Programacion)

Bibliografía

http://educa.di.unc.edu.ar/course/info.php?id=162 http://www.palomatica.info/juckar/microsoft/msdos/b

asico/caracteristicas_generales.html http://grupos.emagister.com/documento/que_es_wi

ndows/6954-289968 http://es.wikipedia.org/wiki/MS-DOS http://www.alegsa.com.ar/Dic/ms-dos.php http://www.hispazone.com/Articulo/97/MS-DOS-%2

8I%29:-La-historia-del-sistema-operativo.html

jueves 13 de abril de 2023

1.1.2. Análisis comparativo de Sistemas Operativos

Page 30: Presentacion general (Fundamentos de Programacion)

jueves, 13 de abril de 2023

1.1.2.Análisis comparativo de Sistemas Operativos

http://www.monografias.com/trabajos/manualdos/manualdos.shtml

http://www.mailxmail.com/curso-linux-unix/linux-unix-introduccion-caracteristicas

http://es.wikipedia.org/wiki/GNU/Linux http://linux.ciberaula.com/articulo/que_es_

linux/

Page 31: Presentacion general (Fundamentos de Programacion)

DEFINICION

Es un lenguaje artificial para controlar una maquina o crear programas mediante conjunto de instrucciones y reglas de sintaxis(coordinar), para que estos se pongan a disposición del programador para que este pueda comunicarse con los dispositivos de hardware y software.

Page 32: Presentacion general (Fundamentos de Programacion)

CARACTERISTICASIndependencia: Los lenguajes deben ser

independientes de la máquina o sea una sentencia no depende del diseño de hardware de una computadora en particular.

Corrección: Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo.

Claridad: Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento.

Eficiencia: Se trata de que el programa, además de realizar aquello para lo que fue creado lo haga gestionando de la mejor forma posible los recursos que utiliza.

Portabilidad: Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elaboró.

Page 33: Presentacion general (Fundamentos de Programacion)

IMPLEMENTACIONLa implementación de un lenguaje es

la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje

Page 34: Presentacion general (Fundamentos de Programacion)

Compilación Interpretación

Es el proceso que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz interpretar.

Es una asignación de significados a las fórmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas de símbolos sin ningún significado. Una interpretación otorga significado a esas fórmulas.

Page 35: Presentacion general (Fundamentos de Programacion)

Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina.

Los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador.

ANTECEDENTES HISTORICOS

Page 36: Presentacion general (Fundamentos de Programacion)

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD, SUB, MUL, CALL, etc. A este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.

Page 37: Presentacion general (Fundamentos de Programacion)

La primera programadora de computadora conocida fue Ada Lovelace, quien, después conoció a Charles Babbage, tradujo y amplió una descripción de su máquina analítica.

Page 38: Presentacion general (Fundamentos de Programacion)

A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar la computadora central IBM 704.

El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957.

En 1960, se creó COBOL, uno de los lenguajes usados aún en 2010 en informática de gestión.

se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980.

Page 39: Presentacion general (Fundamentos de Programacion)

FUNCIONES DE LOS LENGUAJES DE PROGRAMACIÓN

“Para que se realize dicho procesamiento de información habra sido necesario construir un ordenador (hardware), pensar y crear un programa (software) y ejecutar dicho programa o aplicacion en el computador.La ultima de estas fases es la que realiza el usuario, las anteriores son realizadas por tecnicos que construyen el hardware y por programadores que desarrollan el software.”

Page 40: Presentacion general (Fundamentos de Programacion)

Para que sirven los lenguajes de programación…?

Los leguajes de programación han servido de mucho y mas en la actualidad para satisfacer necesidades tecnológicas, por que al paso del tiempo han evolucionado y con ello las mejoras son cada vez mas, por que en base estos leguajes de programación se ha escrito una infinidad de programas desde el mas sencillo hasta el mas sofisticado.

Page 41: Presentacion general (Fundamentos de Programacion)

ejemplo Java: diseñado por la compañía Sun

Microsystems Inc, con el propósito de crear un lenguaje que pudiera funcionar en redes computacionales heterogéneas ( redes de computadoras formadas por más de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.) y que fuera independiente de la plataforma en la que se vaya a ejecutar. Esto significa que un programa de Java puede ejecutarse en cualquier máquina o plataforma.

Page 43: Presentacion general (Fundamentos de Programacion)

Intérprete: Es un programa que lee línea a línea un programa escrito en un lenguaje (código fuente), y lo va traduciendo a un código intermedio, para ejecutarlo. Compilador: Es un programa que lee totalmente un programa escrito en un lenguaje (código fuente), y lo traduce a un programa equivalente en otro lenguaje: el lenguaje objeto.

Page 44: Presentacion general (Fundamentos de Programacion)

Lenguajes de nivel bajo y alto 

Los lenguajes de nivel de máquina y los de ensamblador se clasifican como lenguajes de nivel bajo. Esto se debe a que ambos utilizan instrucciones que están vinculadas directamente a un tipo de computadora.

Un lenguaje de nivel alto utiliza instrucciones similares a las de los lenguajes escritos, como el inglés, y se pueden ejecutar en diversos tipos de computadoras. FORTRAN, BASIC, Pascal y C++ son ejemplos de lenguajes de nivel alto.

Page 45: Presentacion general (Fundamentos de Programacion)

A los programas escritos en un lenguaje de computadora de nivel alto o bajo se les conoce de manera indistinta como programas fuente o código fuente.

#include <stdio.h>#include <conio.h>

void main(){

        printf("Hola mundo!...\n");        getch();

}

Page 46: Presentacion general (Fundamentos de Programacion)

Cuando cada instrucción en un programa fuente de nivel alto se traduce de manera individual y se ejecuta inmediatamente al momento de la traducción, el lenguaje de programación utilizado se llama lenguaje interpretado, y el programa que efectúa la traducción se llama intérprete.

Cuando todas las instrucciones en un programa fuente de nivel alto se traducen como una unidad completa antes de que cualquier instrucción sea ejecutada, al lenguaje de programación utilizado se le llama lenguaje compilado. En este caso, al programa que efectúa la traducción se le llama compilador.

Page 47: Presentacion general (Fundamentos de Programacion)

Puede haber versiones tanto compiladas como interpretadas de un lenguaje, aunque generalmente una predomina.

Por ejemplo, aunque existen versiones compiladas de BASIC, éste es predominantemente un lenguaje interpretado.

De la misma forma, aunque existen versiones interpretadas de C++, éste es básicamente un lenguaje compilado.

Page 48: Presentacion general (Fundamentos de Programacion)

Intérpretes vs compiladores

INTERPRÉTES COMPILADORES

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

1.- 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).

2.- Un intérprete necesita menos memoria que un compilador.

2.- Un compilador necesita más memoria que un intérprete.

Page 49: Presentacion general (Fundamentos de Programacion)

Intérpretes vs compiladores

INTERPRÉTES COMPILADORES

3.- 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. Los lenguajes que incluyen este tipo de operadores, por tanto, exigen un intérprete.

3.- Usualmente, este tipo de instrucciones es imposible tratarlos por medio de compiladores. Los lenguajes que permiten el uso de un compilador, prescinden de este tipo de operadores.

4.- En el caso del intérprete, es necesario disponer de él para ejecutar el programa.

4.- Se compila una vez, se ejecuta n veces (Genera un archivo ejecutable directamente por la computadora).

5.- Permiten una mayor interactividad con el código en tiempo de desarrollo.

5.- El compilador tiene una visión global del programa, por lo que la información de mensajes de error es más detallada.

Page 50: Presentacion general (Fundamentos de Programacion)

AMBIENTE INTEGRAL DEL LENGUAJE C

C es un lenguaje sencillo y profundo, pues maneja elementos básicos presentes en todas las computadoras: caracteres, números y direcciones. Suele ser llamado lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, de igual forma se pueden desarrollar cualquier tipo de aplicación.

Page 51: Presentacion general (Fundamentos de Programacion)

El hecho de no poseer operaciones de entrada-salida, manejo de arreglo de caracteres, de asignación de memoria, etc., puede al principio parecer un grave defecto; sin embargo el hecho de que estas operaciones se realicen por medio de llamadas a Funciones contenidas en Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de portabilidad, independizándolo del "Hardware" sobre el cual corren los programas.

Page 52: Presentacion general (Fundamentos de Programacion)

El lenguaje de programación en C está compuesto o integrado por: Librerías: son grupos de funciones ya determinadas por el programa, la cual contiene 29 archivos de cabecera (conio.h, stdio.h, etc.)

Palabras reservadas: que son palabras personales del programa (char, if, else, int, float, etc.)

Page 53: Presentacion general (Fundamentos de Programacion)

El lenguaje de programación en C está compuesto o integrado por: 

Funciones hechas por el usuario: son funciones hechas por el usuario, pero que tiene que declarar en el programa.

Estructuras de control de flujo: que está compuesta por ciclos (tales como: for, while, do- while), decisiones (como if, if – else – if , switch), saltos (como goto). Tipos de datos: Los más usuales son: char, int, float, double, void, enum, long… 

Page 54: Presentacion general (Fundamentos de Programacion)

Estructura de un programa en C

La mejor manera de aprender a programar en un lenguaje es programando con él, mediante editar, compilar, corregir y ejecutar pequeños programas descriptivos.

/*Programa hola mundo*/

#include <stdio.h>#include <conio.h>

void main()

{printf("Hola mundo!...\n"); getch();}

Page 55: Presentacion general (Fundamentos de Programacion)

Descripción de las funciones:

Función main ( ).La función main, indica donde empieza el programa, es la que ejecuta el sistema operativo al llamar a un programa C. La función main siempre va seguida de paréntesis ( ), tanto si tiene argumentos como si no.

Las llaves { }El cuerpo principal de un conjunto de sentencias está delimitado por dos llaves, una inmediatamente después de la declaración main() " { ", y otra que finaliza el listado " } ".

Page 56: Presentacion general (Fundamentos de Programacion)

Descripción de las funciones:

Función printfLos programas en C se inician de la misma manera o parten del mismo punto: ya que la primer sentencia dentro de dicha función, en este caso printf ("......"). Dicha función sirve para imprimir en la pantalla lo que solicitamos.

El símbolo \nEl símbolo \n indica un cambio de línea, que permite que el cursor avance a la posición extrema izquierda de la línea siguiente.

Page 57: Presentacion general (Fundamentos de Programacion)

Descripción de las funciones:

El símbolo ;Cada sentencia del programa queda finalizada por el terminador “;", que indica al compilador el fin de la misma. Es necesario pues las sentencias complejas pueden llegar a tener más de un renglón, y habrá que avisarle al compilador donde termina.

Comentarios Para C se toma como comentario todo carácter interno a los símbolos: /* */. Los comentarios pueden ocupar uno o más renglones.

Page 58: Presentacion general (Fundamentos de Programacion)

bibliografía

http://www.alegsa.com.ar/Dic/compilador.php http://www.di.uniovi.es/~labra/FTP/Interpretes.pdf

http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html

http://www.mitecnologico.com/Main/ComparacionInterpretesYCompiladores

http://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)

Page 59: Presentacion general (Fundamentos de Programacion)

ESTRUCTURA GENERAL DE UN PROGRAMA

Un programa puede considerarse como una secuencia lógica de acciones (instrucciones) que manipulan un conjunto de objetos (datos) para obtener unos resultados que serán la solución al problema que resuelve dicho programa.

Todo programa, en general contiene dos bloques bien diferenciados para la descripción de los dos aspectos anteriormente citados:

Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa (constantes, variables, tablas, registros, archivos, etc.) indicando las características de estos. Este bloque se encuentra localizado siempre por delante del comienzo de las acciones.

Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de realizar para la obtención de los resultados deseados.

 

Page 60: Presentacion general (Fundamentos de Programacion)

PARTES PRINCIPALES DE UN PROGRAMA

Las partes principales de un programa están relacionadas con sus dos bloques ya mencionados. Dentro del bloque de instrucciones podemos diferenciar tres partes fundamentales, como se muestra en la siguiente figura:

PROGRAMA

INSTRUCCIONES DECLARIACIONES

ENTRADA DE DATOSPROCESO O ALGORITMOSALIDA DE RESULTADOS

Page 61: Presentacion general (Fundamentos de Programacion)

INTRUCCIONES

Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada desde un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados.

Proceso o algoritmo: Está formado por las instrucciones que modifican los objetos a partir de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los objetos que lo contiene disponibles en la memoria principal.

Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal y los envían a los dispositivos externos.

Page 62: Presentacion general (Fundamentos de Programacion)

CRACTERISTICAS DE UN PROGRAMA

Para un determinado problema se pueden construir diferentes algoritmos de resolución o programas. La elección del más adecuado se debe basar en una serie de requisitos de calidad que adquieren gran importancia a la hora de evaluar el costo de su diseño y mantenimiento.

Las características generales que debe reunir un programa son las siguientes:

LEGIBILIDAD : Ha de ser claro y sencillo, de tal forma que facilite su lectura y compresión.

PORTABILIDAD: Su diseño debe permitir la codificación en diferentes lenguajes de programación, así como su instalación en diferentes sistemas.

Page 63: Presentacion general (Fundamentos de Programacion)

MODIFICABILIDAD: Ha de facilitar su mantenimiento, esto es, las modificaciones y actualizaciones necesarias para adaptarlo a una nueva situación.

EFICIENCIA : Se deben aprovechar al máximo los recursos de la computadora, minimizando la memoria utilizada y el tiempo de proceso o ejecución, siempre que no sea a costa de los requisitos anteriores.

Metodología De La Programación:Es el conjunto de métodos y técnicas disciplinadas que

ayudan al desarrollo de unos programas que cumplan los requisitos anteriormente expuestos.

Los métodos propuestos utilizados, tanto explicita como implícitamente, son el método de programación modular y el de programación estructurada.

Page 64: Presentacion general (Fundamentos de Programacion)

MODULARIDAD: El diseño modular, descendente o mediante refinamientos sucesivos (top-down, stepwise refinamente) se basa en la realización de una serie de descomposiciones sucesivas del algoritmo inicial, que describen el refinamiento progresivo del repertorio de instrucciones que van a constituir el programa.

Un programa quedara formado por una serie de módulos, cada uno de los cuales realiza una parte concreta de la tarea total.

ESTRUCTURACION: Se basa en el uso exclusivo de las estructuras secuencia, alternativa e iteración para el control de flujo de ejecución de las instrucciones. Los programas así diseñados serán fáciles de verificar, depurar y mantener.

 

Page 65: Presentacion general (Fundamentos de Programacion)

ESTRUCTURA DE UN PROGRAMA EN “C”

Todo programa en C, desde el más pequeño hasta el más complejo, tiene una función principal denominada main(). Además, por encima de main() deben aparecer los prototipos de funciones (y esto implica a los archivos de cabecera, si se utilizan funciones de librería) y las variables y constantes globales, si las hay. Por debajo de main() encontraremos el código del resto de funciones.

Por lo tanto, la estructura habitual de nuestros programas en C debería ser esta:

/* Comentario inicial: nombre del programa, del programador, fecha, etc */

/* Archivos de cabecera (prototipos de funciones de librería) */

Page 66: Presentacion general (Fundamentos de Programacion)

#include <archivo_cabecera.h> #include <archivo_cabecera.h>

/* Prototipos de funciones escritas por nosotros */

float función1 (argumentos); float función2 (argumentos);

/* Variables y constantes globales */

int variable_global; const char constante_global; #define PI 3.14

/* Algoritmo principal */ int main(void)

Page 67: Presentacion general (Fundamentos de Programacion)

{

/* Variables locales del algoritmo principal */ int a, b;float x, y; ....../* Instrucciones del algoritmo principal */...función1(argumentos);...función2(argumentos); ...return 0;

}

Page 68: Presentacion general (Fundamentos de Programacion)

BIBLIOGRAFIA

www.paginasprodigy.com.mx/robertooso

members.fortunecity.es/akiramishima1/programacionconc.doc

  http://profeblog.es/blog/alfredo/2008/03/27/estructura-general-de-un-programa-en-c/

Page 69: Presentacion general (Fundamentos de Programacion)

Definición De un Dato

Se denominan DATOS a las características

propias de cualquier identidad. Por ejemplo, la edad y el domicilio de una persona forman parte de sus datos.Los programas procesan datos a fin de obtener resultados o información útiles.Cada variable, constante o expresión lleva asociado un tipo de datos que determina el conjunto de valores que pueden tomar.

Page 70: Presentacion general (Fundamentos de Programacion)

¿Qué es un caracter?

Son objetos cuyo valor permanece invariablemente a lo largo de la ejecución de un programa. Una constante es la determinación de un valor concreto, de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo.

¿QUÉ ES UNA VARIABLE?

Son los objetos cuyo valor puede ser modificado a lo largo de la ejecución de un programa.

Page 71: Presentacion general (Fundamentos de Programacion)

Tipo Numérico Entero Es un subconjunto de los números enteros cuyo rango o tamaño dependen del lenguaje y computadora utilizada.Los datos de este tipo se expresan mediante una cadena de dígitos que pueden ir precedidos de signo + o -.

EJEMPLOS: 1987 -12 +3300.

Tipo Numérico Real

Es un subconjunto de los números reales limitado no solo en cuanto a cuyo tamaño, sino también en cuanto a la precisión.Se expresan de dos maneras diferentes denominadas notación de punto fijo y notación exponencial. En la primera, un valor consiste en una cadena de dígitos que pueden ir precedidos de signo + o – y un punto decimal intermedio.

EJEMPLOS: 97.84 -12.00 +0.5

Page 72: Presentacion general (Fundamentos de Programacion)

Tipo Carácter

Es un conjunto formado por todos los caracteres o símbolos de que dispone la computadora. Se expresan mediante el carácter colocado entre comillas o apostrofes.

El conjunto de los caracteres está formado por:

Los caracteres alfabéticos mayúsculas; “A”, “B”, “C”, “D”, ... , “Z”. Los caracteres alfabéticos minúsculas; “a”, “b”, “c”, “d”, ... , “z”. Los caracteres dígitos; “1”, “2”, “3”, “4”, ... , “9”. Los caracteres especiales; “ ”, “+”, “-”, “*”, ... , “¿”.

EJEMPLOS: “ALCALA” “28035”

Page 73: Presentacion general (Fundamentos de Programacion)

TAMAÑOS

TIPO DE DATOS TAMAÑO EN BITS

El tamaño de un int es de 32 bits

El tamaño de un float es de 32 bits

El tamaño de un char es de 8 bits

Page 74: Presentacion general (Fundamentos de Programacion)

DECLARACION INT

Page 75: Presentacion general (Fundamentos de Programacion)

DECLARACION FLOAT

Page 76: Presentacion general (Fundamentos de Programacion)

DECLARACION CHAR

Page 77: Presentacion general (Fundamentos de Programacion)

BIBLIOGRAFIA

http://zarza.usal.es/~fgarcia/doc/tuto2/II_2.htm

http://alex-sc-coral.blogspot.com/2009/02/tipos-de-datos-y-modificadores_03.html

www.paginasprodigy.com.mx/robertooso

Libro “Metodologia de la programación”Autor Luis Joyanes AguilarEd. McGrawHill