Pauta de correxión Certamen 2 Lenguaje de Programación 1-2006
Jorge López R.


1.
Solución a) (0.2)
definición:
Es una colección de información relacionada
Definida por su creador
.


Solución b) (0.5) :
El archivo tipo texto almacena los datos, incluyendo los numéricos, en código ascii imprimible.
El archivo de tipo binario almacena los datos de la forma que se almacenan en la memoria, incluyendo los formatos numéricos, usando la representación que usa la CPU (arquitectura).
Solución c)( 0.5)
struct a{ 
int z;
struct b s;
struct a *p;
};
struct b{
int x;
char c[10];
struct a r;
struct b *siguiente;
};
solución d) ( 0.5 ) :
struct n{
char m[256];
struct n *der;
struct n *izq;
};
run
__ __ __     __\__ __   __ __ __
|--->|  |  |  |--->|  | | |--->|  |  |  |- --|
| |--|__|__|__|<---|__|__|__|<---|__|__|__|<-| |
| |__________________________________________| |
|______________________________________________|

aux = run;
run = run->der;
aux->izq->der = run;
run->izq = aux->izq;
free(aux);
2.
Solución a) (1.0):

xx(i):

0
1
10
11
100

yy(i):

0
1
01
11
001
solución b)(0.5): la función xx imprime el código binario, la función yy imprime otro código no identificado.
Solución b) (0.5):
int a[5][5]={200,200,300,40,6,
300,200,800,60,0,
100,200,200,40,5,
700,200,800,10,0,
200,200,300,40,6};

main(int argc, char * argv[]){
printf("%d\n",yy(a,atoi(argv[1])));
}

solución:
int yy(int mat[5][5], int c){
int i,s;
s = mat[0][c];
for (i = 0; i< 5;i++)
if (s > mat[i][c])s = mat[i][c];
return s;
}
3. (1 punto) 
- Abrir, cerrar y pasar argumentos 0.5 pto. - Encontrar la estructura 1 pto. - Modificar la estructura 0.5 pto.
solucion:
struct cliente {
int saldo;
char nombre[100];
};
main(int argc, char * argv[]){
FILE *f;
struct cliente aux;
f = fopen("xxxx", "r+b");
while(fread(&aux,1, sizeof(struct cliente),f)>0){
if(strcmp(aux.nombre,argv[2])==0){
fseek(f,-sizeof(struct cliente),SEEK_CUR);
aux.saldo = aux.saldo+atoi(argv[1]);
fwrite(&aux,1, sizeof(struct cliente),f);
break;
}
}
fclose(f);
}