viernes, 20 de febrero de 2009

problemas de algoritmos

1.-Algoritmo que lea 4 numeros enteros, y que presente el promedio resultante de ellos.




















2.-Algoritmo que lea numeros enteros y determine si es negativo, positivo o igual a cero.



3.-Algoritmo que lea 3 numeros enteros y que determine si la multiplicacion de dos de ellos es el resultado del tercero.
4.- Diseñar un algoritmo que capture 4 digitos binarios y los convierta a numero decimal. 5.-Realizar un algoritmo para convertir un numero dado de minutos en segundos. 6.-Realizar un algoritmo para convertir un numero dado de millas en metros. 7.-Diseñar un algoritmo para calcular la velocidad (en metros sobre segundo) de los corredores de una carrera de 1500 metros. la entrada será parejas de numeros (minutos, segundos) que darán el tiempo de cada corredor. Por cada corredor se imprimira el tiempo en minutos y segundos, asi como la velocidad promedio.




jueves, 19 de febrero de 2009

ejecicio de algoritmo

Diseñar un algoritmo para calcular la velocidad en metros sobre segundos de los correderos de una carrera de 1500metros. la entrada sera parejas de numeros (minutos,segundos). que dara el tiempo de cada corredor para cada corredor se imprimira el tiempo en minutos y segundos haci como la velocidad media.

miércoles, 18 de febrero de 2009

sintesis capitulo 3 lenguaje C: elementos basicos

3.1 estructura general de un problema en C:

un programa en C se compone de una o mas funciones. una de las funciones debe ser obligatoriamente main. Una funcion en C es un grupo de instrucciones que utilizan una o mas acciones.
un programa contendra una serie de directivas #include que permitiran incluir en el mismo archivo de cabecera que a si su vez constara de funciones y datos predefinidos en ellos.

de un modo mas explicito, un programa C puede incluir:
  • directivas de preprocesador;
  • declaraciones globales;
  • la funcion main ( ) ; int main( )
  • funciones definidas por el usuario;
  • comentarios del programa

3.1.1 Directivas del preprosesadores.

en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al copilador antes de que se compile el programa principal).las dos directivas mas usuales son #include y #define.

la directiva #incluye:indica al compilador que lea el archivo fuente que viene a continuacion de ella y su contenido lo inserte en la posicion donde se encuentra dicha directiva . estos archivos se denominan archivos de cabecera o archivos de inclusion.

la directiva #define:indica al procesador que defina un item de datos u operacion para el programa C. por ejemplo, la directiva

#define TAM_LINEA 65

sustituira TAM_LINEA por el valor 65 cada vez que aparezca en el programa.

3.1.2. Declaraciones globales.
Las declaraciones globales indican al compilador que las funciones definidas por el usuario o variables así declaradas son comunes a todas las funciones de su programa. Las declaraciones globales se sitúan antes de la función main ( ). Si se declara global una variable grado _ clase del tipo int. grado _ clase;
Las declaraciones de funciona se denominan prototipos.

3.1.3. Función main( ).
Cada programa C tiene una función main ( ) que es el punto de entrada al programa. Su estructura es:
Main ( )
{

}
Las sentencias incluidas entre las llaves {…} se denominan bloque. Un programa debe tener solo una función main( ). Si se intenta hacer dos funciones main( ) se produce un error.

Una función C es un subprograma que devuelve un único valor, un conjunto de valores o realiza alguna tarea específica tal como E/S.

3.1.4. Funciones definidas por el usuario.
Se invocan por su nombre y los parámetros opcionales que puedan tener. Después de que la función es llamada, el código asociado con la función se ejecuta y, a continuación, se retorna a la función llamadora.
Todas las funciones tienen nombre y reciben una lista de valores. En C las funciones requieren una declaración o prototipo en el programa:
Una declaración de función indica al compilador el nombre de la función por el que esta será invocada en el programa.

C proporciona también funciones predefinidas que se denominan funciones de biblioteca. Las funciones de biblioteca son funciones listas para ejecutar que vienen con el lenguaje C. Requieren la inclusión del archivo de cabecera estándar.

