herramientas informáticas - el lenguaje c: elementos básicos · es el contenido (o cuerpo) de la...

32
Herramientas Informáticas El Lenguaje C: Elementos básicos Mecatrónica: Primer cuatrimestre Ana Loreto González Hernández Francisco Yossimar Mata Cruz Universidad Tecnológica de Altamira [[email protected]] - Elementos Básicos de C 1/32

Upload: others

Post on 17-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Herramientas InformáticasEl Lenguaje C: Elementos básicos

Mecatrónica: Primer cuatrimestre

Ana Loreto González HernándezFrancisco Yossimar Mata Cruz

Universidad Tecnológica de Altamira

[[email protected]] - Elementos Básicos de C 1/32

Page 2: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Estructura de un programa en C

Todo programa en C consta de uno o más módulos llamadosfunciones.

La función principal se llama main y el programa siempre comienzacon la ejecución de esta función.

Cada función debe contener:

1 Una cabecera. Nombre de la función seguido de una lista opcionalde argumentos encerrados entre paréntesis.

2 Declaración de argumentos. Siempre que éstos se incluyan en lacabecera.

3 Instrucciones compuestas. Es el contenido (o cuerpo) de la fun-ción.

[[email protected]] - Elementos Básicos de C 2/32

Page 3: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Estructura de un programa en C

Al inicio de cada programa se deben especificar las libreríasque contienen las funciones estándares que serán utilizadas.Los argumentos o parámetros representan la información que sele pasa a la función.Cada instrucción de expresión debe acabar con punto y coma (;)Cada instrucción compuesta se encierra entre llaves { }Los comentarios se delimitan con /* */. También se puede ha-cer uso de // al principio de una línea para comentarla en formacompleta

[[email protected]] - Elementos Básicos de C 3/32

Page 4: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Estructura de un programa en C

/* Comentarios de lo que el programa realiza */#include<archivo1.h>#include<archivo2.h>

tipo_dato identificador; /* Variables globales */struct identificador{declaraciones};/* Estructuras */#define identificador valor /* Constantes */const tipo_dato identificador=valor; /* Constantes */tipo_dato id_funcion1(argumentos);/* Declaración de funcs. */

tipo_dato main(int argc, char *argv[]){XXXtipo_dato identificador; /* Variables locales */XXX/* Contenido interno*/XXXreturn valor;}

tipo_dato id_funcion1(argumentos){XXXtipo_dato identificador; /* Variables locales */XXX/* Contenido interno*/XXXreturn valor;}

[[email protected]] - Elementos Básicos de C 4/32

Page 5: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Tipos de datos básicos

Tipo Descripciónchar Caracterint Enterofloat Número en coma flotantedouble Número en coma flotante con doble precisión

Se pueden formar combinaciones de tipos de datos anteponiendo las palabras:unsigned, signed, short y long.

El tamaño de bits asignado al tipo de dato depende de la capacidad de lacomputadora y del compilador utilizado.

[[email protected]] - Elementos Básicos de C 5/32

Page 6: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Declaraciones

Una declaración asocia un tipo de datos determinado a un grupo de variables.

XXXint a, b, c;

XXXlong int x;

XXXfloat resultdata1, resultdata2;

XXXdouble e;

XXXchar symbol;

XXXchar name[25];

Ejemplos de definición de constantes:

XXX#define pi 3.1415927

XXX#define ON 1

XXXconst int options=3;

[[email protected]] - Elementos Básicos de C 6/32

Page 7: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Librerías ANSI C

Bibliotecas ANSI C Descripción

conio.h Manejo de ”tipos“ en el lenguajectype.h Macros de clasificación de caracteresstdio.h Entrada y salida de flujos y lo relacionado con manipulación de archivosstdlib.h Dirección de memoria, ordenamiento, búsqueda, conversión de cadenas, etc.string.h Definiciones de memoria y funciones de cadena de caracteresmath.h Declaración de funciones y macros matemáticastime.h Funciones, macros y tipos para manipular la hora y fecha del sistema

Funciones de biblioteca Propósito Biblioteca ANSI

