Sie sind auf Seite 1von 40

Nivel: Principiante.

POR: TEC. COMP: COMP: VICTOR MANUEL TEJEDA LOPEZ ESTUDIANTE DE LA CARRERA: ING. EN SISTEMAS COMPUTACIONALES EN EL INSTITUTO TECNOLOGICO DE NUEVO LAREDO

Tec.Victor Manuel Tejeda Lopez

Fundamentos del lenguaje.

Pg.: Estructura general de un programa.3 Tipos de datos ...4 Palabras reservadas.4 Cdigos de formato.5 Operadores relacionales..5 Operadores lgicos..5 Cdigos de escape...6 Creacin de un programa.7 o Entrada o Salida o Declaraciones. Operaciones dentro del programa9 Ejercicios.11 Sentencia if-else..12 if anidados...14 Estatuto switch....15 Bucles(ciclos).18 Estatuto while...18 Estatuto do-while.....20 Estatuto for....22 Ciclos anidados.....24 Funciones...27 Arrays.30 Algoritmo de la burbuja..33 Array multidimencional..35 Registros.37 Bibliografa.

Tec.Victor Manuel Tejeda Lpez

Comentarios de autor: Solo puedo decir que espero que sea de gran utilidad este Manual para aquellos que empiezan y desean aprender el lenguaje de programacin C/C++, este Manual es de nivel principiante. El aprender a programar C depende del esfuerzo y de las ganas que uno le eche para aprender. Este Manuel no asegura que aprenda o se experto programador en C. Solo trato de mostrarles el comienzo y darles la chispa para que adquieran conocimientos de lenguaje C. Como ya se dije todo depende de que tanto esfuerzo que uno le dedique y de las ganas que uno le ponga. chenle ganas y conozcan este maravilloso mundo de la programacin.

atte.: Tec.Comp.Victor Manuel Tejeda Lpez.

Cualquier tipo de duda o comentario escrbanme a este correo: tejeda_siete@hotmail.com

Tec.Victor Manuel Tejeda Lopez

Para crear un programa Se utiliza las siguientes etapas: 1.-definir su programa 2.-definir directivas del procesador 3.-definiciones de declaraciones globales 4.-crear main () 5.-crear el cuerpo del programa 6.-crear funciones definidas por usuario 7.-compilar, enlazar, ejecutar y Comprobar su programa 8.-utilizar comentarios Estructura General De un programa

Encabezados

Declaracin de variables.

{ {Variables globales}

Programa principal (subrutinas)

Rutina 1

Rutina 2

Rutina n

. . .

O bien: Encabezados #include<conio.h> #include<stdio.h> void f1(void); int a=1,b=2;

declaracin de variables

{variables globales}

Programa principal

rutina

void main(void) { clrscr(); f1(); printf(" = %d",a+b); getch(); return; } void f1(void) { printf("resultado"); return; }

Tec.Victor Manuel Tejeda Lopez

Tipos de datos: int float Numrico entero (2 bytes de memoria)+32767 a -32767 Numrico real(4 bytes de memoria, 7 dgitos de precisin) 10-38 a 1038 Carcter (1 bytes de memoria) -128 a 127 Tipo double (8 bytes) 10-308 a 10308 double pi=3.141592 int a,b,c,x; int num; float y; float num=10; char a; char b; double a,b,c;

char double constantes

Palabras reservadas Los siguientes identificadores estn reservados para utilizarlos como palabras reservadas, y no se deben emplear para otros propsitos.

asm auto break case char const void

enum extern float for goto if volatile

signed sizeof static struct switch typedef while

continue default do double else int

long register return short union unsigned

Una palabra reservada no puede usarse como nombre de identificador o funcin: int int a: float int x: //error //error

Prioridad y asociatividad. Prioridad (mayor a menor) asociatividad +, - (unitario) Izquierda-derecha * , /, % Izquierda-derecha

Tec.Victor Manuel Tejeda Lopez

Cdigos de formato: Se usan para especificar en tipo de formato o dato que se va a capturar desde el teclado o el tipo de formato que uno quiera que aparezca en la pantalla en un programa. Ejemplo: scanf(%d,&entero); printf(el numero es: %d,entero); %d El dato se convierte a entero decimal. %o El dato entero se convierte a octal. %x El dato entero se convierte a hexadecimal. %u El dato entero se convierte a entero sin signo. %e El dato se considera de tipo float. Se convierte a notacin cientfica. De la forma { - } n.mmmmmmE { +/- }dd. %f El dato se considera de tipo float. Se convierte a notacin decimal, con parte entera y los dgitos de presicion. %g El dato se considera de tipo float. Se convierte segn el codigo %e o %f dependiendo del cual sea la representacin mas corta %s El dato ha de ser una cadea de carateres. %lf El dato se considera de tipo double.

Operadores relacionales. operador == != > < >= <= significado Igual a No igual a Mayor que Menor que Mayor o igual que Menor o igual que Ejemplo A==b A!=b a>b A<b a>=b A<=b

Operadores lgicos operador negacion ( ! ) y logica (&&) o logica || operacin logica no logica operando_1 && operando_2 operando_1 || operando_2 ejemplo !(x>=) m<n && i>j m=5 ||n!=10

Tec.Victor Manuel Tejeda Lopez

Cdigos de escape:

Cdigo de escape \n \r \t \v \a \b \f \\ \ \ \? \000 \xhh

Significado Nueva linea Retorno de carro Tabulacion Tabulacion vertical Alerta (pitido sonoro) Retroceso de espacio Avance de pagina Barra inclinada Comilla simple Comilla doble Signo de interrogacin Numero octal Numero hexadecimal Operadores de asignacin

operador += -= *= /= %= ++ -Encabezados Standar input-ouput Console input-ouput p/ funciones aritmticas p/ graficos p/ funiones dos p/ funciones del sistema

sentencia abreviada m+=n m-=n m*=n m/=n m%=n m++ m- -

sentencia no abreviada m=m+n m=m-n m=m*n m=m/n m=m%n m=m+1 m=m-1

stdio.h conio.h math.h graphics.h dos.h sys.h

Tec.Victor Manuel Tejeda Lopez

Los compiladores donde ejecutar los programas son: Turbo c++ versin 3.0 Crimson Editor 3.60 Como opinin personal yo recomiendo el primero tiene muchas ventajas.

Creacin de un programa Crearemos un programa que imprima en la pantalla el siguiente enunciado: Mi primer programa Como primer paso incluiremos las libreras que usaremos. #include<conio.h> #include<stdio.h>

Enseguida el programa int main () { clrscr(); printf(Mi primer programa); getch(); return 0; }

clrscr()se usa para limpiar pantalla printf( )se usa para imprimir el mensaje (ntese que el mensaje a . Imprimir esta encerrada con comillas). getch()para capturar un carcter sin eco (o para que el programa se . espere hasta que se oprima cualquier tecla). return 0;. es el retorno de la funcin main sin devolver algn valor. { }.. Se abren llaves despus del main, el cual lleva todo lo que . incluir el cuerpo del programa. **para agregar algn comentario se puede hacer de estas dos formas. /* comentario */ // comentario

Tec.Victor Manuel Tejeda Lopez

Para la entrada de valores numricos o caracteres se usan: scanf(%cdigo de formato,&declaracin); cin>>declaracin; gets(declaracin)..esta se usa para capturar una cadena de caracteres. Nota: previamente se debe de declarar las variables a usar. Para imprimir un mensaje o salida de carcter o valor se usan: printf( ); puts( ); cout<< ; Todo lo que se quiera imprimir debe de estar adentro de las comillas.

/*Programa que captura un numero entero e imprime el numero en la pantalla.*/ #include<conio.h> #include<stdio.h> void main(void) { clrscr(); int num; printf(Teclee un numero entero: ); scanf(%d,&num); printf(\nEl numero tecleado es el: %d,num); getch(); return; } Con este ejemplo vemos que es facil capturar una variable de tipo entero, igualmente se puede hacer con variables de tipo carcter y de otro tipo. Ejercicios: *Imprime en la pantalla tu nombre completo, pero que tus apellidos queden en la segunda lnea: ejemplo: Juan Jos Prez Lpez. (usa solamente un printf ). *Declara una variable cualquiera de tipo entero y una variable de tipo char e imprmelo en la pantalla que quede en la misma lnea de esta forma: Letra= a numero= 1

Tec.Victor Manuel Tejeda Lopez

Operaciones dentro del programa: Realizar operaciones dentro de un programa es sencillo y se puede hacer de maneras distintas. En c las operaciones bsicas se hacen como toda operacin, Ejemplo: printf (%d, 2+1); O bien se declara una variable cualquiera y se hace de esta forma; int r; . . . r=2+1; printf(%d, r); Tambin se puede manejar de la misma forma el cout<<; cout<<2+1; r=2+1; cout<<r;

Recuerda que para manejar en cout<<; se debe incluir la librera iostream.h.

Para realizar otras operaciones como sacar exponentes, seno, coseno, tangenteetc, se debe de incluir la librera math.h. Para sacar exponente se hace de esta forma: pow(variable, exponente); pow(x,2); pow(x,3);

Debes declarar la variable que quieres sacarle exponente o bien hacerlo dentro de una operacin cualquiera. Otras operaciones: Raz cuadrada Seno Coseno etc. sqrt(variable); sin(variable); cos(variable);

Recuerda que para manejar nmeros con decimales de recomienda declararlos doubles, float.

Tec.Victor Manuel Tejeda Lopez

Ejemplos: *Programa que calcula el rea de un triangulo: #include<conio.h> #include<stdio.h> void main(void) { clrscr(); int base,altura; printf("Dame la base: "); scanf("%d",&base); printf("Dame la altura: "); scanf("%d",&altura); printf("El area del rectangulo es: %d",base*altura); getch(); return; } //Realiza este mismo programa utilizando el cout<<; y el cin>>; **Programa que calcula el rea de un crculo. area=pi*r2. #include<conio.h> #include<iostream.h> #include<math.h> void main(void) { clrscr(); float radio,area; cout<<"Dame el radio del circulo: "; cin>>radio; area=3.1416*pow(radio,2); cout<<"El area del rectangulo es: "<<area; getch(); return; } // realiza este mismo programa utilizando printf(); y scanf(); Nota: cuando se utiliza el printf y se utilizan nmeros flotantes o doubles se puede acortar el nmero de decimales que se muestra en algn resultado. Ejemplo: y printf(%.2f,10/3); //el resultado es 3.33 printf(%f,10/3); //el resultado es 3.333333

10

Tec.Victor Manuel Tejeda Lopez

Ntese que se pone el .2 para mostrar solamente 2 decimales de la misma forma se puede hacer 2.2,.3,.1,.5etc. segn uno quiera que aparezca. Ejercicios:

a) Hacer un programa que calcule el rea de un triangulo. b)Hacer un programa que calcule esta operacin: a=pow(5,2)+(10+2)/(5*4)/5) c) Hacer un programa que calcule la expresin con los siguientes datos, muestre el resultado con un formato adecuado en la pantalla. A=5, b=0.3, c=-3.1, x=1.018, z=0.8514 2( a/b )x-1/(b-3c)1/z d) Hacer un programa que convierta f a c. c=f-32*5/9 e) Hacer un programa que resuelva una ecuacin cuadrtica del tipo: ax2+bx+c=0, encontrando los valores x1y x2; donde: x=-bb2-4ac 2a. f) Captura tres variables y saca el promedio de los 3. Respuestas: b)=300. c)=0.147676 d)=100f=37.777 e)= prueba el programa con los siguientes datos: a=1,b=5,c=2 x1=-0.44 x2=-4.56 f)= prueba el programa con los siguientes datos a=1,b=2,c=3 Prom=2

