jueves, 23 de abril de 2009

ejercicio en clase

23/04/09
ejercicio con numeros y un menu


lunes, 20 de abril de 2009

ejercicio

20/04/09


#include
int main ()
{
int opcion;
printf("* * * * * * * * * * * * * *\n");
printf("* *\n");
printf("* menu principal *\n");
printf("* *\n");
printf("* suma ------------ [1] *\n");
printf("* resta ----------- [2] *\n");
printf("* multiplicacion ---[3] *\n");
printf("* salir ----------- [0] *\n");
printf("* *\n");
printf("* * * * * * * * * * * * * * \n");
printf("dame la opcion:");
scanf("%d",&opcion);
switch (opcion)
{
case 1: puts("suma...");
break;
case 2: puts("resta...");
break;
case 3: puts("multiplicacion...");
break;
case 0: puts("salir...");
default: printf(" salir");
}
return 0;
}





martes, 14 de abril de 2009

resumen capitulo 5

estructuras de seleccion: sentecias if y switch


5.1 estucturas de control

controlan el flujo de ejecucion de un progama o funcion. las estructuras de control permiten cambiar instruciones o sentencias individuales en una simple unidad logica con un punto de estrada y un punto de salida.
se organizan en tes tipos de estructuras de ocntrol que sirven para constolar el fljo de la ejecucion:
  • secuencia
  • seleccion (desicion)
  • epeticion

5.2 la sentecia if

la estructura de control de seleccion principal es una sentencia if. la sentecia if tiene dos alternativas o formas positivas.

la sentencia is funciona de la siguiente manera. cuando se alcanza la sentencia if dentro de un programa, se evalua la expesion entre paentesis que viene a continuaciion de if. si expresion es verdadea, se ejecuta accion, en caso contrairo no se ejecuta accion (en su formato mas simple, accion es una sentencia simple y en los restantes formatos es una sentencia compuesta). en cualquier caso la ejecucion del programa continua con la siguiente sentencia del programa.

5.3 senetecia if de dos alternativas: if - else

un segundo formato de la sentecia if es la sentencia if-else. este fomato de la sentecia if tiene la siguiente sintaxis:

if (expesion) accion1 else accion2

if: expresion logica que determina la accion a ajecuta.

accion1: que se realiza si la expresion logica es verdadea.

accion2: que se ejecuta si la expresion logica es falsa.

este formato accion1 y accion2 son individualmente, o bien una unica sentencia que termina en un punto y coma (;) o un grupo de sentencias encerrado entre llaves. cuando se ejecuta la sentencia if-else, se evalua expesion. si expesion es verdadea, se ejecuta accion1 y en caso contrario se ejecuta la accion2.

5.4 sentencias if-else anidadas

hasta ente punto, las sentencias if implementan decisiones que implican una o dos alternaivas. en esta seccion, se mostrara comom se puede utilizar la sentencia if paa implementar decisiones que implique diferentes alternativas.

una sentencia if es anidada cuando la sentencia de la rama verdadera o la ama flasa es a su vez una sentencia if. una sentencia if anidada e puede utiliza para implementar decisiones con varias alternativas o multi-alternativas.

5.4.1 sangria en las sentencias if anidadas

el formato multibifurcacion se compone de una seie de sentecnias if anidadas, en cada linea se puede escribirr un sentencia if.

5.4.2 comparacion de sentencias if anidadas y secuencias de sentencias if

los programas tienen dos alternativas: 1) usar una secuencia if; 2) una unica sentencia if anidada. aunque la secuencia anteior es logicamente equivalente a la orriginal, no es tan legible ni eficiente. al contrario que la sentencia if anidada, la secuencia no muestra claamente cual es la sentencia a ejecutar para un valor determinado de x. con respectpo a la eficiencia, la sentencias if anidada se ejecuta mas rapidamente cuando x es positivo ya que la primera condicion (x>0) es verdadera. lo que significa que la parte de la sentencia if a continuacion del pimer else se salta.

5.5 sentencia de control switch

la sentencia switch es una sentencia C que se utiliza para seleccion una de ente multiples alternativas. especialemente itul cuando la seleccion se basa en el valor de una variable simple o de una expesion denominada expesion de control o selecto. el valor de esta expresion puede se de tipo int o cha, pero no de tipo loat ni double.

esta permitido e¡tener vaias expresiones case en una alternativa dada de la sentencia switch.

la sentencia if-else es mas vesatil que la sentencias switch y se puede utilizar unas sentencias if-else anidadas o multidecision, en cualquier parte que se utilice una sentencia case. sin embargo, normalmente la sentencia switch es mas cla.

5.6 expresiones condicionales: el opeador ?:

las sentencias de seleccion consideradas hasta ahora, son similares a las sentencias previstas en otro lenguaje, tales como pascal y fortan 90. C tiene tecar mecanismo de seleccion, una epresion que produce uno de dos calores, resultados de una expresion logica o booleana. este mecanismo epesion condicional. una expresion condicional tiene el formato c ? A : B y es realmente una opeacion tenaria en el que C, A y B son los tres operadores y ? : es el operador.

5.7 evaluacion en cortocircuito de expresiones logicas

cuando se evalua expresiones logicas en C se emplea una tecnica denominada evaluacion en cortocircuito. este tipoo de evaluacion significa que se puede detene la evaluacion de una expesion logica tan pornto como su valor pueda ser determinado con absoluta ceteza.

la razon es que una expresion logica del tipo falso && (...)

debe se siempre falsa, cuando uno de los operadores de la opeacion and es falso. en consecuencia no hay necesidad de continuar la evaluacion de las otras condiciones cuando (soltero == `s`) se evalua a falso.

C realiza evaluacion en cortocircuito con los operadores && o bien por //, de modo que evalua primeo la expesion mas a la izquieda de las dos expresiones unidas por && o bien por //. si de esta evaluacion se deduce la informacion suficiente paa determinar el valor final de la expesion, el compilador C no evalua la segunda expresion.

5.9 errores frecuentes de programacion

uno de los erores mas comunes es una sentencias if es utilizar un operador de asignacion (=) en lugar de un operador de igualdad (==).

en una sentencia if anidada cada clausula else coesponde con la if precedente mas cecana.

las comparaciones con operadores == de contidades algebraicamente iguales pueden poducir una expresion logica falsa.

cuando en una sentencia switch o en un bloqueo de sentencias falta una de las llaves, aparece un mensaje de orror.

el selector de una sentencia switch debe se de tipo entero o compatible entero. asi las contantes reales.

cuando se utiliza una sentencia switch asegurese que el selecto de switch y las etiquetas case son del mismo tipo.

normalmente debera escribirr la sentencia break despues de la accion que se desea que ejecute cada uno de los case de la sentencia switch.

ejercicios de 5.1 a 5.10

5.1
#include
int main ()
{
int n, d;
printf ( "Introduzca dos enteros: ");
scanf("%d %d",&n,&d);if (n%d == 0)
printf(" %d es divisible por %d\n",n,d);
return 0;
}