ceil(d) Redondea d al entero mayor más cercano math.hisdigit(c) Determina si el argumento c es un dígito ctype.hfloor(d) Redondea d al entero menor más cercano math.hpow(d1,d2) Devuelve d1 elevado a la potencia d2 math.hprintf(...) Escribe datos en dispositivo de salida estándar stdio.hrand() Devuelve un entero positivo aleatorio stdlib.hscanf(...) Lee datos en dispositivo de entrada estándar stdio.hsqrt(d) Devuelve la raíz cuadrada de d math.hsrand(u) Inicializa el generador de números aleatorios stdlib.h

[[email protected]] - Elementos Básicos de C 7/32

Page 8: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Caracteres de conversión

Para indicar el tipo de datos se antepone el signo %.Para la entrada de datos en memoria se antepone el signo &.

Caracter de conversión Tipo de dato

c Caracterd Entero decimalf Valor en coma flotanteh Entero cortoi Entero decimal, hexadecimal u octalo Entero octals Cadena de caracteres (al final se añade el caracter nulo)u Entero decimal sin signox Entero hexadecimal

Prefijo Tipo de dato

h Dato corto (entero corto o entero sin signo corto)l Dato largo (entero largo, entero largo sin signo o real en doble precisión)L Dato lardo (real en doble precisión largo)

[[email protected]] - Elementos Básicos de C 8/32

Page 9: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Secuencias de escape

Secuencia Caracter\b Retroceso (espacio atrás)\t Tabulador horizontal\n Nueva línea\f Avance de página\r Retorno de carro\” Comillas\’ Apóstrofo\0 Caracter nulo\\ Barra inclinada

[[email protected]] - Elementos Básicos de C 9/32

Page 10: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Compilando con gcc

gcc nombre_programa.c -o nombre_ejecutable -lm -g -Wall

[[email protected]] - Elementos Básicos de C 10/32

Page 11: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Hola Mundo en C

/* Programa Hola Mundo codificado en lenguaje C */#include<stdio.h>

int main(int argc, char** argv){XXXprintf(“Hola Mundo”);XXXreturn (EXIT_SUCCESS);}

[[email protected]] - Elementos Básicos de C 11/32

Page 12: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Suma de dos números

/* Suma de dos números */#include<stdio.h>

int main(int argc, char** argv){XXXint num1, num2;

XXXprintf("Proporcione el número 1 ”);XXXscanf("%i",&num1);XXXprintf("Proporcione el número 2 ”);XXXscanf("%i",&num2);

XXXprintf("\nNum1 + Num2 =%i\n", num1+num2);XXXreturn (EXIT_SUCCESS);}

[[email protected]] - Elementos Básicos de C 12/32

Page 13: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Expresiones

Una expresión representa una unidad de datos simple, tal como unnúmero o caracter. También puede consistir en una combinación deestas entidades interconectadas por uno o más operadores.

Ejemplos de expresiones Tipo de operadora + b sumax = y asignaciónx <= y relacional++i unario (incremento)

[[email protected]] - Elementos Básicos de C 13/32

Page 14: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Tipos de Instrucciones

Una instrucción hace que la computadora efectúe una acción. Hay trestipos diferentes de instrucciones en C.

Instrucciones de expresión. Consiste en una expresión seguida de unpunto y coma (;)

Instrucciones compuestas. Está formada por varias instrucciones indi-viduales encerradas con un par de llaves. Estas instrucciones no acabancon punto y coma (;)

Instrucciones de control. Se utilizan para conseguir ciertas accio-nes especiales en los programas, tales como bucles, bifurcaciones ycomprobaciones lógicas

[[email protected]] - Elementos Básicos de C 14/32

Page 15: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Ejemplos de Instrucciones en C

Instrucciones de expresiónc = a + b;

Instrucciones compuestas{___pi = 3.1415927;___circunferencia = 2 * pi * radio;___area = pi * pow(radio,2);}

Instrucciones de controlwhile(cont <= n){___printf("x= ");___scanf("%f", &x);___suma += x;___++cont;}