11

Tec.Victor Manuel Tejeda Lopez

Sentencia if-else. La sentencia if funciona de la siguiente manera. Cuando se alcanza la sentencia if dentro de un programa, se evala la expresin entre parntesis que viene a continuacin de if. Si expresin es verdadera, se ejecuta Accin; en caso contrario no se ejecuta Accin y ejecuta la siguiente sentencia o Accin2 que uno quiere que realice.

Expresin

Falsa

Verdadera
Accin

Accin2

if(Expresin) Accin. if(Expresin) Accin, else Accion2. En este formato Accin, y Accin2 son individualmente, o bien una nica sentencia que termina en un punto y coma (;) o un grupo de sentencias encerrado entre llaves Ejemplos:
*Programa que te dice si eres menor o mayor de edad; #include<conio.h> #include<stdio.h> void main(void) { clrscr(); int edad; printf("Dame la edad: "); scanf("%d",&edad); if(edad>=18) printf("Eres mayor de edad"); else printf("Eres menor de edad"); getch(); return; }

12

Tec.Victor Manuel Tejeda Lopez

*El mismo programa pero con ms Acciones en cada condicin: #include<conio.h> #include<stdio.h> void main(void) { clrscr(); int edad; printf("Dame la edad: "); scanf("%d",&edad); if(edad>=18) { printf("Eres mayor de edad"); puts("\nEres una persona adulta"); } else { printf("Eres menor de edad"); puts("\nTodavia eres un nio"); } getch(); return; } /* Ntese que las acciones de cada condicin se encierran en llaves, ya que se tiene mas de una sentencia (accin), esto es siempre que se tenga 2 o mas condiciones.

