Download 30_05_14_Plan_de_clase_17
Document related concepts
no text concepts found
Transcript
Plan de clase 30-05-14 Algoritmos: Cálculo de longitud de cadena de literales // funcion devuelve longitud de cadena de literales int longitud_cad(char *cad, //<--apuntador a la cabeza de la cadena int dim_max //<--longitud del arreglo-contenedor de la cadena ){ int l=0; while(l<dim_max && *cad!='\0') { l++; cad++; } return l; } // un ejemplo de uso de la función longitud_cad: int main() { char nombre[N], a, b; printf("dame nombre\n"); gets(nombre); printf("longitud original %d\n", longitud_cad(nombre, N)); nombre[6]='\0'; printf("longitud modificada %d\n", longitud_cad(nombre, N)); printf("nombre es %s\n", nombre); return 0; } Generación aleatoria de cadenas de literales. Ejemplo: #include "stdafx.h" #define N 40 char gen_letra(){ switch(rand()%5) //<-- ver operador 'switch' mas abajo en la sección //"Lenguaje" de este texto { case 0 : {return 'a';} case 1 : {return 'b';} case 2 : {return 'c';} case 3 : {return 'd';} default : {return 'e';} } } void gen_nombre(char *nom, int dim_max) { int lon=rand()%dim_max, i; for(i=0; i<lon; i++, nom++) *nom=gen_letra(); *nom='\0'; } int main() { char nombre[N], a, b; do{//seguir generando cadena de literales hasta //primera apariencia de letra 'a' al inicio gen_nombre(nombre, N-1); puts(nombre); }while(nombre[0]!='a'); return 0; } Lenguaje Comparación de variables tipo carácter ( a < b, a>b, a==b, a!=b, etc.). Ejemplo: char a, b; printf("dame a\n"); a=getche(); printf("dame b\n"); b=getche(); if(a<b) printf("a<b\n"); else if(a==b) printf("a==b\n"); else printf("a>b\n"); ///////////////////////////////////////////////////////////////////////////////// Operadores switch, break, continue: switch, por ejemplo: int l; ....// generación de l switch(l) { case -1 :{puts("el caso -1"); break; } case 0 :{puts("el caso 0"); break;} case 10 :{puts("el caso 10"); break;} default :{puts("todos los demas casos"); } } Un ejemplo de uso de switch para generar aleatoriamente caracteres: /*funcion para generar aleatoriamente una letra de alfabeto reducido de 5 letras*/ char gen_letra(){ switch(rand()%5) { case 0 : {return 'a';} case 1 : {return 'b';} case 2 : {return 'c';} case 3 : {return 'd';} default : {return 'e';} } } break – se usa para interrumpir un switch o cualquier ciclo; continue – se usa en ciclos de todos tipos para omitir el resto de operadores en el cuerpo del ciclo y empezar la siguiente iteración. Tarea para mier. 4-06-2014 Desarrollar función de comparación de dos cadenas de literales A y B usando ordenamiento alfabético. La función debe regresar -1, 0, o 1, relativamente, para los casos A<B, A==B, y A>B.