Notas de c

Solo disponible en BuenasTareas
  • Páginas : 11 (2720 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de enero de 2012
Leer documento completo
Vista previa del texto
Curso de C
Ingenier´ T´cnica Inform´tica ıa e a Departamento de Inform´tica a

1

Introducci´n General o
Primer programa C

main () { printf ("Primer programa.\n"); } • Compilaci´n: gcc programa.c (UNIX) o • Consta de una o m´s funciones (main, printf) a • Cada funci´n debe tener una lista de argumentos o

Departamento de Inform´tica a

2

Variables y aritm´tica e

/* Imprime latabla Fahrenheit-Celsius para f = 0, 20, ..., 300 */ main () { int inferior, superior, paso; float fahr, celsius; inferior = 0; superior = 300; paso = 20; fahr = inferior; while (fahr = ’0’ && s[i] 0) if (index(line, "el") >= 0) printf ("%s", line); }

Departamento de Inform´tica a

21

/* FUNCIONES */ getline (s, lim) /* obtiene una linea y devuelve su longitud */ char s[], lim; { int c,i; i=0; while (--lim > 0 && (c=getchar()) != EOF && c != ’\n’) s[i++] = c; if (c == ’\n’) s[i++]=c; s[i]=’\0’; return (i); } index (s, t) /* devuelve la posicion de t en s o -1 si no esta */ char s[], t[]; { int i, j, k; for (i = 0; s[i] != ’\0’; i++) { for (j=i, k=0; t[k] != ’\0’ && s[j] == t[k]; j++, k++) ; if (t[k] == ’\0’) return(i); } return (-1); }

Departamento de Inform´tica a

22• Un programa C es simplemente un conjunto de definiciones de funciones • La comunicaci´n entre funciones se realiza mediante argumentos y o valores devueltos por las funciones • Una funci´n devuelve un valor mediante la expresi´n return(valor) o o • El nombre de la funci´n deber´ ir precedido por el tipo de valor que o a devuelve si este tipo no es entero • Si en una expresi´n aparece un nombreque no haya sido declarado o previamente y va seguido de un par´ntesis de apertura, se supone e que es un nombre de funci´n. o • Una funci´n puede devolver un valor que no sea de tipo entero. En o ese caso debe ser declarada como si fuera una variable.

Departamento de Inform´tica a

23

main () { /* Es preciso declararla al devolver un valor no entero */ double atof(); printf("%f\n",atof("-123.456")); } /* Convierte una cadena de caracteres numericos a su correspondiente valor en formato double */ double atof(s) char s[]; { double val, power; int i, sign; /* Salta espacios en blanco */ for (i=0; s[i] == ’ ’ || s[i] == ’\n’ || s[i] == ’\t’; i++) ; /* Calcula el signo */ sign = 1; if ( s[i] == ’+’ || s[i] == ’-’ ) sign = (s[i++] == ’+’) ? 1 : -1; /* Calcula la parte entera */ for(val = 0; s[i] >= ’0’ && s[i] = ’0’ && s[i] 0) printf("\t%.2f\n", sum += atof(line)); }

Departamento de Inform´tica a

25

Argumentos de funciones • Los argumentos de las funciones se pasan por valor, es decir, cada funci´n recibe una COPIA temporal y privada de cada argumento. o • Por ello las funciones no deben alterar el valor de sus par´metros, a ya que no se reflejar´ el cambio alterminar la funci´n. ıa o • La excepci´n a esta regla son los arrays. Cuando se pasa un array o como argumento, se pasa su direcci´n, no una copia. Por ello la o funci´n puede alterar los elementos de un array. Ejemplo: o ejemplo (s, tam) int s[], tam; { /* Esta funcion puede alterar los elementos de s y los cambios se reflejaran en la funcion llamadora */ int i; /* Asignacion de valor cero a todos loselementos */ for (i = 0; i < tam; i++) s[i] = 0; }

Departamento de Inform´tica a

26

Variables externas • Son variables definidas fuera de cualquier funci´n y por ello o utilizables por cualquiera de ellas • Se llaman externas en contraposici´n con las variables definidas o dentro de las funciones, llamadas internas o autom´ticas. a • Al ser accesibles globalmente ofrecen una alternativa alpaso de par´metros para la comunicaci´n con las funciones. a o • Las variables externas son permanentes, es decir, existen mientras se est´ ejecutando el programa. e Ejemplo: #include /* Variable externa que cuenta los caracteres leidos */ int caracteres = 0; main () { int lineas = 0; /* Contador de lineas */ while (nueva_linea() != EOF) lineas++ ; printf("Lineas: %d\t Caracteres: %d\n",...
tracking img