13

Tec.Victor Manuel Tejeda Lopez

Sentencia if else anidadas


Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa es a su vez una sentencia if anidada se puede utilizar para implementar dediciones con varias alternativas o Mult.-alternativas. Ejemplo: Programa que te captura un numero entero y te dice si es positivo, negativo o cero.

#include<conio.h> #include<stdio.h> void main(void) { clrscr(); int num; printf("Dame un numero: "); scanf("%d",&num); if(num>0) printf("El numero es positivo"); else if(num<0) printf("El numero es negativo"); else printf("El numero es cero"); getch(); return; } Si tenemos el siguiente fragmento de codigo: if (condicion 1) if (condicion 2) estatuto; //Este else pertenece al if de la condicion 2, pues se asocia al if al if ms cercano else estatuto; Si queremos que el else pertenezca al primer if debemos poner: if (condicion 1) { if (condicion 2); estatuto; } else // Con el uso de las llaves cerramos el if anidado y el else. estatuto; //pertencela primer if
14

Tec.Victor Manuel Tejeda Lopez


* Ejercicio: Realiza un programa que lea 3 nmeros enteros y los despliege de mayor a menor.

Estatuto Switch. La sentencia switch es una sentencia C que se utiliza para seleccionar una entre multiples alternativas. La sentencia switch es epecialmente util cuando la seleccin se basa en el valor de una variable simple o de una expresin simple denominada expresin de control o selector. El valor de esta expresin puede ser de tipo int o char. Pero no de tipo float ni double. Sintaxis: switch ( variable ) //La variable de tipo entero o carcter. { case valor1: accion1; break; case valor2: accion2;break; . . . case valor n: accion n;break; default: accionD; };

Ejemplo 1: switch ( opcion ) { case 0: puts(Cero:); break; case 1: puts(Uno:); break; case 2: puts(Dos:); break; default: puts (Fuera de rango); } Ejemplo 2: switch ( opcion ) { case 0: case 1: case 2: printf(Menor de 3:); break; case 3: printf(Igual a 3:); break default: printf(Mayor que 3:); }

15

Tec.Victor Manuel Tejeda Lopez

Comparacin de la sentencia if-else-if y el switch. Se necesita saber si un determinado carcter car es una vocal. Solucin con if-else-if:

#include<conio.h> #include<iostream.h> int main() { clrscr(); char car; cout<<"Teclee un caracter: "; cin>>car; if ((car == 'a') || (car == 'A')) printf("%c es una vocal\n",car); else if ((car == 'e') || (car == 'E')) printf("%c es una vocal\n",car); else if ((car == 'i') || (car == 'I')) printf("%c es una vocal\n",car); else if ((car == 'o') || (car == 'O')) printf("%c es una vocal\n",car); else if ((car == 'u') || (car == 'U')) printf("%c es una vocal\n",car); else printf("%c no es una vocal\n",car); getch(); return 0; }

Solucion con switch:

#include<conio.h> #include<iostream.h> int main() { clrscr();

16

Tec.Victor Manuel Tejeda Lopez

char car; cout<<"Teclee un caracter: "; cin>>car; switch (car) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': printf("%c es una vocal",car); break; default: printf("%c no es una vocal",car); } getch(); return 0; }

Ntese que en la solucin de switch el manejo de la solucin es ms clara y que no se usan operadores de relacionales.

Ejercicios: * Dada una nota de un examen mediante un cdigo escribir el literal que le corresponde a la nota. A-Excelente B- Muy bien C- Bien cualquier otro (Suspendido). *Programa que pide un numero de mes y escribe la cantidad de das que tiene. *Dada un fecha con numeros, muestra la fecha poniendo el mes con letras. Ejemplo: 01:01:2005 debe mostrar. 01 de enero de 2005.

17

Tec.Victor Manuel Tejeda Lopez

Bucles. Ciclos C soporta tres tipos de estructuras de control: los bucles while, for y do-while. Estas estructuras de control o sentencias repetitivas controlan el nmero de veces que una sentencia o listas de sentencias se ejecutan.

Estatuto While: Sintaxis: while ( condicin ) estatuto; Si se requiere realizar ms de un estatuto se deben utilizar llaves. while ( condicin ) { Bloque de estatutos; } Representacin en diagrama del bucle while:

Condicin _bucle

Falsa.

Verdadera.
Sentencia

Incremento

18

Tec.Victor Manuel Tejeda Lopez