5.2
#include
void main ()
{
float nota;
printf("Introduzca la nota obtenida (0-10): ");
scanf("%f", &nota);
/* compara Nota con 5 */if (nota >= 5)
puts("Aprobado");
}


5.3
#include
void main (){ float numero;
printf("Introduzca un numero positivo o negativo: ");
scanf("%f",&numero); /* comparar numero */if (numero > 0)
printf("%f es mayor que cero\n",numero);
if (numero < 0)
printf("%f es menor que cero\n",numero);
if (numero == 0) printf("%f es igual a cero\n",numero);
}


5.4
#include
int main()
{
int n, d;
printf( "Introduzca dos enteros; ");
scanf("%D %d",&n,&d);if (n%d == 0)
printf("%d es divisible por %d\n",n,d);
else printf("%d no es divisible por %d\n",n,d);
return 0;
}


5.5
#include
int main()
{
int x, y;
printf( "Introduzca dos enteros: ");
scanf("%d %d",&x,&y);if (x > y)
printf("%6d\n",x);
else printf("%6d\n",y);
return 0;
}


5.6
#include
#include int
main()
{
float f,x;
printf("\n Elige un valor de x: ");
scanf("%f",&x);
/* seleccion del rango en que se encuentra x */if (x <= 0.0) f = pow(x,2) - x;
else f = -pow(x,2) + 3*x;
printf("f(%.1f) = %.3f",x,f);
return 0;
}



5.8
#include
void main()
{
float numero;
printf( " Introduzca un numero positivo o negativo: ");
scanf("%f",&numero); /* comparar numero con cero */if (numero > 0){printf("%.2f %s", numero, "es mayor que cero\n");
puts( "Pruebe de nuevo introduciendo un numero negativo");
}
else if (numero <10)
{
printf("%.2f %s", numero, "es menor que cero\n");
puts( "pruebe de nuevo introduciendo un numero positivo");
}
else{printf("%.2f %s", numero, "es igual a cero\n");
puts( " ¿por que no introduce otro numero? ");
}
}



5.10
#include
int main()
{
int a, b, c, mayor;
printf("\nIntroduzca tres enteros:");
scanf("%d %d %d",&a,&b,&c);if (a > b)if (a > c) mayor =a;
else mayor =c;elseif (b > c) mayor =b;
else mayor =c;
printf("El mayor es %d \n",mayor);
return 0;
}

lunes, 30 de marzo de 2009

cuestionario pag. 140-167Prop

30/03/09

1. Defina los sig. conceptos y proporcione al menos tres ejemplos:
  1. operadores aritmeticos:
  2. operadores logicos:
  3. operadores relacionales:

2. Que son las reglas de prioridad y asociatividad:

3. Proporcione un ejemplo de cada tipo de operador de asignacion que existe y descriva su funcion:

4. Explique que son los operadores de incremento y decremento, proporcione dos ejemplos de cada uno y su funcion:

5. Liste los operadores relacionales, porporcione un ejemplo y su funcion:

6. Construya las tablas de verdad de las operaciones and y or.

7. Qué es un operador de dirección. Cuáles existen y emplique su funcionamiento.

8. Proporcione tres ejemplos de operadores condicionales y su función.

9. Porporcione dos ejemplos que utilice el operador(,) y explique su función.

10. Explique la función del opeador [] y porporciones dos ejemplos.

11. Aque se refiere al convercion de tipos de datos.

12. Liste los operadores con mayor grado de priopidad (al menos cuatro niveles).

viernes, 27 de marzo de 2009

jueves, 19 de marzo de 2009

ejercicio dibujo

19/03/09


ejercicio

19/03/09


aqui se nota que podemos hacer reduccion cuando estamos multiplicando por ejemplo i=i*10 y tambien se puede escriver asi i*=10
esto al final resulta lo mismo y se imprime lo mismo.

#include
int main ()
{
int i;i=5;
printf ("elvalor de i es igual %d\n",i);
i*=10;
printf ("elvalor de i es igual %d",i);
}

miércoles, 11 de marzo de 2009

ejercicios notas

11/03/09

nota: este programa nomas declara atapuerta y lo imprime.

#include
int main()
{
char mensaje[20];
strcpy (mensaje, "atapuerta\n");
printf(mensaje);
return 0;
}


nota: este programa imprime tambor de hojalata y tambien todo puede hacerse y permiso para salir en la foto. el puts se utiliza para insertar diferentes entradas.

#
#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;
}


nota: este programa nomas saca los valores e imprime los resultados de x y y1

#include
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;
}



nota: ente programa imprimes las primeras dos iniciales de una palabra. separandolos de un espacio y u punto.

#include
int main()
{
char primero, ultimo;
printf("introdusca su primera y ultima inicial:");
scanf("%c %c", &primero,&ultimo);
printf("hola, %c . %c .\n", primero,ultimo);
return 0;
}



nota: se declara la variable sonido pero como el sonido no se escrive pues lo imprime el blanco.

#include
int main()
{
char sonidos = '\a';
char bs = '\b';
printf ("%c%c", sonidos, sonidos);
printf ("ZZ");
printf ("%c%c",bs,bs);
return 0;
}

ejercicios

11/03/09





viernes, 6 de marzo de 2009

dibujo de algoritmos ejercicios










ej 3.3

#include
main ()
{
printf("Cinco minutos bastan para soñar toda una vida\n");
printf("así de relativo es el tiempo");
return 0;
}

ej 3.4

#include
void main ()
{
printf("el lenguaje de programacion c");
}

ej 3.5

#include
main ()
{
printf ("*****\n");
printf ("* *\n");
printf ("* *\n");
printf ("* *\n");
printf ("****\n");
printf ("* *\n");
printf ("* *\n");
printf ("* *\n");
printf ("****\n");
return 0;
}

ej 3.2

# include
main ()
{
printf ("javier Perez\n");
printf ("mi direcccion es guerrero b 35 y 36");
return 0;
}

ej 3.1

# include
int main ()
{
char pax[] = "juan sin miedo";
printf("%s %s\n",pax,&pax[4]);
puts(pax);
puts(&pax[4]);
return 0;
}

martes, 3 de marzo de 2009

tarea

3/03/09

ler desde la pagina 100 en adelante

identificadores p.112
palabras reservadas
comertarios p.113
tipos de datos p.114
caraccteres secuencias de escape o codigo de escape p.120

ej003

