Vous êtes sur la page 1sur 35

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Introduccin a los Computadores o Introduccin a la programacin en C o o


CNM-130 Departamento de Matemticas a Facultad de Ciencias Exactas y Naturales Universidad de Antioquia
Copyleft 2009. Reproduccin permitida bajo los o trminos de la licencia de documentacin libre GNU. e o

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Contenido

Introduccin o

Principios bsicos a

Variables y tipos

Operaciones bsicas a

Ejemplos

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Origen del lenguaje C


Desarrollado entre 1969 y 1973 por Dennis Ritchie en los Laboratorios Bell

Proviene del lenguaje de programacin B diseado o n por Ken Thompson, una versin simplicada de o BCPL

Dennis Ritchie - Ken Thompson

Utilizado para implementar el sistema operativo Unix en la computadora PDP-11 de la empresa DEC

Primera implementacin de Unix en lenguaje o ensamblador

En 1973 se reescribe el kernel de Unix en C

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Origen del lenguaje C

En 1978, Brian Kernighan y Dennis Ritchie publican la primera edicin de The C Programming Language o Entre 1983 y 1989 se dene el estndar ANSI a conocido como ANSI C, ampliamente usado por todos los compiladores

En 1979, Bjarne Stroustrup agrega a C las clases (C con clases) En 1983 se agregan elementos de la programacin o orientada a objetos y pasa a llamarse C ++ En 1985 se publica la primera edicin de The C++ o Programming Language

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Aspectos generales
Lenguaje de nivel medio:
Elementos de lenguajes de bajo nivel (ensamblador): acceso a direcciones de memoria, registros, manipulacin de bits, etc. o Elementos de lenguajes de alto nivel: abstraccin, cdigo ms sencillo y o o a comprensible, portable (vlido para diversas mquinas), etc. a a

Lenguaje estructurado:
Todo programa es posible escribirlo con slo tres estructuras de control: o
Secuencial Condicional Repetitiva

Modularidad: un programa se puede dividir en mdulos subprogramas o o (funciones) con el n de hacerlo ms legible y manejable a

Lenguaje de propsito general: o


Gramtica sencilla y corta a Pocas restricciones Sintaxis exible Estructuras de control de ujo Variedad de operadores Pocas palabras reservadas

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Proceso de creacin o

Proceso de creacin del cdigo fuente o o


Con un editor de texto usted crea un archivo con instrucciones del lenguaje (programa fuente) Las instrucciones obedecen a unas reglas de construccin y sintxis o a propia del lenguaje

Proceso de compilacin o
El compilador transforma el cdigo fuente en un programa objeto o El linkeador (linker) combina el programa objeto en un archivo ejecutable El programa ejecutable no se crear si el compilador encuentra errores a en el programa fuente

Proceso de ejecucin o
Se ejecuta el programa y se eval an los resultados u

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Primer programa en C
holamundo.c

#include<stdio.h> main(){ printf("Hola maldito mundo\n"); }

stdio.h: standard input output (entrada y salida estndar), archivo que a contiene las deniciones de macros, constantes, declaraciones de funciones, etc. main(): funcin principal que controla todo el programa o {: inicio del programa }: nal del programa printf(Hola maldito mundo\n); funcin de salida de C denida en o stdio.h, imprime el texto entre comillas.

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Compilando con gcc


holamundo.c

#include<stdio.h> main(){ printf("Hola maldito mundo\n"); } invitado:$> mkdir C invitado:$> cd C invitado:/C$> ls invitado:/C$> invitado:$> gedit hola.c invitado:/C$> ls hola.c invitado:/C$> invitado:$> gcc hola.c invitado:/C$> ls a.out hola.c invitado:/C$> invitado:$> ./a.out hola maldito mundo invitado:/C$>

invitado:$> gcc hola.c -o hola invitado:/C$> ls a.out hola hola.c invitado:/C$> invitado:$> ./hola hola maldito mundo invitado:/C$>

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Entorno de Desarrollo Integrado


Code::Blocks: editor para el desarrollo de programas en lenguaje C ++, distribuido bajo licencia GPL. Incluye compilador gcc

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Tipos de datos
Tipos de datos disponibles en C:
char int float double void