*Programa que obtiene el promedio de calificaciones de 10 estudiantes:

#include<conio.h> #include<stdio.h> int main() { clrscr(); int est,i=1; float suma=0.0; printf("Dame las calificaciones de los 10 estudiantes:\n"); while(i<=10) { printf("\nDame la calificacion del estudiante %d: ",i); scanf("%d",&est); suma=est+suma; i++; } printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0); getch(); return 0; }

*Programa que muestra la serie de nmeros que uno le asigne desde el teclado. #include<conio.h> #include<stdio.h> int main() { int contador,i=0; printf("Dame un numero: "); scanf("%d",&contador); while ( i<=contador) { printf("\n%d",i); i++; } getch(); return 0; }

19

Tec.Victor Manuel Tejeda Lopez

Estatuto dowhile

La sentencia do-while se utiliza para especificar un bucle condicional que se ejecuta al menos una vez. Esta situacin se suele dar en algunas circunstancias en la que se ha de tener la seguridad de que una determinada accin se ejecutara una o varias veces, pero al menos una vez. Sintaxis: do estatuto; while ( condicin ); Si se requiere realizar mas de un estatuto se deben a utilizar llaves. do { Bloque de estatutos; }while ( condicin ); Representacin en diagrama del bucle do-while.

Sentencia

Incremento

Verdadera

Expresin

Falso.

20

Tec.Victor Manuel Tejeda Lopez

**Los mismos programas del estatuto anterior pero ahora con el estatuto do-while. #include<conio.h> #include<stdio.h> int main() { clrscr(); int est,i=1; float suma=0.0; printf("Dame las calificaciones de los 10 estudiantes:\n"); do { printf("\nDame la calificacion del estudiante %d: ",i); scanf("%d",&est); suma=est+suma; i++; }while(i<=10); printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0); getch(); return 0; }

#include<conio.h> #include<stdio.h> int main() { int contador,i=0; printf("Dame un numero: "); scanf("%d",&contador); do { printf("\n%d",i); i++; }while ( i<=contador); getch(); return 0; }

21

Tec.Victor Manuel Tejeda Lopez

Estatuto for: El bucle for de C es superior a los bucles for de otros lenguajes de programacin tales como BASIC, Pascal y Fortran ya que ofrece mas control sobre la inicializacin y el incremento de las variables de control del bucle. Sintaxis: for (inicializacin; condicin; incremento) Estatuto; Si se requiere realizar mas de un estatuto se debe utilizar llaves: for (inicializacin; condicin; incremento) { Bloque de estatutos; } Representacin en diagrama del estatuto for: Falso.
Inicializacin Condicin. Incremento.

Verdadero.
Estatutos.

22

Tec.Victor Manuel Tejeda Lopez

*** Los mismos programas de los estatutos anteriores pero ahora con el estatuto for. #include<conio.h> #include<stdio.h> int main() { clrscr(); int est,i; float suma=0.0; printf("Dame las calificaciones de los 10 estudiantes:\n"); for (i=1; i<=10; i++) { printf("\nDame la calificacion del estudiante %d: ",i); scanf("%d",&est); suma=est+suma; } printf("\n\nEl promedio de los estudiantes es de: %.2f",suma/10.0); getch(); return 0; }

#include<conio.h> #include<stdio.h> int main() { int contador,i; printf("Dame un numero: "); scanf("%d",&contador); for (i=0; i<=contador; i++) printf("\n%d",i); getch(); return 0; }

23

Tec.Victor Manuel Tejeda Lopez

Ciclos anidados: Ejercicios con los ciclos, while, do-while y for:

Realizar una tabla de multiplicar de la forma:

1 2 3 4 5 6 7 8 9

2 4 6 8 10 12 14 16 18

3 6 9 12 15 18 21 24 27

4 8 12 16 20 24 28 32 36

5 10 15 20 25 30 35 40 45

6 12 18 24 30 36 42 48 54

7 14 21 28 35 42 49 56 63

8 16 24 32 40 48 54 64 72

9 18 27 36 45 54 63 72 81

Estatuto for: #include<conio.h> #include<stdio.h> int main() { clrscr(); int i,j; printf("Tabla de multiplicar\n\n"); for(i=1; i<10; i++) { for(j=1; j<10; j++) printf("%3d",i*j); printf("\n"); } getch(); return 0; }

24

Tec.Victor Manuel Tejeda Lopez