[[email protected]] - Elementos Básicos de C 15/32

Page 16: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Operadores y Expresiones

C tiene un gran número de operadores que se pueden agrupar en di-ferentes categorías, tales como: aritméticos, unarios o monarios, re-lacionales, de igual, lógicos, de asignación y condicionales. Algunosoperadores requieren dos “operandos” mientras otros actúan sobre unoperando.

(a)

Aritméticos+ suma- resta* multiplicación/ división% módulo

(b)

Unarios- menos unario−− decremento1

++ incremento1

sizeof espacio en bytes(tipo) “cast”

1Si precede al operando el valor se modifica antes de que se utilice con otro propósito

[[email protected]] - Elementos Básicos de C 16/32

Page 17: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Operadores y Expresiones

Los operadores relacionales, de igualdad y lógicos son utilizados eninstrucciones condicionales.

(c)

Relacionales< menor que<= menor o igual que> mayor que>= mayor o igual que

(d)

Igualdad== igual que! = diferente

(e)

Lógicos&& y|| o

[[email protected]] - Elementos Básicos de C 17/32

Page 18: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Operadores y Expresiones

Cuando se utilizan los operadores de asignación compuestos, primerose lleva a cabo la operación aritmética sobre el valor de la variable a lacual se le asignará el resultado.

(f)

Asignación= asignación clásica+ = suma y asignación∗ = multiplicación y asignación/ = división y asignación% = módulo y asignación

(g)

Condicional? :

[[email protected]] - Elementos Básicos de C 18/32

Page 19: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Precedecia de Operadores

Categoría Operadores AsociatividadUnarios - ++ - ! sizeof (tipo) D→ IAritméticos * /% I→ DAritméticos + - I→ DRelacionales < <= > >= I→ DIgualdad == ! = I→ Dy lógica && I→ Do lógica || I→ DCondicional ?: D→ IAsignación = += -= *= /=%= D→ I

[[email protected]] - Elementos Básicos de C 19/32

Page 20: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucciones de Control

Cuando un programa realiza alguna acción que depende del resul-tado de un test lógico, esto se conoce como ejecución condicional.Una clase especial de ejecución condicional, llamada selecciónejecuta “un grupo” de instrucciones entre varios grupos disponi-bles.Cuando un grupo de instrucciones se ejecuta repetidamente hastaque se satisfaga alguna condición lógica, se conoce como bucle.

[[email protected]] - Elementos Básicos de C 20/32

Page 21: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Ejecución Condicional if-else

La instrucción if- else se utiliza para realizar una comprobación ló-gica y a continuación llevar a cabo una de dos posibles acciones. Laparte else es opcional, por tanto, las instrucciones se pueden escribiren su forma general más simple como:

if (expresión) instrucción

Ejemploif(x <= 3.0){___y = 3 * pow(x,2);___printf("%f", y);}

[[email protected]] - Elementos Básicos de C 21/32

Page 22: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Bucle While

La instrucción while se utiliza para generar bucles, en los cuales ungrupo de instrucciones se ejecuta de forma repetida, siempre que sesatisface alguna condición. La forma general de la instrucción whilees:

while (expresión) instrucción

Ejemplodigito = 0;while(digito <= 9){___printf(“%d\n”, digito);___++digito;}

[[email protected]] - Elementos Básicos de C 22/32

Page 23: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Bucle Do-While

En la instrucción do-while la comprobación de la condición se realizaal finalizar el bucle. La forma general de la instrucción do-while es:

do instrucción while (expresión)

Ejemploexp = 0;do{___resultado = pow(2,exp);___printf(“2ˆ%d =%d\n”, exp, resultado);___++exp;}while(exp <= 10);

[[email protected]] - Elementos Básicos de C 23/32

Page 24: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Bucle for

La instrucción for es la más frecuentemente usada de las instruccionespara crear bucles en C. La forma general de la instrucción for es:

for (expresión 1; expresión 2; expresión 3) instrucción

expresión 1 se utiliza para inicializar algún parámetroexpresión 2 representa una condiciónexpresión 3 modifica el valor del parámetro inicial