#include
main ()
{
printf ("________________.O._________\n");
printf ("________________.OO.__________\n");
printf ("________________.OOO.____________.O. * .* ..\n");
printf ("________________.OOOO.______-.OOO. * .* . * .\n");
printf ("________________.OOOOO._-.OOOO. * .* ..\n");
printf ("_______________.OOOOOOOOOOO. * . * . * . * .\n");
printf ("__________-.OOOOOOOOOOOOO. * .* ..\n");
printf ("_____.OOOOOOOO000•nano•OO. * . * . * . * .\n");
printf ("__________-.OOOOOOOOOOOOO. * . * . *\n");
printf ("_______________.OOOOOOOOOOO. * . * . * .\n");
printf ("________________.OOOOO._-.OOOO. * . *. * . * ..\n");
printf ("________________.OOOO.______-.OOO. * .* ..\n");
printf ("________________.OOO.____________.O. * . *. * .\n");
printf ("________________.OO.__________\n");
printf ("________________.O.__________\n");
return 0;
}

viernes, 27 de febrero de 2009

ej002

#include
main ()
{
printf (" hola\n");
printf (" Soy javier\n");
printf (" estudio programacion\n");
return 0;
}
27/02/09

realizar un programa que despliegue los sig. datos; cada dato en una linea diferente y adoble linea
nombre, direccion, colonia, telefono, escuela y carrera.

#include
main ()
{
printf (" soy javier\n\n");
printf (" mi direccion es guerrero y 35\n\n");
printf (" colonia campestre\n\n");
printf (" telefono 6531126580\n\n");
printf (" escuela cesues\n\n");printf (" carrera ingenieria industrial en electronica\n\n");

return 0;
}

nota:
\n = para saltar un espacio hacia bajo
\n\n = para saltar doble es´pacio hacia bajo

practica 1

#include
main()
{
printf("hola");
printf("soy javier");
printf("estudio programacion");
return 0;
}

lunes, 23 de febrero de 2009

3.5 PRUEBAS

Los errores de ejecución ocurren después que el programa se ha compilado con éxito y aún se está ejecutando. Existen ciertos errores que la computadora sólo puede detectar cuando se ejecuta el programa. La mayoría de los sistemas informáticos detectarán ciertos errores en tiempo de ejecución y presentarán un mensaje de error apropiado. Muchos errores en tiempo de ejecución tienen que ver con los cálculos numéricos. Por ejemplo, si la computadora intenta dividir un número por cero o leer un archivo no creado, se produce un error en tiempo de ejecución.Es preciso tener presente que el compilador puede no emitir ningún mensaje de error durante laejecución y eso no garantiza que el programa sea correcto. Recuerde que el compilador sólo le indica si se escribió bien sintácticamente un programa en C. No indica si el programa hace lo que realmente desea que haga. Los errores lógicos pueden aparecer -y de hecho aparecerán- por un mal diseño del algoritmo y posterior programa.Para determinar si un programa contiene un error lógico, se debe ejecutar utilizando datos demuestra y comprobar la salida verificando su exactitud. Esta prueba (testing) se debe hacer varias veces utilizando diferentes entradas, preparadas - e n el caso ideal-, por personas diferentes al programador, que puedan indicar suposiciones no evidentes en la elección de los datos de prueba. Si cualquier combinación de entradas produce salida incorrecta, entonces el programa contiene un error lógico.Una vez que se ha determinado que un programa contiene un error lógico, la localización del error es una de las partes más difíciles de la programación. La ejecución se debe realizar paso a paso (seguir la traza) hasta el punto en que se observe que un valor calculado difiere del valor esperado. Para simplificar este seguimiento o traza, la mayoría de los compiladores de C proporcionan un depurador integrado' incorporado con el editor, y todos ellos en un mismo paquete de software, que permiten al programador ejecutar realmente un programa, línea a línea, observando los efectos de la ejecución de cada línea en los valores de los objetos del programa. Una vez que se ha localizado el error, se utilizará el editor de texto para corregir dicho error.Es preciso hacer constar que casi nunca será posible comprobar un programa para todos los posibles conjuntos de datos de prueba. Existen casos en desarrollos profesionales en los que, aparentemente, los programas han estado siendo utilizados sin problemas durante años, hasta que se utilizó una combinación específica de entradas y ésta produjo una salida incorrecta debida a un error lógico. El conjunto de datos específicos que produjo el error nunca se había introducido.A medida que los programas crecen en tamaño y complejidad, el problema de las pruebas seconvierte en un problema de dificultad cada vez más creciente. No importa cuantas pruebas se hagan:<>.

3.4 DEPURACION DE UN PROGRAMA EN C