Modicadores de tipo: alteran el rango de los tipos de datos bsicos a


Modicadores de longitud:
short: aplicable a n meros enteros, por defecto los enteros son short u long: aplicable a n meros enteros y reales, duplica el rango u

Modicadores de signo:
signed: con signo unsigned: sin signo

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Tipos de datos

Tipo unsigned char char short int short int int unsigned long long float double double void

Descripcin o caracter sin signo caracter entero corto entero sin signo entero entero largo sin signo entero largo Real simple precisin o Real doble precisin o Real doble largo Sin valor

bits 8 8 16 32 32 32 32 32 64 80 0

Rango [0, 255] [128, 127] h i 215 , 215 1 h i 0, 232 1 h i 231 , 231 1 h i 0, 232 1 h i 231 , 231 1 h i 3.4 1038 , 3.4 1038 h i 1.7 10308 , 1.7 10308 h i 3.4 104932 , 3.4 104932 Sin rango

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Identicadores y palabras reservadas


Identicadores
Nombres que hacen referencia a los objetos que componen el programa: constantes, variables, funciones, etc. Reglas para los identicadores:
El primer caracter debe ser una letra o el caracter de subrayado El primer caracter puede ir seguido de un n mero variable de d u gitos numricos, letras o caracteres de subrayado e No pueden utilizarse espacios en blanco, ni s mbolos de puntuacin o C distingue may sculas y min sculas u u No pueden utilizarse palabras reservadas del lenguaje

Palabras reservadas
auto break case char const continue default double else enum float for goto if int long return sizeof static struct switch typedef void while

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Declaracin de variables en C o
Componentes de una variable en C:
tipo: dene el conjunto de valores posibles a almacenarse (int, float, etc.) valor: valor especicado por el tipo, almacenado en la variable (3, "no") identicador: nombre que permite acceder a la direccin de memoria donde o se encuentra almacenado el valor (distancia, nota 3, temp) Especicador de almacenamiento: determina el lugar y la forma en que se almacena el objeto cuando se ejecuta el programa (static)

Formato de declaracin de una variable en C: o [almacenamiento] Ejemplos:


int nota; char letra; float radio; long double masa; static int temp;

[modificador]

tipo

identificador;

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Inicializacin de variables en C o
Formato de inicializacin de una variable en C: o identificador = valor; Ejemplos:
nota = 5; letra = "x"; radio = 3.1416; masa = 198910000000; temp = 875;

Declaracin e inicializacin simultnea: o o a


int nota = 5; char letra = "x"; float radio = 3.1416; long double masa = 198910000000; static int temp = 875;

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Salida de datos
printf: imprime datos en pantalla Sintaxis: printf("cadena de formato", arg1, arg2,...,argn); Cadena de formato:
Texto Caracteres de control Especicadores de formato

Ejemplo con texto:


mensaje.c

#include<stdio.h> main(){ printf("Estamos en feria de flores"); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Salida de datos
Ejemplo con caracteres de control:
S mbolo \n \a \t \b \f \r \ \ \0 \? \\ \v mensaje caracteres.c Accin o nuevo rengln o emite sonido tabulador horizontal retroceso salto de pgina a retorno de carro imprime comillas dobles retroceso imprime caracter nulo (cero) imprime signo de interrogacin o imprime barra invertida tabulador vertical

#include<stdio.h> main(){ printf("Hola a todos "); printf("y sigo sin dejar lnea en blanco"); printf("ahora dejo una lnea en blanco\n"); printf("se emite un sonido corto\a\n"); printf("ahora dejo un espacio horizontal \t tabulador\n"); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Salida de datos: ejemplo con especicadores de formato


S mbolo %c %d %i %ld %u %e %E %f %lf %g %G %o %x %X %% %p %s Accin o caracter entero con signo entero con signo (en desuso) entero long con signo entero long con signo real (notacin cient o ca, e min scula) u real (notacin cient o ca, E may scula) u float double imprime formato ms corto entre %e y %f a imprime formato ms corto entre %E y %f a entero octal sin signo hexadecimal sin signo (letra min scula) u hexadecimal sin signo (may scula) u imprime % imprime puntero cadena de caracteres

