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.