]>
Commit | Line | Data |
---|---|---|
b157bf19 BB |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
2 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
3 | <head> | |
4 | <title>Curso Intensivo C - ITESM Campus Ciudad Juarez - Sep-Oct 2010</title> | |
5 | ||
6 | <link rel="stylesheet" type="text/css" href="./style.css" title="default" /> | |
7 | ||
8 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | |
9 | </head> | |
10 | <body> | |
11 | <div id="wrapper"> | |
12 | <h1>Curso Intensivo de C</h1> | |
13 | <h2>Instructor</h2> | |
14 | <ul> | |
15 | <li>Rubén Beltrán del Río — ben@nsovocal.com</li> | |
16 | </ul> | |
17 | <h2>Ligas de Interes</h2> | |
18 | <ul> | |
19 | <li><a href="./syllabus-curso-c.pdf">Syllabus</a> — <em>Temario y Descripción del Curso.</em></li> | |
20 | <li><a href="http://www.cygwin.com/">Cygwin</a> — <em>Un Ambiente tipo Linux para Windows.</em></li> | |
21 | <li><a href="http://www.ubuntu.com/">Ubuntu</a> — <em>Una distribución recomendada de Linux.</em></li> | |
22 | <li><a href="http://www.acm.uiuc.edu/webmonkeys/book/c_guide/">Referencia C</a> — <em>Para buscar funciones que usaremos.</em></li> | |
23 | <li><a href="http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9">Guía de Estilo FreeBSD</a> — <em>Para escribir buen C.</em></li> | |
24 | </ul> | |
25 | <h2><a id="labs">Laboratorios</a></h2> | |
26 | <ul class="labmenu" > | |
27 | <li><a href="#lab01">LAB01</a></li> | |
28 | <li><a href="#lab02">LAB02</a></li> | |
29 | <li><a href="#lab03">LAB03</a></li> | |
30 | <li><a href="#lab04">LAB04</a></li> | |
31 | <li><a href="#lab05">LAB05</a></li> | |
32 | <li><a href="#lab06">LAB06</a></li> | |
33 | <li><a href="#lab06">LAB07</a></li> | |
34 | </ul> | |
35 | <hr/> | |
36 | ||
37 | <!-- LAB 01 --> | |
38 | ||
39 | <h3><a id="lab01">LAB01</a></h3> | |
40 | <p>Programa que imprime un listado de Celsius a Fahrenheit desde <code>MIN_VAL</code> a <code>MAX_VAL</code> aumentando los grados en <code>STEP</code>.</p> | |
41 | <p><em>(ver <code>printf()</code> y las opciones de formato <code>%d</code> y <code>%f</code>)</em></p> | |
42 | <h4>Ejemplo de Salida.</h4> | |
43 | <pre>$ ./lab01 | |
44 | 0 32.0 | |
45 | 5 41.0 | |
46 | 10 50.0 | |
47 | 15 59.0 | |
48 | 20 68.0 | |
49 | 25 77.0 | |
50 | 30 86.0 | |
51 | 35 95.0 | |
52 | 40 104.0 | |
53 | 45 113.0 | |
54 | 50 122.0 | |
55 | 55 131.0 | |
56 | 60 140.0 | |
57 | 65 149.0 | |
58 | 70 158.0 | |
59 | 75 167.0 | |
60 | 80 176.0 | |
61 | 85 185.0 | |
62 | 90 194.0 | |
63 | 95 203.0 | |
64 | 100 212.0</pre> | |
65 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
66 | <hr/> | |
67 | ||
68 | <!-- LAB 02 --> | |
69 | ||
70 | <h3> <a id="lab02">LAB02</a></h3> | |
71 | <p>Programa que cuente el número de líneas y carácteres de una entrada de texto sencilla hasta que llegue a EOF.</p> | |
72 | <p><em>(usar <code>getchar()</code> para obtener carácter de uno en uno. <code>Ctrl+D</code> es igual a EOF en Unix)</em></p> | |
73 | <h4>Ejemplo de Salida.</h4> | |
74 | <pre>$ ./lab02 | |
75 | this is a sample thing | |
76 | that you must count | |
77 | until you end the file with EOF | |
78 | (That's Ctrl+D)^D | |
79 | 91 caracteres en 4 lineas.</pre> | |
80 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
81 | <hr/> | |
82 | ||
83 | <!-- LAB 03 --> | |
84 | ||
85 | <h3> <a id="lab03">LAB03</a></h3> | |
86 | <p>Escribir un programa que lea varias líneas de tamaño máximo <code>MAXLINE</code> hasta que encuentre una línea vacía e imprima la más larga. Se deben usar variables externas para las funciones: una función <code>getline(void)</code> que almacene la línea actual y regrese su tamaño y una función <code>copy(void)</code> que copie la línea actual a un buffer especial para la más larga.</p> | |
87 | <p><em>(No olvides que debes terminar el buffer con el carácter nulo <code> '\0'</code>.)</em></p> | |
88 | <h4>Ejemplo de Salida.</h4> | |
89 | <pre>$ ./lab03 | |
90 | Esta es una linea Larga. | |
91 | Esta linea es mas larga que la anterior. | |
92 | La siguiente linea esta vacia: | |
93 | ||
94 | ||
95 | Esta linea es mas larga que la anterior.</pre> | |
96 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
97 | <hr/> | |
98 | ||
99 | <!-- LAB 04 --> | |
100 | ||
101 | <h3> <a id="lab04">LAB04</a></h3> | |
102 | <p>Escribir un programa que reciba una línea de longitud <code>MAXLINE</code> y la imprima al revés. Se puede lograr fácilmente modificando ligeramente LAB03. De nuevo, se deben usar variables externas y ninguna de las funciones debe recibir parametros.</p> | |
103 | <p><em>(Ver la función <code>putchar()</code>.)</em></p> | |
104 | <h4>Ejemplo de Salida.</h4> | |
105 | <pre>$ ./lab04 | |
106 | Esta linea debe estar al reves | |
107 | ||
108 | sever la ratse ebed aenil atsE</pre> | |
109 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
110 | <hr/> | |
111 | ||
112 | <!-- LAB 05 --> | |
113 | ||
114 | <h3> <a id="lab05">LAB05</a></h3> | |
115 | <p>Escribir una función <code>invert(x,p,n)</code> que reciba un numero entero sin signo, una posición y un rango y devuelva x con <code>n</code> bits invertidos a partir de <code>p</code>.</p> | |
116 | <p><em>(XOR (<code>^</code>) tiene una propiedad de invertir bits.)</em></p> | |
117 | <h4>Ejemplo de Salida.</h4> | |
118 | <pre>$ ./lab05 | |
119 | Introduzca un numero: 1 | |
120 | Introduzca una posicion: 2 | |
121 | Introduzca un rango: 4 | |
122 | Invertir 4 bits en 1 empezando de 2 es igual a: 61</pre> | |
123 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
124 | <hr/> | |
125 | ||
126 | <!-- LAB 06 --> | |
127 | ||
128 | <h3> <a id="lab06">LAB06</a></h3> | |
129 | <p>Escribir una función <code>strindex()</code> que reciba dos strings. Debe devolver la posición en la que ocurre el <code>string2</code> dentro del <code>string1</code> o <code>-1</code> si no se encuentra.</p> | |
130 | <p><em>(La función <code>gets</code> puede servir para obtener strings con espacios.)</em></p> | |
131 | <h4>Ejemplo de Salida.</h4> | |
132 | <pre>$ ./lab06 | |
133 | Escribe un String: Esta es una prueba | |
134 | Escribe algo que Buscar: prueba | |
135 | Encontre el string en la posición: 12 | |
136 | ||
137 | $ ./lab06 | |
138 | Escribe un String: Esta es otra prueba | |
139 | Escribe algo que Buscar: string | |
140 | No se encontro "string" en "Esta es otra prueba".</pre> | |
141 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
142 | <hr/> | |
143 | ||
144 | <!-- LAB 07 --> | |
145 | ||
146 | <h3> <a id="lab07">LAB07</a></h3> | |
147 | <p>Escribir una versión recursiva de LAB04.</p> | |
148 | <p><em>(Considerar el orden de ejecución de los miembros de la función recursiva.)</em></p> | |
149 | <h4>Ejemplo de Salida.</h4> | |
150 | <pre>$ ./lab07 | |
151 | Esta es una prueba. | |
152 | .abeurp anu se atsE</pre> | |
153 | <p><a href="#" class="solucion">Mejor Solución de la clase</a> <br/> <a href="#labs" class="volver">Volver Arriba.</a></p> | |
154 | <hr/> | |
155 | ||
156 | </div> | |
157 | </body> | |
158 | </html> |