mensaje formato.c

#include<stdio.h> main(){ int a = 3; int b = 4; printf("La suma de %d y %d es: %d \n", a, b, a+b); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Salida de datos: ejemplo con especicadores de formato


mensaje formato varios.c

#include<stdio.h> main(){ // declaracin de variables o long int i, j; char letra; float x, y; double u, v; // inicializacin de variables o i = 3458796; j = 57498746; letra = z; x = 2.6e-38; y = 1.3e38; u = 0.4e-307; v = 1.2e308; // salida de datos printf("Enteros largos: %ld y %ld \n", i, j); printf("Caracter: %c \n", letra); printf("float: %f y %e \n", x, y); printf("double: %lf y %le \n", u, v); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Salida de datos
Ejemplo con modicadores de formato:
mensaje formato modicador.c

#include<stdio.h> main(){ // declaracin e inicializacin de variables o o float a = 45.375; double pi = 3.141592653589793115997963; // salida de datos para a printf("a: %f \n", a); printf("a con 2 decimales: %.2f \n", a); printf("a con 7 decimales: %.7f \n", a); // salida de datos para pi printf("\npi = %lf \n", pi); printf("pi con 3 decimales: %.3lf \n", pi); printf("pi con 12 decimales: %.12lf \n", pi); printf("pi con 24 decimales: %.24lf \n", pi); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo

Si un clculo excede el tamao de las variables involucradas se generan a n errores

error variable.c

#include<stdio.h> main(){ // Inicializa una variable entera int millon = 1000000; // 106 /* La siguiente linea genera un error, la variable billon = 1012 supera a 231 */ int billon = millon*millon; // imprime dato errado printf(" %d al cuadrado es: %d \n", millon, billon); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Entrada de datos
Sintaxis: scanf("cadena de formato", &arg1, &arg2,..., &argn); Cadena de formato:
Caracteres de espacios en blanco, comas (,) Especicadores de formato
lectura datos.c

#include<stdio.h> main(){ // Declaracin de variables o char nombre[30]; int edad; // lee el nombre printf("Ingrese su nombre: "); scanf("%s", nombre); // lee edad printf("Ingrese su edad: "); scanf("%d", &edad); // Imprime los contenidos de nombre y edad printf("\nnombre: %s\n", nombre); printf("edad: %d\n", edad); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Operadores aritmticos e
Operador * / + %
operaciones.c

Operacin o Multiplicacin o Divisin o Suma Resta Mdulo (residuo) o

Ejemplo 7*3 10/4 3-4 7-4 10 %3

Resultado 21 2.5000 -1 3 1

#include<stdio.h> main(){ // Declaracin de variables o int a = 3; int b = 4; int suma = a+b; int resta = a-b; int producto = a*b; double division = a/b; // division se declara como tipo double int residuo = a %b; // imprime contenido de variables printf("a = %d y b = %d \n", a, b); printf("La suma es %d \n", suma); printf("La resta es %d \n", resta); printf("El producto es %d \n", producto); printf("La divisin es %lf \n", divisin); o o printf("El residuo de dividir %d entre %d es %d \n", b, a, residuo); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Conversiones forzadas: moldes (cast)


Moldes: conversiones realizadas para forzar a una expresin a ser de un o tipo determinado de dato Sintxis: a
(tipo) expresin o

operaciones molde.c

#include<stdio.h> main(){ // declaracin de variables o int a = 3; int b = 4; // division1 se declara como tipo double y se le asigna un entero double division1 = a/b; // division2 se declara como tipo double y se le asigna un double double division2 = (double)a/(double)b; // imprime contenido de variables printf("a = %d y b = %d \n", a, b); printf("La divisin es %lf \n", divisin1); o o printf("La divisin es %lf \n", divisin2); o o }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Operadores relacionales (de comparacin) o


Operador == != < > <= >=
comparacion.c

Operacin o Igual Diferente de Menor que Mayor que Menor o igual que Mayor o igual que

Ejemplo 4 == 5 2!=3 10 < 4 5>-4 7<=7 3.5 >= 10

