Introducción Al Lenguaje C

download Introducción Al Lenguaje C

of 69

description

introduccion a la programacion en c

Transcript of Introducción Al Lenguaje C

LENGUAJE C

LENGUAJES DE PROGRAMACION

HISTORIAEl conjunto de rdenes e instrucciones que se dan al computador para que resuelva un problema se denomina programa.

En los primeros tiempos de la informtica, la programacin se efectuaba en el nico lenguaje que entiende el microprocesador: cdigo binario , tambin denominado lenguaje de mquina.

A principios de los 50 se cre una notacin simblica, denominada cdigo de ensamblaje (ASSEMBLY).

HISTORIAConforme los computadores fueron introducindoseen el mundo empresarial y acadmico, aquellos primitivos lenguajes fueron sustituidos por otros ms sencillos de aprender y ms cmodos de emplear.

Estos lenguajes, llamados de alto nivel, tienen una estructura que se adapta ms al pensamiento humano que a la forma de trabajar del computador.

Ejemplo de lenguajes BASIC, PASCAL, C, etc.

TIPOS DE LENGUAJESBAJO NIVELEntiende solamente la mquina (binario)ALTO NIVELEntiende el programador comnEj. Visual BasicJavaPerlC++

Interpretacin

Programa en L. De alto Nivel

InterpretacinEjecucin

(Un solo paso)Traduce instruccin a instruccin y , de esta forma, favorece la interactividad, la depuracin y puesta a punto del programa, la ejecucin inmediata de una orden, etc. Entre los lenguajes que suelen ser interpretados, se encuentran BASIC, LOGO.

Compilacin

Programa en L. De alto Nivel

Compilacin(Traduccin)Ejecucin

(Dos pasos)Programa en L. DeBajo Nivel

Programa FuentePrograma ObjetoEl compilador traduce todo el programa de golpe, dejndolo listo para ser ejecutado.De esta forma, se logra mayor rapidez en la ejecucin y , adems, se liberan recursos de la memoria, pues el programa, una vez compilado, no exige que el traductor est residente en memoria, como sucede con los intrpretes. Por ejemplo los lenguajes que siempre son compilados se pueden destacar PASCAL, FORTRAN, COBOL, etc.

Detalle de la CompilacinProcedimiento Fuente 1CompiladorProcedimiento Fuente 2Procedimiento Fuente 3MduloObjeto 3Mdulo Objeto 2MduloObjeto 1EnlazadorInformacinProgramaBinarioEjecutableDatos

.CPP.EXE.OBJ.BAKFUENTE

Fases de la Compilacin

LENGUAJE DE PROGRAMACION C++

9

HISTORIAEn los Laboratorios Bell (New Jersey) trabajaron dos investigadores Kenneth Thompson y Dennis Ritchie creadores del sistema operativo UNIX, en 1969.

En 1970, Thompson desarroll un lenguaje experimental, al que llam B. Dos aos despus, Ritchie sebas en B para crear un nuevo lenguaje de propsitogeneral, que denomin C.

Como no depende de la arquitectura del hardware, C es uno de los lenguajes ms portables del mercado.

A principios de los 80, Bjarne Stroustrup dise una ampliacin de C y en 1984, la convirti en un compilador que llam C++, especialmente enfocado a la programacin orientada a objetos

10

PROGRAMACION EN C++

11

ESTRUCTURA DE UN PROGRAMATodo programa en C se construye bsicamente mediante tres tipos de objetos: Funciones.Variables.Tipos de datos.

12

ESTRUCTURA DE UN PROGRAMA< comandos del preprocesador>

Las funciones a la vez tienen la siguiente estructura:

nombre_de_la_funcin(){}

De todas las funciones que se declare, una debe ser llamada main, ste esEl cuerpo principal del programa, desde aqu se pueden llamar a otrasFunciones. ENCABEZADOCUERPO

13

ESTRUCTURA DE UN PROGRAMA

/*Variantes de Definicin*/#include#define nombre_de_la_constante

//Funcin principalvoid main(){ definicin de variables locales; instrucciones del programa;

}

#include #include

... declaraciones de funciones ... ... definiciones (cuerpos de funciones) ... ... declaraciones de variables globales ... main(){... cuerpo del main ... }... otras definiciones de funciones ... Definicin de Cabecera y/o FicherosDeclaracin de DatosFuncin PrincipalOtras Funciones y/o Procedimientos

ESTRUCTURA DE UN PROGRAMAEl inicio del programa debe llevar:El smbolo de numeral (#) la sentencia include, y entre signos de mayor y menor que () el nombre de la librera o fichero.Seguidas de las libreras, para que Incluya en el programa la directiva la cual contiene las funciones para procesar datos. #include

ESTRUCTURA DE UN PROGRAMA#include .- Contiene las funciones de entrada y salida de datos.#include .- Declara varias funciones usadas llamando la consola del sistema operativo.#include .- Manejo de cadenas.#include .- Memoria dinmica. #include .- Rutinas matemticas.

Ejemplo #include

using namespace std;

main(){ cout 1 entero 4.0 / 3 --> 1.333real4 / 3.0 --> 1.333real4.0 / 3.0--> 1.333real

Pre/post incrementosLos operadores unarios (++) y (--) representan operaciones de incremento y decremento, respectivamente.a++;/* similar a a=a+1 */

Ejemplos:a=3; b=a++;/* a=4, b=3 */a=3;b=++a; /* a=4, b=4 */a=3; b=a--;/* a=2, b=3 */

OPERADORES DE ASIGNACIONEl operador de asignacin en C++ es el igual(=)a=b+3;Existen otras variantes de asignacin:a+=3; /* Equivalente a a=a+3 */a*=c+d;/* Equivalente a a=a*(c+d) */a/=a+1;/* Equivalente a a=a/(a+1) */Para las asignaciones entre variables o expresiones de tipos diferentes se recomienda hacer casting:a=(int)(x/2.34);

OPERADORES RELACIONALESLos operadores de relacin son:Igual (==) Distinto (!=)Mayor (>) y Mayor o igual (>=)Menor (2 || 5==4) && !1 /* Falso */

ENTRADA Y SALIDA DE DATOSSe utiliza las funciones de biblioteca: scanf para la entrada de valores.Sintaxis es la siguiente:scanf ("%d", &variable);Los modificadores del control estarn formados por el caracter % seguido de un caracter de conversin. Los argumentos indicados sern, nuevamente, las variables.

La principal caracterstica de la instruccin scanf es que necesita saber la direccin de memoria en que se encuentra la variable para poder almacenar la informacin obtenida. Para indicarle esta posicin utilizaremos el smbolo ampersand ( & ), que colocaremos delante del nombre de cada variable.

ENTRADA Y SALIDA DE DATOSprintf para la salida de informacin.Sintaxis es la siguiente:

Imprime en pantalla el texto y el valorprintf ("El valor es %d", variable);

FORMATOS DE LECTURA O IMPRESINLos modificadores ms utilizados son:

%c Un nico carcter, %i Un entero %d Un entero con signo, en base decimal %u Un entero sin signo, en base decimal, %e Un nmero real en coma flotante, con exponente %f Un nmero real en coma flotante, sin exponente %s Una cadena de caracteres

ENTRADA Y SALIDA DE DATOSENTRADA DE TIPO CARCTER.Se declara una variable de tipo carcter y se guarda en: getch() o getche().La diferencia es que getche() muestra en pantalla el carcter introducido. getch() lo mantiene oculto. Sintaxis:char opc;opc=getch();opc=getche();

VARIABLESVariable Global Variable Local #include int x;int main(){}#include int main(){int x;}

ESTRUCTURA DE DECISINEstructura de decisin If-Else

Seleccin Simple: SI Ejemplo en C: if

Seleccin Doble: SI-SINO Ejemplo en C: if else

Seleccin Doble en cascada: SI-SINO-SI Ejemplo en C: if else { if else { } . }

ESTRUCTURA DE DECISINEstructura de decisin Simple

Problema: Codificar un programa que al recibir el promedio de un alumno en un curso, escribe Aprobado si el promedio es mayor o igual a 14Diagrama de Flujo

Codificacin en Lenguaje C/* Promedio curso: El programa recibe como dato el promedio de un alumno en un curso , escribe Aprobado si su promedio es mayor o igual a 14 */

#include #define VALOR 14

void main(){ float Pro; printf( "Ingrese el promedio del curso: \a \n " ); scanf( "%f", &Pro );

if ( Pro >= VALOR) printf( " \Aprobado\ \n" );}

INICIOProPro >= 14AprobadoFINVF

ESTRUCTURA DE DECISINEstructura de decisin Dobles

Diagrama de Flujo

Codificacin en Lenguaje C/* Promedio curso: El programa recibe como dato el promedio de un alumno en un curso , escribe Aprobado si su promedio es mayor o igual a 14, sino escribe Reprobado */

#include #define VALOR 14

void main(){ float Pro; printf( "Ingrese el promedio del curso: \a \n " ); scanf( "%f", &Pro );

if ( Pro >= VALOR) printf( " \Aprobado\ \n" ); else printf( " \Reprobado\ \n" );}

INICIOProPro >= 14ReprobadoFINVF

Aprobado

Problema: Codificar un programa que al recibir el promedio de un alumno en un curso, escribe Aprobado si el promedio es mayor o igual a 14, sino escribir Reprobado

ESTRUCTURA DE DECISINCondiciones Anidadasif (condicin1){ /*bloque1*/}else if(condicin2){ /*bloque2*/}else if(condicin3){}else if(condicinN){/*bloqueN*/}else {/*bloqueN+1*/}

CONDICIONES ANIDADASIF ANIDADASif (condicin) if (condicin)Instrucciones a ejecutar cuando la condicin es verdadera;else Instrucciones a ejecutar cuando la condicin es falsa;else Instrucciones a ejecutar cuando la condicin es falsa;

Problema: Leer los datos de las ventas de tres vendedores de una empresa, escribir las mismas en forma descendente./* Imprime en orden descendente, 3 valores de ventas */#include

void main(){ float p, s, r; printf( "Ingrese las ventas de los tres vendedores" ); scanf( "%f %f %f", &p, &s, &r ); if ( p > s ) if ( p > r ) if ( s > r )printf(\n El orden es: %f %f %f,p,s,r); else printf(\n El orden es: %f %f %f,p,r,s); else printf(\n El orden es: %f %f %f,r,p,s); else if ( s > r ) if ( p > r ) printf(\n El orden es: %f %f %f,s,p,r); else printf(\n El orden es: %f %f %f,s,r,p); else printf((\n El orden es: %f %f %f,r,s,p); }

Programa para determinar si un ao es bisiesto.#include #include void main(){int year;clrscr(); //Limpia la pantallaprintf ("Programa para determinar si un ao es bisiesto");printf ("\nIntroduce un numero de ao\n");scanf ("%i", &year);if (year%4 == 0 && year%100 != 0 || year%400 == 0)printf ("\a\nEl ao %i si es bisiesto", year);elseprintf ("\a\nEl ao %i no es bisiesto", year);getch();}

EJEMPLO#include #include void main(){int a, b, c, d, mayor;clrscr ();printf ("Programa que indica cual de 4 numeros es el mayor\n");printf ("Introduce 4 numeros enteros:\n");scanf ("%i%i%i%i", &a, &b, &c, &d);if (a > b)if (a > c)if (a > d)mayor = a; elsemayor = d; else if (c > d) mayor = c;else mayor = d;else if (b > c) if (b > d) mayor = b; else mayor = a; else if (c > d) mayor = c; else mayor = d;printf ("El mayor es %i", mayor);getch();}

ESTRUCTURA SWITCHEvala una expresin que puede tomar n valores distintos, segn con cual de estos valores coincida, se ejecutaran ciertas acciones.SINTAXISswitch (valor) { case valor1: case valor2: ... default: }

EJEMPLO#includemain(void){int dia;printf("ingrese un nmero entre 1 y 7........ ");scanf("%d",&dia);switch(dia){case 1:printf(" LUNES \n");break;case 2:printf(" MARTES \n");break;case 3:printf(" MIERCOLES\n");break;case 4:printf(" JUEVES\n");break;case 5:printf(" VIERNES\n");break;case 6:printf(" SABADO\n");break;case 7:printf(" DOMINGO\n");break;default:printf(" SOLO NMEROS ENTRE 1 Y 7........ ");}}

ESTRUCTURAS DE CONTROLWHILELa estructura while ejecuta la condicin de continuacin del ciclo al principio de este, antes de ejecutar las condiciones del bucle.SINTAXISwhile (condicin) {Instrucciones que se repetirn mientras la condicin sea verdadera;Instrucciones adicionales;}

EJEMPLOLas sentencias se ejecutan si la expresin es verdadera. La comprobacin es al inicio del bucle.Para la serie 3456789#include int a;main(){ a=3; while(a100 );}Do-While puede ser til en el desarrollo de programas con mens.

SENTENCIA FORPermite inicializar los controles del bucle.SINTAXISfor(indice=inicio bucle; indice=fin bucle; indice incrementa++) {sentencias dentro del bucle}

EJEMPLO#includemain(void){int num,mayor,menor,x;mayor=0;menor=10000;for(x=1; x