Rara vez los programas funcionan bien la primera vez que se ejecutan. Los errores que se producen en los programas han de ser detectados, aislados (fijados) y corregidos. El proceso de encontrar errores se denomina depuración del programa. La corrección del error es probablemente la etapa más fácil, siendola detección y aislamiento del error las tareas más difíciles.Existen diferentes situaciones en las cuales se suelen introducir errores en un programa. Dos de lasmás frecuentes son:1. Violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se2. Los errores en el diseño del algoritmo en el que está basado el programa.Cuando el compilador detecta un error, visualiza un mensaje de error indicando que se ha cometido un error y posible causa del error. Desgraciadamente los mensajes de error son difíciles de interpretar y a veces se llegan a conclusiones erróneas. También varían de un compilador a otro compilador. A medida que se gana en experiencia, el proceso de puesta a punto de un programa se mejora considerablemente. Nuestro objetivo en cada capítulo es describir los errores que ocurren más frecuentemente y sugerir posibles causas de error, junto con reglas de estilo de escritura de programas. Desde el punto de vista conceptual existen tres tipos de errores: sintaxis, lógicos y de regresión.3.4.1. ERRORES DE SINTAXISLos errores de sintaxis son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas de gramática del lenguaje. Errores de sintaxis típicos son: escritura incorrecta de palabras reservadas, omisión de signos de puntuación (comillas, punto y coma.. .). Los errores de sintaxis son los más fáciles de fijar, ya que ellos son detectados y aislados por el compilador.Estos errores se suelen detectar por el compilador durante el proceso de compilación. A medida que se produce el proceso de traducción del código fuente (por ejemplo, programa escrito en C) a lenguaje máquina de la computadora, el compilador verifica si el programa que se está traduciendo cumple las reglas de sintaxis del lenguaje. Si el programa viola alguna de estas reglas, el compilador genera un mensuje de error (o diagnóstico) que explica el problema (aparente). Algunos errores típicos (ya citados anteriormente):
Punto y coma después de la cabecera ma i n ( ) .
Omisión de punto y coma al final de una sentencia.
Olvido de la secuencia */ para finalizar un comentario.
Olvido de las dobles comillas al cerrar una cadena.
Etc.
Si una sentencia tiene un error de sintaxis no se traducirá completamente y el programa no seejecutará. Así, por ejemplo, si una línea de programa es
double radio
se producirá un error ya que falta el punto y coma (;) después de la letra última "o". Posteriormente se explicará el proceso de corrección por parte del programador.
3.4.2. ERRORES LOGICOS
Un segundo tipo de error importante es el error lógico, ya que tal error representa errores delprogramador en el diseño del algoritmo y posterior programa. Los errores lógicos son más difíciles de encontrar y aislar ya que no suelen ser detectados por el compilador.
Suponga, por ejemplo, que una línea de un programa contiene la sentencia
double peso = densidad * 5.25 * PI * pow(longitud,5)/4.0
pero resulta que el tercer asterisco (operador de multiplicación) es en realidad un signo + (operador suma). El compilador no produce ningún mensaje de error de sintaxis ya que no se ha violado ninguna regla de sintaxis y, por tanto, el cornpilador no detecta error y el programa se compilará y ejecutará bien, aunque producirá resultados de valores incorrectos ya que la fórmula utilizada para calcular el peso contiene un error lógico.Una vez que se ha determinado que un programa contiene un error lógico -si es que se encuentra en la primera ejecución y no pasa desapercibida al programador- encontrar el error es una de las tareas más difíciles de la programación. El depurador (debugger) un programa de software diseñado específicamente para la detección, verificación y corrección de errores, ayudará en las tareas de depuración.Los errores lógicos ocurren cuando un programa es la implementación de un algoritmo defectuoso. Dado que los errores lógicos normalmente no producen errores en tiempo de ejecución y no visualizan mensajes de error; son más difíciles de detectar porque el programa parece ejecutarse sin contratiempos.El único signo de un error lógico puede ser la salida incorrecta de un programa. La sentencia
total-grados-centigrados = fahrenheit-a-centigrddos * temperatura-cen;
es una sentencia perfectamente legal en C, pero la ecuación no responde a ningún cálculo válido para obtener el total de grados centígrados en una sala.Se pueden detectar errores lógicos comprobando el programa en su totalidad, comprobando su salida con los resultados previstos. Se pueden prevenir errores lógicos con un estudio minucioso y detallado del algoritmo antes de que el programa se ejecute, pero resultará fácil cometer errores lógicos y es el conocimiento de C, de las técnicas algorítmicas y la experiencia lo que permitirá la detección de los errores lógicos.
3.4.3. ERRORES DE REGRESION
Los errores de regresión son aquellos que se crean accidentalmente cuando se intenta corregir un error lógico. Siempre que se corrige un error se debe comprobar totalmente la exactitud (corrección) para asegurarse que se fija el error que se está tratando y no produce otro error. Los errores de regresión son comunes, pero son fáciles de leer y corregir. Una ley no escrita es que: «un error se ha producido, probablemente, por el último código modificadon.
3.4.4. MENSAJES DE ERROR
Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa.Los mensajes de error producidos durante la compilación se suelen producir, normalmente, porerrores de sintaxis y suele variar según los compiladores; pero, en general, se agrupan en tres grandes bloques:
Errores fatales. Son raros. Algunos de ellos indican un error interno del compilador. Cuando ocurre un error fatal, la compilación se detiene inmediatamente, se debe tomar la acción apropiada y a continuación se vuelve a iniciar la compilación.
Errores de sintaxis. Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco. El compilador terminará la fase actual de compilación y se detiene.
Advertencias (warning). No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje.
3.4.5. ERRORES EN TIEMPO DE EJECUCION
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 terminación del programa pero producen resultados incorrectos.Un error en tiempo de ejecución puede ocurrir como resultado de que el programa obliga a lacomputadora a realizar una operación ilegal, tal como dividir un número por cero, raíz cuadrada de un número negativo o manipular datos no válidos o no definidos. Cuando ocurre este tipo de error, la computadora detendrá la ejecución de su programa y emitirá (visualizará) un mensaje de diagnóstico tal como:
Divide error, line number * * *
Si se intenta manipular datos no válidos o indefinidos su salida puede contener resultados extraños. Por ejemplo, se puede producir un desbordumiento aritmético cuando un programa intenta almacenar un número que es mayor que el tamaño máximo que puede manipular su computadora.El programa depurar. c se compila con éxito; pero no contiene ninguna sentencia que asigne unvalor a la variable x que pueda sumarse a y para producir un valor z, por lo tanto al ejecutarse lasentencia de asignación
z = x + y ;
se produce un error en tiempo de ejecución, un error de lógica.
* / prueba de errores en tiempo de ejecución* /#include void main (){/ * Variables locales * /float x, y, z;y = 10.0z = x + y; / * valor inesperado: error de ejecución * /printf("E1 valor de z es = %f\n",z);}
El programa anterior, sin embargo, podría terminar su ejecución, aunque produciría resultadosincorrectos. Dado que no se asigna ningún valor a x, contendrá un valor impredecible y el resultado de la suma será también impredecible. Muchos compiladores inicializan las variables automáticamente a cero, haciendo en este caso más difícil de detectar la omisión, sobre todo cuando el programa se transfiere a otro compilador que no asigna ningún valor definido.Otra fuente de errores en tiempo de ejecución se suele producir por errores en la entrada de datos producidos por la lectura del dato incorrecto en una variable de entrada.

3.3 EL PROCESO DE EJECUCION DE UN PROGRAMA EN C

Un programa de computadora escrito en un lenguaje de programación (por ejemplo, C) tiene forma de un texto ordinario. Se escribe el programa en una hoja de papel y a este programa se le denomina programa texto o codigo fuente. Considérese el ejemplo sencillo:
#include int main(){printf ("Longitud de circunferencia de radio 5: %f" ,2*3.1416*5) ;return 0;}
La Figura 3.3 muestra el método de edición de un programa y la creación del programa en un disco, en un archivo que se denomina archivo de texto (archivo fuente). Con la ayuda de un editor de texto se puede editar el texto fácilmente, es decir, cambiar, mover, cortar, pegar, borrar texto. Se puede ver, normalmente, una parte del texto en la pantalla y se puede marcar partes del texto a editar con ayuda de un ratón o el teclado. El modo de funcionamiento de un editor de texto y las órdenes de edición asociadas varían de un sistema a otro.





Una vez editado un programa, se le proporciona un nombre. Se suele dar una extensión al nombre (normalmente .c, aunque en algunos sistemas puede tener otros sufijos).La siguiente etapa es la de compilación. En ella se traduce el código fuente escrito en lenguaje C acódigo máquina (entendible por la computadora). El programa que realiza esta traducción se llama cornpilador. Cada compilador se construye para un determinado lenguaje de programación (por ejemplo C); un compilador puede ser un programa independiente (como suele ser el caso de sistemas operativos como VMS, UNIX, etc.) o bien formar parte de un programa entorno integrado de desarrollo (EID). Los programas EID contienen todos los recursos que se necesitan para desarrollar y ejecutar un programa, por ejemplo, editores de texto, compiladores, enlazadores, navegadores y depuradores.Cada lenguaje de programación tiene unas reglas especiales para la construcción de programas que se denomina sintaxis. El compilador lee el programa del archivo de texto creado anteriormente y comprueba que el programa sigue las reglas de sintaxis del lenguaje de programación.
El archivo objeto contiene sólo la traducción del código fuente. Esto no es suficiente para ejecutarrealmente el programa. Es necesario incluir los archivos de biblioteca (por ejemplo, en el programa area. c , s t d i o . h). Una biblioteca es una colección de código que ha sido programada y traducida y lista para utilizar en su programa.





El proceso de ejecución de un programa no suele funcionar a la primera vez; es decir, casi siempre hay errores de sintaxis o errores en tiempo de ejecución. El proceso de detectar y corregir errores se denomina depuración o puesta a punto de un programa.La Figura 3.6 muestra el proceso completo de puesta a punto de un programa.

Se comienza escribiendo el archivo fuente con el editor. Se compila el archivo fuente y secomprueban mensajes de errores. Se retorna al editor y se fijan los errores de sintaxis. Cuando elcompilador tiene éxito, el enlazador construye el archivo ejecutable. Se ejecuta el archivo ejecutable. Sise encuentra un error, se puede activar el depurador para ejecutar sentencia a sentencia. Una vez que se encuentra la causa del error, se vuelve al editor y se repite la compilación. El proceso de compilar, enlazar y ejecutar el programa se repetirá hasta que no se produzcan errores.
Etapas del proceso
El codigo fuente (archivo del programa) se crea con la ayuda del editor de texto.
El compilador traduce el archivo texto en un archivo objeto.
El enlazador pone juntos a diferentes archivos objetos para poner un archivo ejecutable.
El sistema operativo pone el archivo ejecutable en la memoria central y se ejecuta el programa.


3.2.CREACION DE UN PROGRAMA

Una vez creado un programa en C, se debe ejecutar. ¿Cómo realizar esta tarea? Los pasos a dar dependerán del compilador C que utilice. Sin embargo, serán similares a los mostrados en la Figura 3.2. En general, los pasos serían:
Utilizar un editor de texto para escribir el programa y grabarlo en un archivo. Este archivoconstituye el código fuente de un programa.
Compilar el código fuente. Se traduce el código fuente en un codigo objeto (extensión . ob j ) (lenguaje máquina entendible por la computadora). Un archivo objeto contiene instrucciones en lenguaje máquina que se pueden ejecutar por una computadora. Los archivos estándar C y los de cabecera definidos por el usuario son incluidos (#include) en su código fuente por el preprocesador. Los archivos de cabecera contienen información necesaria para la compilación, como es el caso de stdi0.h que contiene información scanf() y de printf().
Enlazar el código objeto con las bibliotecas correspondientes. Una biblioteca C contiene código objeto de una colección de rutinas o funciones que realizan tareas, como visualizar informaciones en la pantalla o calcular la raíz cuadrada de un número. El enlace del código objeto del programa con el objeto de las funciones utilizadas y cualquier otro código empleado en el enlace, producirá un código ejecutable. Un programa C consta de un número diferente de archivos objeto y archivos biblioteca.

Para crear un programa se utilizan las siguientes etapas:
1. Definir su programa.
2. Definir directivas del preprocesador.
3. Definición 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.1 ESTRUCTURA GENERAL DE UN PROGRAMA 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 realiza una o mas acciones. Asimismo, un programa contendra una serie de directivas #include que permitiran incluir en el mismo archivos de cabecera que a su vez constaran 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
Advertencia


El programa mas corto del C es el <> que no hace nada.
La sentencia return o; no es obligatoria en la mayoria de los compiladores, aunque algunos emiten un mensaje de advertencia si se omite.
3.1.1. DIRECTIVAS DEL PROCESADOR


El procesador en un programa C se puede considerar como un editor de texto inteligente que consta de directivas (instrucciones al compilador antes de que se compile el programa principal). Las dos directivas mas usuales son #include y #define.
Todas las directivas del procesador comienzan con el signo del libro o <> (#), que indica al compilador que lea las directivas antes de compilar la parte (funcion) principal del programa.Las directivas son instrucciones el compilador. Las directivas no son generalmente sentencias -observese que su linea no termina en punto y coma-, sino intrucciones que se dan al compilador antes de que el programa se compile. Aunque las directivas pueden definir macros, nombres de constantes, archivos fuente adicionales, etc., su uso mas frecuente en C es la inclusion de archivos de cabecera.
Existen archivos de cabecera estandar que se utilan ampliamente, tales como stdio.h, stdlib.h, math.h, string.h y se utilizaran otros archivos de cabecera definidos por el usuario para diseño estructurado.La directiva #include 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.
Los archivos de cabecera (archivos con extension .h contienen codigo fuente C) se situan en un programa C mediante la directiva de preprocesador #include con una intrucion que tiene el siguiente formato:#include o bien #include "nombrearch.h"
Nombrearch debe ser un archivo de texto ASCII (su archivo fuente) que reside en su disco el archivo de cabecera mas frecuente es stdio.h.


3.1.2. DECLARACIONES GLOBALES

Las declaraciones globales indican al compilador que las funciones definidas por el usuario o variables asi declaradas son comunes a todas las funciones de su programa. Las declaraciones globales se situan antes de la funcion main (). Si se declara global una variable grado_clase del tipo int grado_clase; cualquier funcion de su programa, incluyendo main (), puede acceder a la variable grado_clase.
La zona de declaraciones globales de un programa puede incluir declaraciones de variables ademas de declaraciones de funcion. Las declaraciones de funcion se denominan prototipos int media (int a, int b).

Cada programa C tiene una funcion main () que es el punto de entrada al programa. Su estructura es:

La sentencia incluida entre las llaves { . . . } se denominan bloque. Un programa debe de tener solo una funcion main (). Si se intenta hacer dos funciones main () se produce un error ademas de la funcion main (), un programa C consta de una coleccion de funciones.
Una funcion C es un subprograma que devuelve un unico valor, un conjunto de valores o realiza alguna tarea especifica tal como E/S.
En un programa corto, el programa completo puede incluirse totalmente en la funcion main (). Un programa largo, sin embargo, tiene demasiados codigos para incluirlos en esta funcion. La funcion main() en un programa largo consta practicamnte de llamadas a las funciones definidas por el usuario. El programa siguiente se compone de tres funciones: obtenerdatos () , alfabetizar () y verpalabras () que invocan sucesivamente.

3.1.4. FUNCIONES DEFINIDAS POR EL USUARIO

Un programa C es una coleccion de funciones. Todos los programas se construyen apartir de una o mas funciones que se integran para crear una aplicacion. Todas las funciones contienen una o mas sentencias C se crean generalmente para realizar una unica tarea, como imprimir la pantalla, escribir un archivo o cambiar el color de la pantalla. Se pueden declarar y ejecutar un numero de funciones casi ilimitado en un programa C.
Las funciones definidas por el usuario se invocan por su nombre y los parametros opcionales que puedan tener. Despues de que la funcion es llamada, el codigo asociado con la funcion se ejecuta y, acontinuacion, se retorna a la funcion llamadora.
Todas las funciones tienen nombre y reciben una lista de valores. Se pueden asignar cualquier nombre a su funcion, pero normalmente se procura que dicho nombre describa el proposito de la funcion. En C, las funciones requieren una declaracion o prototipo en el programa:
void trazarcurva ( );
Una declaracion de funcion indica al compilador el nombre de la funcion por el que esta sera invocada en el programa. Si la funcion no se define, el compilador informa de un error. La palabra reservada void significa que la funcion nom devuelve un valor.
void contarvocales ( char caracter ).

3.1.5. COMENTARIOS

Un comentario es cualquier informacio que se añade a su archivo fuente para proporcionar documentacion de cualquier tipo. El compilador ignora los comentarios, no realiza ninguna tarea concreta. El uso de comentarios es totalmente opcional, aunque dicho uso es muy recomendable.

jueves, 19 de febrero de 2009

tarea

19/02/09

acer un resumen del capitolu 3.1 hasta 3.5 para el martes publicar en blogger.

miércoles, 11 de febrero de 2009

diagrama de cuatro numeros he imprima el mayor

escribir un algoritmo que lea 4 numeros y acontinuacion imprima "el mayor de los 4"


diagrama de tres numeros

Dado 3 numeros, determinar si la suma de cualquier pareja de ellos es igual al tercer numero. si se cumple esta condicion, escribir "iguales" y en caso contrario "distintos".


martes, 10 de febrero de 2009

guia para el examen

Computadora: es un dispositivo eléctrico, utilizado para procesar información y obtener resultados, capaces de ejecutar cálculos y tomar dediciones a velocidades más rápidas que el hombre.

Hardware: es el equipo físico o los dispositivos asociados con una computadora.

Software: conjunto de instrucciones dadas, el conjunto de instrucciones que indica a la computadora aquello que debe hacer.

Dispositivos de almacenamiento:
Memoria principal, memoria ROM, procesador, microprocesador
Secundarios: diskette, cd, dvd. Cinta magnética.

Lenguaje de programación: sirve para escribir programas que permiten la comunicación usuario/maquina.

Interprete: convierte las instrucciones escritas en lenguaje de programación en las instrucciones escritas en lenguaje maquina que esta puede entender.

Lenguaje maquina: un sistema de codificación nativo de la maquina y la escritura de programas secuénciales de 0 y 1.

Ensambladores: son programas que traducen otros programas escritos en códigos neumático en instrucciones numéricos en lenguaje maquina que son compatibles y legibles por la maquina.

Compiladores: son programas de alto nivel como C, JAVA, que ocupan ser traducidos a código maquina.

Lenguaje C: es el lenguaje de programación general asociado de método universal al sistema operativo UNIX.
Ventajas: poderoso, flexible, operacional, se utiliza en programas preferenciales, puede ser escrito para un tipo de computadoras.

Elementos del diagrama de flujo o símbolos:

Algoritmo: es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos.
Su estructura: entrada – proceso – salida

Pseudocódigo: es un lenguaje de especificaciones de algoritmos. Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al ingles o español, que faciliten tanto la escritura como la lectura de programas.

Diagrama (NS): es un diagrama de flujo en el que se omiten las flechas de unión y las cajas son continuas. Las acciones sucesivas se escriben en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en cajas.

diagrama de dos condiciones

Realizar diagrama que calcule el valor de x1 y x2 basado en una ecuacion cuadratica de 2do. grado, si la raiz es negativa mandar mensaje que no se puede "delta es negativo y no es posible calcular raiz cuadratica" y si la raiz es cero imprimir "x1 es igual a x2" ya que seria el mismo valor.




lunes, 9 de febrero de 2009

tarea


Realizar algoritmo que calcule el valor de x1 y x2 basado en una ecuacion cuadratica de 2do. grado y la formula general.


1. Inicio
2. Leer a, b, c.
3. calcular: x1= [-b+√[a^2-(4*a*c)]]/2*a x2= [-b-√[a^2-(4*a*c)]]/2*a
4. imprimir x1, x2
5. si x1 o x2 es negativo imprimir "no es posible calcular delta por que es negativo"
6. si x1 o x2 es positivo pasar a paso 7
7. fin


dibujo del domo

ahi esta el dibujo k pidio. aver cuantos puntos nos da heeeeee hahahahahahaha

viernes, 6 de febrero de 2009

ejercicio en clase

Realizar un algoritmo que lea la edad en meses de una persona y determine (si puede botar o no puede votar) sipuede votar o no puede votar.


1. inicio

2. leer meses

3. si M ≥ 216 hacer paso 4 si no paso 6

4. imprime "si puede votar"

5. saltar a paso 7

6. imprimir "no puede votar"

7. Fin.

tarea de algoritmo con la formula general


realizar un algoritmo que calcule X1 y x2 basado en una ecuacion cuadratica y la formula general.










inicio


leeler a,b,c


calcular X1 = [-b-√a´2 -(4*a*c)]/2*a;


imprime x1,x2


fin

viernes, 30 de enero de 2009

resumen unidad 2

un metodo general para la resolucion de un problema con computadorass tiene las siguientes fases:
  1. analisis del programa
  2. diseño del algoritmo
  3. cadificacion
  4. compilacion y ejecucion
  5. verificacion
  6. documentacion y mantenimiento

el sistema mas idoneo para resolver un problema es descomponerlo en modulos mas sencillos y luego, mediante diseños descendentes y refinamiento sucesivo.

llegar a modulos facilmente codificables. Estos modulos se deben codificar con las estructuras de control de porgramacion estructurada.

  1. secuenciales: las instrucciones se ejecutan secesivamente una despues de otra.
  2. repetitivas: una serie de instrucciones se repiten una y otra vez hasta que se cumple una cierta condicion.
  3. selectivas: permite elegir dos alternativas (dos conjuntos de instrucciones) dependiendo de una condicion determinada.

resumen unidad 1

Una computadora es una maquina para procesar información y obtener en función de unos datos de entrada.

Hardware: parte física de una maquina (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 de sistema comprende, entre otros, el sistema operativo Windows Linux, en computadoras personales y lenguajes de programación. Los lenguajes de programación de alto nivel están diseñados para hacer más fáciles la escritura de programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de programación cada uno e los cuales tiene sus propias características y funcionamientos y normalmente son mas fáciles de trasportar a maquinas diferentes que los escritos en lenguajes de bajo nivel.

Los programas escritos en lenguajes de alto nivel deben ser traducidos por un compilados antes de que se pueda 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.

jueves, 29 de enero de 2009

ejercicio 2.2

Escribir un algoritmo para:

Sumar dos números enteros

inicio
leer n
calcular n1 + n2
imprime n
fin


Restar dos números enteros

inicio
leer n
calcular n1 – n2
imprime n
fin

Multiplicar dos números enteros

inicio
leer n
calcular n1 * n2
imprime n
fin

Dividir dos números enteros

inicio
leer n
calcular n1 / n2
imprime n
fin

ejericicio 2.10

Diseñar una solución para resolver cada uno de los siguientes problemas y tratar de refinar sus soluciones mediante algoritmos adecuados.

A) realizar una llamada telefónica desde un teléfono público.

inicio
ver donde esta el teléfono
ir hacia le teléfono
tomar el teléfono
insertarle monedas
macar el numero deseado
hablar por teléfono
terminar de hablar
colgar el teléfono
Fin

B) Cocinar una tortilla

inicio
tomar los cerillos
prender le cerrillo
prender la estufa
poner el comal
calentar una tortilla
darle vuelta
sacar la tortilla
Fin

C) arreglar un pinchazo de una bicicleta