Resultado 0 1 0 1 1 0

#include<stdio.h> main(){ // Declaracin de variables o int a, b, c; // Inicializacin de variables o a = 2; b = 5; c = -3; printf("a = %d, b = %d y c = %d \n\n", a, b, c); printf("a!=b produce como resultado %d \n", a!=b); printf("c<=b produce como resultado %d \n", c<=b); printf("a==b produce como resultado %d \n", a==b); printf("a=b produce como resultado %d \n", a=b); printf("a==b produce como resultado %d \n", a==b); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Operadores lgicos (booleanos) o


Operador && || ! Operacin o y o negacin o Ejemplo 2 && 3 3 || 5 !7 Resultado 1 1 0 x 0 0 1 1 y 0 1 0 1 x && y 0 0 0 1 x || y 0 1 1 1 !x 1 1 0 0

booleanos.c

#include<stdio.h> main(){ // Declaracin de variables o int a, b, c; // Inicializacin de variables o a = 2; b = 5; c = -3; printf("a = %d, b = %d y c = %d \n\n", a, b, c); printf("a && b produce como resultado %d \n", a && printf("a && c produce como resultado %d \n", a && printf("a || b produce como resultado %d \n", a || printf("b || c produce como resultado %d \n", b || printf("!c produce como resultado %d \n", !c); } b); c); b); c);

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Operadores de incremento y decremento

prepost.c

#include<stdio.h>

Instruccin o x += y; x -= y; x *= y; x /= y; x %= y; x++; x--;

Significado x = x+y; x = x-y; x = x*y; x = x/y; x = x %y; x = x+1; x = x-1;

