You are on page 1of 34

COMPUTACION I

Bienvenidos

Ing Jos Orlando Figueroa L.

jfiguero@unet.edu.ve

Contenido Programtico
Unidad
I. II. III. IV. V. VI. VII.

Contenido
Teora de la computacin Algoritmos y programacin estructurada Lenguaje de programacin C. Instrucciones bsicas Lenguaje de programacin C. Arreglos Lenguaje de programacin C. Punteros Lenguaje de programacin C. Funciones Lenguaje de programacin C. Estructuras de registros

Bibliografia

Desarrollo de Algoritmos. Guillermo Correa Uribe.

Programacin en C. Byron Gottfried.


Como programar en C/C++. H.M. Deitel/ P.J. Deitel . Manual de Referencia de C. Hebert Schildt . Programacin C++. Algoritmos, estructuras de datos y objetos. Luis Joyanes Aguilar.

http://members.fortunecity.com/armandocarrero/index.htm

Evaluacin

I Prueba PARCIAL 30 % Unidad I y II


70 pts Prueba PARCIAL DEPARTAMENTAL 20 pts Pruebas Cortas 10 pts Motivacin e Inters

II Prueba PARCIAL 35 %. Unidad III y IV


70 pts Prueba PARCIAL DEPARTAMENTAL 20 pts Pruebas Cortas 10 pts Motivacin e Inters

III Prueba PARCIAL 35 %. Unidad V, VI y VII

70 pts Prueba PARCIAL DEPARTAMENTAL 20 pts Pruebas Cortas 10 pts Motivacin e Inters

UNIDAD I
Teora de la Computacin
AUTOESTUDIO

Breve Resea Histrica Hardware y Software Componentes de un Computador Digital Unidad Central de Procesamiento Memoria Principal

Memoria R.A.M Memoria R.O.M

Perifricos Las Unidades de Almacenamiento de Informacin Sistema de Codificacin ASCII Sistema Numrico Binario Conversin de Decimal a Binario Conversin de Binario a Decimal Conceptos Bsicos

UNIDAD II
Algoritmos y Programacin Estructurada

Pasos para resolver un Problema mediante el uso de un Computador Diseo de Algoritmos Conceptos Bsicos Caractersticas de los Algoritmos Enunciados o formas para Escribir un Algoritmo en Seudo cdigo Pasos a seguir en la Elaboracin de Algoritmos Ejercicios Resueltos Diagramas Estructurados Ejercicios Propuestos

Descripcin del problema

Descripcin del problema: Es la definicin exacta de lo que se necesita hacer, para ello se requiere leer el enunciado cuantas veces sea necesario, hasta entenderlo completamente. Implica entender claramente el alcance y la delimitacin del mismo, de manera que el problema a resolver no sea otro distinto.

Solucin de Problemas con el Computador

1.

Anlisis del problema


Definicin del problema: Enfocar la naturaleza del problema ubicndolo en su tipologa, usuarios, alcance, cobertura, restricciones, influencia de variables externas como: normativas, decisiones gubernamentales, etc. Es importante que conozcamos exactamente que se desea del computador; mientras qu esto no se comprenda, no tiene caso pasar a la siguiente etapa.

Solucin de Problemas con el Computador


2.

Especificaciones de entrada: Determinar claramente con qu datos de entrada se dispone para la solucin del problema. Especificaciones de salida: Aclarar y determinar la informacin o resultados que se soliciten.

3.

Solucin de Problemas con la Computadora

Planificacin de la Solucin: En esta actividad es donde radica la mayor parte de la dificultad para solucionar un problema, el resto de las etapas bsicamente se circunscriben a la adaptacin para que un computador ejecute lo ordenado. Implica disear la lgica general y detallada del programa, y el uso de una tcnica como herramienta, es fundamental. Dos de las tcnicas mas comunes son las de elaborar un proceso en seudocdigo y la diagramacin de un diagrama estructurado o de flujo.

Solucin de Problemas con la Computadora

El seudo cdigo:
Representa la lgica en instrucciones, en nuestro lenguaje, semejantes a las del programa, slo que ste no tiene principios de sintaxis o reglas para formular instrucciones. El uso de enunciados o formas permitirn describir las actividades de procesamiento y sus relaciones, clculos, manipulacin de datos, operaciones lgicas, entradas y salidas. Esta tcnica tambin se conoce como diseo de ALGORITMOS. Es una herramienta de programacin en la que las instrucciones se escriben en palabras similares al ingls o espaol, que facilitan tanto la escritura como la lectura de los programas. En esencia, el pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmos

Solucin de Problemas con la Computadora

Los diagramas de flujo o los estructurados:


