PDF de programación - Programación en Lenguaje C

Imágen de pdf Programación en Lenguaje C

Programación en Lenguaje Cgráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.925 visualizaciones desde el 14 de Enero del 2017
259,0 KB
28 paginas
Creado hace 15a (16/02/2009)
Programación en Lenguaje C

UNIVERSIDAD
DE CANTABRIA

• Introducción al lenguaje C.
• Estructura de un programa.
• Tipos de datos y declaraciones de datos.
• Operadores y expresiones.
• Entrada/ salida simple.
• Instrucciones de control.
• Funciones y paso de parámetros.
• Modularidad.
• Tratamiento de errores.

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS
9

© Michael González, J. Javier Gutiérrez

16/feb/09

1

1. Introducción al lenguaje C

UNIVERSIDAD
DE CANTABRIA

El lenguaje C es uno de los lenguajes de programación más
populares que existen hoy en día

Características más importantes:
• lenguaje sencillo (aunque más difícil de aplicar)
• estructurado
• tipos definidos por el usuario
• no exige tipificación estricta
• permite compilación separada
• es de un nivel relativamente bajo
• compiladores baratos y eficientes

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

2

Versiones del lenguaje C

UNIVERSIDAD
DE CANTABRIA

Existen diversas versiones del lenguaje C:
• C común: apareció en 1978 y estaba directamente ligado al

sistema operativo UNIX

• C ANSI o C ISO: estandarización en 1988, y luego en 1990;

versión no ambigua y más portable, que añade
- asignación de estructuras (registros)
-
- prototipos de funciones
-

tipos enumerados

librerías estándar (funciones matemáticas, entrada/salida, etc.)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

3

Versiones del lenguaje C (cont.)
• Posteriormente se refina la versión ISO/ANSI en 1999

UNIVERSIDAD
DE CANTABRIA

- soporte para caracteres internacionales
- soporte para números complejos
-
tipo entero long
- comentarios //
- etc.

En este curso usaremos el ISO C 99

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

4

2. Estructura de un programa

UNIVERSIDAD
DE CANTABRIA

Estructura de un bloque en Java y en C:

{

}

<declaraciones>

<instrucciones>

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

5

Estructura de un programa
(cont.)

UNIVERSIDAD
DE CANTABRIA

Estructura de un programa:

Java

import modulo1.*;
public class Clase {
public static void main
(String[] args)
{
<declaraciones>
<instrucciones>
}
}

C

#include <modulo1.h>
int main()
{

<declaraciones>

<instrucciones>

}

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

6

Ejemplo

UNIVERSIDAD
DE CANTABRIA

#include <stdio.h>
int main()
{
printf("hola\n"); // printf escribe en pantalla
return 0;
}

public class Hola{
public static void main(String[] args)
{
System.out.println("hola");
// println escribe
}
}

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

7

Algunas observaciones:

UNIVERSIDAD
DE CANTABRIA

C

Java

se distingue entre mayúsculas y
minúsculas
las instrucciones acaban con “;”,
pero los bloques no
las funciones son bloques que se pue-
den anidar
comentarios entre /* */
o empezando con //
todas las variables deben declararse
los strings se encierran entre ""
el retorno de línea se pone en el string
"\n"

idem

idem

las funciones son bloques que siem-
pre son métodos de las clases
además, existen los comentarios de
documentación
idem
idem
retorno de línea con operaciones
específicas (println)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

8

3. Tipos de datos y declaraciones de
datos

UNIVERSIDAD
DE CANTABRIA

Tipos predefinidos:

Java

byte
short
int
long

boolean
char
float
double

String

C

signed char
short, short int
int
long, long int
long long
(se usa int)
(se usa char)
float
double
long double
char[], char*

Otros tipos C

char
unsigned short int
unsigned int
unsigned long int
unsigned long long

float _Complex
double _Complex
long double _Complex

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

9

Declaraciones

C

UNIVERSIDAD
DE CANTABRIA

int lower;
char c,resp; // dos variables de tipo char
int i=0;
const float eps=1.0e-5;
#define MAX 8 // otra constante

// variable inicializada

// constante

Java

int lower;
char c,resp; // dos variables de tipo char
int i=0;
final float eps=1.0e-5;
final int max=8;

// variable inicializada

// constante
// otra constante

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

10

Observaciones sobre las declaraciones

UNIVERSIDAD
DE CANTABRIA

Puede observarse que, tanto en C como en Java:
• las variables se pueden inicializar
• se pueden declarar como constantes
• se pueden declarar varias variables juntas

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

11

Tipos enumerados

UNIVERSIDAD
DE CANTABRIA

En C se pueden definir tipos enumerados, cuyos valores son
identificadores:

