SlideShare una empresa de Scribd logo
1 de 20
Estructura:
Un programa escrito en C está compuesto por una o más funciones. Como ya es sabido, una
función es un programa que sirve para realizar una tarea determinada, por ejemplo, la función
scanf sirve para leer datos desde el teclado.
Existe una función que está presente en todos los programas escritos en C, su misión es marcar
el inicio y fin de la ejecución de cada uno de ellos; es la función principal, la primera que se
ejecuta; es la función main. Su sintaxis "básica" es:
intmain()
{
<bloque_de_instrucciones>
}
La función main contiene al bloque de instrucciones principal de un programa, dentro de los
caracteres abrir llave ({) y cerrar llave (}).
Los paréntesis "()" escritos después de main sirven para indicar que el identificador main es
una función. Es importante comprender que main no es una palabra reservada de C. Ningún
identificador de función lo es.
Finalmente, no podemos pasar por alto que delante de main se ha escrito la palabra reservada
int; enseguida veremos el porqué.
Tipos de instrucciones
En C, las instrucciones, también llamadas sentencias, se pueden clasificar en:
De expresión.
De control.
Compuestas.
Una instrucción compuesta siempre alberga, entre llaves ({...}), a un
<bloque_de_instrucciones>:
{
<bloque_de_instrucciones>
}
Un bloque de instrucciones puede estar compuesto por una o más instrucciones, que, a su vez,
pueden ser instrucciones de expresión, de control y/o compuestas nuevamente.
El cuerpo de toda función es una instrucción compuesta. Sirva como ejemplo el cuerpo de la
función main, el cual alberga al bloque de instrucciones principal de un programa escrito en C.
Las instrucciones de expresión, también conocidas como instrucciones simples o elementales,
son aquellas que representan a las acciones más pequeñas (elementales) que se pueden
ejecutar en un programa, y siempre van seguidas de un carácter punto y coma (, el cual indica
que la instrucción ha terminado:
<instrucción_de_expresión>;
Una instrucción de expresión es, en sí misma, una expresión. De modo que, la acción que se
ejecuta es la evaluación de dicha expresión:
<expresión>;
En cuanto a las instrucciones de control, existen de distintos tipos, y todas sirven para
modificar el flujo de control de un programa. Veremos que, algunas de ellas deben ir seguidas
del carácter punto y coma (, pero otras no.
Mi primer programa en C
Ejemplo: Se quiere escribir un programa que muestre por pantalla un mensaje de saludo:
"Hola mundo"
Obsérvese que, el saludo se visualiza justo en la esquina superior izquierda de la pantalla. Más
adelante se estudiará cómo se puede mostrar en otro lugar de la pantalla.
En C, el código fuente de dicho programa puede ser:
#include <stdio.h>
int main()
{
printf( "Hola mundo" );
return 0;
}
Programa: Hola_mundo
Todas las funciones de la biblioteca estándar de C son subprogramas que ya están compilados,
es decir, junto a cualquier compilador de C se acompañan los códigos objeto de todas las
funciones de su biblioteca estándar, pero no sus códigos fuente. Por tanto, aunque no sea
posible modificar sus códigos fuente, sí se puede hacer uso de dichas funciones en cualquier
programa. Por ejemplo, se puede llamar a la función printf para que muestre por pantalla el
saludo "Hola mundo".
printf( "Hola mundo" );
Dentro de los paréntesis "()" de la función printf, se debe escribir, entre comillas dobles (", el
mensaje o cadena de caracteres que se desea mostrar por pantalla.
Obsérvese que, después del carácter cerrar paréntesis "" se ha escrito un punto y coma (, esto
implica que la llamada a la función printf es considerada como una instrucción de expresión.
Del código fuente preprocesado de un programa, el compilador generará un código objeto que
se debe unir (enlazar) con los códigos objeto de las funciones de la biblioteca estándar de C
que se llamen desde dicho programa. Por ejemplo, el código objeto de nuestro primer
programa se debe enlazar con el código objeto del subprograma printf.
El enlazador sabe dónde encontrar el código objeto de las funciones de la biblioteca estándar
de C que utilice un programa. Sin embargo, para poder utilizar una función (sea de la biblioteca
estándar de C o no) en un programa, la función debe ser declarada previamente, al igual que
se tienen que declarar las variables y las contantes que usa un programa.
Para que el compilador conozca la declaración de la función printf, hay que utilizar la directiva
del preprocesador #include:
#include<stdio.h>
En este caso, la directiva #include indica, al preprocesador, que debe incluir, antes de la
compilación, en el código fuente del programa, el contenido del archivo <stdio.h> (stdio,
Standard Input/Output). En dicho archivo están escritas las declaraciones de todas las
funciones de entrada y salida estándar de la biblioteca estándar de C, como printf. Si el
compilador no sabe quien es printf, no podrá generar el código objeto del programa.
Las funciones de la biblioteca estándar de C están clasificadas en base a su funcionalidad, y sus
declaraciones se agrupan en archivos con extensión (.h), los cuales son llamados archivos de
cabecera. Además de stdio.h, algunos de los archivos de cabecera más utilizados en C son:
math.h, string.h y stdlib.h. En ellos están escritas, respectivamente, las declaraciones de las
funciones matemáticas, funciones de cadena y funciones de utilidad de la biblioteca estándar
de C.
Después de #include, el nombre del archivo de cabecera se puede escribir entre los caracteres
menor y mayor (<stdio.h>, o entre comillas dobles ("stdio.h". Cuando se escriba entre comillas
dobles, el preprocesador buscará dicho archivo en el directorio actual de trabajo, y de no
encontrarlo ahí, entonces lo buscará en el directorio especificado por el compilador. En el caso
de escribirse entre los caracteres menor y mayor, el proceso de búsqueda será al revés.
Además de la directiva del preprocesador #include, existen otras, pero, ninguna de ellas es una
palabra reservada de C.
El código objeto generado por el compilador de C tendrá "huecos" (espacios) en donde más
tarde el enlazador escribirá el código objeto correspondiente a las llamadas de las funciones ya
compiladas (como printf) y, así, generar el archivo ejecutable.
Toda función retorna un valor. En nuestro primer programa se ha escrito:
return 0;
Esto quiere decir que la función main devuelve el valor 0. Precediendo a main se ha escrito la
palabra reservada int, indicando así, que la función retornará un valor de tipo int (entero).
intmain()
En general, la instrucción return suele ser la última del bloque de instrucciónes de la función
main. Al retornar el valor 0, indica (informa al sistema operativo) que el programa finalizó
correctamente, es decir, sin producirse ningún error en su ejecución. Cuando la función main
devuelva un valor distinto de cero, esto siginificará que se ha producido algún error en la
ejecución del programa, o que ha ocurrido algo fuera de lo normal.
La instrucción return es una de las instrucciones de control que existen en C. Por tanto, es una
palabra reservada. Después del valor de retorno (que es una expresión) se debe escribir un
punto y coma (. La sintaxis de la instrucción return es:
return<expresión>;
Por el momento, se ha visto que la sintaxis "básica" de un programa escrito en C es:
[ <directivas_del_preprocesador> ]
intmain()
{
<bloque_de_instrucciones>
}
Tipos de Datos:
Datos de tipo entero
Un dato de tipo entero (int) es aquel que puede tomar por valor un número perteneciente al
conjunto de los números enteros (Z), el cual está formado por los números naturales, su
opuestos (números negativos) y el cero.
Z = { ..., -3, -2, -1, 0, 1, 2, 3, ... }
Ejemplo 1: La edad de una persona y el año en que nació, son dos datos de tipo entero:
Edad...: 29
Año....: 1976
Z es un conjunto infinito de números enteros, y como el ordenador no puede representarlos
todos, un dato de tipo entero sólo puede tomar por valor un número perteneciente a un
subconjunto de Z. Los valores máximo y mínimo de dicho subconjunto varían según las
características de cada ordenador y del compilador que se utilice.
Datos de tipo real
Un dato de tipo real (float o double) es aquel que puede tomar por valor un número
perteneciente al conjunto de los números reales (R), el cual está formado por los números
racionales e irracionales.
Ejemplo 2: El peso de una persona (en kilogramos) y su altura (en centímetros), son datos que
pueden considerarse de tipo real.
Peso.....: 75,3
Altura...: 172,7
R es un conjunto infinito de números reales, y como el ordenador no puede representarlos
todos, un dato de tipo real sólo puede tomar por valor un número perteneciente a un
subconjunto de R. Los valores de dicho subconjunto varían según las características de cada
ordenador y del compilador que se utilice.
La diferencia principal entre float y double está en el hecho de que un dato de tipo double
puede tomar por valor un número perteneciente a un subconjunto de R mayor que un dato de
tipo float.
Datos de tipo carácter
Un dato de tipo carácter (char) es aquel que puede tomar por valor un carácter perteneciente
al conjunto de los caracteres que puede representar el ordenador.
En C, el valor de un dato de tipo carácter se debe representar entre comillas simples (').
Ejemplo 3: En un examen con preguntas en las que hay que seleccionar la respuesta correcta
entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de las preguntas es
un dato de tipo carácter.
Respueta correcta a la pregunta 3...: 'c'
Datos sin valor
Un dato sin valor (void) es un dato que no puede tomar por valor nigún valor, es decir, es un
dato vacío (nulo). Más adelante estudiaremos su utilidad.
Datos de tipo lógico
En programación, un dato de tipo lógico es aquel que puede tomar por valor sólo uno de los
dos siguientes:
{ verdadero, falso }
Los valores verdadero y falso son contrapuestos, de manera que, un dato de tipo lógico
siempre está asociado a que algo se cumpla o no se cumpla.
Ejemplo 4: El estado de una barrera de paso de trenes es un dato que puede considerarse de
tipo lógico, por ejemplo, asociando verdadero a que esté subida y falso a que esté bajada.
Estado...: falso (indica que la barrera está bajada)
En C no existen datos de tipo lógico (que sí existen en otros lenguajes de programación). Ahora
bien, se pueden simular con datos de tipo entero, considerándose el valor cero (0) como falso,
y cualquier otro valor entero como verdadero (para ello, generalmente, se emplea el valor uno
(1)).
Datos de tipo cadena
De todos los tipos de datos que no son básicos se dice que son derivados, ya que, están
basados en alguno que sí lo es. Por ejemplo, los datos de tipo cadena son aquellos que pueden
tomar por valor una secuencia de caracteres.
En C, el valor de un dato de tipo cadena se debe representar entre comillas dobles (".
Ejemplo 5: El título de un libro y el nombre de su autor, son datos de tipo cadena.
Título...: "La Odisea" (cadena de 9 caracteres)
Autor....: "Homero" (cadena de 6 caracteres)
Ejemplo de funcion FFLUSH:
#include<stdio.h>
int main()
{
int a, b;
printf( "Introduzca el primer numero: " );
scanf( "%d", &a );
printf( "Introduzca el segundo numero: " );
scanf( "%d", &b );
printf( "Los valores son: %d, %d ", a, b );
return 0;
}
Instrucciones Basicas:
WHILE:
En lenguaje C, para escribir una instrucción repetitiva mientras se utiliza la sintaxis:
while ( <expresión_lógica> )
{
<bloque_de_instrucciones>
}
Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave
({) y cerrar llave (}) son opcionales.
Por otra parte, al igual que en las instrucciones alternativas doble y simple, a la
<expresión_lógica> de una instrucción repetitiva while, también se le llama condición.
Para que se ejecute el <bloque_de_instrucciones>, la condición tiene que ser verdadera. Por el
contrario, si la condición es falsa, el <bloque_de_instrucciones> no se ejecuta.
Por tanto, cuando el flujo de un programa llega a un bucle while, existen dos posibilidades:
Si la condición se evalúa a falsa, el bloque de instrucciones no se ejecuta, y el bucle while
finaliza sin realizar ninguna iteración.
Si la condición se evalúa a verdadera, el bloque de instrucciones sí que se ejecuta y, después,
se vuelve a evaluar la condición, para decidir, de nuevo, si el bloque de instrucciones se vuelve
a ejecutar o no. Y así sucesivamente, hasta que, la condición sea falsa.
El <bloque_de_instrucciones> de un bucle while puede ejecutarse cero o más veces
(iteraciones). Si el <bloque_de_instrucciones> se ejecuta al menos una vez, seguirá
ejecutándose repetidamente, mientras que, la condición sea verdadera. Pero, hay que tener
cuidado de que el bucle no sea infinito.
Cuando la condición de un bucle while se evalúa siempre a verdadera, se dice que se ha
producido un bucle infinito, ya que, el programa nunca termina. Un bucle infinito es un error
lógico.
Es importante hacer hincapié en el hecho de que, en un bucle while, primero se evalúa la
condición y, en el caso de que ésta sea verdadera, entonces se ejecuta el bloque de
instrucciones. Veremos que, en el bucle do...while, el procedimiento es al revés. En él, primero
se ejecuta el bloque de instrucciones y, después, se evalúa la condición.
Para que un bucle while no sea infinito, en el bloque de instrucciones debe ocurrir algo para
que la condición deje de ser verdadera. En la mayoría de los casos, la condición se hace falsa al
cambiar el valor de una variable.
En resumen, una instrucción repetitiva while permite ejecutar, repetidamente, (cero o más
veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera.
IF
En lenguaje C, para escribir una instrucción alternativa doble se utiliza la sintaxis:
if ( <expresión_lógica> )
{
<bloque_de_instrucciones_1>
}
else
{
<bloque_de_instrucciones_2>
}
A la <expresión_lógica> de una instrucción alternativa doble también se le denomina
condición.
Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser verdadera. Por
el contrario, si la condición es falsa, se ejecutará el <bloque_de_instrucciones_2>.
En resumen, una instrucción alternativa doble (o simplemente alternativa doble) permite
seleccionar, por medio de una condición, el siguiente bloque de instrucciones a ejecutar, de
entre dos posibles.
Ejemplo: Se quiere escribir un programa que:
1º) Pida por teclado la nota (dato real) de una asignatura.
2º) Muestre por pantalla:
"APROBADO", en el caso de que la nota sea mayor o igual que 5.
"SUSPENDIDO", en el caso de que la nota sea menor que 5.
Solucion:
#include <stdio.h>
int main()
{
float nota;
printf( "n Introduzca nota (real): " );
scanf( "%f", &nota );
if ( nota >= 5 )
printf( "n APROBADO" );
else
printf( "n SUSPENDIDO" );
return 0;
}
Switch:
Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar,
por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios
posibles. En lenguaje C, para escribir una alternativa múltiple se utiliza la sintaxis:
switch ( <expresión> )
{
case<expresión_1> : [ <bloque_de_instrucciones_1> ]
[ break; ]
case<expresión_2> : [ <bloque_de_instrucciones_2> ]
[ break; ]
...
case<expresión_n> : [ <bloque_de_instrucciones_n> ]
[ break; ]
[ default : <bloque_de_instrucciones_n+1> ]
}
El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo de dato finito
y ordenado, es decir, entero, lógico, carácter, enumerado o subrango.
Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque de
instrucciones u otro.
Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> después de default :.
Este bloque de instrucciones se ejecutará en el caso de que el valor obtenido al evaluar la
<expresión>, no se encuentre en ninguna de las expresiones después de cada case.
Ejemplo 1: Se quiere escribir un programa que:
1º) Pida por teclado el número (dato entero) de un día de la semana.
2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día.
Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje:
"ERROR: Día incorrecto.".
En pantalla:
Introduzca dia de la semana: 2
Martes
Introduzca dia de la semana: 9
ERROR: Dia incorrecto.
Solución propuesta:
#include <stdio.h>
int main()
{
intdia;
printf( "n Introduzca dia de la semana: " );
scanf( "%d", &dia );
switch ( dia )
{
case 1 : printf( "n Lunes" );
break;
case 2 : printf( "n Martes" );
break;
case 3 : printf( "n Miercoles" );
break;
case 4 : printf( "n Jueves" );
break;
case 5 : printf( "n Viernes" );
break;
case 6 : printf( "n Sabado" );
break;
case 7 : printf( "n Domingo" );
break;
default : printf( "n ERROR: Dia incorrecto." );
}
return 0;
}
FOR:
En lenguaje C, para escribir una instrucción repetitiva para se utiliza la sintaxis:
for ( <expresión_1> ; <expresión_2> ; <expresión_3> )
{
<bloque_de_instrucciones>
}
Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave
({) y cerrar llave (}) son opcionales.
Por otro lado, el bucle for es ideal usarlo cuando, de antemano, ya se sabe el número de veces
(iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones.
El bucle para es una variante del bucle mientras y, al igual que éste, puede iterar cero o más
veces (véase el apartado 10.1 Repetitiva mientras, del Curso de Diseño de Algoritmos). Sin
embargo, el bucle for sólo se suele usar cuando se conoce el número exacto de veces que
tiene que iterar el bucle. Éste es el caso del problema planteado en el ejemplo 1 del apartado
3.1 Repetitiva mientras, en el cual, se sabe de antemano que el bucle tiene que iterar,
exactamente, diez veces.
Ejemplo: Por tanto, dicho problema, se puede resolver con una instrucción repetitiva for de la
siguiente forma:
#include <stdio.h>
int main()
{
int contador;
printf( "n " );
for ( contador = 1 ; contador <= 10 ; contador++ )
printf( "%d ", contador );
return 0;
}
Programa: Números del 1 al 10 (for)
En este caso, <expresión_1>, <expresión_2> y <expresión_3>, se corresponden,
respectivamente, con:
la inicialización de la variable contador,
la condición de salida del bucle y
el incremento de la variable contador

Más contenido relacionado

La actualidad más candente

Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++yesid19
 
Lenguaje c 1
Lenguaje c   1Lenguaje c   1
Lenguaje c 1Denisse C
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacioncharnisch
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cMonica Martinez
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++Idalia Tristan
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++GabrielFVilla15
 
Programación c
Programación cProgramación c
Programación cvictdiazm
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 

La actualidad más candente (18)

Lenguaje C (pdf)
Lenguaje C (pdf)Lenguaje C (pdf)
Lenguaje C (pdf)
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Transparencias4
Transparencias4Transparencias4
Transparencias4
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Lenguaje c 1
Lenguaje c   1Lenguaje c   1
Lenguaje c 1
 
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeLenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguaje
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
Programacion c
Programacion cProgramacion c
Programacion c
 
Tutorial C
Tutorial CTutorial C
Tutorial C
 
Presentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_cPresentacion1 lenguaje de-programacion_c
Presentacion1 lenguaje de-programacion_c
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
 
Programación c
Programación cProgramación c
Programación c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 

Destacado

Presentación bases legales aussiesummer
Presentación bases legales aussiesummerPresentación bases legales aussiesummer
Presentación bases legales aussiesummerAussie España
 
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...Gonzalo Espinosa
 
Multimedia
MultimediaMultimedia
Multimediamiojitos
 
Secuencia interactiva
Secuencia interactivaSecuencia interactiva
Secuencia interactivasorripry
 
Tecnología de la información y la comunicación unidad i a.v
Tecnología de la información y la comunicación unidad i a.vTecnología de la información y la comunicación unidad i a.v
Tecnología de la información y la comunicación unidad i a.vemavidela
 
Secuencia interactiva
Secuencia interactivaSecuencia interactiva
Secuencia interactivasorripry
 
Los cambios faciales, un impacto en la comunicación no verbal
Los cambios faciales, un impacto en la comunicación no verbalLos cambios faciales, un impacto en la comunicación no verbal
Los cambios faciales, un impacto en la comunicación no verbalAnita Nufio
 
Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuestaangelmancasa
 
Trabajo 2 periodo
Trabajo 2 periodoTrabajo 2 periodo
Trabajo 2 periodolacatorce
 
Karla y erick
Karla y erickKarla y erick
Karla y erickKarlidaya
 
Trabajo de informática
Trabajo de informáticaTrabajo de informática
Trabajo de informáticapaolasuntaxi
 
Seminario indicadores (2)
Seminario indicadores (2)Seminario indicadores (2)
Seminario indicadores (2)IsaYanguas94
 
Presentación, sobre el parkour en Sevilla. By BorjaSonic.
Presentación, sobre el parkour en Sevilla. By BorjaSonic.Presentación, sobre el parkour en Sevilla. By BorjaSonic.
Presentación, sobre el parkour en Sevilla. By BorjaSonic.Borjita Ramos
 
Mi Nombre es Khan
Mi Nombre es Khan Mi Nombre es Khan
Mi Nombre es Khan MLauraSDC
 

Destacado (20)

Presentación bases legales aussiesummer
Presentación bases legales aussiesummerPresentación bases legales aussiesummer
Presentación bases legales aussiesummer
 
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...
ALAPSI A.C. Statement of work 2013 2016 (13 jun2013)-working group session 1 ...
 
Multimedia
MultimediaMultimedia
Multimedia
 
Secuencia interactiva
Secuencia interactivaSecuencia interactiva
Secuencia interactiva
 
Tecnología de la información y la comunicación unidad i a.v
Tecnología de la información y la comunicación unidad i a.vTecnología de la información y la comunicación unidad i a.v
Tecnología de la información y la comunicación unidad i a.v
 
Modelo cooperativo..4ºb..1
Modelo cooperativo..4ºb..1Modelo cooperativo..4ºb..1
Modelo cooperativo..4ºb..1
 
Secuencia interactiva
Secuencia interactivaSecuencia interactiva
Secuencia interactiva
 
Los cambios faciales, un impacto en la comunicación no verbal
Los cambios faciales, un impacto en la comunicación no verbalLos cambios faciales, un impacto en la comunicación no verbal
Los cambios faciales, un impacto en la comunicación no verbal
 
programas algoritmo
programas algoritmoprogramas algoritmo
programas algoritmo
 
Its sucre
Its sucreIts sucre
Its sucre
 
Resultados encuesta
Resultados encuestaResultados encuesta
Resultados encuesta
 
Trabajo 2 periodo
Trabajo 2 periodoTrabajo 2 periodo
Trabajo 2 periodo
 
Karla y erick
Karla y erickKarla y erick
Karla y erick
 
Arboles Guillem Aznar
Arboles Guillem AznarArboles Guillem Aznar
Arboles Guillem Aznar
 
Trabajo de informática
Trabajo de informáticaTrabajo de informática
Trabajo de informática
 
Seminario indicadores (2)
Seminario indicadores (2)Seminario indicadores (2)
Seminario indicadores (2)
 
Presentación, sobre el parkour en Sevilla. By BorjaSonic.
Presentación, sobre el parkour en Sevilla. By BorjaSonic.Presentación, sobre el parkour en Sevilla. By BorjaSonic.
Presentación, sobre el parkour en Sevilla. By BorjaSonic.
 
Colon
ColonColon
Colon
 
El signo linguistico espinosa sandy
El signo linguistico espinosa sandyEl signo linguistico espinosa sandy
El signo linguistico espinosa sandy
 
Mi Nombre es Khan
Mi Nombre es Khan Mi Nombre es Khan
Mi Nombre es Khan
 

Similar a Ikgi (20)

Clase 4
Clase 4Clase 4
Clase 4
 
Evaluacion
EvaluacionEvaluacion
Evaluacion
 
Manual 1 de lenguaje c
Manual 1 de lenguaje cManual 1 de lenguaje c
Manual 1 de lenguaje c
 
Programación c
Programación cProgramación c
Programación c
 
Turbo c
Turbo cTurbo c
Turbo c
 
De algoritmo a programa en c++
De algoritmo a programa en c++De algoritmo a programa en c++
De algoritmo a programa en c++
 
Conceptos de c
Conceptos de cConceptos de c
Conceptos de c
 
C++
C++C++
C++
 
Algoritmos y lenjuage de programacion
Algoritmos y  lenjuage de programacionAlgoritmos y  lenjuage de programacion
Algoritmos y lenjuage de programacion
 
PROGRAMACIÓN EN C
PROGRAMACIÓN EN CPROGRAMACIÓN EN C
PROGRAMACIÓN EN C
 
Qué es un algoritmo
Qué es un algoritmoQué es un algoritmo
Qué es un algoritmo
 
Programa
ProgramaPrograma
Programa
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Estructura basica de_c_(2)
Estructura basica de_c_(2)Estructura basica de_c_(2)
Estructura basica de_c_(2)
 
IntroLenguajeC.ppt
IntroLenguajeC.pptIntroLenguajeC.ppt
IntroLenguajeC.ppt
 
P01 secuencial
P01 secuencialP01 secuencial
P01 secuencial
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Borland c
Borland  cBorland  c
Borland c
 
Escuela
EscuelaEscuela
Escuela
 

Ikgi

  • 1. Estructura: Un programa escrito en C está compuesto por una o más funciones. Como ya es sabido, una función es un programa que sirve para realizar una tarea determinada, por ejemplo, la función scanf sirve para leer datos desde el teclado. Existe una función que está presente en todos los programas escritos en C, su misión es marcar el inicio y fin de la ejecución de cada uno de ellos; es la función principal, la primera que se ejecuta; es la función main. Su sintaxis "básica" es: intmain() { <bloque_de_instrucciones> } La función main contiene al bloque de instrucciones principal de un programa, dentro de los caracteres abrir llave ({) y cerrar llave (}). Los paréntesis "()" escritos después de main sirven para indicar que el identificador main es una función. Es importante comprender que main no es una palabra reservada de C. Ningún identificador de función lo es. Finalmente, no podemos pasar por alto que delante de main se ha escrito la palabra reservada int; enseguida veremos el porqué. Tipos de instrucciones
  • 2. En C, las instrucciones, también llamadas sentencias, se pueden clasificar en: De expresión. De control. Compuestas. Una instrucción compuesta siempre alberga, entre llaves ({...}), a un <bloque_de_instrucciones>: { <bloque_de_instrucciones> } Un bloque de instrucciones puede estar compuesto por una o más instrucciones, que, a su vez, pueden ser instrucciones de expresión, de control y/o compuestas nuevamente. El cuerpo de toda función es una instrucción compuesta. Sirva como ejemplo el cuerpo de la función main, el cual alberga al bloque de instrucciones principal de un programa escrito en C. Las instrucciones de expresión, también conocidas como instrucciones simples o elementales, son aquellas que representan a las acciones más pequeñas (elementales) que se pueden ejecutar en un programa, y siempre van seguidas de un carácter punto y coma (, el cual indica que la instrucción ha terminado: <instrucción_de_expresión>;
  • 3. Una instrucción de expresión es, en sí misma, una expresión. De modo que, la acción que se ejecuta es la evaluación de dicha expresión: <expresión>; En cuanto a las instrucciones de control, existen de distintos tipos, y todas sirven para modificar el flujo de control de un programa. Veremos que, algunas de ellas deben ir seguidas del carácter punto y coma (, pero otras no. Mi primer programa en C Ejemplo: Se quiere escribir un programa que muestre por pantalla un mensaje de saludo: "Hola mundo" Obsérvese que, el saludo se visualiza justo en la esquina superior izquierda de la pantalla. Más adelante se estudiará cómo se puede mostrar en otro lugar de la pantalla. En C, el código fuente de dicho programa puede ser:
  • 4. #include <stdio.h> int main() { printf( "Hola mundo" ); return 0; } Programa: Hola_mundo Todas las funciones de la biblioteca estándar de C son subprogramas que ya están compilados, es decir, junto a cualquier compilador de C se acompañan los códigos objeto de todas las funciones de su biblioteca estándar, pero no sus códigos fuente. Por tanto, aunque no sea posible modificar sus códigos fuente, sí se puede hacer uso de dichas funciones en cualquier programa. Por ejemplo, se puede llamar a la función printf para que muestre por pantalla el saludo "Hola mundo". printf( "Hola mundo" ); Dentro de los paréntesis "()" de la función printf, se debe escribir, entre comillas dobles (", el mensaje o cadena de caracteres que se desea mostrar por pantalla. Obsérvese que, después del carácter cerrar paréntesis "" se ha escrito un punto y coma (, esto implica que la llamada a la función printf es considerada como una instrucción de expresión. Del código fuente preprocesado de un programa, el compilador generará un código objeto que se debe unir (enlazar) con los códigos objeto de las funciones de la biblioteca estándar de C que se llamen desde dicho programa. Por ejemplo, el código objeto de nuestro primer programa se debe enlazar con el código objeto del subprograma printf. El enlazador sabe dónde encontrar el código objeto de las funciones de la biblioteca estándar de C que utilice un programa. Sin embargo, para poder utilizar una función (sea de la biblioteca
  • 5. estándar de C o no) en un programa, la función debe ser declarada previamente, al igual que se tienen que declarar las variables y las contantes que usa un programa. Para que el compilador conozca la declaración de la función printf, hay que utilizar la directiva del preprocesador #include: #include<stdio.h> En este caso, la directiva #include indica, al preprocesador, que debe incluir, antes de la compilación, en el código fuente del programa, el contenido del archivo <stdio.h> (stdio, Standard Input/Output). En dicho archivo están escritas las declaraciones de todas las funciones de entrada y salida estándar de la biblioteca estándar de C, como printf. Si el compilador no sabe quien es printf, no podrá generar el código objeto del programa. Las funciones de la biblioteca estándar de C están clasificadas en base a su funcionalidad, y sus declaraciones se agrupan en archivos con extensión (.h), los cuales son llamados archivos de cabecera. Además de stdio.h, algunos de los archivos de cabecera más utilizados en C son: math.h, string.h y stdlib.h. En ellos están escritas, respectivamente, las declaraciones de las funciones matemáticas, funciones de cadena y funciones de utilidad de la biblioteca estándar de C. Después de #include, el nombre del archivo de cabecera se puede escribir entre los caracteres menor y mayor (<stdio.h>, o entre comillas dobles ("stdio.h". Cuando se escriba entre comillas dobles, el preprocesador buscará dicho archivo en el directorio actual de trabajo, y de no encontrarlo ahí, entonces lo buscará en el directorio especificado por el compilador. En el caso de escribirse entre los caracteres menor y mayor, el proceso de búsqueda será al revés. Además de la directiva del preprocesador #include, existen otras, pero, ninguna de ellas es una palabra reservada de C. El código objeto generado por el compilador de C tendrá "huecos" (espacios) en donde más tarde el enlazador escribirá el código objeto correspondiente a las llamadas de las funciones ya compiladas (como printf) y, así, generar el archivo ejecutable. Toda función retorna un valor. En nuestro primer programa se ha escrito:
  • 6. return 0; Esto quiere decir que la función main devuelve el valor 0. Precediendo a main se ha escrito la palabra reservada int, indicando así, que la función retornará un valor de tipo int (entero). intmain() En general, la instrucción return suele ser la última del bloque de instrucciónes de la función main. Al retornar el valor 0, indica (informa al sistema operativo) que el programa finalizó correctamente, es decir, sin producirse ningún error en su ejecución. Cuando la función main devuelva un valor distinto de cero, esto siginificará que se ha producido algún error en la ejecución del programa, o que ha ocurrido algo fuera de lo normal. La instrucción return es una de las instrucciones de control que existen en C. Por tanto, es una palabra reservada. Después del valor de retorno (que es una expresión) se debe escribir un punto y coma (. La sintaxis de la instrucción return es: return<expresión>; Por el momento, se ha visto que la sintaxis "básica" de un programa escrito en C es: [ <directivas_del_preprocesador> ] intmain() {
  • 7. <bloque_de_instrucciones> } Tipos de Datos: Datos de tipo entero Un dato de tipo entero (int) es aquel que puede tomar por valor un número perteneciente al conjunto de los números enteros (Z), el cual está formado por los números naturales, su opuestos (números negativos) y el cero. Z = { ..., -3, -2, -1, 0, 1, 2, 3, ... } Ejemplo 1: La edad de una persona y el año en que nació, son dos datos de tipo entero: Edad...: 29 Año....: 1976 Z es un conjunto infinito de números enteros, y como el ordenador no puede representarlos todos, un dato de tipo entero sólo puede tomar por valor un número perteneciente a un subconjunto de Z. Los valores máximo y mínimo de dicho subconjunto varían según las características de cada ordenador y del compilador que se utilice.
  • 8. Datos de tipo real Un dato de tipo real (float o double) es aquel que puede tomar por valor un número perteneciente al conjunto de los números reales (R), el cual está formado por los números racionales e irracionales. Ejemplo 2: El peso de una persona (en kilogramos) y su altura (en centímetros), son datos que pueden considerarse de tipo real. Peso.....: 75,3 Altura...: 172,7 R es un conjunto infinito de números reales, y como el ordenador no puede representarlos todos, un dato de tipo real sólo puede tomar por valor un número perteneciente a un subconjunto de R. Los valores de dicho subconjunto varían según las características de cada ordenador y del compilador que se utilice. La diferencia principal entre float y double está en el hecho de que un dato de tipo double puede tomar por valor un número perteneciente a un subconjunto de R mayor que un dato de tipo float. Datos de tipo carácter Un dato de tipo carácter (char) es aquel que puede tomar por valor un carácter perteneciente al conjunto de los caracteres que puede representar el ordenador. En C, el valor de un dato de tipo carácter se debe representar entre comillas simples (').
  • 9. Ejemplo 3: En un examen con preguntas en las que hay que seleccionar la respuesta correcta entre varias opciones dadas (a, b, c, d, e), la respuesta correcta de cada una de las preguntas es un dato de tipo carácter. Respueta correcta a la pregunta 3...: 'c' Datos sin valor Un dato sin valor (void) es un dato que no puede tomar por valor nigún valor, es decir, es un dato vacío (nulo). Más adelante estudiaremos su utilidad. Datos de tipo lógico En programación, un dato de tipo lógico es aquel que puede tomar por valor sólo uno de los dos siguientes: { verdadero, falso } Los valores verdadero y falso son contrapuestos, de manera que, un dato de tipo lógico siempre está asociado a que algo se cumpla o no se cumpla. Ejemplo 4: El estado de una barrera de paso de trenes es un dato que puede considerarse de tipo lógico, por ejemplo, asociando verdadero a que esté subida y falso a que esté bajada.
  • 10. Estado...: falso (indica que la barrera está bajada) En C no existen datos de tipo lógico (que sí existen en otros lenguajes de programación). Ahora bien, se pueden simular con datos de tipo entero, considerándose el valor cero (0) como falso, y cualquier otro valor entero como verdadero (para ello, generalmente, se emplea el valor uno (1)). Datos de tipo cadena De todos los tipos de datos que no son básicos se dice que son derivados, ya que, están basados en alguno que sí lo es. Por ejemplo, los datos de tipo cadena son aquellos que pueden tomar por valor una secuencia de caracteres. En C, el valor de un dato de tipo cadena se debe representar entre comillas dobles (". Ejemplo 5: El título de un libro y el nombre de su autor, son datos de tipo cadena. Título...: "La Odisea" (cadena de 9 caracteres) Autor....: "Homero" (cadena de 6 caracteres) Ejemplo de funcion FFLUSH: #include<stdio.h> int main()
  • 11. { int a, b; printf( "Introduzca el primer numero: " ); scanf( "%d", &a ); printf( "Introduzca el segundo numero: " ); scanf( "%d", &b ); printf( "Los valores son: %d, %d ", a, b ); return 0; } Instrucciones Basicas: WHILE: En lenguaje C, para escribir una instrucción repetitiva mientras se utiliza la sintaxis: while ( <expresión_lógica> ) { <bloque_de_instrucciones> }
  • 12. Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Por otra parte, al igual que en las instrucciones alternativas doble y simple, a la <expresión_lógica> de una instrucción repetitiva while, también se le llama condición. Para que se ejecute el <bloque_de_instrucciones>, la condición tiene que ser verdadera. Por el contrario, si la condición es falsa, el <bloque_de_instrucciones> no se ejecuta. Por tanto, cuando el flujo de un programa llega a un bucle while, existen dos posibilidades: Si la condición se evalúa a falsa, el bloque de instrucciones no se ejecuta, y el bucle while finaliza sin realizar ninguna iteración. Si la condición se evalúa a verdadera, el bloque de instrucciones sí que se ejecuta y, después, se vuelve a evaluar la condición, para decidir, de nuevo, si el bloque de instrucciones se vuelve a ejecutar o no. Y así sucesivamente, hasta que, la condición sea falsa. El <bloque_de_instrucciones> de un bucle while puede ejecutarse cero o más veces (iteraciones). Si el <bloque_de_instrucciones> se ejecuta al menos una vez, seguirá ejecutándose repetidamente, mientras que, la condición sea verdadera. Pero, hay que tener cuidado de que el bucle no sea infinito. Cuando la condición de un bucle while se evalúa siempre a verdadera, se dice que se ha producido un bucle infinito, ya que, el programa nunca termina. Un bucle infinito es un error lógico. Es importante hacer hincapié en el hecho de que, en un bucle while, primero se evalúa la condición y, en el caso de que ésta sea verdadera, entonces se ejecuta el bloque de instrucciones. Veremos que, en el bucle do...while, el procedimiento es al revés. En él, primero se ejecuta el bloque de instrucciones y, después, se evalúa la condición. Para que un bucle while no sea infinito, en el bloque de instrucciones debe ocurrir algo para que la condición deje de ser verdadera. En la mayoría de los casos, la condición se hace falsa al cambiar el valor de una variable.
  • 13. En resumen, una instrucción repetitiva while permite ejecutar, repetidamente, (cero o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera. IF En lenguaje C, para escribir una instrucción alternativa doble se utiliza la sintaxis: if ( <expresión_lógica> ) { <bloque_de_instrucciones_1> } else { <bloque_de_instrucciones_2> } A la <expresión_lógica> de una instrucción alternativa doble también se le denomina condición. Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser verdadera. Por el contrario, si la condición es falsa, se ejecutará el <bloque_de_instrucciones_2>.
  • 14. En resumen, una instrucción alternativa doble (o simplemente alternativa doble) permite seleccionar, por medio de una condición, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles. Ejemplo: Se quiere escribir un programa que: 1º) Pida por teclado la nota (dato real) de una asignatura. 2º) Muestre por pantalla: "APROBADO", en el caso de que la nota sea mayor o igual que 5. "SUSPENDIDO", en el caso de que la nota sea menor que 5. Solucion: #include <stdio.h> int main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota >= 5 ) printf( "n APROBADO" ); else
  • 15. printf( "n SUSPENDIDO" ); return 0; } Switch: Una instrucción alternativa múltiple (o simplemente alternativa múltiple) permite seleccionar, por medio de una expresión, el siguiente bloque de instrucciones a ejecutar de entre varios posibles. En lenguaje C, para escribir una alternativa múltiple se utiliza la sintaxis: switch ( <expresión> ) { case<expresión_1> : [ <bloque_de_instrucciones_1> ] [ break; ] case<expresión_2> : [ <bloque_de_instrucciones_2> ] [ break; ] ... case<expresión_n> : [ <bloque_de_instrucciones_n> ] [ break; ] [ default : <bloque_de_instrucciones_n+1> ] }
  • 16. El resultado de evaluar la <expresión> debe ser un valor perteneciente a un tipo de dato finito y ordenado, es decir, entero, lógico, carácter, enumerado o subrango. Dependiendo del valor obtenido al evaluar la <expresión>, se ejecutará un bloque de instrucciones u otro. Opcionalmente, se puede escribir un <bloque_de_instrucciones_n+1> después de default :. Este bloque de instrucciones se ejecutará en el caso de que el valor obtenido al evaluar la <expresión>, no se encuentre en ninguna de las expresiones después de cada case. Ejemplo 1: Se quiere escribir un programa que: 1º) Pida por teclado el número (dato entero) de un día de la semana. 2º) Muestre por pantalla el nombre (dato cadena) correspondiente a dicho día. Nota: Si el número de día introducido es menor que 1 ó mayor que 7, se mostrará el mensaje: "ERROR: Día incorrecto.". En pantalla: Introduzca dia de la semana: 2 Martes
  • 17. Introduzca dia de la semana: 9 ERROR: Dia incorrecto. Solución propuesta: #include <stdio.h> int main() { intdia; printf( "n Introduzca dia de la semana: " ); scanf( "%d", &dia ); switch ( dia ) { case 1 : printf( "n Lunes" ); break; case 2 : printf( "n Martes" ); break; case 3 : printf( "n Miercoles" );
  • 18. break; case 4 : printf( "n Jueves" ); break; case 5 : printf( "n Viernes" ); break; case 6 : printf( "n Sabado" ); break; case 7 : printf( "n Domingo" ); break; default : printf( "n ERROR: Dia incorrecto." ); } return 0; } FOR: En lenguaje C, para escribir una instrucción repetitiva para se utiliza la sintaxis: for ( <expresión_1> ; <expresión_2> ; <expresión_3> ) { <bloque_de_instrucciones>
  • 19. } Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Por otro lado, el bucle for es ideal usarlo cuando, de antemano, ya se sabe el número de veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones. El bucle para es una variante del bucle mientras y, al igual que éste, puede iterar cero o más veces (véase el apartado 10.1 Repetitiva mientras, del Curso de Diseño de Algoritmos). Sin embargo, el bucle for sólo se suele usar cuando se conoce el número exacto de veces que tiene que iterar el bucle. Éste es el caso del problema planteado en el ejemplo 1 del apartado 3.1 Repetitiva mientras, en el cual, se sabe de antemano que el bucle tiene que iterar, exactamente, diez veces. Ejemplo: Por tanto, dicho problema, se puede resolver con una instrucción repetitiva for de la siguiente forma: #include <stdio.h> int main() { int contador; printf( "n " ); for ( contador = 1 ; contador <= 10 ; contador++ ) printf( "%d ", contador );
  • 20. return 0; } Programa: Números del 1 al 10 (for) En este caso, <expresión_1>, <expresión_2> y <expresión_3>, se corresponden, respectivamente, con: la inicialización de la variable contador, la condición de salida del bucle y el incremento de la variable contador