Se usan para ilustrar grficamente, mediante smbolos que representan estructuras preestablecidas, la lgica del programa. Con esta tcnica se logra una mejor visualizacin de los procesos y de la secuencia de los pasos a seguir. Un flujo grama es la representacin grfica de un algoritmo que resuelve un problema, los flujo gramas son muy tiles cundo se usan para disear algoritmos estructurados, que incluyen estructuras condicionales e iterativas

Solucin de Problemas con la Computadora

Prueba de Escritorio:
Llamada tambin corrida en fro, consiste en hacer un seguimiento manual, utilizando lpiz y papel, de los pasos que se definieron en el pseudocdigo y comprobar, con unos pocos datos, si el resultado que se obtiene es el esperado. Se recomienda dar diferentes datos de entrada y considerar todos los posibles casos, aun los de excepcin o no esperados, para asegurarnos de que el programa no producir errores en ejecucin cuando se presenten estos casos.

Solucin de Problemas con la Computadora

Implementacin del Algoritmo en la Computadora:


Esta etapa es relativamente mecnica y consiste en codificar el algoritmo siguiendo las reglas sintcticas y semnticas de un determinado lenguaje de programacin. Al resultado de la codificacin se denomina cdigo fuente o programa fuente. Luego de ello el programa fuente debe ser compilado y Ejecutado para verificar si los resultados obtenidos son los esperados.

Diseo de Algoritmos

La experiencia dice que, en la mayora de los casos, los programadores que se encaminan a realizar un proyecto de computacin sin tener una formulacin clara del diseo, terminan descubriendo que se les haba olvidado algn detalle preliminar, adems de que la lgica en los programas re arreglados se vuelve ms confusa. Por ello se hace hincapi en la planificacin previa al desarrollo, siendo el principal apoyo de esta planeacin el diseo de algoritmos . Posiblemente, ste termino resulte nuevo para algunos, sin embargo todos los das ejecutamos procesos algortmicos, por ejemplo: realizar una multiplicacin, calcular el promedio de una cantidad de valores, efectuar una llamada telefnica o preparar una receta de cocina.

Diseo de Algoritmos
Ejemplo: Disee un algoritmo para preparar una limonada.

INICIO 1. Buscar una jarra 2. Llenar la jarra con un litro de agua 3. Exprimir el jugo de tres limones 4. Agregar el jugo a la jarra con agua 5. Echar cuatro cucharadas de azcar a la jarra con agua 6. Remover el agua hasta disolver completamente el azcar FIN

Algoritmos, Programas y Conceptos Fundamentales


Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a la solucin de un problema. En este curso consideramos aquellos algoritmos que expresan soluciones usando reglas cuantitativas cuyas instrucciones pueden ser introducidas en la computadora, a este tipo de algoritmos se denominan

Algoritmos Computacionales.

Algoritmos, Programas y Conceptos Fundamentales


La ejecucin de un algoritmo no debe implicar una decisin subjetiva o ambigua. Una receta de cocina se puede considerar un algoritmo si describe de manera precisa la forma de preparar cierto plato, proporcionando las cantidades exactas que deben utilizarse y el tiempo que debe cocinarse.

Algoritmos, Programas y Conceptos Fundamentales


Una vez que la solucin de un problema ha sido expresada mediante un algoritmo el paso siguiente es convertirlo a programa para lo cual se elige un lenguaje de programacin. De modo que un programa resulta ser la implementacin de un algoritmo en un determinado lenguaje de programacin.

Caractersticas de los Algoritmos.


Un buen algoritmo debe poseer las siguientes cualidades:

Debe ser finito, es decir, el proceso debe terminar despus de una cantidad determinada de pasos. Un algoritmo no puede ser abierto. Cada paso debe ser definido, esto es, nada se debe dejar a la aventura ni presentar ambigedades, pues los resultados no deben depender de quien est siguiendo el proceso. Debe ser lo suficientemente flexible y general como para tener en cuenta todas la alternativas que puedan presentarse.

Caractersticas de los Algoritmos.

Puede tener cero o ms entradas de datos. El primer caso puede ocurrir en aquellos procesos matemticos en donde los valores se auto generan internamente. Debe poseer por lo menos una salida de informacin. Lo contrario indicara que no se obtiene resultado alguno. Ser ptimo, por lo que se deben minimizar la utilizacin de recursos como: tiempo, espacio, horas-hombre, mquina; sin que los resultados se vean alterados.

Conceptos Fundamentales
Variables
Son valores que pueden o no cambiar en el transcurso o ejecucin de un algoritmo. Una variable se compone de dos partes: su nombre y su valor. El nombre, es una combinacin de caracteres (letras, nmeros, smbolos especiales) y se refiere a una localidad de almacenamiento en la memoria principal y el valor trata sobre el dato numrico o cadena de caracteres que sern almacenados en la localidad a la que hace referencia el nombre. Por ejemplo:

Conceptos Fundamentales
Variables
NOMBRE
NOMBRE DE LA VARIABLE

PEDRO PEREZ
VALOR DE LA VARIABLE

Conceptos Fundamentales
Constantes:
Son todos aquellos valores que no cambian en el transcurso de un algoritmo. Estos valores pueden ser cifras numricas o cadenas de caracteres. Ejemplo:

Constantes enteras 12, 20300, 15, etc. Constantes reales 3.1416, 2345.456, etc. Constantes de carcter 'a', 'B', ';', '<', '+', etc. Constantes de cadena "Hola", "Algoritmos Computacionales", etc.

Conceptos Fundamentales
Tipos de Datos:

A nivel mquina los datos se representan internamente como una secuencia de bits (dgitos 0 y 1). Los lenguajes de alto nivel evitan estos manejos internos mediante el concepto de tipo de dato. En la mayora de los lenguajes de programacin los tipos de datos simples o primitivos se pueden clasificar como: Enteros (dato numrico sin componente decimal y puede ser positivo o negativo). Reales (dato numrico con componente decimal y puede ser positivo o negativo). Carcter (un slo carcter o Cadena en el caso de varios caracteres) Booleanos (verdadero o falso).

Conceptos Fundamentales
Expresiones Aritmticas :
Una expresin aritmtica es un conjunto de variables y/o constantes unidas o relacionadas por parntesis y operadores aritmticos.
Operador + Significado Suma

* / % = MOD Sqrt() P**N

Resta
Multiplicacin Divisin Residuo de divisin entera Raz Cuadrada Ensima potencia

Conceptos Fundamentales
Expresiones Aritmticas :
Ejemplo:

sueldoBru = sueldoBas + 0.15*montoVen numero = centenas*100 + decenas*10 + unidades e = a*b*b / 3 + (a**a + sqrt(b)) / (b + c)

Conceptos Fundamentales
Expresiones Lgicas:
Una expresin lgica o booleana es un conjunto de variables y/o constantes unidas mediante operadores lgicos y operadores relacinales.

Una expresin lgica solo puede tomar uno de dos valores: verdadero o falso. Las expresiones lgicas son ampliamente utilizadas en las estructuras selectivas y las estructuras repetitivas.

Conceptos Fundamentales
Expresiones Lgicas:
Operadores Relacionales
Operador
> >= < <= ==

Operadores Lgicos
Operador
no (not)

Significado
Mayor mayor o igual que Menor menor o igual que igual a

Significado
Negacin

y (and) o (or)

Conjuncin Disyuncin

!=

diferente de

Conceptos Fundamentales
Expresiones Lgicas:
Ejemplos:
a. B es mayor que 2. b. M es menor igual que 5 mayor que 25. c. P es igual a 6 y mayor que Q. d. N es par menor que 50. e. M es mayor que A, B y C. f. Z esta en el intervalo de 4 a 100. g. T es igual a 2, 3 4.

Conceptos Fundamentales
Expresiones Lgicas:
Ejemplos:
a) b) c) d) e) f) g) h) B>2 ( M <= 5 ) o ( M > 25 ) ( P == 6 ) y ( P > Q ) ( ( N % 2 ) == 0 ) y ( N < 50 ) (M>A)y(M>B)y(M>C) ( Z >= 4 ) y ( Z <= 100 ) ( T == 2 ) o ( T == 3 ) o ( T== 4 ) (z>4) y (z<2)

Jerarqua de operadores:

Conceptos Fundamentales

Cual ser el valor asignado a X en la Siguiente expresin? Operador Orden


()

X = 12 + 8 / 2
*, /, %

Se evalan en primer lugar Se evalan en segundo lugar

X = 20/2 8*5
+, -

X = 3*(5+2)/3 + 4*(2+1)

Se evalan en tercer lugar

Para resolver una expresin aritmtica se deben seguir las siguientes reglas: Primero se resuelven las expresiones que se encuentran entre parntesis. Se procede aplicando la jerarqua de operadores.

Al evaluar una expresin, si hay dos operadores con la misma jerarqua, se procede a evaluar de izquierda a derecha. Si hay expresiones relacionales, se resuelven primero parntesis, luego se encuentran los valores de verdad de las expresiones relacionales y por ltimo se aplica jerarqua de operadores lgicos. En caso de haber iguales, proceder de izquierda a derecha.

Ejercicios

Determine el resultado de las siguientes operaciones: x=9*(10%5+28/2*2)-50/2*(5+3)

Determine el valor de Y Y=(8=8%2*2/4 || 1 )