main(){ // Declaracin de variables o int a, b, c, d; // Inicializacin de variables o a = 10; c = 10; //Operador de incremento (pre) b = ++a; printf("a = %d y b = %d \n", a, b); //Operador de incremento (post) d = c++; printf("c = %d y d = %d \n", c, d); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Precedencia de los operadores


Operador () ! ++ -* / % + <= > >= == != & || = Asociatividad izquierda a derecha derecha a izquierda izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha derecha a izquierda Jerarqu a (mayor)

<

(menor)

precedencia.c

#include<stdio.h> main(){ // Declaracin de variables o float a, b, c, d, e; // Inicializacin de variables o a = 1.0 + 2.0 * 3.0; b = 6.0 / 3.0 * 2.0; c = 6.0 / ( 3.0 * 2.0 ); d = ! 1 < 4 + 8; e = ! ( 1 < 4 + 8 ); printf("a = %f, b = %f, c = %f, d = %f y e = %f\n", a, b, c , d, e); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Funciones matemticas a
math.h: biblioteca con las deniciones de las funciones matemticas a Contiene:
Funciones trigonmtricas: cos, sin, tan, etc. e Funciones exponenciales: pow, exp, log, etc. Otras: abs, ceil, floor, etc.
Funcin o sqrt(x) pow(x,y) exp(x) log(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) abs(x) fabs(x) ceil(x) floor(x) Descripcin o Argumentos double double, double double double double double double double double double int double double double Resultado double double double double double double double double double double int double int int

ra cuadrada x z potencia xy exponencial logaritmo natural seno coseno tangente arco seno arco coseno arco tangente valor absoluto de entero valor absoluto de double el mayor entero menor o igual x el menor entero mayor x

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Constantes simblicas o

Identicadores asociados con variables de diversos tipos de datos Se encuentran denidas en math.h

Identicador M M M M M M M M M M M M M E LOG2E LOG10E LN2 LN10 PI PI 2 PI 4 1 PI 2 PI 2 SQRTPI SQRT2 SQRT1 2

Constante e log2 (e) log(e) ln(2) ln(10) /2 /4 1/ 2/ 2/ 2 1/ 2

Valor almacenado 2.718281828459045090795598298427648842334747314453 1.442695040888963387004650940070860087871551513672 0.434294481903251816667932416748953983187675476074 0.693147180559945286226763982995180413126945495605 2.302585092994045901093613792909309267997741699219 3.141592653589793115997963468544185161590576171875 1.570796326794896557998981734272092580795288085938 0,785398163397448278999490867136046290397644042969 0.318309886183790691216444201927515678107738494873 0.636619772367581382432888403855031356215476989746 1.128379167095512558560699289955664426088333129883 1.414213562373095145474621858738828450441360473633 1.414213562373095145474621858738828450441360473633

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo 4.1 Dado el radio de un c rculo, elabore un programa en C que calcule el area del c rculo. Solucin o
circulo.c

#include<stdio.h> #include<math.h> main(){ // Declaracin de variables o double r, area; printf("Ingrese el radio del crculo: "); scanf("%lf", &r); area = M PI*pow(r,2); // M PI y est definida en math.h a printf("El rea del crculo es %lf \n", area); a }

invitado:$> gcc circulo.c -o cirulo -lm invitado:/C$> ls circulo circulo.c invitado:/C$>

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo 5.1
Ejemplo 5.1 (intercambio de variables) Realice un programa en C que lea dos variables numricas A y B y pase el e valor de A a B y de B a A. Solucin o
cambiar.c

#include<stdio.h> main(){ // Declaracin de variables o float A, B, TEMP; printf("Ingrese los valores de A y B respectivamente: "); scanf("%f %f", &A, &B); TEMP = A; A = B; B = TEMP; printf("El valor de A es %f \n", A); printf("El valor de B es %f \n", B); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo 5.2
Ejemplo 5.2 (rea de un tringulo) a a Dado los tres lados de un tringulo cualquiera, realice un programa en C a que obtenga el area del tringulo. a Solucin o
heron.c

#include<stdio.h> #include<math.h> main(){ // Declaracin de variables o double a, b, c, s, area; printf("Ingrese los lados del tringulo: "); a scanf("%lf %lf %lf", &a, &b, &c); // Calcula el rea con la frmula de Heron a o s = (a+b+c)/2; // semipermetro area = sqrt(s*(s-a)*(s-b)*(s-c)); printf("El rea del tringulo es %lf \n", area); a a }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo 5.3 (ecuacin cuadrtica) o a Realice un programa en C que encuentre las soluciones reales (si las hay) de la ecuacin cuadrtica o a ax2 + bx + c = 0, con a = 0

Solucin o
cuadratica.c #include<stdio.h> #include<math.h> main(){ // Declaracin de variables o double a, b, c, d, x1, x2; printf("a = "); scanf("%lf", &a); printf("b = "); scanf("%lf", &b); printf("c = "); scanf("%lf", &c); // Calcula las races p d = sqrt(b*b-4*a*c); // d = discriminante = b2 4ac x1 = (-b+d)/(2*a); // x1 = raz 1 x2 = (-b-d)/(2*a); // x2 = raz 2 printf("x1 = %4.8lf \n", x1); printf("x2 = %4.8lf \n", x2); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Ejemplo 5.4
Ejemplo 5.4 (funciones trigonomtricas) e Realice un programa en C que tenga como entrada la medida de un angulo en grados y obtenga cos , sen y tan . Solucin o
fun trig.c

#include<stdio.h> #include<math.h> main(){ // Declaracin de variables o double alfa, rad, c, s, t; printf("Ingrese angulo en grados: "); scanf("%lf", &alfa); rad c = s = t = = M PI*alfa/180; // pasa de cos(rad); // calcula coseno sin(rad); // calcula coseno tan(rad); // calcula coseno grados a radianes de alfa de alfa de alfa

printf("cos( %lf) = %lf \n", rad, c); printf("sen( %lf) = %lf \n", rad, s); printf("tan( %lf) = %lf \n", rad, t); }

Introduccin o

Principios bsicos a

Variables y tipos

Operadores

Ejemplos

Referencias

M.A. Criado Programacin en lenguajes estructurados o Alfaomega Grupo Editor, S.A. de C.V. Primera Edicin, 2006 o

A.B. Downey How to think like a computer scientist, C ++ version First edition, 1999

M.J. Pez a C y C ++ de afn a Segunda edicin. Editorial Universidad de Antioquia, 2004 o

E. Scheinerman C ++ for Mathematicians Taylor & Francis Group, LCC., 2005

Vous aimerez peut-être aussi