3.1.5. Comentarios.
Un comentario es cualquier información que se añade a su archivo fuente para proporcionar documentación de cualquier tipo. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable.

3.2. Creación de un programa.

Para crear un programa se utilizan las siguientes etapas:
1.-definir su programa.
2.-definir directivas del procesador.
3.-definir declaraciones globales.
4.-crear main( ).
5.-crear el cuerpo del programa.
6.-crear sus propias funciones definidas por el usuario.
7.-compilar, enlazar, ejecutar y comprobar su programa.
8.-utilizar comentarios.
3.3. El proceso de ejecución de un programa en C.
Un programa de computadora escrito en un lenguaje de programación tienen forma de texto ordinario. Se escribe el programa en una hoja de papel y a este programa se le denomina programa texto o codigo fuente.

Este es el proceso de ejecución de un programa es introducir las instrucciones del programa con un editor de texto. El editor almacena el texto y debe proporcionarse un nobre tal como area.c. si la ventana del editor le muestra un nombre tal como noname.c, es conveniente cambiar dicho nombre (por ejemplo, por area.c).

La siguiente etapa es la de compilación.en ella se traduce el codigo fuente escrito en lenguaje C a codigo maquina (entendible por la computadora).el programa que realiza esta traducción se llama compilador, el compilador traduce el codigo fuente C (las sentencias del programa) en un codigo maquina (codigo objeto).el codigo objeto consta de instrucciones maquina e información de cómo cargar el programa en memoria antes de su ejecución.
Un programa especial llamado enlazador toma el archivo objeto y las partes necesarias de la biblioteca del sistema y construye un archivo ejecutable. Los archivos ejecutables tienen un nombre con la extensión .exe. Este archivo ejecutable contiene todo el código maquina necesario para ejecutar el programa.

3.4. Depuración de un programa en C.
Los errores que se producen en los programas son detectados, asilados y corregidos. El proceso de encontrar errores se denomina depuración del programa. La coleccio del error es probablemente la etapa mas facil, siendo la deteccion y aislamiento del error las tareas mas difilies.
Existen diferentes situaciones en las cuales se suelen introducir errores en un programa. Dos de las mas frecuentes son:
violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe el programa.
los errores en el diseño del algoritmo en el que esta basado el programa.


3.4.1. Errores de sintaxis.
Son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas de gramatica del lenguaje. Errores de sintaxis tipicos son: escritura incorrectas de palabras reservadas, omision de signos de puntuación (comillas, punto y coma…)los errores de sintaxis son los mas faciles de fijar, ya que ellos son detectados y aislados por el compilador.

3.4.2. Errores lógicos.
Los errores logicos ocurren cuando un programa es la implementacion de un algoritmo defectuoso. Dado que los errores logicos normalmente no producen errores en tiempo de ejecución y no visualizan mensajes de error, son mas difíciles de detectar porque el programa parece ejecutarse sin contratiempos.

3.4.3. errores de regresion.
Son auellos que se crean accidentalmente cuando se intenta corregir un error logico.siempre que se corrige un errorse debe comprobar totalmente la exactitud (correcion) para asegurar que se fija el error que se esta tratando y no produce otro error.

3.4.4. Mensajes de error.
Los mensajes de error producidos durante la compilación se suelen producir, normalmente, por errores de sintaxis y suelen variar sugun los compiladores;pero, en general, se agrupan en tres grandes bloques:
· errores fatales.algunos de ellos indican un error interno del compilador
· errores de sintaxis.errores de linea de ordenes y errores de acceso a memoria o disco.
· Advertencias (warning). No impiden la compilación. Indican condiciones que son sospechosas, pero son legitimas como parte del lenguaje.

3.4.5. errores en tiempo de ejecución.
Un error en tiempo de ejecución puede ocurrir como resultado de que el programa obligaa a la computadora a realizar una operación ilegal, tal como dividir un nu8emro por cero.
Existen dos tipos de errores en tiempo de ejecución:aquellos que son detectados por el sistema en tiempo de ejecución de C y aquellos que permiten la terminacion del programa pero producen resultados incorrectos.