Estatuto while: #include<conio.h> #include<stdio.h> int main() { clrscr(); int i=1,j=1; printf("Tabla de multiplicar\n\n"); while(i<10) { while(j<10) { printf("%3d",i*j); j++; } printf("\n"); j=1; i++; } getch(); return 0; } Estatuto do while. #include<conio.h> #include<stdio.h> int main() { clrscr(); int i=1,j=1; printf("Tabla de multiplicar\n\n"); do { do { printf("%3d",i*j); j++; }while(j<10); printf("\n"); j=1; i++;

25

Tec.Victor Manuel Tejeda Lopez

}while(i<10); getch(); return 0; } Ejercicios de prctica: Realiza los programas combinando los tres ciclos en el mismo programa.
Ejercicios: a) Leer un entero positivo N y averiguar si es perfecto, Un nmero es perfecto cuando es igual a la suma se sus divisores excepto el mismo. Ejemplo: Si N = 6 sus divisores son, 1,2 y 3 si los sumamos nos da 6 por lo tanto es perfecto. b) realiza un programa que visualice una tabla de multiplicar que se le asigna desde el teclado y preguntar si se quiere realiza otra tabla de multiplicar y salirse hasta que a respuesta sea falsa. 1*1=1 1*2=2 1*3=3 . . . Quiere realizar otra tabla de multiplicar s/n: c) Realiza un programa que pida 10 nmeros, calcula y muestra la suma de todos los que fueron par. d) Mostrar los 30 primeros nmeros de la serie de fibonacci, la serie es 1, 1, 2, 3, 5, 8,13 e) Realiza un programa que muestre el abecedario en maysculas y minsculas.

26

Tec.Victor Manuel Tejeda Lopez

Funciones: Una funcin es un mini programa dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o mas veces para ejecutar dichas sentencias. Las funciones ahorran espacio, reduciendo repeticiones y haciendo ms fcil la programacin, proporcionando un medio de dividir un proyecto grande en mdulos pequeos ms manejables. La estructura de una funcin en C es: float suma (float num1,float num2) { float resp; resp = num1 + num2; return resp; } . Tipo de retorno nombreFuncion (listadeParametros) { cuerpo de la funcin return expresin } Tipo de retorno... Tipo de valor devuelto por la funcin o la palabra . reservada void si la funcin no devuelve ningn . . . valor. nombreFuncionIdentificador o nombre de la funcion. listaDeParametrosLista de declaraciones de los parmetros de la . . . . . funcion separados por comas. Expresinvalor que devuelve la funcion.

Ejemplo de un programa que manda a llamar una funcin y devuelve un valor.

#include<stdio.h> #include<conio.h> int resultado(int r,int a,int b); void main(void) { clrscr(); int a,b,r; printf("Dame los numero a sumar:\n");

27

Tec.Victor Manuel Tejeda Lopez

scanf("%d%d",&a,&b); printf("El resultado de la suma es: %d",resultado(r,a,b)); getch(); return; } int resultado(int r,int a,int b) { r=a+b; return r; }

En este caso se manda a llamar una funcin resultado, el cual se le manda dos valores a y b y se devuelve el valor r.

Ejemplo de una funcin sencilla que sirve para dos cosas diferentes que nosotros queramos. Evitando as que se codifique doblemente. Sacar el rea de un rectngulo y el rea de un triangulo. #include<stdio.h> #include<conio.h> float area1(float area,float altura,float base); void main(void) { clrscr(); float base,altura,area; printf("Area de un ractangulo y de un triangulo\n\n"); printf("Base: ");scanf("%f",&base); printf("Altura: ");scanf("%f",&altura); printf("EL area del rectangulo es: %.2f",area1(area,altura,base)); printf("\n\nEl area del triangulo es:%.2f",area1(area,altura,base)/2.0); getch(); return; } float area1(float area,float altura,float base) { area=base*altura; return (area); } En este ejemplo se ve claramente la funcin principal de las funciones, aunque aparentemente es sencillo muestra claramente lo que una funcin.

28

Tec.Victor Manuel Tejeda Lpez

La funcin mx. Devuelve el nmero mayor de dos enteros.

#include<conio.h> #include<stdio.h> int max(int x,int y) { if(x < y) return y; else return x; } void main(void) { int m, n; do { clrscr(); printf("Introduce dos numeros: "); scanf("%d %d",&m,&n); printf("Maximo de %d,%d es %d\n",m,n,max(m,n));//llamada a max getch(); }while(m!=0); return; } Ejercicios: Realiza un programa que mande a una funcin el ao de nacimiento y el ao actual y que regrese el la edad actual. Escribir una funcin que tenga un argumento de tipo entero y que devuelva la letra P si el nmero es positivo, y la letra N si es cero o negativo. Escribir una funcin que convierta una temperatura dada en grados Celsius a grados Fahrenheit, La formula de conversin es: F= 9/5*C+32

29

Tec.Victor Manuel Tejeda Lpez

ARRAYS:
Los arrays (o matrices) son un tipo de variable que permiten tener ms de un elemento, (o valor en su interior), a los que se pueden acceder mediante un ndice. Un array tambin es el tipo en el que se basan todas las matrices o arrays. Un array puede contener, por ejemplo, la edad de los alumnos de una clase, las temperaturas de cada da de un mes en una ciudad determinada, las calificaciones de los alumnos de un saln. Etc. En C un array empieza con en valor de 0 y hasta donde nosotros le indiquemos: . a[0],a[1],a[2],a[3] a[n-1]. Por ejemplo un array con seis elementos de tipo entero. A

0 1 2 3 4 5

5 4 10 8 25 50

Y as este array de tipo entero contiene 6 elementos, A[0] contiene 5, A[1] contiene 4, A[2] contiene 10, A[3] contiene 8, A[4] contiene 25, A[5] contiene 50. La declaracin de un array en C es la siguiente. Tipo nombrearray [numerodeelementos]; int A[10]; char A[10]; float A[10]; int alumnos[10]; char alumnos[10]; float alumnos[10];

Ejemplo: Rellenar un array de con nmeros enteros enteros y despus mostrarlos en la pantalla.

#include<conio.h> #include<stdio.h> void main(void) { int num[10];

30

Tec.Victor Manuel Tejeda Lpez

clrscr(); printf("*Ingrese 10 numeros enteros*\n"); //En este ciclo se almacena los datos de el array. for(int i=0; i<10 ;i++) { printf("%d.- ",i+1); scanf("%d",&num[i]); } printf("\nNumero almacenados en el array."); //En este ciclo se muestra en la pantalla. for(int j=0; j<10 ;j++) printf("\n%d",num[j]); getch(); return; } Y as el array tendr en cada espacio reservado el valor que se le asigno. Y se podr tener acceso al el cuando uno lo desee, siempre y cuando se mande a llamar en la posicin en la que se encuentra dentro del array. Array de caracteres y cadenas de texto. La diferencia entre una array de caracteresy una cadena de caracteres.Las cadenas contienen un carcter nulo al final del array de caracteres. A b c d e [4] [5] \0

Cad[0] [1] [2] [3] [4] [5]

A b c d e f

Cad[0] [1] [2] [3]

Array de caracteres

cadena.

El compilador inserta automticamente un carcter nulo al final de la cadena.

31

Tec.Victor Manuel Tejeda Lpez

Ejemplo de cmo capturar e imprimir una cadena de caracteres: #include<stdio.h> #include<conio.h> int main() { clrscr(); char nombre[15]; printf("Inserta un nombre: "); gets(nombre); printf("\n\n%s",nombre); getch(); return 0; }

Ejercicios: *Declara un array de tipo entero de 10 elementos y muestra la suma de los elementos que sean nmeros pares. *Realiza un programa que muestre el nmero menor y el nmero mayor de una array de tipo entero.

32

Tec.Victor Manuel Tejeda Lpez

Algoritmo de la burbuja. El ordenamiento de datos es de gran utilidad, y este mtodo de la burbuja es uno de los mtodos de ms facilidad para ordenar. El valor ms pequeo flota hasta la parte superior del array y as sucesivamente hasta que todos los elementos se queden acomodados.

El diagrama de flujo del mtodo de la burbuja seria.


Inicio

max 5 num[max],i,j,t

i i < max-1 i++

Fin

F j r j++ j < max V r

num[i] > num[j]

t=num[i] num[i]=num[j] num[j]=t

33

Tec.Victor Manuel Tejeda Lpez

La codificacin ser: #include<stdio.h> #include<conio.h> #include<iostream.h> #define MAX 5 void main(void) { clrscr(); int num[MAX],i,j,t; printf("Dame 5 numero cuales quiera: \n"); for(i=0;i<MAX;i++) cin>>num[i]; /*Metodo de la burbuja*/ for(i=0;i<MAX-1;i++) { for(j=i+1;j<MAX;j++) if(num[i]>num[j]) { t=num[i]; num[i]=num[j]; num[j]=t; } } /*Se imprimen los numeros ya ordenados*/ for(int a=0;a<MAX;a++) printf("\n%d",num[a]); getch(); return; }