typedef enum {planox,planoy,planoz} dimension;
dimension fuerza, linea;
...
fuerza=planox;
linea=fuerza+1; // toma el valor planoy

La instrucción typedef permite crear tipos de datos nuevos, con
los cuales se pueden crear variables más adelante

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

12

Tipos enumerados en Java

UNIVERSIDAD
DE CANTABRIA

En Java se puede hacer lo equivalente a un tipo enumerado
mediante el uso de constantes

final int planox=0;
final int planoy=1;
final int planoz=2;
int fuerza, linea;
...
fuerza=planox;
linea=fuerza+1; // toma el valor planoy

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

13

Observaciones:

UNIVERSIDAD
DE CANTABRIA

• En C y Java el operador de asignación es “=”
• En C los valores enumerados se tratan como enteros, con

valores 0, 1, 2, ...
- linea toma el valor 1 (planoy) en el ejemplo

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

14

Caracteres

UNIVERSIDAD
DE CANTABRIA

Los caracteres en C y Java se representan encerrados entre
apóstrofes:
char c1,c2;
c1=’a’;

Los caracteres de control tiene una representación especial:

Carácter
salto de línea
carácter nulo
bell (pitido)
apóstrofe

C y Java

’\n’
’\0’
’\a’
’\’’

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

15

Arrays

UNIVERSIDAD
DE CANTABRIA

Los arrays de C son muy diferentes de los de Java:
• no tienen un tamaño conocido durante la ejecución

- pero sí un tamaño fijo en memoria

• el usuario es responsable de no exceder su tamaño real
• se pueden manipular mediante punteros

Los arrays de Java son mucho más seguros

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

16

Arrays (cont.)

UNIVERSIDAD
DE CANTABRIA

Las siguientes declaraciones de arrays en Java:

final int MAX=8;
float[] v1; //índice va de 0 a MAX-1
v1=new float[MAX]; // tamaño puesto en la creación
short[][] c=new short[MAX][MAX];
Tienen el siguiente equivalente en C:
#define MAX 8 // constante en C
float v1[MAX]; //índice va de 0 a MAX-1
//array creado al declararlo
short int[MAX][MAX] c;

En C los arrays de números no se inicializan a cero

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

17

Tipos array

UNIVERSIDAD
DE CANTABRIA

En C se pueden crear tipos array para usarlos más tarde en
declaraciones de arrays

typedef float vector[MAX];
typedef short int contactos[MAX][MAX];
typedef int numeros[4];

declaraciones:

vector v={0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
vector w;
contactos c1,c2;
numeros a;

Literal de array
(solo en inicialización)

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

18

Uso de elementos de arrays

UNIVERSIDAD
DE CANTABRIA

Las siguientes instrucciones se escriben igual en Java y C:

w[3]=10.0;
c1[0][3]=1;
a[0]=9; a[1]=3; a[2]=0; a[3]=4;

No hay asignación de arrays en C

c1=c2; // no se puede

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

19

Strings en C

UNIVERSIDAD
DE CANTABRIA

Los strings en C son arrays de caracteres, con un número de
elementos variable.

El string debe terminar siempre con un carácter nulo (código ASCII
cero), que sirve para saber dónde acaba el string.

Los strings constantes se representan encerrados entre comillas,
como en Java:

char linea[80];
char otra[]="hola esto es un string";
char linea2[]="hola esto es una linea\n";
// incluye un salto de linea

Los strings constantes ya incluyen el carácter nulo al final

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

20

Operaciones con strings

UNIVERSIDAD
DE CANTABRIA

El módulo <string.h> define funciones para manipular strings

strcpy(s1, s2)

strncpy(s1, s2, n)

strcat(s1,s2)

size_t strlen(s)

int strcmp(s1,s2))

Copia el string s2 en s1
Copia hasta n caracteres de s2 en s1
Añade el string s2 al final del s1
Retorna un entero con la longitud de s
Compara el string s1 con s2 y retorna:
entero menor que cero si s1<s2
entero mayor que cero si s1>s2
cero si s1=s2

Las tres primeras son operaciones peligrosas, pues no se
comprueba si el resultado cabe en el espacio reservado a s1

GRUPO DE COMPUTADORES Y TIEMPO REAL
FACULTAD DE CIENCIAS

© Michael González, J. Javier Gutiérrez

16/feb/09

21

Operaciones de conversión con strings

UNIVERSIDAD
DE CANTABRIA

En el módulo <string.h>, para convertir errores a strings

char * strerror(errnum)

Convierte el código de error errnum a
texto

En
  • Links de descarga
http://lwp-l.com/pdf1060

Comentarios de: Programación en Lenguaje C (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad