Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C"

Transcripción

1 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 } [subprogramas] EL PRIMER PROGRAMA #inc1ude <stdio.h> main() printf( Hola mundo?"); return 0; } PALABRAS RESERVADAS DE C (Consultar estas palabras ) Int struct break else Long switch case enum Register typedef char extern Return union const ftoat Short unsigned continué for Signed void default goto Sizeof volatile do if Static while COMENTARIOS El compilador ignora los comentarios encerrados entre los símbolos /* y */ Ejemplos : /* Mi primer programa */ Se pueden escribir comentarios multilínea: /* Mi segundo programa en c este realiza la suma de dos números */

2 ARCHIVOS DE CABECERA Archivo de Cabecera de la biblioteca estándar <ctype.h> <ssert.h> <errno.h> <f1oat.h> <limits.h> <locale.h> Descripción Manejo de caracteres Diagnósticos Errores Localizacion Explicación Contiene prototipos para funciones que prueban caracteres en relación con ciertas propiedades, y prototipos de funciones que puedan ser utilizadas para la conversión de minúsculas a mayúsculas y viceversa. Contiene macros así como 1a información para añadir diagnósticos que ayudan a la depuración de programas Define macros que son útiles para la información de condiciones de error. Contiene tos limites de punto flotante de1 sistema. Incluye los limites de tamaño integral del sistema. Contiene los prototipos de función y otra información que le permite a un programa ser modificado en relación con la localización actual en la cual se está ejecutando. La noción de localización le permite al sistema de computo manejar diferentes reglas convencionales para la expresión de datos como son fechas, horas, monedas y números grandes en diferentes áreas del mundo. <math.h> Matemáticas Contiene prototipos para funciones matemáticas de biblioteca. Contiene prototipos para funciones que permiten pasar <setjmp.h> saltos no locales por alto la secuencia usual de llamadas de función y regreso <signal.h> Contienen prototipos de función y macros para manejar Manejo de varias condiciones que pudieran ocurrir durante la señales ejecución. <stdarg.h> <stddef.h> <stdio.h> <stdlib.h> <string.h> <time.h> Argumentos variables Definiciones comunes Entrada / salida Utilerías generales Manejo de cadenas Fecha y hora Define macros para manejar con una lista de argumentos a una función cuyo numero y cuyo tipo son desconocidos. Contiene definiciones comunes de tipos utilizados en c para ejecutar ciertos cálculos. Contiene prototipos para funciones de biblioteca de entrada y salida estándar y la información que estas utilizan. Contiene prototipos de función para la conversión de números a texto y de texto a números, para la asignación de memoria, para números aleatorios y otras funciones de utilería. Contiene prototipos para funciones de procedimiento de cadenas Contiene prototipos de función y tipos para manipular hora y fecha. <conio.h> Pantalla Recursos de formateo de pantalla

3 IDENTIFICADORES Serie de caracteres constituido de letras, dígitos y carácter subrayado. No puede empezar por dígitos. Proporcionan nombres para funciones, variables, constantes, etiquetas, parámetros, tipos de datos. Los nombres de variables en c se declaran o definen antes de que sea utilizadas. Ejemplos: Temperatura TEMPERATURA temperatura A veces se utilizan con carácter subrayado y mezcla de mayúsculas y minúsculas. Dia_de_semana DiaDeSemana CONSTANTES La palabra reservada CONST permite definir determinadas variables con valores constantes, que no se pueden modificar. Ejemplo : const int z = 4350 ; const float pi = ; const int arraysize = 100 ; int arrays [arrayssize] ; SECUENCIAS DE ESCAPE Carácter significado \a Carácter de alerta \b Retroceso de espacio \f Avance de pagina \n Nueva línea \r Retorno de carro \t Tabulación horizontal \v Tabulación vertical \nnn Numero octal \0 Carácter nulo (terminación de cadena) \\ barra inclinada \? Signo de interrogación \ Comilla \ Doble comilla \xnn Numero hexadecimal TIPOS DE DATOS

4 Tipos de datos enteros Tipos Significado Tamaño Tamaño Valor Valor minino en bytes en bits máximo Signed Con signo Unsigned S signo Int short, Short int Entero corto Int long, int long Entero largo VARIABLES TIPO CHAR El tipo char se utiliza para representar caracteres. Las constantes de tipo char pueden ser caracteres encerrados entre comillas ( A, b, p ) Ejm. Char car = m Declara una variable car y le asigna el valor ASCII del carácter M. El compilador convierte la constante carácter M en un valor entero (int). Dado que los caracteres literales se almacenan internamente como valores int, se les puede cambiar la línea. Char car; Por int car, y el programa funcionara correctamente. TIPOS DE DATOS DE COMA FLOTANTE (REALES ) Tipo de dato Tamaño en Tamaño en Valor mínimo Valor maximo bytes bits Float E E + 38 Double E E Long double E E4932 Si se le desea representar números en base 16 (hexadecimal) o en base (octal) se procede con el carácter OX para hexadecimal y o para octal. 25 /*octal 25 o decimal 21 */ OX25 /*hexadecimal 25 o decimal 37 */ 25OL /*entero largo 250*/ OTROS TIPOS DE DATOS Tipo de dato caracter Booleano Objeto sin tipo Archivo significado Char Bool Void *file

