introduccion
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
introduccion [2013/08/29 13:39] – [Ejemplo de programa en C] lmateu | introduccion [2020/03/08 21:05] (actual) – lmateu | ||
---|---|---|---|
Línea 13: | Línea 13: | ||
* A fines de los 70's aparece el primer lenguaje orientado a objetos: Smalltalk. | * A fines de los 70's aparece el primer lenguaje orientado a objetos: Smalltalk. | ||
* En los 80's Bjarne Stroustrup enriquece C con clases para facilitar la programación orientada a objetos en un lenguaje eficiente, dando así origen al lenguaje C++. Tampoco es robusto y es complejo. | * En los 80's Bjarne Stroustrup enriquece C con clases para facilitar la programación orientada a objetos en un lenguaje eficiente, dando así origen al lenguaje C++. Tampoco es robusto y es complejo. | ||
+ | * A fines de los 80 Guido Van Rossum concibe Python como en lenguaje de programación fácil de usar. Favorece la escritura rápida de programas pero sacrificando la eficiencia en tiempo de ejecución: Un programa en Python puede requerir de 10 a 100 veces más tiempo de ejecución que el mismo reescrito en C. | ||
* En los 90's James Gosling concibe Java como una forma de darle robustez a C++. Es menos complejo que C++. | * En los 90's James Gosling concibe Java como una forma de darle robustez a C++. Es menos complejo que C++. | ||
+ | |||
===== Ejemplo de programa en C ===== | ===== Ejemplo de programa en C ===== | ||
Línea 43: | Línea 45: | ||
* Entrega una constante caracterizada como EOF cuando llega al final del archivo. | * Entrega una constante caracterizada como EOF cuando llega al final del archivo. | ||
* putchar es otra función estándar de C que escribe un caracter en la salida estándar. | * putchar es otra función estándar de C que escribe un caracter en la salida estándar. | ||
- | * El include al inicio del archivo es una directiva para el procesador. Indica que se debe agregar en ese punto textualmente el archivo stdio.h. | + | * El include al inicio del archivo es una directiva para el preprocesador. Indica que se debe agregar en ese punto textualmente el archivo stdio.h. |
* Observe que una asignación puede aparecer en cualquier lugar en donde es válido colocar una expresión porque = es un operador como +, *, etc. No es usual que en Java un argumento de una expresión sea una asignación, | * Observe que una asignación puede aparecer en cualquier lugar en donde es válido colocar una expresión porque = es un operador como +, *, etc. No es usual que en Java un argumento de una expresión sea una asignación, | ||
Línea 67: | Línea 69: | ||
</ | </ | ||
- | * Todo programa en Unix tiene una entrada estándar y una salida estandar. | + | * Todo programa en Unix tiene una entrada estándar y una salida estandar. Usualmente son el teclado y la pantalla respectivamente. |
* Además existe una salida estándar de errores. | * Además existe una salida estándar de errores. | ||
- | * La entrada estándar se especifica con '<' | + | * La entrada estándar se puede redirigir usando el símbolo |
- | * La salida estándar se especifica con '>' | + | * La salida estándar se pude redirigir usando el símbolo |
- | * Si no se especifica entrada o salida estándar se usa la del shell que corresponde usualmente a teclado y consola respectivamente. | + | * El símbolo ' |
* Entonces los archivos out, out2 y out3 todos son iguales. | * Entonces los archivos out, out2 y out3 todos son iguales. | ||
Línea 120: | Línea 122: | ||
^ ^ Java ^ C ^ | ^ ^ Java ^ C ^ | ||
| declaración | < | | declaración | < | ||
- | | asignación de memoria | < | + | | asignación de memoria | < |
| acceso | < | | acceso | < | ||
| destrucción | | < | | destrucción | | < | ||
Línea 158: | Línea 160: | ||
* **switch** (//exp//) { //const// : //inst// ... **break**; ... **default**: | * **switch** (//exp//) { //const// : //inst// ... **break**; ... **default**: | ||
- | Pero se deben considerar las siguientes diferencias entre C y Java. | + | Pero se debe tener cuidado si el compilador implementa una versión de C anterior al estándar C99, como por ejemplo ansi-C. |
- | En C el ciclo for no admite declarar la variable de control en la misma expresión de inicialización. | + | Antes de C99 el ciclo for no admite declarar la variable de control en la misma expresión de inicialización. |
- | el siguiente código es ilegal: | + | |
< | < | ||
Línea 177: | Línea 178: | ||
</ | </ | ||
- | Además las declaraciones de variables | + | Además las declaraciones de variables |
< | < | ||
Línea 194: | Línea 195: | ||
</ | </ | ||
- | GCC sí admite | + | A partir de C99 sí se admiten |
==== Funciones ==== | ==== Funciones ==== | ||
Línea 217: | Línea 218: | ||
| | ||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||
- | double res= fact(atoi(argv[1]); | + | double res= fact(atoi(argv[1])); /* invoca la función fact */ |
printf(" | printf(" | ||
return 0; | return 0; | ||
Línea 250: | Línea 251: | ||
| | ||
int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||
- | double res= fact(atoi(argv[1]); | + | double res= fact(atoi(argv[1])); /* invoca la función fact */ |
printf(" | printf(" | ||
return 0; | return 0; |
introduccion.1377783575.txt.gz · Última modificación: 2013/08/29 13:39 por lmateu