lunes, 20 de abril de 2009
jueves, 16 de abril de 2009
ejercicios seleccion un numero (0-5) y eleccion de una consonante
miércoles, 15 de abril de 2009
sintesis del cap 5.
Estructura de control:
Controlan el flujo de ejecución de un programa o función. Las estructuras permiten combinar instrucciones o sentencias individuales en una simple lógica con un punto de entrada y un punto de salida.
Hay tres instrucciones o sentencias son: secuencia, selección (decisión) y repetición.
La sentencia if:
La función if funciona se la siguiente manera: cuando se alcanza la sentencia if dentro de un programa, se evalúa la expresión entre paréntesis que viene a continuación de if. Si expresión es verdadera, se ejecuta acción; en caso contrario no se ejecuta acción (en su formato mas simple, acción es una sentencia simple y en los restantes formatos es una sentencia compuesta).
Sentencia if de dos alternativas: if-else
Este formato de la sentencia if-else tiene la siguiente sintaxis:
if(expresión) “expresión lógica que determina la acción a ejecutar”, accion1(acción que se realiza si la expresión lógica es verdadera),else (accion2) “acción que se ejecuta si la expresión lógica es falsa”.
Sentencias if-else animadas:
Una sentencia if es animada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia if. Una sentencia if animada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas.
Sangria en las sentencias if animadas:
El formato multibifurcacion se compone de una serie de sentencias if animadas, en cada línea se puede escribir una sentencia if.
Comparación de sentencias if animadas y secuencias de sentencias if:
Los programadores tienen dos alternativas: 1) usar una secuencia de sentencias if; 2) una única sentencia if animada. La secuencia if no estan legible ni eficiente, al contrario que la secuencia if animada, la sentencia if animada se ejecuta mas rápidamente cuando x es positivo ya que la primera condición (x>0) es verdadera, lo que significa que la parte de la sentencia if a continuación del primer else se salta.
Sentencia de control switch:
La sentencia switch se utiliza para seleccionar una de entre múltiples alternativas. La sentencia switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector. El valor de esta expresión puede ser tipo int o char, pero no de tipo flota ni double.
martes, 14 de abril de 2009
dos programas del capitulo 5.
jueves, 19 de marzo de 2009
algoritmo de operadores aritmeticos
viernes, 6 de marzo de 2009
los primeros problemas
#include
main()
{
printf("hola\n");
printf ("soy alex\n");
printf ("estudio programacion\n");
return 0;
}
ejer. 02.
#include
main()
{
printf ("nombre: alex\n\n");
printf ("direccion: criantemas y 40\n\n");
printf ("colonia: solidaridad\n\n");
printf ("telefono: -- -- --\n\n");
printf ("escuela: cesues\n\n");
printf ("carrera: ing.ind. en electronica\n\n");
return 0;
}
ejer. 04.
/*nombre del archivo ejer04incl.c,
ilustra el uso de #include
*/
#include
int main()
{
#include "midirec.c"
#include "midirec.c"
return 0;
}
problemas:
3.1 pag.102,
/*archivo midirec.c*/
printf ("nombre: alex\n\n");
printf ("direccion: criantemas y 40\n\n");
printf ("colonia: solidaridad\n\n");
printf ("telefono: -- -- --\n\n");
printf ("escuela: cesues\n\n");
printf ("carrera: ing.ind. en electronica\n\n");
/*nombre del archivo ejer04incl.c,
ilustra el uso de #include
*/
#include
int main()
{
#include "midirec.c"
#include "midirec.c"
return 0;
}
#include
int main()
{
printf ("nombre: alex\n\n");
printf ("direccion: criantemas y 40\n\n");
printf ("colonia: solidaridad\n\n");
printf ("telefono: -- -- --\n\n");
printf ("escuela: cesues\n\n");
printf ("carrera: ing.ind. en electronica\n\n");
return 0;
}
3.2 pag.103, el siguiente programa copia un mensaje en un array de caracteres y lo imprime en la pantalla. ya que printf() y strcpy() (una funcion de cadena) se utiliza, se necesitan sus archivos de cabecera especificos.
/*nombre del archivo demoinc2.c uiliza dos archivos de cabecera
*/
#include
#include
int main()
{
char mensaje[20];
strcpy (mensaje, "Atapuerca\n");
/* Las dos lineas anteriores tambien se pueden sustituir por char mensaje[20] = "Atapuerca\n";
*/printf( mensaje);
return 0;
}
3.3 pag. 126, este ejemplo mustra como una variable puede ser declarada al inicio de cualquier bloque de un programa C.
#include
/* diferentes declaraciones */
int main()
{
int x, y1;
x=75;
y1=89;if (x>10)
{
int y2=50;
y1= y1+y2;
}
printf("x=%d, y1 = %d\n",x,y1);
return 0;
}
3.4 pag. 131, el listado SECESC.C utiliza secuencias de escape, tales como emitri sonidos (pitidos) en el terminal dos veces y a continuacion presentar dos retrocesos de espacio en blanco.
#include
int main()
{
char sonidos='\a';
char bs = '\b';
printf("%c%C" ,sonidos,sonidos);
printf("zz");
printf("%c%c",bs,bs);
return 0;
}
3.5 pag. 133, cual es la salida del siguiente programa,si se introducen por teclado las letras LJ?
#include
int main()
{
char primero,ultimo;
printf("introduzca su primera y ultima inicial:");
scanf("%C %C",&primero,&ultimo);
printf("hola,%c.%c.\n",primero,ultimo);
return 0;
}
3.6 pag.133. cual es la salida del siguiente programa?
#include
#define T"tambor de hojalata."
int main()
{
char sT[21]="todo puede hacerse.";
puts (T);
puts("permiso para salir en la foto.");
puts(st);
puts(&st[8]);
return 0;
}
jueves, 5 de marzo de 2009
ejercicios 3.14
#include
int main()
{
char pax[]="juan sin miedo";
printf("%s %s\n",pax,&pax[4]);
puts(pax);
puts(&pax[4]);
return 0;
}
3.2.escribir y ejecutar un programa que imprima su nombre y direccion.
#include
main()
{
printf("nombre: alex cosio\n");
printf("direccion: crizantemas y 40\n");
return 0;
}
3.3 escribir y ejecutar un programa que imprima una pagina de texto con no mas de 40 caracteres por linea.
#include
main()
{
printf("La planeación de los requerimientos\n");
printf("de material es un Sistema de Planeación\n");
printf("y Administración, usualmente asociada\n");
printf("con un software basado en la planeación\n");
return 0;
}
3.4depurar el programa siguiente:
#include
void main()
{
printf("el lenguaje de programacion C");
}
3.5. escribir un programa que imprima la letra B con asteristicos.
#include
main()
{
printf("******\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("******\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("******\n");
return 0;
}
viernes, 20 de febrero de 2009
problemas de algoritmos
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
miércoles, 18 de febrero de 2009
sintesis capitulo 3 lenguaje C: elementos basicos
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
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
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.
1.- Inicio
2.- Lee a,b,c
3.- calcula
viernes, 6 de febrero de 2009
algoritmo que lea la edad de una persona en meses y determine si puede o no votar.
miércoles, 4 de febrero de 2009
2.10 Ejercicios
a)realizar una llamada telefonica desde un telefono publico.
- ir a una tienda.
- comprar una targeta telefonica.
- ir a un telefono publico.
- verificar que funcione.
- descolgar la bocina.
- insertar la targeta telefonica.
- marcar los numeros a donde quieres hablar.
- hablar.
- colgar.
- extraer la targeta.
- 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
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.
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.
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 (<
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.
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 <
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.
Aplicación informática, programa informático diseñado para facilitar un determinado tipo de trabajo;
jueves, 29 de enero de 2009
EJERCICIO 2.- REALIZAR UN ALGORITMO PARA ¨IR AL CINE¨
algoritmos NS
El diagrama N-S o también conocido como diagrama de Chapin es una técnica de especificación de algoritmos que combina la descripción textual, propia del pseudocódigo, con la representación gráfica del diagrama de flujo.
El 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.
Estructuras secuenciales
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.
Asignació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
Donde edad y resultado son variables de tipo entero y estatura de tipo real que se supone declaradas previamente.
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.
Instrucción Leer
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.
Escribir
Ejemplo:
Escribir a, b
Cuando se escriben más de una variable es necesario separarlas con comas (,) y los mensajes se escriben entre comillas dobles " ". Si una variable es escrita entre comillas se mostrará el identificador y no el contenido.
Ejemplos:
1. Diseñar un algoritmo para calcular el área y el perímetro de un rectángulo
Definición del problema
Calcular área y perímetro de un rectángulo
Análisis del problema
Para desarrollar este problema es necesario conocer las fórmulas para obtener tanto el área como el perímetro de un rectángulo.
Sea b = base y h = altura, las fórmulas a utilizar son:
Area = b * h
Perímetro = 2 * (b + h)
Datos de entrada: b y h (base y altura)
Datos de salida: área y perímetro
Procesos: área = b * h
Perímetro = 2 * (b + h)
Diseño de la solución:
1.-Inicio
2.-Entero: b, h, a, p
3.-Leer b, h
4.-a = b * h
5.-p = 2 (b + h)
6.-Escribir "área:", a
7.-Escribir "perímetro:", p
8.-Fin algoritmo
miércoles, 28 de enero de 2009
ejercicio. problema para el calculo del salario
viernes, 23 de enero de 2009
DISEÑO DEL ALGORITMO
ejemplo:
resolucion de un diagrama de flujo del calculo de un triangulo
a de programa.
miércoles, 21 de enero de 2009
2.1 fases en la resolucion de un problema
1.-analis del problema: se analiza teniendo presente la especificacion de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa.
2.-diseño del algoritmo: una vez analizado el problema, se diseña una solucion que conducira a un algoritmo que resuelva el problema.
3.-codificacion: la solucion se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, c) y se obtiene un programa fuente que se compila a continuacion.
4.-compilacion y ejecucion verificacion y depuracion:el programa se ejecuta, se comprueba rigurosamente y se elimina todos los errores (denominados bugs, en ingles)que pueda aparecer.
5.-mantenimiento: el programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de usuario.
6.-documentacion: escrituras de las diferentes fases del ciclo de vida del software, esencialmente el analisis, diseño y codificacion.
algoritmo: se deriva de la traduccion al latin de la palabra Alkho-warizm, nombre del matematico y astronomo arabe que escribio un tratado sobre manipulacion de numeros y ecuaciones en el siglo IX. un algoritmo es un metodo para resolver un problema mediante una serie de pasos precisos, definidos y finitos.
caracteristicas de un algoritmo:
- presiso (indica el orden de realizacion en cada paso)
- definido (si se sigue dos veces, obtiene el mismo resultado cada vez)
- finito (tiene fin; un numero determinado de paso)
2.1.1. analisis del problema.
la primera fase de la solucion de un problema con computadora es el analisis del problema. esta fase requiere una clara definicion, donde se complete exactamente lo que debe hacer el programa y el resultado o solucion deseada.
lunes, 19 de enero de 2009
conceptos basicos del lenguajes c
Cada lenguaje de programación tiene un conjunto de instrucciones (acciones u operaciones que debe realizar la maquina).
Las instrucciones básicas y comunes en casi todos los lenguajes de programación son:
instrucciones de entrada y salida: instrucciones de transferencia de información entre dispositivos periféricos y la memoria central.
instrucciones de calculo: instrucciones para que la computadora pueda realizar operaciones aritméticas.
instrucciones de control: instrucciones que modifican la secuencia de la ejecución del programa.
Los principales tipos de lenguaje de programación son:
lenguaje maquina: traduce directamente el código maquina (código binario) comprensible para las computadoras)
lenguaje de bajo nivel (ensambladoras): son programas que traducen otros programas escritos en código nemotécnicos en instrucciones numéricas en lenguaje maquina que son compatibles y legibles por la maquina.
lenguaje de alto nivel: este lenguaje es compresible para el programador, como si fuera lenguajes naturales, e independientes de la maquina.
Paradigmas de programación.
Representa fundamentalmente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software.
Los paradigmas de programación clásicos son: procedimental (o imperativo), funcional, declarativo y orientado a objetos.
Lenguajes imperativos (procedímentales).
Representa el enfoque o método tradicional de programación. Un conjunto imperativo es un conjunto de instrucciones que se ejecutan una por una, de principio a fin, de modo secuencial excepto cuando intervienen instrucciones de salto de secuencia o control.
Lenguajes declarativos.
Solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema; es decir, un lenguaje declarativo utiliza el principio del razonamiento lógico para responder a las preguntas o cuestiones consultadas.
Lenguajes orientados a objetos. (POO)
Consiste en un enfoque totalmente distinto al proceso precedimental. El enfoque orientado a objetos guarda analogía con la vida real. El programador define en primer lugar los objetos del problema y a continuación los datos y operaciones que actuaran sobre los datos. Las ventajas de la programación orientada a objetos se derivan esencialmente de la estructura modular existente en la vida real y el modo de respuesta de estos módulos u objetos a mensajes o eventos que se producen en cualquier instante.
Los lenguajes orientados a objetos son: lenguaje C, C++, Java y C#.
Historia del lenguaje C.
C es el lenguaje de programación de propósito general asociados, de modo universal, al sistema UNIX. Sin embargo, la popularidad, eficiencia y potencia de C, se ha producido porque este lenguaje no esta prácticamente asociado a ningún sistema operativo, ni a ninguna maquina, en especial.
C es una evolución de los lenguajes BCPL-desarrollo por Martin Richards- y B –desarrollo por Ken Thompson en 1970 – para el primitivo UNIX de la computadora DEC PDP-7.
C nacio realmente en 1978, con la publicación de The C Programming Lenguaje, por Brian Kernigham y Dennis Ritchie (prentice hall, 1978).
En 1983, el American nacional Standard Institute (ANSI), una organización internacional de estandarización, creo un comité (el denominado X3J11) cuya tarea fundamental consistía en hacer “una definición no ambigua del lenguaje C, e independiente de la maquina”.había nacido el estándar ANSI del lenguaje C.
Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programación mas utilizados en la industria del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades. Prácticamente todos los fabricantes de sistemas operativos, UNIX, Linux, MacOS, Solaris, etc. soportan diferentes tipos de compiladores de lenguaje C.
Los herederos de C: C++, Java y C#.
Los tres lenguajes mas populares junto con C en esta primera década del siglo XXI son herederos directos del propio C con características orientadas a objetos y a Internet. Actualmente y aunque C sigue siendo, tal vez, el mas utilizado en el mundo de la educación como el primer lenguaje de programación y también copa un porcentaje alto de utilización en el campo profesional, los tres lenguajes con características técnicas de orientación a objetos forman con C el póquer de lenguajes mas empleados en el mundo educativo, profesional y científico actual y previsible de los próximos años.
domingo, 18 de enero de 2009
apuntes de programacion de computadoras software
Estos dispositivos permiten la comunicación entre las personas y las computadoras.
Dispositivo de entrada: es todo aquel dispositivo que permite que una persona puede enviar información a la computadora por ejemplo: el teclado, el Mouse y las memorias usb.
Dispositivo de salida: esta permite a una computadora pasar información al usuario por ejemplo: la pantalla, la impresora y los quemadores de CD. o disket.
Puertos serie y paralelo.
La computadora esta equipado de puertos serie y paralelo.
Puerto serial: un puerto serial transmite la información una tras otra formando una sola línea, siempre va un paquete detrás de otro. Ejemplo: si estas regando las plantas con una manguera por ella sale un litro por segundo, siempre va a salir un litro por cada segundo que al contrario en un puerto paralelo si va a salir un litro por segundo, este tendrá ocho mangueras al mismo tiempo así que saldrá ocho litros por segundo.
Puerto paralelo: este es conocido también como puerto para la impresora el cual es un conector de 25 clavijas.
USB: sus siglas significan universal serial bus (bus serie universal) este es una expansión externa para recaudar más información a tu computadora. La ventaja de los bus usb es tener conexiones más rápidas y más accesibles.
Firewire: este es un bus como el usb es muy similar, aunque el firewire es mucho más rápido y moderno que un bus usb. Un bus serie de alta velocidad tiene una tasa de transferencia de 400Mps.
Redes e Internet.
Una red es un conjunto de computadoras conectados entre si para compartir información. Las redes se pueden clasificar en varias categorías siendo las mas conocidas las redes de area local (lan, local area network) y las redes área amplia o ancha wan (Wide area network). La red wan mas conocida y popular en la actualidad es la red Internet que esta soportada por la World Wide web. Las redes mas implantadas son las redes que se conectan con tecnología Internet.
Estas redes son intranet y extranet y se conocen como redes corporativas ya que enlazan computadoras de los empleados de las empresas.
Redes P2P, igual a igual.
Es un sistema que enlazan a los computadores vía Internet o redes privadas de modo que puedan compartir tareas de proceso. por ejemplo: ares, limewire, emule, etube, etc.
MODEM: el MODEM es un dispositivo periférico que permite intercambiar información entre computadoras a través de una línea telefónica. Es un dispositivo que transforma las señales digitales de la computadora en señales eléctricas analógicas telefónicas y viceversa, con lo que es posible transmitir y recibir información a través de la línea telefónica.
El Software (los programas).
Es un conjunto de instrucciones de programa detalladas que controlan y coordinan los componentes hardware de una computadora y controlan las operaciones de un sistema.
Hay dos tipos de software que están relacionadas entre si.
Software del sistema: es un conjunto de programas indispensables para que la maquina funcione; se denominan también programas del sistema. Estos programas son, el sistema operativo, los editores de texto, los lenguajes de programación. Por ejemplo: Windows xp, Linux, mc. off, minix.
Software de aplicación: son programas que ayuda al usuario a realizar tareas específicas. Por ejemplo: Microsoft office (Word, power point, Excel, etc.)
Programa: es una serie de instrucciones que le dice a la computadora que hacer y estos se realizan en un lenguaje de programación.