130 likes | 370 Views
Pelando la cebolla. . Aquí discutiremos lo necesario del lenguaje necesario para implementar una metodología que llamo “ pelando la cebolla ” . Permite abordar un problema computacional de media complejidad sin sofocarse . También se le puede llamar “ enfoque top-down”
E N D
Pelando la cebolla . Aquídiscutiremos lo necesario del lenguaje necesariopara implementarunametodologíaque llamo“pelando la cebolla” . Permiteabordar un problemacomputacionalde media complejidad sin sofocarse . También se le puedellamar “enfoque top-down” . Sóloveremosaplicaciones de consola (console applications)
programa c Un programa C sencillotiene la siguienteestructura: librerías int main() { // propósito declaciones variables proceso return 0; }
librerías . Las libreríasorganizanfunciones y estructuras de datosportema . Incluirlibreríaspermite a nuestroprogramareutilizarsusrecursos . Para incluirunalibreríausamos el formato: #include <nombre.h> . Las libreríasquemásusaremos son: stdio.h (standar input output); stdlib.h (standar library); math.h (math); string.h (string) Ejemplo: #include <stdio.h>
función main . La función main esdesdedonde se ejecutantodaslasacciones del programa, directa, o indirectamente . Es el punto de incio de la ejecución del programa, no importasuubicaciónrelativa en el código . Es lo mínimoquepuedeincluir un programa, por simple que sea. . Su formatoes: int main() { // propósito declaciones variables proceso return 0; }
return 0 . El tipo de la función main esint, lo quesignificaque al concluirsuejecucióndeberetornar un númeroentero, quesiemprees cero . Si el programa no llega a retornar cero, significaquealgomaloocurrió . Portanto, return 0; serásiemprenuestrala últimasentencia en la función main, inmediatamente antes de la llave final quedelimita el cuerpo de la función
// propósito . Esobligatorioindicarclaramentecuáles el propósito del programa en la función main para no obligar al programador a leer todocódigo para adivinarlo . El propósito se inicia con la secuencia //, queindicaque se trata de un comentario, que no vadirigido a la máuina, sino al lector del código
declara . Cada variable tienedeclararse antes de referenciarlamásadelante en el proceso . Para declararuna variable se usauno de los formatos: tiponombre; // uso tiponombre = expresión; // uso En el segundoformatoes para declarar y darle un valor inicial a la variable de un cantazo . Se puedendeclararvarias variables juntas, si son del mismotipo, separando con comas: int b = 5, a = 6; // base, altura
printf . Para desplegarmensajes en pantalla . Su formato simple es, printf(“mensaje”); . Un formato para escribir un valor variable es, printf(“%ff”, nombre); . Se puedenescribirvariosvalores, especificando el formato de cadauno y la opción de separarlos con espacio y otrocaracter, printf(“%ff %ff..”, n1, n2,..); Ejemplos: printf(“hola, mundo”); printf(“%ld”, n); printf(“%ld %lf”, n, x);
v = expresión . Para asignar un valor a una variable (aparte de al declararla), uno de lassentenciases, v = expresión; . Donde la expresiónpuedeser un valor constante, variable, expresiónaritmética o relacional (incluyendollamadas a funciones) .Ejemplos, a = 7; x = 7.7; b = 3*b + sumDig(a);
scanf . Para leer valores (asignadospor el usuario) a una variable, tenemos la funciónscanf, scanf(“formatos”, &n1, &n2, ..); . Es similar a printf, pero se debeprecedercadanombre de variable con &, y no convieneponerseparadores entre los formatos, a menosque sea necesario . Los formatosquemásusaremos (para printf y scanf), .Ejemplos, %ld //enterolargo %lf // real largo %s // cadena de caracteres . Cuando se necesita leer unacadena de caracteresincluyendoespacios en blanco, usaremos la funciós gets, gets(s);
if . Para ejecutarcodicionalmente un fragmento de códigousamos la sentencia if, con los formatos, if (condición) acción; if (condición) { acciones } if (condición) acción else acción;
while . Para repetircodicionalmente la ejecución de un fragmento de códigousamos la sentencia while, while (condición) acciones Ejemplo, long s = 0, n = 12354; // suma, n while (n > 0) { s += n%10; n /= 10; } printf(“%ld”, s);