3.5. pruebas.
<>.
Para determinar si un programa contiene error logico, se debe ejecutar utilizando datos de muestra y comprobar la salida verificando su exactitud. Esta prueba se debe hacer varias veces utilizando varias entrada, preparadas, por personas diferentes al programador, que puedan indicar suposiciones no evidentes en la eleccion

miércoles, 11 de febrero de 2009

ejercicio 2.6 algoritmo que lea 4 numeros y imprima el mayor

2.6 escribir un algoritmo que lea cuatro numeros y a continuacion imprima el mayor de los cuatro.

1.- inicio.
2.-lee a,b,c,d.
3.-decision si a es mayor que b,c,d. ir al paso 7,sino ir al paso 4.
4.-decisión si b es mayor que a,c,d. ir al paso 8,sino ir al paso5.
5.-decision si c es mayor que a,b,d. ir al paso 9 sino ir al paso 6.
6.-decisión si d es mayor que a,b,c. ir al paso 10 sino ir al paso 11.
7.-imprimir “a”,. ir al paso 11
8.-imprimir “b”,. ir al paso 11.
9.-imprimir “c”,. ir al paso 11.
10.-imprimir “d”,. ir al paso11.


lunes, 9 de febrero de 2009

algoritmo 3.0 de la formula general

calcular la formula general deacuerdo a las siguientes restricciones:

1.- cuando delta es igual a cero se deduce que para X existe una unica solucion, o sea X, por lo que se hara el calulo de X y se presentara el resultado.

2.-si delta es negativo se procede a enviar un mensaje al usuario que dice:¨no es posible calcular una raiz cuadrada negativa. y termine el algoritmo.¨

3.- si las anteriores no se ejecutan, debera entonces calcular X1 y X2 deacuerdo a la formula general y presentar los resultados.

algoritmo.

1.- inicio.

2.-lee a, b, c.

3.-decisión si delta=0 ir al paso 4.y si no es igual ir al paso 5.

4.- calcular X=-b/(2*a), ir al paso 9.

5.-decisión si delta es menor a cero ir al paso 6. y si delta es mayor a cero ir al paso 7.

6.- imprimir “no es posible calcular una raíz cuadrada negativa”,ir al paso 10.

7.-calcular X1= (-b+raíz (b^2-4*a*c))/(2*a)

X2= (-b-raiz (b^2-4*a*c))/(2*a)

8.-Imprimir “X1, X2”.

9.-Iprimir "X".

10.-Fin






algoritmo para calcular una ecuacion cuadratica con decision.

Algoritmo para calcular las raíces de una ecuación cuadrática de segundo grado.

Ax2 +bx + C=0

1.- Inicio
2.- Lee a,b,c
3.- calcula

X1= (-b+ raiz(b2-(4ac)))/2a , X2= (-b - raiz(b2-(4ac)))/2a

4.- si delta es positivo ir al paso 5 y si delta es negativo ir al paso 6
5.-imprimir “resultado”, X1, X2.
6.-fin.

viernes, 6 de febrero de 2009

algoritmo que lea la edad de una persona en meses y determine si puede o no votar.

1.- inicio

2.-leer meses.

3.-si meses >= 216 ir al paso 4, si no ir al paso 6.

4.-imprimir ¨si puede votar¨.

5.-ir al paso 7.

6.-imprimir ¨no puede votar¨.

7.-fin.

Algoritmo para calcular las raíces de una ecuación cuadrática de segundo grado.

Ax2 +bx + C=0

1.- Inicio
2.- Lee a,b,c
3.- calcula X1= (-b+ raiz (b^2-(4ac))) /2*a ,
X2= (-b+ raiz(b^2-(4ac)))/2*a.

4.-imprimir “resultado”, X1, X2 (4*a*c).
5.-fin.
restricciones:
si delta es negativo.
imprimir ¨no se puede resolver una raiz cuadrada negativa¨.

miércoles, 4 de febrero de 2009

2.10 Ejercicios

2.1. diseñar una solucion para resolver cada uno de los siguientes problemas y tratar de refinar sus soluciones mediante algoritmos adecuados:

a)realizar una llamada telefonica desde un telefono publico.


  1. ir a una tienda.
  2. comprar una targeta telefonica.
  3. ir a un telefono publico.
  4. verificar que funcione.
  5. descolgar la bocina.
  6. insertar la targeta telefonica.
  7. marcar los numeros a donde quieres hablar.
  8. hablar.
  9. colgar.
  10. extraer la targeta.
  11. fin.


b) cocinar una tortilla.
1. inicio
2. ir al refrigerador.
3. abrir el refrigerador.
4. agarrar un paquete de tortillas.
5. cerrar el refrigerador.
6. ir a la estufa.
7. prender el piloto.
8. poner una casuela encima del piloto.
9. ponerle aceite a la cazuela.
10. poner en la cazuela la tortilla.
11. dejarla hasta que se cocine.
12. sacar la tortilla.
13. fin


c) arreglar un pinchazo de una bicicleta.
1. inicio
2. vas a la caja de herramienta.
3. tomas las llaves adecuadas.
4. desmontas la llanta.
5. sacas la cámara de la llanta.
6. inflar la cámara.
7. meterla en agua.
8. marcar los agujeros.
9. secar la cámara.
10. ponerle los parches en los agujeros marcados.
11. dejarla secar.
12. poner la cámara en la llanta.
13. montar la llanta en la bicicleta.
14. fin


d) freír un huevo.
1. inicio
2. ir al refrigerador.
3. abrir el refrigerador.
4. agarrar un huevo.
5. ir a la estufa.
6. prender un piloto.
7. poner una cazuela en el piloto.
8. ponerle aceite a la cazuela.
9. quebrar el huevo.
10. poner la clara y la yema en la cazuela.
11. poner la cáscara en la basura.
12. dejar al huevo cocinando un tiempo.
13. voltear el huevo.
14. esperar a que se cocine.
15. sacar el huevo.
16. fin.



2.2. Escribir un algoritmo para:

a) sumar dos números enteros.
1. inicio
2. lee a+b.
3. calcula C=a+b
4. imprime “la sumatoria”, C.
5. fin







b) restar dos números enteros.
1. inicio
2. lee a-b
3. calcula C= a-b
4. imprime “la resta”, C.
5. fin.










c)multiplicar dos números enteros.
1. inicio.
2. lee a*b
3. calcula C= a*b
4. imprime “la multiplicación”, C.

















d) dividir un número entero por otro.
1. inicio.
2. lee a/b
3. calcula C= a/b
4. imprime “división”, C.
5. fin

lunes, 2 de febrero de 2009

2da. unidad



2.1.3. Herramientas de programación.

Las dos herramientas mas utilizadas comúnmente para diseñar algoritmos son: diagramas de flujo y pseudocodicos.

Un diagrama de flujo (flowchart). Es una representación grafica de un algoritmo. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI). Y estos son los mas utilizados frecuentemente.
El pseudoscódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al ingles o español, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos.

2.1.4. Codificación de un programa.

Codificación es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programación utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.

Documentación interna.
La documentación de un programa se clasifica en interna y externa. La documentación interna es la que se incluye dentro del codigo del programa fuente mediante comentarios que ayudan a la compresión del codigo.


2.1.5. Compilación y ejecución 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 operación se realiza con un programa editor.



2.1.6. Verificación y depuración de un programa.

Es el proceso de ejecución del programa con una compilación variedad de datos de entrada, llamados de test o prueba, que determinan si el programa tiene errores (<>). Para realizar la verificación se debe desarrollar una amplia gama de datos de test: valores normales de entrada, valores extremos de entrada que comprueben los limites del programa y valores de entrada que compruebe aspectos especiales del programa.

2.1.7. Documentación y mantenimiento.

