Introducción al lenguaje C
|
|
|
- María Mercedes Acuña Alvarado
- hace 7 años
- Vistas:
Transcripción
1 4. Funciones Un programa C va a estar compuesto de una o más funciones repartidas en uno o más módulos de código. Como ya se vio, en un programa en C al menos siempre existirá una función main que será el punto de entrada al programa Declaración y definición de funciones En C, se hace distinción entre una declaración y una definición. Una declaración, simplemente indica al programa que se va a utilizar un identificador y cómo se va a utilizar. Una definición indica al compilador cómo se va a almacenar un identificador. Cuando se declara una variable, por ejemplo con double total; se está haciendo al mismo tiempo una declaración y una definición: se indica al programa que se va a utilizar una variable total como un dato de tipo double y, al mismo tiempo, se está reservando espacio en memoria para almacenar un dato de tipo double. Sin embargo, cuando se trata de funciones se considera diferente la declaración de la función de la definición de la misma Definición de funciones El formato de definición de una función sería el siguiente: tipodato nombrefunción([listaparámetrosformales]){ //Cuerpo de la función [return expresiónderetorno] Una función devuelve un dato, por lo que será necesario indicar el tipo de dato que devuelve. tipodato podrá contener alguno de los tipos de datos utilizados para la declaración de variables y que aparecen en la tabla 1 Tabla 1. Tipos de datos Especificador de tipo char signed char unsigned char short, signed short, short int, o signed short int unsigned short, o unsigned short int int, signed, or signed int unsigned, or unsigned int long, signed long, long int, o signed long int UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
2 Especificador de tipo unsigned long, or unsigned long int long long, signed long long, long long int, o signed long long int unsigned long long, o unsigned long long int float double long double En algunos casos la función no devolverá un valor. En esos casos se utiliza la palabra reservada void como tipo de la función para indicar que el valor de retorno de la función no está requerido, como ocurre en los procedimientos. El nombrefunción será un identificador válido. Normalmente, una función devolverá un valor a partir de los datos que se le pasan como argumentos. En la cabecera de la declaración deberán constar el nombre de los argumentos y el tipo de cada uno de ellos en la listaparámetrosformales. Si una función no tiene parámetros, en su llamada se incluirá un parámetro void para indicar que se trata de un dato no requerido. Dentro del cuerpo de la función podrá aparecer la sentencia return. return indicará cuál es el valor de retorno de la función. Por ejemplo, en la siguiente función: int funcion1(void){ return 2; se devolverá el valor entero 2. Ejemplo: Función Factorial int factorial(int n){ int f=1; for(int i=2;i<=n;i++) f *= i; return f; La función factorial recibe un argumento entero (n) y devuelve el acumulador de multiplicaciones f que, al final del proceso, guardará el factorial de n. La llamada a la función factorial se podría hacer printf( Factorial de 5: %i,factorial(5)); b = factorial(a+3); scanf( %i,n); printf( Factorial de 5: %i,factorial(n)); c = factorial(factorial(3)); factorial(6); La última llamada devolvería el valor 720. En C no sería sintácticamente incorrecta, pero no tendría ningún efecto en el programa. UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
3 La función main La función main de un programa C es una función como cualquier otra. Su formato estándar es: int main(void){ return 0; Esto indica que se trata de una función que devuelve un argumento de tipo entero y que no recibe parámetros. Normalmente no se indica el valor de retorno, aunque es posible ponerlo. El valor de la expresión de retorno sería el que la función devolvería al sistema operativo. Existe otro formato de la función main. int main(int argc,char *argv[]){... return 0; En este caso, la función recibe dos argumentos, un argumento entero (argc) con el número de parámetros que se le pasan y array de cadenas (argv) con cada uno de los argumentos que se han pasado. En ambos casos el nombre del programa al que se llama se trataría también de un argumento. Por ejemplo, en el siguiente programa: int main(int argc, char *argv[]){ int i; printf("nombre del programa: %s\n",argv[0]); printf("primer argumento: %s\n",argv[1]); printf("segundo argumento: %s\n",argv[2]); return 0; La llamada miprograma hola adios argc se cargaría con el valor 3 y argv tendría tres elementos: el propio nombre del programa (en el elemenento 0, al que se accede con argv[0]), la cadena hola (en el elemento 1 al que se accede por argv[1]) y la cadena adios (en el elemento 2 al que se accede por argv[2]) Declaración de funciones: prototipos de funciones Cuando se define una función se indica, además del nombre, tanto el tipo de dato que devuelve como el número, orden y tipo de argumentos. Sin embargo el compilador de C no comprueba si el tipo de la función o el tipo, número y posición de los argumentos coinciden. Por ejemplo si tenemos definida la siguiente función int f1(int a, int b){ return a+b; UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
4 y se la llama con un número de argumentos distinto, c=f1(3); el compilador no detecta ningún error sintáctico, pero, sin embargo, los resultados serán incongruentes ya que en la llamada falta un argumento entero. Para evitar esto, es conveniente declarar previamente la función para indicar al compilador la existencia de una función de un tipo determinado, con un nombre concreto y unos argumentos precisos. A esta declaración se le llama el prototipo de la función y advierte al compilador de la existencia de la función. Si añadimos un prototipo de la función y se realiza una llamada errónea, el compilador dará un error. El prototipo de la función se declara de la siguiente forma: tipodato nombre(tipoargumento1, tipoargumento2, tipoargumenton); Los prototipos de funciones se declaran en el módulo de código principal fuera de cualquier función y antes de realizar la primera llamada a la función. Normalmente se agruparán todos los prototipos de funciones al comienzo del archivo fuente, después de las directivas del preprocesador. En el siguiente archivo fuente #include <stdio.h> int f1(int,int); //Prototipo de la función int main(void){ //Llamada a la función con un solo argumento printf( %i,f1(3)); El compilador detectará que la llamada a la función f1 sólo presenta un argumento entero, mientras que el prototipo requiere dos enteros, por lo que se generará un error de compilación. Es preferible que el compilador detecte un error sintáctico que intentar averiguar por qué los resultados no son los esperados, por lo que siempre que se utilicen funciones es conveniente definir su prototipo Funciones que no devuelven ningún valor Aunque en C podemos hacer caso omiso del valor que devuelve una función, también es posible definir funciones que no devuelven ningún valor. El tipo de dato void se utiliza para referenciar un tipo de dato en aquellos casos en los que no está definido (ver más abajo la función contador). También es posible definir funciones que no devuelven ningún valor (procedimientos) indicando que el tipo de dato devuelto es void. Por ejemplo, una función que escriba un número al revés. void escribirnumeroalreves(int n){ UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
5 while(n >= 10){ printf("%i",n % 10); n = n / 10; printf("%i\n",n); La función no devuelve ningún valor, simplemente se limita a realizar una acción: escribir un número al revés 4.2. Ámbito o alcance de las variables El ámbito o alcance de un identificador es la parte del programa dónde se puede utilizar, es decir, la parte del programa desde dónde es visible. En C podemos distinguir tres tipos de ámbitos: Global. Su ámbito es el archivo fuente dónde han sido definidas. Se trata de variables o funciones externas que se definen en el archivo fuente fuera de cualquier función y antes de su definición. Local. Su ámbito es el bloque dónde han sido definidas. Se trata de aquellas variables definidas dentro de un bloque, es decir entre los símbolos { y. Las variables declaradas dentro de una función, serán variables locales. Ámbito del prototipo. Cuando se declaran los argumentos en un prototipo de función, su ámbito queda reducido a la declaración del propio prototipo Variables externas Las variables externas se definen fuera de cualquier función y estarán disponibles desde cualquier función. En C todas las funciones son externas ya que no es posible definir una función dentro de otra. El ámbito de una variable externa abarca desde el punto en que se declara hasta el final del archivo que se está compilando. Por ejemplo, en este fragmento de código int main(void){ a = f1(3); f2(4); int a = 0; //definición de la variable a int f1(double b){ return a; int f2(double c){ return a; UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
6 a la variable a se puede acceder desde f1 o desde f2, pero no desde main. El compilador detectaría un error, ya que la variable a no ha sido declarada cuando se ha utilizado en la función main. Si se quiere utilizar una variable o función externa desde otro módulo de código o si se va a hacer uso de ellas antes de su definición, es necesario utilizar la declaración con la palabra reservada extern. Es importante distinguir entre la declaración de una variable externa y su definición. Una declaración indica al compilador que se va a utilizar una variable (sobre todo su tipo de dato), pero no reserva espacio para almacenarla. Sería el equivalente de los prototipos de funciones aplicado a variables. Una definición provoca que el compilador reserve espacio para almacenar la variable. En el siguiente fragmento de código extern int a; int main(void){ a = f1(3); f2(4); int a = 0; //declaración de la variable a //definición de la variable a int f1(double b){ return a; int f2(double c){ return a; el compilador no detectaría ningún error, ya que antes de utilizar la variable a en la función main, se ha declarado mediante extern. Esa variable a podría ser utilizada desde cualquier parte del programa, incluso desde fuera del archivo fuente dónde ha sido declarada. Es importante indicar que no podría haber más declaraciones de dicha variable en ninguno de los archivos fuente del programa. Suponiendo que un programa tiene el código repartido entre dos programas fuente, main.c y funciones.c. /*main.c*/ #include <stdio.h> extern int i; //Declaración de la variable i int main(void) { printf("%i\n",f1()); printf("%i\n",i); return 0; /*funciones.c*/ UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
7 int i; //Definición de la variable i int f1(void){ i = 5; return i; La variable i se declara en el módulo main.c como externa, pero todavía no se ha hecho su declaración (no se ha reservado espacio en memoria). La declaración se hace en el módulo funciones.c, dónde se reserva espacio en memoria. La declaración extern hace que la variable pueda utilizarse en cualquier módulo del programa, por lo que la i que aparece en ambos módulos de código es la misma. También es posible indicar que la definición de una variable externa no sea accesible desde otros módulos. Si al declarar una variable se utiliza la palabra static, el ámbito de esa variable será únicamente el módulo dónde ha sido definida, de forma que el identificador podrá utilizarse fuera del módulo. En el caso de las funciones, ya se ha hablado sobre la conveniencia de utilizar los prototipos de funciones. Sin embargo, los prototipos de funciones sólo serían válidos para el archivo fuente dónde han sido declarados. Si se desea que el prototipo sirva para todos los archivos fuente del programa, también habría que declararlos con extern Variables locales Las variables declaradas dentro de una función son variables locales. Esto incluye tanto los argumentos de la función, como aquellas variables declaradas dentro de las llaves que definen la función. En general, el ámbito de una variable declarada dentro de un bloque será el bloque dónde ha sido definida. Esto incluye cualquier bloque de código, es decir, cualquier grupo de instrucciones encerrados entre llaves. También incluye las variables declaradas dentro de un bucle for. En el siguiente fragmento de código int variableexterna; int funcion1(int arg1, int arg2){ int variablelocal1=0; for(int i=0;i<=5;i++){ variablelocal1 +=i; do{ int i = 2; variablelocal1 -= i; while(variablelocal1 > 0) variableexterna1 es una variable global y se puede utilizar desde cualquier punto del archivo fuente. UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
8 Los argumentos arg1 y arg2 son declaraciones locales y sólo se pueden utilizar desde cualquier punto de funcion1. variablelocal1 se ha definido dentro de funcion1 y se puede utilizar desde cualquier parte de funcion1. i sería una variable de bloque, que sólo se podría utilizar dentro del bucle for. La variable i declarada dentro de la declaración do while es una variable de bloque y sólo se podría utilizar dentro del bloque do while dónde se ha declarado. Hay que indicar que esta variable i sería distinta de la variable i utilizada en el bucle for Tiempo de vida de una variable El tiempo de vida o duración de un objeto indica el tiempo en el que el objeto está activo. Desde ese punto de vista, un objeto (una variable) puede ser: Permanente. Su tiempo de vida es la duración del programa. Las variables externas son permanentes ya que tienen un ámbito global. También son permanentes las variables locales marcadas con la palabra reservada static. Una variable local static se inicializa la primera vez que se llama a la función, pero su valor permanece entre llamadas, aunque su ámbito sea local. Con la siguiente función: int contador(void){ static int i=0; i++; return i; La primera llamada a la función contador hará que la variable i valga 1, pero en las siguientes llamadas valdrá 2, 3, 4, etc. Transitorio. Su tiempo de vida es la duración del ámbito dónde ha sido declarado. Las variables locales (también llamadas variables automáticas en contraposición a las variables locales static del punto anterior) tienen una duración transitoria Paso de argumentos En C los argumentos de una función se pasan por valor, por lo que no existe una forma directa de que una función modifique una variable que se le pasa como argumento. Para realizar esto hay que utilizar punteros: enviar como parámetros actuales la dirección de memoria dónde se aloja la variable y referirse a ella como el objeto que se almacena en dicha dirección de memoria dentro de la función Punteros Un puntero es una variable que contiene la dirección de memoria dónde está almacenado un objeto. Si ptr es un puntero, contendrá la dirección de memoria donde se almacena otro dato, por ejemplo, la variable dato. UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
9 ptr 5 dato Memoria Cuando se utilizan punteros, el operador unario & devuelve la dirección de memoria de un objeto, de forma que ptr = &dato; guardaría en la variable ptr la dirección de memoria de la variable dato (tal y como aparece en la figura). El operador de indirección o desreferencia es el operador unario * y devuelve el contenido del objeto referenciado, es decir, el contenido de la dirección de memoria a la que apunta el puntero. De esta forma, printf( %i,*ptr); devolvería el contenido de dato, es decir, un 5. La declaración de las variables ptr y dato, se haría de la siguiente forma: int dato = 5; int *ptr; Con esto se está declarando a la variable ptr como un puntero capacitado para apuntar a una variable de tipo entero Paso de argumentos por referencia Cuando se hace el paso de argumentos por valor, lo que se pasa es una copia del valor del parámetro actual y el parámetro formal se carga con esa copia. Al tratarse de una copia, cualquier modificación se realizará sobre la copia, sin alterar el parámetro actual. Cuando se hace el paso de argumentos por referencia, lo que se pasa es la referencia de una variable, es decir, la dirección dónde está almacenada. De esta forma, el parámetro formal se carga con la dirección de la variable, por lo que cualquier modificación que se haga sobre el argumento, se estará haciendo directamente sobre la dirección de memoria del parámetro actual modificando su valor. Puesto que lo que se pasa es la dirección de la variable (un puntero) los argumentos deberán de ser también punteros. Para acceder al contenido de la dirección de memoria habrá que utilizar el operador de indirección. Por ejemplo, si se quiere hacer un procedimiento (una función void) que intercambie el contenido de dos variables enteras, los parámetros formales tendrán que intercambiar su valor, por lo que el paso de argumentos se deberá hacer por referencia. int a = 5; int b = 8; intercambiarenteros(&a,&b); Los parámetros actuales del procedimiento intercambiarenteros son dos referencias, es decir, la referencia a la dirección de memoria dónde están almacenadas las variables a y b. UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
10 Si los parámetros actuales guardan la dirección de memoria de dos variables enteras, en el procedimiento intercambiarenteros, los parámetros formales deberán ser dos punteros a entero. void intercambiarenteros(int *x, int *y){ int aux; aux = *x; *x = *y; *y = aux; Dentro de la función, para hacer referencia al contenido al que apuntan x e y, habrá que usar el operador de indirección. 5. Ejercicios Nota: Hay que tener en cuenta que para probar estos ejercicios, se deberá hacer también un programa principal que realice la llamada 1. Diseñe una función lógica que indique si una fecha es válida y otra que indique si un año es bisiesto. Para la primera se pasará a la función tres números enteros con el día, el mes y el año. Habrá que comprobar si el mes está entre 1 y 12 y el día entre 1 y 31. Si esto es cierto habrá que comprobar que si el mes es de 30 días, el día no sea mayor que 30. Si se trata de febrero habrá que comprobar si es un año bisiesto, y si es así comprobar que el día no sea mayor que 29 o, en caso contrario, mayor que 28. Para la segunda se comprobará si el año que se pasa como argumento es bisiesto. Un año es bisiesto si es divisible por cuatro, a excepción de las centenas que no sean divisibles por Diseñe un subprograma que reciba la posición de un punto en coordenadas polares (radio y ángulo) y devuelva su posición en coordenadas cartesianas (x,y). Para pasar de coordenadas cartesianas a polares se utilizan las siguientes fórmulas. x = radio * cos(a) y = radio * sen(a) 3. El número Π se puede calcular mediante la serie de Leibnitz: ( ) Calcule el valor del número hasta que la diferencia entre dos términos sea menor a Diseñe una función lógica que determine si un número entero de 4 cifras que se pasa como argumento es capicúa. 5. Suponiendo que nuestro lenguaje de programación no dispone de los operadores de división entera y resto, diseñe un módulo que permita obtener la división entera y el resto UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
11 de dos números enteros positivos mediante restas sucesivas. Justifique la elección del tipo de módulo utilizado. 6. El coseno de un ángulo x se puede calcular mediante la serie cos( ) x n 0 n ( 1) 2n! x 2n 2 x 1 2! 4 x 4! 6 x 6!... Diseñe una función que permita calcular el valor del coseno de x hasta que la diferencia entre dos términos sea menor que Se desea convertir una longitud expresada en metros a pies y pulgadas, sabiendo que un metro son 39,37 pulgadas y que 12 pulgadas son un pie. Codifique un subprograma que reciba una longitud en metros y devuelva el número de pies y de pulgadas que son. 8. Diseñe una función que devuelva la suma de divisores de un número pasado como argumento. Por ejemplo, si el argumento pasado es 24, deberá devolver Diseñe una función lógica que indique si un número es perfecto. Un número es perfecto si es igual a la suma de sus divisores. Por ejemplo, 6 es un número perfecto ya que 6 = Diseñe una función lógica que indique si dos números son amigos. Dos números son amigos si cada uno es igual a la suma de divisores del otro excepto el propio número. Por ejemplo, 284 y 220 son amigos: Divisores de 284 1, 2, 4, 71, 142 y 284. Suma de divisores excepto 284 = 220. Divisores de 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 y 220. Suma de divisores excepto 220 = 284 Diseñe además un programa principal que saque por pantalla todas las parejas de números amigos entre 1 y n. 11. Diseñe una función que devuelva el máximo común divisor por el algoritmo de Euclides. 12. Codifique un procedimiento permita leer por teclado una serie de caracteres. La lectura terminará cuando el carácter introducido sea 0 (cero). El procedimiento deberá devolver al programa que lo llamó el número de vocales que se introdujeron. Por ejemplo, si la serie de caracteres introducida es a, x, h, e, a, v, 0, el procedimiento deberá devolver el valor Dada una fecha expresada en día, mes y año, escriba una función que devuelva el número de días transcurrido desde el comienzo del año. 14. Dada una fecha posterior al 1 de enero de 1980, escriba un módulo que devuelva el día de la semana sabiendo que el 1 de enero de 1980 fue martes. 15. Diseñe una función que reciba una hora expresada en horas, minutos y segundos y devuelva el número de segundos totales. 16. Diseñe un subprograma que reciba un número de segundos transcurridos y devuelva el número de horas, minutos y segundos que representan. 17. Diseñe un subprograma que reciba dos horas expresadas en horas, minutos y segundos y devuelva otra hora que represente la suma de ambas. UPSAM, Escuela Superior de Ingeniería y Arquitectura, Luís Rodríguez Baena,
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Laboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Las plantillas permiten definir funciones genéricas.
Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.
Bloque 4. La descomposición funcional y el diseño descendente
Bloque 4 La descomposición funcional y el diseño descendente Cómo afrontar un problema complejo Dividir cada una de las dificultades que se examinen en tantos fragmentos como sea posible y que se requieran
Programación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Apuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Lenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
Programación En Lenguaje C
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación
1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos
TIPOS DE DATOS BASICOS EN LENGUAJE C
TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char
Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Lección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
4. Operadores Operador asignación
Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre
Fundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
Laboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
Lenguaje C [Apuntadores y arreglos]
Lenguaje C [Apuntadores y arreglos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Lenguaje C 1 / 20 Apuntadores y direcciones
Algoritmos y Programación I
Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.
INICIACIÓN A LA PROGRAMACIÓN EN C
INICIACIÓN A LA PROGRAMACIÓN EN C Estructura de un programa sencillo en lenguaje c: Librería estándar de entrada salida Llave de apertura para delimitar el cuerpo de la función Llave de cierre para delimitar
INTRODUCCIÓN AL LENGUAJE C
INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática EUP ULPGC Jose Torres 1 de 36 Historia de C Precursores: muchas ideas provienen de BCPL (Martin Richards, 1967) y de B (Ken Thompson, 1970) C fue diseñado
Se guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
LENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Métodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Curso de Programación Avanzada en C
Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados
Funciones en Lenguaje C
Funciones en Lenguaje C Funciones en Lenguaje C. La modularización, es una técnica usada por los programadores para hacer sus códigos más cortos, ya que consiste en reducir un gran problema complejo, en
Funciones. Parámetros por valor
Funciones I Parámetros por valor Fundamentos de Programación Fundamentos de Programación I Llamada a la función definición subprograma Subprogramas en C++ Funciones 1 Una función es un subprograma que
Esquema de un programa en C: bloques básicos
Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,
Lenguajes de programación
Lenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa de computador es una secuencia de estas instrucciones Etapas
Procesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Estructuras de Repetición (Repita para)
Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar
PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad
PROBLEMAS DEL TEMA 7: Subprogramas y Modularidad EJERCICIOS RESUELTOS 1. Escribe una función que calcule el factorial de un número, dado como parámetro. A continuación realiza un programa que lea por teclado
El lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas
Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas Agenda 2.1 Familiarización con el ambiente de programación 2.2 Análisis de la estructura de un programa 2.3 Envío de mensajes a la salida estándar
Funciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Apuntadores (Punteros)
Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable
media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );
Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Operadores de comparación
Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (
Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
Estructuras de Decisión Simples y Dobles
Estructuras de Decisión Simples y Dobles Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Estructuras
LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison
LABORATORIO DE PROCESADORES DE LENGUAJE Curso: 2008-2009 Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison Planteamiento del problema En esta práctica se trata de realizar, mediante el
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
PHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
OPERADORES Y EXPRESIONES
OPERADORES Y EXPRESIONES Una expresión es una combinación de variables, literales y operadores, que representan un valor Operadores aritméticos Operador Función + suma - resta * producto / división % operador
Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez
Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C Antes de comenzar a desarrollar aplicaciones podemos crear el programa en cualquier editor de textos, solo hay que guardarlo con la extensión X.c
Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Introducción al Lenguaje de Programación C
Introducción al Lenguaje de Programación C Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Lenguaje de Programación C Fue diseñado
El lenguaje de Programación C. Fernando J. Pereda <[email protected]>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Uso avanzado de punteros
Uso avanzado de punteros Mario Medina C. [email protected] Punteros Contienen direcciones de memoria Punteros a tipos de datos simples int, char, float, double Punteros a estructuras Punteros a vectores
Lenguaje C Bucles, Condicionales, operadores y Algoritmos.
Lenguaje C Bucles, Condicionales, operadores y Algoritmos. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Operadores Los operadores son aquellos
GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C
GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C CARRERA: 441402 INGENIERÍA DE EJECUCIÓN EN ELECTRICIDAD Y ELECTRÓNICA 444803 TÉCNICO EN ELECTRICIDAD Y ELECTRÓNICA ASIGNATURA: PCS2201
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C
Programación Ejercicios Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero Jose A. Iglesias Martínez Jose Luis Mira 1 SOLUCIONES Segunda sesión:
Ejercicio 1. Ejercicio 2
Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración
Java para programadores
Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Variables. Tipos
Luís Rodríguez Baena Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura
Fundamentos de Programación I 4. Programación modular Luís Rodríguez Baena ([email protected]) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Introducción
Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C
Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }
El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.
El lenguaje C El lenguaje C es uno de los lenguajes de programación estructurada más utilizados en nuestros días. El principal componente estructural de C es la función. En C, las funciones son bloques
Laboratorio 02: Ejercicios de programación en C
olicitado: Ejercicios 02: Soluciones estructuradas en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo
CONCEPTOS BASICOS DEL LENGUAJE JAVA
CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten
Tema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros
Ficha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Hoja de ejercicios del Tema 3
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 3 1. Conversiones de tipos: Prueba el siguiente programa en tu compilador (copia
TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN
TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN 4.1 Definiciones y palabras reservadas básicas del C El lenguaje C++ está compuesto por: 32 palabras clave (estándar ANSI), comunes a todos los compiladores de
TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8
TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN
Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /
undamentos de sintaxis en algunas instrucciones de C#.Net Dr. Ramón Roque Hernández Identificadores Un identificador le da nombre único a un elemento en un programa (ariables, procedimientos, etc.). No
Estructuras de Repetición (Hacer-Mientras)
Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Introducción al lenguaje C. Procesadores Digitales de Señal
Introducción al lenguaje C Procesadores Digitales de Señal Conceptos básicos Conceptos avanzados Índice Lenguaje C Procesadores Digitales de Señal 2 Índice (primera parte) Conceptos básicos Estructura
Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones
Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.