Ejemplofor(digito = 0; digito <=9 ; ++digito)___printf(“%d\n”, digito);

[[email protected]] - Elementos Básicos de C 24/32

Page 25: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción de Selección switch

La instrucción switch selecciona un grupo de instrucciones entre va-rios grupos disponibles. La forma general de la instrucción switch es:

switch (expresión) instrucción

expresión devuelve un valor enteroinstrucción especifica opciones posibles a seguir

La instrucción incluida es generalmente una instrucción com-puesta.La etiqueta case se usa para identificar los diferentes grupos deintrucciones.

[[email protected]] - Elementos Básicos de C 25/32

Page 26: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción de Selección switch (continuación . . . )

Cada grupo de instrucciones se describe en forma general como:

case expresión_1:

___instrucción_1

___...

___instrucción_n

case expresión_ 2:

___instrucción_1

___...

___instrucción_n

case expresió_m:

___instrucción_1

___...

___instrucción_n

[[email protected]] - Elementos Básicos de C 26/32

Page 27: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción de Selección switch (continuación . . . )

Ejemploswitch (eleccion = getchar ()){___case ’r’:___case ’R’:______printf(“ROJO\n”);______break;___case ’b’:___case ’B’:______printf(“BLANCO\n”);______break;___case ’a’:___case ’A’:______printf (“AZUL\n”);___default:______printf(“COLOR NO DEFINIDO\n");}

*La etiqueta default se ejecuta para cualquier valor de la expresión switch

[[email protected]] - Elementos Básicos de C 27/32

Page 28: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción break

La instrucción break se utiliza para terminar la ejecución de bucles osalir de una instrucción switch. La instrucción break se escribe de lasiguiente forma:

break;

Ejemploi = 0;while(c = getchar() != ’\n’){___if(c == ’Q’)______break;___CadenaCodificada[i++] = c + 1;}

[[email protected]] - Elementos Básicos de C 28/32

Page 29: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción goto

La instrucción goto se utiliza para alterar la secuencia de ejecuciónnormal del programa, transfiriéndose el control a otra parte de él. En suforma general, la instrucción goto se escribe:

goto etiqueta;

etiqueta es un identificador que se utiliza para rotular la instruccióna la que se transferirá el control dentro de la función actual, ésta debeir seguida de dos puntos (:). La instrucción etiquetada aparecerá de lasiguiente forma:

etiqueta: instrucción

[[email protected]] - Elementos Básicos de C 29/32

Page 30: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Instrucción goto (continuación . . . )

Ejemploi=0;while (c = getchar() != ’\n’){___if(c == ’Q’)______goto salida;___CadenaCodificada[i++] = c + 1;}

salida:{___j=0;___printf(“Cadena codificada:\n\n”);___for(j = 0; j <= i; ++j)______printf(“%c”,CadenaCodificada[j]);}

[[email protected]] - Elementos Básicos de C 30/32

Page 31: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Ejercicios para aplicar los temas

1 Solicitar n números de entrada y calcular el promedio. No utilizar arre-glos y poner la restricción n=[2-5], desplegando un mensaje de erroren los casos fuera del rango.

2 Hacer un programa para calcular las áreas de Círculos (1), Triángulos(2) o Rectángulos (3). Terminar el programa hasta que se introduzca laopción Salir (4) y desplegar un mensaje de error cuando se introduzcaotro caracter.

[[email protected]] - Elementos Básicos de C 31/32

Page 32: Herramientas Informáticas - El Lenguaje C: Elementos básicos · Es el contenido (o cuerpo) de la fun-ción. [logonzalez@utaltamira.edu.mx] - Elementos Básicos de C 2/32. ... conio.h

Temas vistos

1. El lenguaje C: elementos básicos1.1. Estructura general de un programa en C1.2. Creación de un programa1.3. Tipos de datos1.4. Declaraciones1.5. Operadores y expresiones1.6. Estructuras de selección1.7. Estructuras de control

[[email protected]] - Elementos Básicos de C 32/32