La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de resolucion de dicho problema. La importancia de la documentación debe ser destacada por su desiciva influencia en el producto final.
La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del programa.


2.2. Programación Modular

Es uno de los metodos de diseño mas flexible y potente para mejorar la productividad de un programa.en programación modular el programa se divide en rotulos
9partes independientes), cada uno de los cuales ejecuta una unica actividad o tarea y se codifican independientemente de otros modulos.
Los modulos son independientes en el sitio en que ningun modulo puede tener acceso directo a cualquier otro modulo excepto el modulo al que llama y sus propios submodulos. Sin embargo, los resultados producidos por un modulo pueden ser utilizados por cualquier otro modulo cuando se transfiera a ellos el control.




2.3. Programación Estructurada.

Significa escribir un programa de acuerdo a las siguientes reglas:
· El programa tiene un diseño modular.
· Los modulos son diseñados de modo descendente.
· Cada modulo se codifica utilizando las tres estructuras de control basicas: secuencia, selección y repetición.

La programación estructurada es el conjunto de tecnicas que incorporan:
· Recursos abstractos
· Diseños descendentes (top-down)
· Estructuras básicas.


La programación estructurada significa que.
· El programa completo tiene un diseño modular.
· Los módulos se diseñan con metolodias descendente (puede hacerse también ascendente).
· Estructuración y modularidad son conceptos complementarios (se solapan).


2.4. CARACTERISTICAS DE LOS ALGORITMOS.

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.

La definición de un algoritmo debe describir tres partes: entrada, proceso y salida.


2.6. REPRESENTACION GRAFICA DE LOS ALGORITMOS.

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado indistintivamente en cualquier lenguaje.
Los métodos usuales para representar un algoritmo son:

diagrama de flujo.
diagrama N-S (Nassi-Schneiderman),
lenguaje de especificación de algoritmos: pseudocodigo,
lenguaje español, ingles…
formulas.


2.7. EL CICLO DE VIDA DEL SOFTWARE.

Existen dos niveles en la construcción de programas: aquellos relativos a pequeños programas (los que normalmente realizan programadores individuales) y aquellos que se refieren a sistemas de desarrollo de programas grandes (proyectos de software) y que, generalmente, requieren un equipo de programadores en lugar de personas individuales. El primer nivel se denomina programación a pequeña escala; el segundo nivel se denomina programación a gran escala.

El ciclo de vida de un software es un proceso iterativo, de modo que se modificaran las sucesivas etapas en función de la modificación de las especificaciones de los requisitos producidos en la fase de diseño o implementación, o bien una vez que el sistema se ha implementado, y probado, pueden aparecer errores que serán necesario corregir y depurar, y que requieren la repetición de etapas anteriores.

2.8. METODOS FORMALES DE VERIFICACION DE PROGRAMAS.

Aunque la verificación formal de programas se salen fuera del ámbito de este libro, por su importancia vamos a considerar dos conceptos clave, asertos (afirmaciones) y precondiciones/postcondiciones invariantes que ayudan a documentar, corregir y clarificar el diseño de módulos y de programas.

Aserciones.
Una parte importante de una verificación formal es la documentación de un programa a través de asertos o afirmaciones –sentencias lógicas acerca del programa que se declaran <>----. Un aserto se escribe como un comentario y describe lo que se supone sea verdadero sobre las variables del programa en ese punto.

Precondiciones y Postcondiciones.
Las precondiciones y postcondiciones son afirmaciones sencillas sobre condiciones al principio y al final de los módulos. Una precondición de un procedimiento es una afirmación lógica sobre sus parámetros de entrada; se supone que es verdadera cuando se llama al procedimiento. Una postcondicion de un procedimiento puede ser una afirmación lógica que describe el efecto de llamar al procedimiento.


MAPA MENTAL Y QUE ES PROGRAMA.

Programa informático, secuencia de instrucciones que una computadora puede interpretar y ejecutar;

Aplicación informática, programa informático diseñado para facilitar un determinado tipo de trabajo;
MAPAMENTAL: