ejercicio con numeros y un menu
jueves, 23 de abril de 2009
lunes, 20 de abril de 2009
ejercicio
#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
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
#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", ¬a);
/* 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
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
1. Defina los sig. conceptos y proporcione al menos tres ejemplos:
- operadores aritmeticos:
- operadores logicos:
- 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
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
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;
}
viernes, 6 de marzo de 2009
ej 3.3
main ()
{
printf("Cinco minutos bastan para soñar toda una vida\n");
printf("así de relativo es el tiempo");
return 0;
}
ej 3.5
main ()
{
printf ("*****\n");
printf ("* *\n");
printf ("* *\n");
printf ("* *\n");
printf ("****\n");
printf ("* *\n");
printf ("* *\n");
printf ("* *\n");
printf ("****\n");
return 0;
}
ej 3.2
main ()
{
printf ("javier Perez\n");
printf ("mi direcccion es guerrero b 35 y 36");
return 0;
}
ej 3.1
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
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
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
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
main()
{
printf("hola");
printf("soy javier");
printf("estudio programacion");
return 0;
}
lunes, 23 de febrero de 2009
3.5 PRUEBAS
3.4 DEPURACION DE UN PROGRAMA EN C
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
#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.
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.
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
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.
3.1 ESTRUCTURA GENERAL DE UN PROGRAMA EN C
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
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).
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
miércoles, 11 de febrero de 2009
diagrama de tres numeros
martes, 10 de febrero de 2009
guia para el examen
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.
lunes, 9 de febrero de 2009
tarea

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
viernes, 6 de febrero de 2009
ejercicio en clase
viernes, 30 de enero de 2009
resumen unidad 2
- analisis del programa
- diseño del algoritmo
- cadificacion
- compilacion y ejecucion
- verificacion
- 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.
- secuenciales: las instrucciones se ejecutan secesivamente una despues de otra.
- repetitivas: una serie de instrucciones se repiten una y otra vez hasta que se cumple una cierta condicion.
- selectivas: permite elegir dos alternativas (dos conjuntos de instrucciones) dependiendo de una condicion determinada.
resumen unidad 1
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
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
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
miércoles, 28 de enero de 2009
La Programación Estructurada
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

lunes, 26 de enero de 2009
codificacion de un programa
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
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.
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
miércoles, 21 de enero de 2009
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
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:
Decisiones

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.
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.
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
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
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.