inicio
tomar la llave
voltear la bicicleta
quitar las tuercas
quitar llanta
parcharla
poner llanta
poner tornillos
voltear bicicleta
Fin

D) freír un huevo

inicio
prender la estufa y poner le sartén
agarra el huevo y quebrarlo dentro del sartén
revolver
sacarlo
Fin

algoritmo

realizar un algoritmo para calcular el area de un circulo.


inicio

leer r
2
calcular A=πr

imprimir "el area es" a

fin



miércoles, 28 de enero de 2009

La 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 y repetición.
Si está familiarizado con los lenguajes como BASIC y FORTRAN, la programació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.

programacion modular

Es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa. En programación modular el programa se divide en módulos (partes independientes), cada una de las cuales ejecuta una única actividad o tarea y se codifican independientemente de otros módulos. Cada uno de estos módulos se analiza, codifican y ponen a punto por separado.Cada programa contiene un módulo denominado programa principal que controla todo lo que sucede; se transfiere el control a submódulos, de modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada submodulo es demasiado compleja, éste deberá romperse en otros módulos más pequeños. El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga solamente una tarea específica que ejecutar. Esta tarea puede ser entrada, salida, manipulación de datos, control de otros módulos o alguna combinación de éstos. Un módulo puede transferir temporalmente (bifurcar) el control a otro módulo; sin embargo, cada modulo debe eventualmente devolver el control al módulo del cual se recibe originalmente el control.














