viernes, 30 de enero de 2009
Resumen del capitulo 2
Las fases de resolución de un problema con computadoras son:
Análisis del problema
Diseño de algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración
Diseño de un Algoritmo
se determina como hace el programa la tarea solicitada. Los métodos mas eficaces para el proceso de diseño se basa en el conocido DIVIDE Y VENCERAS un problema complejo se soluciona dividiendo en problemas y subproblemas y a la vez estos subproblemas en otros de nivel mas bajo hasta que pueda ser implementada una solución en la computadora.
Codificación de un Programa
es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas presedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programacion utilizado para su implementacion, el codigo puede ser escrito con igual facilidad en un lenguaje o en otro.
Compílacion y ejecucion de un programa
Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacion se realiza con un programa editor. Posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.
Verificacion y depuracion de un programa
Es el proceso de ejecución del programa con una aplia variedad de datos de entrada, llamados datos de test o prueba. que determinaran si el programa tiene errores (bugs).La depuracion es el proceso de encontrar errores del programa y corregir o eliminar dichos errores.Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1. Errores de compilacion. se producen normalmente por uso incorrecto de las reglas de lenguaje de programacion y suelen ser errores de sintaxis.
2. Errores de ejecucion. Estos errores se prodecen por instrucciones que las computadoras pueden comprender pero no ejecutar.
3. Errores logicos. Se producen en la logica del programa y fuente del error suele ser el diseño del algoritmo.
Documentacion y mantenimiento
La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolución de dicho problema. La importancia de la documentación debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difíciles de leer, mas difíciles de depurar y casi imposibles de mantener y modificar.La documentación de un programa puede ser interna y externa. la documentación interna es la contenida en líneas de comentarios. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigo,
Programacion Modular
La programación modular es uno de los métodos de diseño mas flexible y potente para mejorar la productividad de un programa.. Cada uno de estos módulos se analiza, codifica y pone a punto por separado.
Programación Estructurada
Significa escribir un programa de acuerdo a las siguientes reglas:
El programa tiene un diseño modular.
Los módulos son diseñados de modo descendente.
Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección repetición.
Concepto y características del Algoritmo
El objetivo fundamental es enseñar a resolver problemas mediante una computadora.
Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un numero finito de pasos.
Escritura de Algoritmos
El sistema para describir (<>) un algoritmo consiste en realizar una descripción paso a paso con un lenguaje natural del citado algoritmo. Un algoritmo es un método o conjunto de reglas para solucionar un problema. En cálculos elementales estas reglas tienen las siguientes propiedades:
deben estar seguidas de alguna secuencia definida de pasos hasta que se obtenga un resultado coherente.
solo puede ejecutarse una operación a la vez.
Representación Grafica de Algoritmos
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Para conseguir este objetivo se precisa que el algoritmo sea representado grafica o numéricamente, Los métodos usuales para representar un algoritmo son:1. diagrama de flujo.2. diagrama N-S (Nassi- Schneiderman),3. Lenguaje de especificación de algoritmos: pseudocódigo,4. lenguaje español, ingles...5. Formulas
Pseudocódigo
El pseudocodigo es un lenguaje de especificación (descripcion) de algoritmos. El uso de tal lenguaje hace el paso de codificación final relativamente facil. Los lenguajes APL Pascal y Ada se utilizan a veces como lenguajes de especificacion de algoritmos.
Diagrama de flujo
Un diagrama de flujo (flowchart) es una de las tecnicas de representacion de algoritmos mas antigua y a la vez mas utilizada, aunque su empleo ha disminuido considerablemente, sobre todo, desde la aparicion de lenguajes de programacion estructurados. un diagrama de flujo es un diagrama que utiliza los simbolos (cajas) estandar y que tiene los pasos de algoritmo escritos en esas cajas unidas por flechas, denominadas lineas de flujo, que indican la secuencia en que se debe ejecutar.
Diagramas Nessi Schneiderman (Tarea)
diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripcion textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo. Es una representación gráfica de un algoritmo para programación estructurada. Desarrollados en 1972 por Isaac Nassi y Ben Shneiderman, estos diagramas también son conocidos como estructogramas debido a que muestran las estructuras de un programa.
Métodos Formales de verificaciones de programas.
Aunque la verificacion formal se sale fuera del ambito, por su importancia se van a tomar dos conceptos clave, asertos (afirmaciones) y precondiciones/postcondiciones invariantes que ayudan a documentar, corregir y clarificar el diseño de modulos y de programas.
Aserciones
Un aserto es una frase sobre una condicion especifica en un cierto punto de un algoritmo o programa.
Precondiciones y postcondiciones
Son afirmaciones sencillas sobre condiciones al principio y al final de los módulos. Una precondicion de un procedimiento es una afirmación lógica sobre sus parámetros de entrada. Una postcondicion de un procedimiento puede ser una afirmación lógica que describe el cambio en el estado del programa producido por la ejecución del procedimiento.
Métodos Formales de verificaciones de programas.
Aserciones
Una parte importante de una verificacion formal es la documentacion de un programa a traves de asertos o afirmaciones-sentencias logicas acerca del programa que se declaran <
Un aserto es una frase sobre una condicion especifica en un cierto punto de un algoritmo o programa.
Precondiciones y postcondiciones
Son afirmaciones sencillas sobre condiciones al principio y al final de los modulos. Una precondicion de un procedimiento es una afirmacion logica sobre sus parametros de entrada; se supone que es verdadera cuando se llama al procedimiento. una postcondicion de un procedimiento puede ser una afirmacion logica que describe el cambio en el estado del programa producido por la ejecucion del procedimiento; la postcondicion describe el efecto de llamar al procedimiento. En otras palabras, la postcondicion indica que sera verdadera despues de que se ejecute el procedimiento.
Diagrama de flujo
- proceso
- fin
- decision
- entrada/salida
- conectores
- direccion del flujo
Pseudocódigo
El pseudocodigo nacio como un lenguaje similar al ingles y era un medio de representar basicamente las estructuras de control de programacion estructurada. El pseudocodigo tiene que traducirse posteriormente a un lenguaje de programacion y no puede ser ejecutado por una computadora. La ventaja es que en su uso, en la planificacion de un programa, el programador se puede concentrar en la logica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especifico otra ventaja es que puede ser traducido facilmente a lenguajes como Pascal, C, FORTRAN 77/90, C++, Java, C#, etc.
Utiliza para representar las acciones sucesivas palabras reservadas en ingles-similares a sus homonimas en los lenguajes de programacion-, tales como start, end, stop, if then-else, while-end, repeat-until, etc.
ejemplo:
start
//calculo de impuesto y salarios
read nombre, horas, precio_hora
tasas- 0,25 * salario_bruto - tasas
write nombre, salario_bruto, tasas, salario_neto
end
Representación Grafica de Algoritmos
Los metodos usuales para representar un algoritmo son:
1. diagrama de flujo.
2. diagrama N-S (Nassi- Schneiderman),
3. lenguaje de especificacion de algoritmos: pseudocodigo,
4. lenguaje español, ingles...
5. formulas
Las formulas para la solucion de una ecuacion cuadratica (de segundo grado) son un medio sucinto de expresar el procedimiento algoritmico que se debe ejecutar para obtener las raices de una ecuacion que significa lo siguiente:
1. Elevar al cuadrado b
2. Tomar a; multiplicar por c; multiplicar por 4.
3. Restar el resultado obteniendo de 2 del resultado de 1, etc.
Escritura de Algoritmos
- deben estar seguidas de alguna secuencia definidade pasos hasta que se obtenga un resultado coherente.
- solo puede ejecutarse una operacion a la vez.
el flujo de control usual de un algoritmo es secuencial: consideremos el algoritmo general de modo similar a:
ir al cine
comprar una entrada (billete o ticket)
ver la pelicula
regresar a casa
Resumen del capitulo 1
Hardware: parte física de una computadora (dispositivos electrónicos).
Software: parte lógica de una computadora (programas)
Las computadoras se componen de:
- Dispositivos de entrada/salida (E/S)
- Unidad Central de Proceso (Unidad de Control y Unidad Lógica y Aritmética)
- Memoria central
- Dispositivo de almacenamiento masivo de información (memoria auxiliar o externa)
El software del sistema comprende, entre otros, el sistema operativo Windows, Linux, en computadoras personales y los lenguajes de programación. Los lenguajes de programación de alto nivel están diseñados para hacer más fácil la escritura de programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de programación cada uno de los cuales tiene sus propias características y funcionalidades y normalmente son mas fáciles de transportar a maquinas diferentes que los escritos en lenguajes de bajo nivel.
Los programas escritos en lenguajes de alto nivel deben ser traducidos por un compilador antes de que se puedan ejecutar en una maquina especifica. En la mayoría de los lenguajes de programación se requiere un compilador para cada maquina en la que se desea ejecutar a programas escritos en un lenguaje especifico...
Los lenguajes de programación se clasifican en:
- alto nivel: Pascal, FORTRAN, Visual Basic, C, Ada, Modula-2, C++, Java, Delphi, C#, etc.
- bajo nivel: Ensamblador.
- Maquina: Código maquina.
- diseño de Web: SMGL, HTML, XML, PHP,…
Los programas traductores de lenguaje son:
- Compiladores
- Interpretes
C es un lenguaje de programación que contiene excelentes características como lenguaje para aprendizaje de programación y lenguaje profesional de propósito general; básicamente es un entorno de programación con editor y compilador incorporado.
Concepto y características del Algoritmo
las caracteristicas fundamentales que debe cumplir todo algoritmo son:
- Un algoritmo debe ser preciso e indicar el orden de realizacion de cada paso.
- Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
- Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algun momento; o sea, debe tener un numero finito de pasos.
La definicion de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendra:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboracion de la receta en la cocina.
Salida: terminacion del plato (por ejemplo, cordero).
jueves, 29 de enero de 2009
Tarea Algoritmos 2.1. y 2.2.
a) Realizar una llamada telefónica desde un teléfono público.
- Inicio
- ver donde esta el teléfono
- ir hacia el teléfono
- Tomar el teléfono
- Insertarle monedas o tarjeta
- Macar el numero deseado
- Hablar por teléfono
- Terminar de hablar
- Colgar el teléfono
- Soltar teléfono
- Fin
b) Cocinar una tortilla.
- Inicio
- Tomar los cerillos (no hacerlo en caso de estufa eléctrica)
- Prender el cerrillo (no hacerlo en caso de estufa eléctrica)
- Prender la estufa (presionar botón y girar perilla del gas si es eléctrica)
- Poner el comal sobre la estufa
- Poner tortilla en el comal
- Calentar la tortilla sobre el comal
- Voltear la tortilla
- Dejar calentar la tortilla sobre el comal
- Sacar la tortilla
- Fin
c) Arreglar un pinchazo de una bicicleta.
- Inicio
- Voltear la bicicleta
- Tomar una llave o dado con ratch
- Quitar las tuercas
- Quitar llanta
- Quitar el tubo pinchado del rin
- Parchar el tubo
- Poner tubo
- Poner llanta
- Volver a colocar las tuercas
- Voltear la bicicleta
- Fin
d) Freír un huevo.
- Inicio
- Tomar los cerillos (no hacerlo en caso de estufa eléctrica)
- Prender cerillo (no hacerlo en caso de estufa eléctrica)
- Prender la estufa (presionar botón y girar perilla del gas)
- Regular a fuego medio
- Poner el sartén sobre la estufa
- Agregarle aceite de cocina al sartén
- Tomar el huevo
- Quebrar el huevo y poner su contenido dentro del sartén
- Tirar el cascaron
- Esperar a que se fríe el huevo
- Sacarlo
- Fin
2.2 Escribir un algoritmo para:
a) Sumar dos números enteros.
- Inicio
- Leer n1, n2
- Calcular n= n1 + n2
- Imprime n
- Fin
b) Restar dos números enteros.
- Inicio
- Leer n1,n2
- Calcular n=n1 – n2
- Imprime n
- Fin
c) Multiplicar dos números enteros.
- Inicio
- Leer n1, n2
- Calcular n= n1 * n2
- Imprime n
- Fin
d) Dividir un numero entero por otro.
- Inicio
- Leer n1, n2
- Calcular n=n1 / n2
- Imprime n
- Fin
Algoritmos
Algoritmo del area de un circulo:
- Inicio
- Leer radio
- Calcular area= 3.141592653589*r2
- Imprimir area
- Fin
Algoritmo de un salario:
- Inicio
- Leer Horas, Tarifa, tasa
- Calcular PagaBruta = Horas * Tarifa
- Calcular Impuestos = PagaBruta * Tasa
- Calcular PagaNeta = PagaBruta – Impuestos
- Imprimir PagaBruta, Impuestos, PagaNeta
- Fin
Analisis del problema
Dado que busca una solucion por computadora, se precisan especificaciones detalladas de entrada y salida. la figura muestra los requisietos que se deben definir en el analisis.
Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:
- ¿Que entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).
- ¿Cual es la salida deseada? (tipo de datos de los resultados y cantidad).
- ¿Que metodo produce la salida deseada?
- Requisitos o requerimientos adicionales y restricciones a la solucion.
HERRAMIENTAS DE PROGRAMACION
1.- Leer Horas, Tarifa, tasa
2.- Calcular Pagabruta = Horas * Tarifa
3.- Calcular Impuestos = Pagabruta * Tasa
4.- Calcular Paganeta = - Impuestos
5.- Visualizar Pagabruta, Impuestos, Paganeta
miércoles, 28 de enero de 2009
Concepto de Software y sus tipos
Conceptos básicos de Redes e Internet
El uso de multiples computadores enlazados por una red de comunicaciones para distribuir el proceso se denomina proceso dristribuido en contraste con el proceso centralizado en el cual todo el proceso se realiza por un computador central. De esta forma los sistemas de computadoras tambien se clasifican en sistemas distribuidos y sistemas centralizados.
Las redes se pueden clasificar en varias categorias siendo las mas conocidas las redes de area local (LAN, Local Area Network) y las redes area amplia o ancha WAN (Wide Area Network). Una Red de Area Local permite a muchos computadores acceder a recursos compartidos de un computador mas potente denominado servidor. Una WAN es una red que enlaza muchos computadores personales y redes de area local en una zona geogrefica amplia. La red WAN mas conocida y popular en la actualidad es la red Internet qu esta soportada por la World Wide Web.
Las computadoras se conectan en redes LAN y WAN, aunque hoy en dia las redes ma implantadas son las redes que se conectan con tecnologia internet y por tanto conexion a la red internet. Estas redes son intranet y extranet y se conoces como redes corporativas ya que se enlazan computadoras de los empleados de las empresas.
Puertos Serie, Paralelo y firewire
Firewire
El bus IEEE 1394 es una nueva interfaz SCSI (un bus antiguo pero avanzado utilizado para discos duros, unidades de CD-ROM, escaneres y unidades de cinta). Es un bus serie de alta velocidad con una tasa de transferencia maxima d 400 Mbps patentado por Apple. Los computadores Apple y Sony suelen venir con puertos firewire, y ya comienza a ser usual que los PC incluyan al menos un puerto firewire. Las actuales videocamaras digitales y otros dispositivos de audio e imagen suelen incorporar conectores firewire.
Dispositivos de Almacenamiento de información
Las tecnologias de alamcenamiento mas importantes son discos magneticos, discos opticos y cintas magneticas. El dispositivo de alamacenamiento mas comun es la unidad de disco o disquetera, que sirve para alojar los discos.
Concepto de Computadora
Programacion Modular y Programación Estructurada
Dado que los modulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa, de ésta manera se reduce gran tiempo de disñe del algoritmo y la codificación, además una modificación radical dentro de un módulo no afectará a los demás.
2.3 programación Estructurada
significa escribir un programa de acuerdo a las siguientes reglas:
- El programa tiene un diseño modular.
- Los módulos son diseñados de modo descendente.
- Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selecccion repetición.
Si está familiarizado con los lenguajes como BASICy FORTRAN, la progamación estructurada significa también programación sin GOTO.La programación estructurada reduce la complejidad de los programas, los errores; hace los programas más fáciles de escribir, leer,verificar y mantener.
La programacion estructurada es el conjunto de tecnicas que incorporan:
- Recursos abstractos.
- Diseños descentes (top-down)
- Estructuras basicas.
lunes, 26 de enero de 2009
Codificacion de un Programa, Compilación y ejecución de un programa, Verificación y depuración de un programa y Documentación
Codificacion es la escritura en un lenguaje de programacion de la representacion del algorito desarrollada en las etapas presedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programacion utilizado para su implementacion, el codigo puede ser escrito con igual facilidad en un lenguaje o en otro.
Para realizar la conversion del algoritmo en programa se debe sustituir las palabras reservadas en español por sus hononimos en ingles, y las operaciones/instrucciones indicadas en lenguaje natural expresarlas en el lenguaje de programacion correspondiente.
Docuemtancion interna
Como se verra mas tarde, la docmentacion de un programa se clasifica en interna y externa. la documentacion interna es la que se incluye dentro del codigo del programa fuente mediante comentarios que ayudan a la comprension del codigo. Todas las lineas programas que comiencen con un simbolo / * son comentarios. El programa no los necesita y la computadora los ignora. estas lineas de comentarios solo sirven para hacerlos programas mas faciels de comprender. el objetivo del programador debe ser escribir codigos sencillos y limpios.
debido a que las maquinas actuales soportan grandes emorias (512 Mb o 1.024 Mb de memoria central minima en computadoras personales) no es necesario recurrir a tecnicas de ahorro de memoria, por lo que es recomendable que se incluya el mayor numero de comentarios posibles, pero eso si, que sean significativos.
2.1.5 Compílacion y ejecucion de un programa
Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operacion se realiza con un programa editor. Posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.
el programa fuente debe ser traducido a lenguaje maquina, este proceso se realiza con el compilador y el sietema que se encarga practicamentede la compilacion.
2.1.6 Verificacion y depuracion de un programa
Es el proceso de ejecucion del programa con una aplia variedad de datos de entrada, llamados datos de test o prueba. que determinaran si el programa tiene errores (bugs).
La depuracion es el proceso de encontrar errores del programa y corregir o eliminar dichos errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1. Errores de compilacion. se producen normalmente por uso incorrecto de las reglas de lenguaje de programacion y suelen ser errores de sintaxis.
2. Errores de ejecucion. Estos errores se prodecen por instrucciones que las computadoras pueden comprender pero no ejecutar.
3. Errores logicos. Se producen en la logica del programa y fuente del error suele ser el diseño del algoritmo. Estos errores son los mas dificiles de detectar, ya que el programa puede funcionar y no producir errores de copilacion ni de ejecucion, y solo puede advertirse el error por obtencion de resultados incorrectos.
2.1.7 Documentacion y mantenimiento
La documentacion de un problema consta de las descripciones de los pasos a dar en el proceso de resolucion de dicho problema. La importancia de la documentcion debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son dificiles de leer, mas dificiles de depurar y casi imposibles de mantener y modificar.
La documentacion de un programa puede ser interna y externa. la documentacion interna es la contenida en lineas de comentarios. La documentacion externa incluye analisis, diagramas de flujo y/o pseudocodigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentacion es vitsl cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del porgrama
viernes, 23 de enero de 2009
Algoritmo de el Area de un Rectangulo dada la Base y Altura
Algoritmo:
Inicio
Declare opcion, base, altura
Leer opcion
Seleccionar opcion
Declare área, altura, base
Leer base, altura
area:(base*altura)
Imprimir area
Si no
Imprimir "ERROR"
Fin selección
Fin
Diseño de un Algoritmo
En la etapa del analisis del proceso de programacion se determina que hace el programa. En la etapa de diseñlo se determina como hace el programa la tarea solicitada. Los metodos mas eficacez para el proceso de diseño se basa en el conocido DIVIDE Y VENCERAS un problema complejo se soluciona diviediendo en problemas y subproblemas y a la vez estos subproblemas en otros de nivel mas bajo hasta que pueda ser implementada uns solucion en la computadora.
Este metodo se conoce como diseño desendente (Top-Down) o modular.
miércoles, 21 de enero de 2009
Diagramas Nessi Schneiderman (Tarea)
diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripcion textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo. Es una representación gráfica de un algoritmo para programación estructurada. Desarrollados en 1972 por Isaac Nassi y Ben Shneiderman, estos diagramas también son conocidos como estructogramas debido a que muestran las estructuras de un programa.
diagrama N-S cuenta con un conjunto limitado de símbolos para representar los pasos del algoritmo, por ello se apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy extenso y se presta para la ambigüedad, solo se utiliza un conjunto de palabras, a las que se denomina palabras reservadas. Las palabras reservadas más utilizadas son:
Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Función
Entero Real Caracter Cadena
Lógico Retornar
Los símbolos utilizados en el diagrama de Chapin son corresponden a cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se utilizan tres símbolos. Esto hace que los procesos del algoritmo sean más fáciles de representar y de interpretar.
Son aquellas que se ejecutan una después de otra. Se tienen tres tipos de instrucciones secuenciales: la declaración de variables, asignación, instrucción Leer e instrucción Escribir.
La mayoría de algoritmos actúan sobre un conjunto de datos suministrados por el usuario y se espera que a partir de dichos valores y desarrollando los procesos programados se genere información de salida o resultados.
Declaración de variables
Teniendo en cuenta la compatibilidad con la mayoría de los lenguajes, se recomienda que desde el diseño del programa se utilice una forma determinada para la declaración de las variables. Esta consiste en escribir el tipo de datos y la lista de identificadores que se tendrán de dicho tipo, separando cada identificador por medio de comas (,). Para mejorar la claridad de la declaración se puede colocar dos puntos (:) para separar el tipo de datos de la lista de identificadores.
Ejemplo:
Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección
Aunque algunos lenguajes de programación permiten declarar las variables en el momento en que se las necesita, es aconsejable, en favor de los buenos hábitos de programación, siempre declarar las variables antes de utilizarlas y el sitio más adecuado es el inicio del programa o de la función.
Asignar un valor a una variable equivale a decir que se guarda dicho valor en la posición de memoria reservado para la variable en mención. Por lo tanto, para poder realizar una asignación es necesario primero haber declarado una variable, con lo cual se reserva un espacio de memoria suficiente para guardar un dato del tipo especificado.
Una expresión de asignación tiene la forma:
Variable = expresión
Donde la expresión puede estar formada por un valor, por un conjunto de valores y operadores o por una función.
Ejemplos:
Edad = 10
Estatura = 1.80
Resultado = 2*3
Una asignación tiene tres partes, una variable, el signo igual y la expresión cuyo valor se asigna a la variable. La variable siempre va a la izquierda del igual, mientras que la expresión siempre estará a la derecha.
Ejemplos:
Entero: X, Y
X = 10
Y = X * 2 + 8
En este ejemplo, la variable Y contendrá el valor 28.
La instrucción LEER se utiliza para enviar información desde un dispositivo de entrada de datos hacia la memoria. En la memoria los datos son ubicados mediante el identificador (nombre de variable) utilizado como complemento de la instrucción LEER.
En diagrama N-S la instrucción de entrada se representa así:
Leer
Ejemplo:
Leer a, b
Donde "a" y "b" son las variables que recibirán los valores y que deben haberse declarado previamente.
Instrucción Escribir
Esta instrucción permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la impresora. La información que se envía puede ser constante o también el contenido de variables.
FUENTES:
http://mx.geocities.com/fernando_r_g/cursos/problemas/dos_tres22.htm
http://eii.ucv.cl/nessi/help/es/nsd.html
https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r38252.DOC
http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml
Programación en C, segunda edición, Luis Joyanes Aguilar, pagina 72
Fases de la Resolución de un problema
INTRODUCCION
pasos para la resolucion de un problema:
1.- definicion o analisis del problema
2.- Diseño del algoritmo.
3.- Transformacion del algoritmo en un programa.
4.- Ejecucion y validacion del programa
CONCEPTOS CLAVES
- Algoritmos
- Ciclo de vida
- Diseño descente
- Diagrama Nassi Schneiderman
- Diagrama de flujo
- Diseño
- Dominio del problema
- Factores de calidad
- Invariantes
- Metodos formales
- Postcondiciones
- Precondiciones
- Programacion modular
- Programacion estructurada
- Pruebas
- Pseudocodigo
- Verificacion
2.1 FASES EN LA RESOLUCION DE PROBLEMAS
las fases de resolucion de un problema con computadoras son:
- Analisis del problema
- Diseño de algoritmo
- Codificacion
- Compilacion y ejecucion
- Verificacion
- Depuracion
Algoritmo: es un metodo para resolver un problema mediante unsa serie de pasos precisos, definidos y finitos.
caracteristicas de un algoritmo:
- preciso (si se sigue dos veces, obtiene el mismo resultado cada vez)
- definido (indica el orden de realizacion en cada paso)
- finito (tiene fin; un numero determinado de pasos)
un algoritmo debe producir un resultado en un tiempo finito. los metodos que utilizan los algoritmos son metodos algoritmicos, en oposision a los metodos ue implican algun juicio o interpretacion que se denominan metodos heuristicos.
Heurística
Se denomina heurística a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines.
lunes, 19 de enero de 2009
Conceptos Basico de Lenguaje C
1.- Conceptos de Lenguaje de Programacion (4)
2.- Clasificacion de los Lenguajes de Programacion (12)
3.- Paradigmas de Programacion (6)
4.- Historia del Lenguaje C (12)
5.- Los herederos (c++, java, c#) (8)
1.- Se utilizan para escribir programas. Los programas de las computadoras modernas constan de secuencias de dígitos numéricos que podrán entender dichas computadoras. El sistema de codificacion se conoce como Lenguaje maquina. las instrucciones básicas y comunes en casi todos los lenguajes de programacion son: instrucciones de salida/entrada, de calculo y de control.
2.- Lenguajes Maquina:
En la década de los 40 cuando nacían las primeras computadoras digitales el lenguaje que se utilizaba para programar era el lenguaje maquina que traducía directamente el código maquina, los investigadores de la época simplificaron el proceso de programacion desarrollando sistemas de notación en los cuales las instrucciones se representaban en formatos nemónicos (nemotécnicos) en vez de formatos numéricos que eran mas difíciles de recordar.
Lenguajes de bajo nivel:
Para convertir los programas escritos en código nemotécnico a lenguaje maquina, se desarrollaron programas ensambladores (assenmblers). Es decir, ensambladores son programas que traducen otros programas escritos en código nemotécnico en instrucciones numéricas en lenguaje maquina que son compatibles y legibles por la maquina. A estos lenguajes se le denomino de segunda generación, reservando el nombre de primera generación ara los lenguajes maquina. en la década de los 50 y 60 comenzaron a desarrollarse lenguajes de programacion de tercera generación que diferencian de las otras generaciones anteriores, eran de alto nivel e independientes de las maquinas. Los ejemplos mas conocidos son FORTRAN y COBOL. con el paso de los años aparecieron lenguajes nuevos tales como Pascal, BASIC, C, Ada, Java, C#, HTML, XML.
Los lenguajes de alto nivel:
se componen de un conjunto de instrucciones o primitivas mas fáciles de escribir y recordar su función que los lenguajes maquina y ensamblador.
3.- Representa fundamentalmente enfoques diferentes para construccion de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. Los paradigmas de programacion clásicos son:
Procedimental (o imperativo): representa el enfoque o método tradicional de programacion
Funcional declarativo: solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema.
Orientado a objetos: guarda analogía con la vida real.
4.- C es el lenguaje de programacion de proposito general asociado de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C, se a producido por que ese lenguaje no esta practicamente asociado a ningun sistema operativo, ni a ninguna maquina, en especial. Esta es la razon fundamental, por la cual C, es conocida como el lenguaje de programacion de sistema, por excelencia. C nacio realmente en 1978, con la publicacion de The C programing lenguaje, por Brian kerninghan y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, se fue creciendo en popularidad y los sucesivos cambios en el lenguaje, a lo largo de los años, junto a la creacion de compiladoras por grupos no involucrados en esu diseño, hicieron necesario para pensar en la estandarizacion de definicion de lenguaje C. C es un lenguaje de alto nivel, que permite programar con instrucciones de lenguaje de proposito general. Tambien, C se defince como un lenguaje de programacion estructurado de proposito general; aunque en su diseño primo el hecho de que fuera especificado comom un lenguaje de programcion de sistemas, lo que proporciona un enorme cantidad de potencia y flexibilidad.
5.- C++ es heredero directo de lenguaje que a su vez se deriva del lenguaje B [Richards, 1980]. C se mantiene como un subconjunto de C++. Las caracteristicas mas notables que ha ido incorporandose a C++ son : herencia multiple, generecidad, plantillas, funciones virtuales, excepsiones, etc.
Java desarrollado por Sun Microsystems en 1995 es un magnifico y completo lenguaje de programacion orientado a objetos dieñado para distribuir contenidos a travez de una red. Una de sus principales caracteristicas es que permite operar de forma independiente de la plataforma y del sistema operativo que se este utilizando.
C# esta relacionado directamente con C, C++ y Java. De C ha heredado su sintexis, muchas de las palabras reservadas y sus operadores. De C++ ha heredaro su modelo de objetos. C# añade importantes innovaciones en el arte de la programacion.