5 TIPOS ENUMERADOS El tipo enum es una lista ordenada de elementos como constantes enteras. La declaración: diassemana {lunes, martes, miércoles, jueves, viernes, sábado domingo} Un tipo enumerado se puede utilizar para declara una variable: Enum diassemana laborable; Y a continuación utilizarla con; Laborable = jueves; O bien: laborable = sabado; If (laborable >= viernes) printf( hoy no es laborable /n, laborable); EXPRESIONES Y OPERADORES Operador Significado Ejemplo * Multiplicación A*b / División entera A/b + Suma A+b - Resta a-b % Modulo A%b OPERADORES RELACIONALES Operador significado Ejemplo < Menor que a<b <= Menor que o igual a<=b > Mayor que a>b >= Mayor que o igual a>=b == Igual a==b! = No es igual (diferente) a!=b ++ Incremento i++, ++i -- Decremento i--, --i OPERADORES DE ASIGNACIÓN Asumir int c=3, d=5, e=4, f=6, g=12 Operador Expresión de Explicación Asignación muestra += c+=7 c = c+7 10 to c

6 -= d -=4 d = d 4 1 to d *= e*= 4 e = e * 5 20 to e /= f /= 4 f = f / 3 2 to f %= g %= 4 g = g % 9 3 to g SENTENCIAS ESTRUCTURAS DE SELECCION IF If (expresion) // Sentencia Expresión Ejem: if (nota>=30) printf( paso\n ); sentencias ESTRUCTURAS DE SELECCIÓN IF / ELSE If (expresión) Sentencia else Ejem: if Sentencia else (nota>=30) printf( paso \n ); printf( no paso \n ); sentencias sentencias Expresió n sentencias sentencias EXPRESIÓN CONDICIONAL(?:) Es una simplificación de la sentencia if else. Su sintaxis es; expresión 1? expresión 2 : expresión 3 EJEM: Nota >= 30? printf( paso \n ): printf( no paso \n );

7 ESTRUCTURA DE REPETICIÓN WHILE While( expresión) Sentencias Ejem: producto = 2; while (producto<=100) producto = producto *2; Expresión Sentencia s ESTRUCTURA DO WHILE do { Sentencias } while ( expresión) Ejem: int contador = 1; do{ printf( %d,contador); } while(++ contador <= 10); Sentencia s Expresión ESTRUCTURA DE REPETICIÓN FOR For (expresion1; expresión 2; expresion3) { Sentencias } I=vi;vf;inc/dec SENTENCIA Ejm; int i;

8 for (x=1; x<=10; x++) for (i=100; i>=1; i--) for (i=7; i<=77; i+=) /* i varia de 100 a 1 con decremetos de 1 o incrementos de 1*/ /* i varia de 7 a 77 con incrementos de 7 */ for (i=20; i>=2; i -=2) /* i varia de 20 a 2 con decrementos de 1 */ ESTRUCTURA DE SELECCIÓN MÚLTIPLE SWITCH La sentencia SWITCH realiza una bifurcación múltiple, dependiendo del valor de una expresión. Switch (xpresión) Case valor 1; sentencias 1; Case valor 2; sentencias 2; Case valor 3; /* Se ejecuta si la expresión igual a 3 */ sentencias 3; /* Salida de la sentencia switch default: sentencias por omisión /* Se ejecuta si ningún valor coincide con la expresión/ Ejem: Int tiposal, salario, sb scanf( %d, tiposal); switch tiposal { case 1; sb=salario * 0.30; case 2; sb=salario * 0.20; case 3; sb=salario * 0.10; defaul: sb=salario*0.05 }

9 SENTENCIAS DE CONTROL INCONDICIONAL Break La sentencia break se utiliza para salir incondicionalmente de un bucle for, while, do while o de una sección case de una sentencia switch. For (;;) { If (expresion) } Ejem: for(x=1; x<=10; x++) { If (x==5) /*cuando x=5 sale del ciclo y ejecuta el printf por break fuera del for */ printf( %d,x); } printf ( utilización del break ); CONTINUE La sentencia continué salta en el interior del bucle hasta el principio del bucle para proseguir con la ejecución, dejando de ejecutar las líneas restantes después de la sentencia continue hasta el final del bucle. While (expresion) { If (expresión) Continue } Ejm: for (x=1; x<=10; x++) if (x==5) /*cuand x ==5 salta los enunciados restantes y continue ejecuta la siguiente iteraciondel ciclo */ printf( %d,x);}; printf( utilización de break ); FUNCIONES DE ENTRADA Y SALIDA scanf (lectura) sintaxis: scanf(salta de control, lista de parámetros); %[tamaño][prefijo] código de conversión % especificación del control tamaño espacio ocupado por el dato a ver prefijo (h,i,l) : corto, largo, real doble código de conversión para scanf %c Carácter %d Entero decimal %e - %f - %g Coma flotante

10 %h Entero corto %i Entero decimal, hexadecimal corto %o Octal sin signo %a Nulo %x Entero hexadecimal %u Entero sin signo %s Cadena de caracteres Ejm: Printf (escritura) Scanf ( %f,&gradosfar); Scanf( %s%s, ciudad, provincia); Sintaxis: printf(salta de control, lista parametros) Sc e%[texto] [indicador][tamaño][prefijo] código de conversión; Ejm: printf( esto es una prueba %d \n, prueba); printf( \n comado \n alfa = %5d, alfa); printf( hola mundo ); CODIGO DE CONVERSIÓN PARA PRINTF %c Se muestra como carácter %d Se muestra como entero decimal %e - %f - %g Coma flotante %h Entero corto %u Entero decimal, hexadecimal corto %o Octal sin signo %x Entero hexadecimal sin signo %s