Dado que los módulos son independientes, diferentes programadores pueden trabajar simultáneamente en diferentes partes del mismo programa, de ésta manera se reduce gran tiempo de diseño del algoritmo y la codificación, además una modificación radical dentro de un módulo no afectará a los demás.

lunes, 26 de enero de 2009

codificacion de un programa

codificacion: es la escritura en un lenguaje de porgramacion de la representacion del algoritmo desarrollado en las etapas precedentes.

para realizar la conversion del algoritmo en porgramas se deben sustituir las palabras reservadas en español por su homonimo en ingles, y las operaciones/instrucciones indicadas en lenguajes naturales expresarlas en el lenguaje de porgramacion correspondiente.

documentacion interna

la documnetacion de un porgrama se clasifica en interna y externa.
la documentacion interna: es la que se incluye dentro del codigo del porgrama funte mediante comentarios que ayuden a la comprension del codigo. todas las lineas de porgramas que comiencen con un simbolo / * son comentarios.
debido a que las maquinas actuales soportan grandes memorias (512 mb o 1.024 mb de memoria central minima en computadoras personales).

compilacion y ejecucion de un programa

es presico introducir en memeria demdiante el teclado y almacenado posteriormente es un disco. esta operacion se realiza con un porgrama editor. porteriormente el porgrama fuente se convierte en un archivo de porgrama que se guarda (graba) en disco.
el porgrama fuente debe ser traducido a lenguaje maquina, este porceso se realiza con el compilador y el sistema operativo que se encarga practicamente de la compilacion.
si tras la compilacion se presenta errores (errores de compilacion) en el porgrama fuente, es preciso volver a editar el porgrama, corregir los errores y compilar de nuevo, este porceso se repite hasta que no se porducen errores, onteniendo el porgrama objeto que todavia no es ejecutable directamente. el porceso de montaje porduce un porgrama ejecutable.
cuando el programa ejecutable se ha creado, se puede ejecutar desde el sistema operativo con solo teclear su nombre.

verificacion y depuracion de un programa

es el porceso de ejecucion del porgrama con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinan si el porgrama tiene errores.
la depuracion es el porceso de encontrar los errores del programa y corregir o eliminar dichos errores cuando se ejecuta un porgrama, se deducen tres:

errores de copilacion: se producen normalmente por un uso incorrescto de la regla del lenaguje de porgramacion y sule ser errores de sintaxis.

errores de ejecucion: estos errores de porducen por instrucciones que la computadora puede comprender pero no ejecutar.

errores logicos: se porduce en la logica del porgrama y la fuente del error suele ser el diseño del algoritmo.

viernes, 23 de enero de 2009

Diseño del Algoritmo

En la etapa de proceso de programación se determina que hace el programa. En la etapa de diseño 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 vencerás (un problema complejo se soluciona dividiendo en problemas o subproblemas y a la ves estos subproblemas en nivel mas bajo hasta que pueda ser implementada una solución).
Este método se conoce como diseño descendente (topo-down) o modular.


Herramientas de programación

Diagrama de flujo; representación grafica de un algoritmo.
Los símbolos son:

Terminal: marcar el inicio y fin del diagrama.
Entrada: introduce datos al proceso o solución (programa)
Decisión: cambiar el flujo del algoritmo de acuerdo a una evaluación lógica.
Proceso: involucra cualquier proceso calculo o computo, por ejemplo “calcular a=b*h”.
Salida: envía la información al dispositivo de salida estándar, normalmente el monitor.

Tarea:
Realizar un algoritmo que calcule el área de un rectángulo dada la base y la altura de acuerdo a la formula A=B*H
Algoritmo
Inicio
Declare opcion, base, altura,
areaLeer opcion
Seleccionar opcion
Declare área, altura, base
Caso 1
Leer base, altura area:base*altura)/2
Imprimir area
fin seleecion
fin.

miércoles, 21 de enero de 2009

Un diagrama Nassi-Shneiderman 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.Siguiendo un diseño de arriba a abajo, el problema en cuestión es reducido en subproblemas cada vez menores, hasta que sólo comandos y estructuras de control permanecen. Los diagramas Nassi-Shneiderman reflejan esta descomposición de una forma clara y simple, usando cajas anidadas para representar subproblemas.

Comandos
Es sólo eso, un comando. Hay tres tipos de ellos, todos representados por un rectángulo con una expresión en su interior:




Comando normal: Cuando usted asigna un valor a una variable, como c = a + b ó voto = "Juánita Pérez". Por favor, note que el signo igual (=) es usado para asignación, si usted desea comparar algo, úselo dos veces, == .Usted podría también no asignar un valor a una variable y sólo describir una acción, como "agregue azúcar al té".




Comando leer: Úselo cuando necesite que el usuario ingrese algo como un número o un texto. Estos comandos asignan el valor que el usuario ingresa a una variable. Por ejemplo, Leer x (Read x en inglés), luego de su ejecución la variable x contendrá el valor entregado por el usuario.
Comando escribir: Simplemente muestra el valor de una variable en pantalla al usuario.