Ejercicios: Realiza lo mismo pero que lo ordene de mayor a menor.

34

Tec.Victor Manuel Tejeda Lpez

Array multidimencionales.

Este tipo de array se distingue por ser de dos dimensiones y se manejan de la misma forma que una tabla o una matriz. Que equivale a una tabla con mltiples filas y columnas.

Su estructura es la siguiente:

0 0

1 2

En C un array empieza en la posicin (0,0) y sigue as segn uno quiera. La estructura para ver las posiciones del array ser:

[0,0] [1,0] [2,0]

[0,1] [1,1] [2,1]

[0,2] [1,2] [2,2]

[0,3] [1,3] [2,3]

35

Tec.Victor Manuel Tejeda Lpez

Una estructura de do dimensiones en C se declara de la siguiente manera. int A[2][2]; Esta es un array de 2 filas, 2 columnas. char A[3][2]; Esta es un array de 3 filas, 2 columnas.

Los array son muy fcil de manejar siempre y cuando se visualice primero las posiciones del mismo, y ver como se va controlando las posiciones filas, columnas.

Ejemplo de cmo se llenara de datos un array de dos dimensiones.

#include<stdio.h> #include<conio.h> #include<iostream.h> void main(void) { int A[3][3],i,j; clrscr(); printf("Dame los datos:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) { printf("[%d,%d]= ",i,j); cin>>A[i][j]; } printf("\n\n\n"); //imprimir los datos. for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("[%d]",A[i][j]); printf("\n\n"); } getch(); return; } *Como se puede observar no es difcil el manejo de array de dos dimensiones. Ahora realiza el diagrama de flujo para que quede mas claro.

36

Tec.Victor Manuel Tejeda Lpez

Registros: Un registro es un conjunto esttico y heterogneo de datos relacionados pertenecientes a un mismo objeto. Manejar registros estructuras es de gran utilidad ya que se puede manejar dentro de un arreglo diferentes tipos de datos, ya sea enteros, carcter, flotantes Una estructura se representa de la siguiente manera: Clave Registros: 123 nombre Victor A depto sueldo 1230.76

Bsicamente esa es una estructura donde dentro del un mismo registro se manejan diferentes tipos de datos como se muestra en la figura. En C la declaracin de un registro es de la siguiente manera. Struct tipo_registro { Int clave; Char nombre; Char depto; Flota sueldo; } Si se quiere que la variable sea empleado: struct tipo_registro empleado;

Ejemplo de un llenado de registros. #include<conio.h> #include<iostream.h> #include<stdio.h> #define MAX 10 struct tipo_registro { int clave; char nombre[30]; char depto; float sueldo;

37

Tec.Victor Manuel Tejeda Lpez

}; void main(void) { clrscr(); struct tipo_registro Empleado[10]; int cantidad; do { cout<<"Dame la cantidad de empleados a capturar: "; cin>>cantidad; }while(cantidad>=MAX); /*Se capturan los arreglos*/ clrscr(); for(int i=0; i<cantidad; i++) { cout<<"\n\nClave: "; cin>>Empleado[i].clave; cout<<"Nombre: "; gets(Empleado[i].nombre); cout<<"Departamento: "; cin>>Empleado[i].depto; cout<<"Sueldo: "; cin>>Empleado[i].sueldo; } /*Se imprimen los arreglos*/ clrscr(); for(int i=0;i<cantidad;i++) printf("\n\nClave: %d ; Nombre: %s ; Depto: %c ; Sueldo: %5.2f",Empleado[i].clave,Empleado[i].nombre,Empleado[i].depto,Empleado[i].s ueldo); getch(); return; }

Copia la codificacin y realiza el diagrama de flujo para que se entienda mejor el concepto de registros. Como buen Trabajo de prctica final Realiza un programa de una Factura, donde contengan los puntos de que una factura debe tener.

38

Tec.Victor Manuel Tejeda Lpez

Bibliografa: Programacin en C (Metodologa, estructura de datos y objetos) Luis Joyanes Aguilar Ignacio Zahonero Martnez. Mc Graw Hill. Curso de Programacin en Lenguaje C++ (ITESM). Ejercicios (Cortesa del Ing. Sergio Garza Carranza) PROGRAMACION EN *C* 2/E
Autor: GOTTFRIED

Se recomienda que se empiece a programar orientado a objetos y manejar la estructura de datos. Prximamente un Manuel de estructura de datos orientado a objetos.

39

Das könnte Ihnen auch gefallen