Iteraciones

A veces se necesita repetir ciertas acciones, para esto existen las iteraciones o loops y existen dos tipos distintos de ellas:

Mientras hacer: Hace y repite ciertas operaciones mientras una condición es verdadera, si en algún momento es falsa, avanzará a la próxima operación. Siempre revisa la condición antes de ejecutar las operaciones en su interior. Un ejemplo no muy ambientalista puede ser: Mientras hayan árboles en el bosque, cortar uno, llevarlo al aserradero. Esto sería representado de la siguiente forma:


Como puede apreciar esta iteración contiene solo dos comandos normales, puede sin embargo, contener cualquier operación sin limitaciones de combinación o cantidad.

Hacer Mientras: Es similar a mientras hacer, pero la condición es revisada después que las operaciones interiores son realizadas. De esta forma iterará mientras la condición sea verdadera. Imagine por un momento que usted vuela a una isla tropical, usted ya se encuentra a bordo del avión y empieza a buscar su asiento, esta situación se puede representar con el siguiente algoritmo:










Primero usted lee el número de su asiento en su ticket, después se mueve y lee el número del asiento que tiene en frente, luego repite esta acciones mientras no encuentre el asiento que le corresponde.

Decisiones

Si existen dos (o más) formas de hacer algo, o hablando de forma más general, usted necesita estar seguro que una cierta condición se cumple para tomar diferentes acciones de acuerdo a esto, usted puede usar una decisión. De la misma manera que las iteraciones, usted puede agregar operaciones de cualquier tipo en su interior, pero una decisión tiene dos lados, un lado verdadero que será ejecutado sólo si la condición se cumple, y otro lado falso.






Ejemplo

El algoritmo de Euclides es uno de los más antiguos conocidos, dado que apareció en los Elementos de Euclides alrededor de el año 300 A.C. Euclides formuló originalmente el problema geométricamente, como el problema de encontrar una "medida" común para el largo de dos líneas, por lo que este algoritmo procede repitiendo la resta de la línea más corta al otro segmento (lo que es equivalente a encontrar el máximo común divisor de dos enteros). Sin embargo, el algoritmo probablemente no fue descubierto por Euclides y puede que haya sido conocido incluso 200 años antes. Ya era conocido seguramente por Eudoxus de Cnidus (alrededor del 375 A.C.) y Aristóteles (alrededor del 330 A.C.) donde aparece implícito en sus Tópicos, 158b, 29-35.

Descripción

El algoritmo original fue descritopor Euclides como un problema geométrico, por lo que se repetía la resta del número menor al mayor en vez de una división de enteros.

Leer los dos enteros llamados a y b.
Mientras a y b sean diferentes, hacer:
Si a es mayor que b, hacer:
Asignar a a, a menos b
Si no, hacer:
Asignar a b, b menos a
Escribir a

El valor escrito al final de contendrá el máximo común divisor de los dos enteros originales. Este algoritmo puede ser representado por el siguiente diagrama:

definicion y analisis

Pasos para la resolución de un problema:

Diseño algorítmico
Transformación del algoritmo-programa
Ejecución validación

Conceptos claves:
Algoritmo; es un método para resolver un problema. Características son preciso, definido y finito. Un algoritmo debe producir un resultado en un tiempo finito. Los métodos que utilizan algoritmos se denominan métodos algorítmicos, en oposición a los métodos que implican juicio o interpretación que se denominan métodos Heurísticos (a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines. Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque en ocasiones no hay pruebas de que la solución no pueda ser arbitrariamente errónea; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que deba ser así).
Ciclo de vida
Diseño descendente
Diagrama nassi
Diagrama de flujo
Diseño
Dominio del programa
Factores de calidad
Invariación
Métodos formales
Precondiciones.

2.12 fases en la resolución de problemas.

Las fases de resolución de un problema con computadora son:

Análisis del problema
Diseño del algoritmo
Codificación
Compilación y ejecución
Verificación
Depuración

lunes, 19 de enero de 2009

conseptos basicos de lenguaje C

Concepto de lenguaje de programación:
Se utilizan para escribir programas. Los programas de las computadoras modernas constan de secuencias de instrumentación que se codifican como secuencias de dígitos numéricos que podrán entender dichas computadoras.

Clasificación de los lenguajes de programación:
Lenguaje maquina: en la década de los 40 cuando nacía las primeras computadoras digitales el lenguaje que se utilizaba para programar era el de lenguaje maquina que traducía directamente el código maquina, comprensible por las computadoras.
Lenguaje bajo nivel (ensambladoras): en la década de los 50 y 60 comenzaron a desarrollarse lenguajes de programación de tercera generación que diferían de las generación anteriores en que sus instrucciones o primitivas eran de alto nivel (comprensiblemente por el programador como si fuera lenguaje natural) e independientemente de la maquina.
Lenguaje de alto nivel: 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 ensamblado.

Paradigmas de programación:
Representan fundamentalmente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software. Se clasifican en, procediementales (imperativos) declarativo y orientado a objetos.
Imperativo o procedimental: representa el enfoque o método tradicional de programación.
Declarativo: solicita al programador que describa el problema en lugar de encontrar una solución algorítmica al problema.
Orientada a objetos: consiste en un enfoque totalmente distinto al proceso procediemental, guarda analogía con la vida real.

Historia del lenguaje C.
Es un lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX.
C es una evolución de los lenguajes BCPL y B. nació realmente en 1978 fue creciendo en popularidad y los sucesivos cambios en el lenguaje, alo largo de los años, junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron necesario pensar en la estandarización de la definición del lenguaje C.
Es un lenguaje de alto nivel que permite programar con instrucciones de lenguaje de propósito general, también define como un lenguaje de programación estructurado de propósito general, aunque en su diseño primo es hecho de que fuera especificado como un lenguaje de programación de sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.

Los Herederos (C++, Java, C#)
C++: es heredero directo del lenguaje C que a su vez se deriva del lenguaje B, se mantiene como un subconjunto de C. comenzó su proyecto de estandarización ante el comité y su primera referencia es C++.
Java: es poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo que permite a cualquier aplicación desarrollada en java quedar ligada únicamente a java.

C#: incluye delegados, propiedades, indexadotes y eventos como elementos del lenguaje también añade sintaxis que soporta atributos, racionaliza la creación de componentes, eliminando los problemas asociados con Com.

viernes, 16 de enero de 2009

ahi les muestro una foto chida


pues espero que les guste esta imagne jajajaja.
ahi dejan sus comentarios.
jajajajajajaja

bienvenida

viernes 16 de enero del 2009.


En este dia empezamo a crear una cuenta de blogspot. Para esto estamos usando el internet y pues aki las makinas de este cubiculo pues algunas no tienen internet y pues algunos compañeros se tuvieron k cambiar de servidor.