SlideShare una empresa de Scribd logo
1 de 45
Introducción a laIntroducción a la
ProgramaciónProgramación
Objetivos
Al finalizar la asignatura el alumno debe conocer los aspectos fundamentales
de los lenguajes de programación, siendo capaz de reconocer los elementos
léxicos y sintácticos de un lenguaje. Así mismo, debe conocer los principios
básicos de programación: Funcional y Concurrente, pudiendo resolver
pequeños problemas siguiendo los principios básicos de programación.
Introducción a laIntroducción a la
ProgramaciónProgramación
Fundamentos y Estructuras deFundamentos y Estructuras de
ControlControl
Lenguaje C: Estructura de un ProgramaLenguaje C: Estructura de un Programa
#include <stdio.h>
#include <stdlib.h>
# …
# …
… /* Otras definiciones */
int main(int argc, char *argv[])
{
… /* Zona de */
… /* declaración */
… /* de variables */
… /* Zona de */
… /* instrucciones del */
… /* programa principal */
system("PAUSE");
return 0;
}
Cabecera de
Programa: ficheros
cabecera y otras
definiciones
Función main: cuerpo
principal del programa
NORMALMENTE LA FUNCIÓN MAIN
SE ENCUENTRA EN UN FICHERO
LLAMADO “main.c”
Lenguaje C: CaracterísticasLenguaje C: Características
• Algunas características son:
• El Lenguaje C es sensible al uso de mayúsculas y minúsculas.
• Las sentencias (instrucciones) terminan con el símbolo punto y
coma ‘;’ y se componen de palabras reservadas o palabras clave,
identificadores, constantes, operadores y separadores.
• Se pueden establecer bloques de instrucciones mediante el uso
de llaves: los símbolos abre-llave ‘{’ y cierra-llave ‘}’.
• Los programas se componen de:
• Palabras reservadas o palabras clave.
• Variables y funciones de la librería estándar.
• Variables y funciones definidas por el programador.
Lenguaje C: CaracterísticasLenguaje C: Características
• Palabras reservadas o palabras clave
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Lenguaje C: IdentificadoresLenguaje C: Identificadores
• Un identificador permite identificar (nombrar) una variable o una
función dentro de un programa. Siguen las siguientes reglas:
1. Se forma de una secuencia de símbolos pertenecientes SÓLO
al conjunto de símbolos:
{‘a’, …, ‘n’, ‘o’, …, ‘z’, ‘A’, …, ‘N’, ‘O’, …, ‘Z’, ‘0’, …, ‘9’, ‘_’}.
2. El primer carácter o símbolo del identificador NO PUEDE SER
un dígito numérico.
3. Se distinguen las letras mayúsculas de las minúsculas, así, el
identificador “suma” de los identificadores “SUMA”, “Suma”,
“sUMa”, etc.
4. Se pueden definir identificadores de hasta 31 símbolos de
longitud.
Lenguaje C: IdentificadoresLenguaje C: Identificadores
• Ejemplos de identificadores válidos son:
tiempo, modulo, distancia_total,
suma10,_el_producto_, Tiempo, Modulo,
Distancia_Total, laSumaDeTodo,
elProducto,miVariable, Tu_Variable, estaFuncion,
_el_Identificador_
• Ejemplos de identificadores no válidos son:
10_segundos, el-modulo, la distancia total,
$dolares, %porciento,6seis6,
este-no-es-un-identificador-valido, módulo,
estaFunción
Lenguaje C: ConstantesLenguaje C: Constantes
• Las constantes en C pueden ser de los siguientes tipos:
1. Constantes numéricas: son valores numéricos, o bien, enteros o
en notación científica (punto flotante).
2. Constantes carácter: cualquier símbolo o carácter
alfanumérico encerrado entre apóstrofos (Ejs.: ‘a’, ‘:’, ‘Z’, ‘+’,
…).
3. Cadenas de caracteres: cualquier secuencia de símbolo o
caracteres encerrado entre comillas (Ejs.: “esto es una
cadena de caracteres”, “Hola Mundo!n”, …).
4. Constantes simbólicas: son constantes que se identifican con
un identificador.
Lenguaje C: OperadoresLenguaje C: Operadores
• Los operadores son símbolos que indican operaciones cuyos
operandos son normalmente variables, y/o constantes, así como
también funciones. En C hay diferentes tipos de operadores:
1. Aritméticos: { +, -, /, *, %, ++, --}.
2. De asignación: { =, +=, -=, *=, /= }.
3. Relacionales: { ==, <, >, <=, >=, !=}.
4. Lógicos: { &&, ||, ! }.
5. Otros: { &, |, ^, <<, >>, …}
Lenguaje C: Separadores y ComentariosLenguaje C: Separadores y Comentarios
• Los separadores permiten que los programas sean legibles al
permitir separar los diferentes elementos que aparecen en el
programas (identificadores, sentencias, …). Los separadores son los
llamados símbolos de formato: el espacio en blanco, el tabulador, y
el salto de línea.
• En el código fuente de un programa el programador puede introducir
comentarios para dar mayor legibilidad al mismo. Los comentarios en
Lenguaje C deben estar entre los dos pares de símbolos siguientes:
• /*: indica comienzo de comentario
• */: indica final de comentario
• //: indica que el resto de la línea es un comentario
Ejemplos:
a=b+c; /* aquí se calcula la suma */
printf(“a=%dn”,a); // aquí se imprime la suma
Lenguaje C: VariablesLenguaje C: Variables
• Tipos de datos fundamentales en C
Tipo
Base
Modificador
signed unsigned short long
Tipo
Carácter
char
(signed)
char
unsigned char ---- ----
Tipo
Entero
int
(signed)
int
unsigned int
short
(int)
long (int)
Tipo Real
float ---- ---- ---- ----
double ---- ---- ---- long double
Lenguaje C: VariablesLenguaje C: Variables
• Variables Tipo Carácter
Ejemplos:
char identificador1 = ‘c’;
char identificador2, identificador3;
• Contienen un único símbolo o carácter ASCII.
• Almacenan un byte de información.
1 byte = 8 bits  2
8
=256 números binarios diferentes
Lenguaje C: VariablesLenguaje C: Variables
• Variables Tipo Entero
Ejemplos:
short identificador1 = 345;
int identificador2 = -2345;
long identificador3= -4352359;
• Almacenan números enteros.
• Tienen diferentes tamaños:
• Entero corto  short (<=4 bytes)
• Entero normal  int (>=4 bytes)
• Entero largo  long (>= 4 bytes)
• Pueden aceptar los siguientes modificadores:
• Entero con signo  signed
• Entero sin signo  unsigned
Lenguaje C: VariablesLenguaje C: Variables
• Variables Tipo Real
Ejemplos:
float identificador1 = -4.4567;
double identificador2,identificador3;
long double identificador4= 6.19e+23;
• Almacenan números reales.
• Tienen diferentes tamaños:
• Simple precisión  float (4 bytes)
• Doble precisión  double (8 bytes)
• Cuadruple precisión  long double (16 bytes)
Lenguaje C: ConstantesLenguaje C: Constantes
• Constantes Enteras
Ejemplos:
8797 // constante int o short
0x3ae5 // constante int o short
06573 // constante int o short
7890L // constante long
97987UL // constante unsigned long
• Constantes Reales
Ejemplos:
1.23 // constante float o double
3.87e-3 // constante float o double
-9.005768e-12 // constante float o double
Lenguaje C: ConstantesLenguaje C: Constantes
• Constantes Carácter
Ejemplos:
‘a’ // constante char
‘g’ // constante char
‘A’ // constante char
‘n’ // constante char (salto de línea)
‘0’ // constante char (carácter nulo)
‘t’ // constante char (tabulador horizontal)
• Constantes Cadena de Carácteres
Ejemplos:
“Informática” // constante cadena (string)
“Hola Mundo!n” // constante cadena (string)
“Esto es una frase” // constante cadena (string)
Lenguaje C: ConstantesLenguaje C: Constantes
• Constantes Enumeración
Ejemplos:
enum Dia {lunes, martes, miercoles, jueves,
viernes, sabado, domingo};
enum Mes {enero=1, febrero, marzo, abril, mayo,
junio, julio, agosto, septiembre,
octubre, noviembre, diciembre};
…
Dia diaCita=martes;
Mes mesCita=abril;
Lenguaje C: ConstantesLenguaje C: Constantes
• Variables constante
Ejemplos:
const int i=50;
const long double pi= 3,141592653589;
const char unaLetra=‘a’;
const char unaCadena[]=“Esto es una cadena”;
• Se forman utilizando el cualificador const
Lenguaje C: OperadoresLenguaje C: Operadores
• Operadores Aritméticos
• Suma: +
• Resta: -
• Multiplicación: *
• División: /
• Módulo (Resto de División Entera): %
Ejemplos:
y=a*x*x+b*x+c;
b=50%12; // el resultado es 2
z=k*x+(r-909)/((456.78-q)*s);
l=2*pi*radio;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
Lenguaje C: OperadoresLenguaje C: Operadores
• Operadores Asignación
• Asignación: =
• Suma y asignación: +=
• Resta y asignación: -=
• Multiplicación y asignación: *=
• División y asignación: /=
Ejemplos:
t=a*s*s+b*s+c;
b+=1; // equivalente a b=b+1;
c-=1; // equivalente a c=c-1;
d*=k; // equivalente a d=d*k;
e/=m; // equivalente a e=e/m;
Lenguaje C: OperadoresLenguaje C: Operadores
• Operadores Incrementales
• Incremento: ++
• Decremento: --
Sólo se pueden utilizar con variables de tipo entero o puntero.
Ejemplos:
i++; // equivalente a i=i+1; o a i+=1;
j--; // equivalente a j=j-1; o a j-=1;
a= (i++) + k; // operador de post-incremento
b= (++i) + k; // operador de pre-incremento
Lenguaje C: OperadoresLenguaje C: Operadores
• Operadores Relacionales: expresan condiciones lógicas
• Igual que: ==
• Menor que: <
• Mayor que: >
• Menor o igual que: <=
• Mayor o igual que: =>
• Distinto que: !=
Ejemplos:
(a<b) // ¿a es menor que b? Depende de a y b
(r!=8) // ¿r es diferente de 8? Depende de r
SI LA CONDICIÓN ES VERDADERA SE EVALÚA COMO 1, SI ES FALSA
SE EVALÚA COMO 0.
Lenguaje C: OperadoresLenguaje C: Operadores
• Operadores Lógicos: expresan condiciones lógicas compuestas
• Y lógico: &&
• O lógico: ||
• NO lógico: !
Ejemplos:
(a<b) && (k!=l) // ¿a es menor que b Y
// k es diferente de 1?
// Depende de a, b, k y l
(m>=n) || !(q==j) // ¿m es mayor o igual que n O
// q no es igual a j? Depende
de
// m, n, q y j
SI LA CONDICIÓN COMPUESTA ES VERDADERA SE EVALÚA COMO
1, SI ES FALSA SE EVALÚA COMO 0.
Lenguaje C: OperadoresLenguaje C: Operadores
• Otros operadores:
• Más unario: + (indica que una variable es positiva)
• Menos unario: - (cambia el signo a una variable numérica)
• sizeof (indica el tamaño en bytes de una variable)
• Operador coma: ,(permite realizar varias sentencias en una sóla
línea)
• Operador Dirección: & (permite obtener la dirección de memoria
donde se almacena una variable)
• Operador Indirección: * (permite acceder a la memoria apuntada
por una dirección de memoria)
Ejemplos:
a=-b;
r=sizeof(k);
Lenguaje C: ExpresionesLenguaje C: Expresiones
Ejemplos:
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
a=b=c=d=e=f=1; // multi-asignación
a=((b>c)&&(c>d))||((c==e)||(e==b)); // condición
// compuesta
zmas=sqrt(r*r-x*x-y*y) // semiesfera positiva
zmenos=sqrt(r*r-x*x-y*y) // semiesfera negativa
Lenguaje C: Precedencia de OperadoresLenguaje C: Precedencia de Operadores
Precedencia Asociatividad
() [] -> . izda. a dcha.
++ -- ! sizeof() (tipo)
+ (unario) –(unario)
*(indirección) &(dirección)
dcha. a izda.
* / % izda. a dcha.
+ - izda. a dcha.
< <= > >= izda. a dcha.
== != izda. a dcha.
&& izda. a dcha.
|| izda. a dcha.
?: dcha. a izda.
= += -= *= /= dcha. a izda.
, (operador coma) izda. a dcha.
Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica
• Función printf:
…
printf(“cadena_formato”,expresion1,expresion2,…);
…
La función printf permite escribir texto por pantalla. La cadena_formato
indica qué es lo que se va a escribir por pantalla en cada utilización de
printf. Es posible incluir en cadena_formato referencias a expresiones
que tras ser evaluadas deben incluirse en el texto que se imprimirá por
pantalla.
Ejemplo: …
int a=3;
float x=23.0;
char c=‘A’;
printf(“Hola mundo!!n”);
printf(“Un entero %dn”,a);
printf(“Un real %f ny un char %cn”,x,c);
…
Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica
• Función printf: Formato
Cadena Formato Tipo de Expresión Resultado Impreso
%d %i short, int
número entero
%ld %li long
%u
unsigned short, unsigned
int número entero sin signo
%lu unsigned long
%o
[unsigned] short,
[unsigned] int número entero octal sin signo
%lo [unsigned] long
%x %X
[unsigned] short,
[unsigned] int número entero hexadecimal sin signo
%lx %lX [unsigned] long
%f
float, double,
long double
número real en coma fija
%e %E %g %G
float, double,
long double
número real en notación científica
%c char, unsigned char se imprime un símbolo ASCII
%s char* se imprime una cadena de símbolos
%p void* se imprime el valor de un puntero
Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica
• Función scanf:
…
scanf(“cadena_formato”,expresion1,expresion2,…);
…
La función scanf permite leer texto desde teclado. La cadena_formato
indica qué es lo que se va a leer por teclado en cada utilización de scanf.
Es posible incluir en cadena_formato referencias a expresiones que tras
ser evaluadas deben incluirse en el texto que se imprimirá por pantalla.
Ejemplo:
…
int a;
float x;
char c;
scanf(“%d”,&a); /* Lee un entero y lo
almacena en a */
scanf(“%f %c”,&x,&c); /* Lee x y c */
…
Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica
• Función scanf: Formato
Cadena Formato Tipo de Expresión Resultado Impreso
%hd %hi short
se lee un número entero%d %i int
%ld %li long
%hu unsigned short
se lee número entero sin signo%u unsigned int
%lu unsigned long
%ho Short
se lee un número entero en octal%o int
%lo long
%hx %hX Short
se lee un número entero en hexadecimal%x %X int
%lx %lX long
%f %e %E %g %G float
se lee un número real%lf %le %lE %lg %lG double
%Lf %Le %LE %Lg %LG long double
%c char se lee un símbolo ASCII
%s char* se lee una cadena de símbolos
Lenguaje C: SentenciasLenguaje C: Sentencias
• Una sentencia de un programa en Lenguaje C es una instrucción de un
programa. Hay tres tipos de sentencias:
• Sentencias Generales
float espacio,espacio_inicial,tiempo,velocidad;
Scanf(%f,espacio,%f,espacio_inicial…..)
…
espacio=espacio_inicial+velocidad*tiempo;
printf(“Espacio recorrido =%fn”,espacio);
• Sentencia Vacía o Nula
; // sentencia vacía o nula
• Sentencias Compuestas o Bloques
…
{
int i,j,k,m;
…
i=j+k*m
}
…
Lenguaje C: Estructuras de ControlLenguaje C: Estructuras de Control
• Las estructuras o sentencias de control de flujo en C son las siguientes:
• Sentencias Condicionales
• if, if-else
• switch-case
• Operador Condicional ?
• Sentencias Iterativas o Bucles
• while
• do-while
• for
• Sentencias de Salto Incondicional
• continue
• break
• goto
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Sentencia Condicional if:
…
if(expresion_logica)
sentencia;
…
Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta
sentencia. Si expresion_logica se evalúa como falsa (0) entonces
sentencia no se ejecuta y el programa continua ejecutándose en la
siguiente línea.
Ejemplos:
…
if(a>b)
mayor=a;
…
…
if(a>b)
{ // sentencia compuesta
mayor=a;
printf(“mayor=%dn”,mayor);
}
…
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Sentencia Condicional if-else:
…
if(expresion_logica)
sentencia_1;
else
sentencia_2;
…
Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta
sentencia_1. Si expresion_logica se evalúa como falsa (0) entonces
se ejecuta sentencia_2.
Ejemplos:
…
if(a>b)
mayor=a;
else
mayor_o_igual=b;
…
…
if(a>b)
{ // sentencia compuesta
mayor=a;
printf(“mayor=%dn”,mayor);
}
else
{ // sentencia compuesta
mayor_o_igual=b;
printf(“mayor o igual=%dn”,mayor_o_igual);
}
…
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Sentencia Condicional if-else:
Ejemplos:
…
if(a>b)
mayor=a;
else
if(a=b)
igual=a;
else
menor=a;
…
if(i<10)
{
if(j<10)
k=i+j;
}
else
k=10;
…
…
if(a>b)
{ // sentencia compuesta
mayor=a;
printf(“mayor=%dn”,mayor);
}
else
if(a=b) // sentencia compuesta
{ // sentencia compuesta
igual=a;
printf(“igual=%dn”,igual);
}
else
{ // sentencia compuesta
menor=a;
printf(“menor=%dn”,menor);
}
…
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Sentencia Condicional switch:
…
switch(expresion_entera)
{
case expresion_cte_1:
sentencia_1;
[break;]
case expresion_cte_2:
sentencia_2;
[break;]
…
case expresion_cte_n:
sentencia_3;
[break;]
[default:
sentencia_default;]
}
…
• Si expresion_entera es igual a
alguna de la expresiones constantes
{expresion_cte_1, …,
expresion_cte_n} entonces se
ejecuta la sentencia correspondiente
de entre las sentencias
{sentencia_1, …, sentencia_n}.
• Si expresión_entera no coincide con
ninguna de las expresiones
constantes {expresion_cte_1, …,
expresion_cte_n} se ejecuta la
sentencia sentencia_default
asociada con la sentencia default.
• Las sentencias break saltan el resto
de la sentencia condicional switch.
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Sentencia Condicional switch:
Ejemplo:
…
printf (“Introduzca opción?:”);ç
scanf(“%d”,&opcion);
switch(opcion)
{
case 1: a=b+c; break;
case 2: a=b-c; break;
case 3: a=b*c; break;
case 4: a=b/c; break;
case 5: a=b%c; break;
default:
printf(“Error: opción %d no válida.n”,opcion);
}
…
Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales
• Operador condicional ?:
…
(expresion_logica)? expresion_1: expresion_2;
…
Si expresion_logica se evalúa como verdadera (1) entonces se evalua
expresion_1. Si expresion_logica se evalúa como falsa (0) entonces
se evalúa expresion_2.
Ejemplo:
…
a=(a<0)? a+b: a-b;
…
…
// sentencia if-else equivalente
if(a<0) a=a+b;
else a=a-b;
…
Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles
• Sentencia iterativa while:
…
while(expresion_logica)
sentencia;
…
Mientras expresion_logica se evalúe como verdadera (1) se ejecuta
sentencia repetidamente. Cuando expresion_logica se evalúe como
falsa (0) entonces la ejecución continua en la siguiente sentencia de
programa.
Ejemplos: …
a=0;
while(a<b)
a++;
…
…
a=0;
while(a<b)
{ // sentencia compuesta
a++;
printf(“a=%dn”,a);
}
…
Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles
• Sentencia iterativa do-while:
…
do
sentencia;
while(expresion_logica);
…
Inicialmente se ejecuta sentencia una vez.Luego mientras
expresion_logica se evalúe como verdadera (1) sentencia se
ejecuta repetidamente. Cuando expresion_logica se evalúe como falsa
(0) entonces la ejecución continua en la siguiente sentencia de programa.
Ejemplos:
…
a=-1;
do
a++;
while(a<b);
…
…
a=-1;
do
{ // sentencia compuesta
a++;
printf(“a=%dn”,a);
} while(a<b);
…
Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles
• Sentencia iterativa for:
…
for(sentencia_inicializacion;
expresion_logica;
sentencia_actualizacion)
sentencia;
…
Inicialmente se ejecuta sentencia_inicializacion. A continuación
se evalúa expresion_logica. Si se evalúa como verdadera (1) se
ejecuta sentencia, y luego sentencia_actualizacion. Luego se
vuelve a evaluar expresion_logica y si es verdadera se vuelve a
ejecutar sentencia, y luego sentencia_actualizacio. Esto se hará
repetidamente hasta que expresion_logica se evalúe como falsa (0), en
ese punto el bucle finaliza y la ejecución continua en la siguiente sentencia
de programa.
Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles
• Sentencia iterativa for:
Ejemplo:
…
// contando
for(a=0; a<b; a++)
printf(“a=%dn”,a);
…
…
// sentencia while equivalente
a=0;
while(a<b)
{ // sentencia compuesta
a++;
printf(“a=%dn”,a);
}
…
…
// sumando
for(i=0, suma=0; i<n; i++)
{
printf(“Sumando %dn”,i);
suma=suma+i;
}
…
…
// sentencia while equivalente
i=0; suma=0;
while(i<n)
{ // sentencia compuesta
printf(“Sumando %dn”,i);
suma=suma+i;
i++;
}
…
Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional
• Sentencia continue:
…
continue;
…
Se utiliza dentro de sentencias repetitivas o bucles para obligar a la
finalización de la iteración actual y reevaluación de la expresión lógica que
controla la duración del bucle.
Ejemplo: …
// sumando
for(i=-n, suma=0; i<n; i++)
{
if(n<0) continue;
printf(“Sumando %dn”,a);
suma=suma+i;
}
…
…
// sentencia while equivalente
i=-n; suma=0;
while(i<n)
{ // sentencia compuesta
if(n<0) continue;
printf(“Sumando %dn”,a);
suma=suma+i;
i++;
}
…
Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional
• Sentencia break:
…
break;
…
Se utiliza dentro de la sentencia condicional switch, así como en
sentencias repetitivas o bucles para obligar a la finalización de la sentencia
y continuación del programa en la siguiente sentencia de programa.
Ejemplo:
…
// sumando
for(i=0; i<n; i++)
{
if(i==2) break;
printf(“Sumando %dn”,i);
suma=suma+i;
}
…
…
// sentencia while equivalente
i=0; suma=0;
while(i<n)
{ // sentencia compuesta
if(i==2) break;
printf(“Sumando %dn”,i);
suma=suma+i;
i++;
}
…
Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional
• Sentencia goto:
…
goto etiqueta;
…
etiqueta: sentencia;
…
La instrucción goto hace saltar la ejecución del programa a la sentencia
sentencia etiquetada con la etiqueta etiqueta.
Ejemplo:
…
// contando
i=0;
inicio_bucle:
prinft(“i=%dn”,i);
i++;
if(i<n)
goto inicio_bucle;
…
…
// sentencia while equivalente
i=0;
while(i<n)
{ // sentencia compuesta
printf(“i=%dn”,i);
i++;
}
…

Más contenido relacionado

La actualidad más candente

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
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
manual básico de programación en c
manual básico de programación en c manual básico de programación en c
manual básico de programación en c Liz O
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programaTensor
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualFernando Jose
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++yesid19
 
Repaso del lenguaje
Repaso del lenguajeRepaso del lenguaje
Repaso del lenguajeg_torrealba
 
Sintaxis en java
Sintaxis en javaSintaxis en java
Sintaxis en javapbcanessa
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Jennybeatriz1
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionluismart05
 
Introducción
IntroducciónIntroducción
IntroducciónTensor
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datosuanelectromecanica
 

La actualidad más candente (20)

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
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
manual básico de programación en c
manual básico de programación en c manual básico de programación en c
manual básico de programación en c
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programa
 
Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Programacion kmi
Programacion kmiProgramacion kmi
Programacion kmi
 
C# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptualC# documento de texto junto con mapa conceptual
C# documento de texto junto con mapa conceptual
 
Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++Elementos Basicos del Lenguaje C++
Elementos Basicos del Lenguaje C++
 
presentacion
presentacionpresentacion
presentacion
 
Repaso del lenguaje
Repaso del lenguajeRepaso del lenguaje
Repaso del lenguaje
 
Sintaxis en java
Sintaxis en javaSintaxis en java
Sintaxis en java
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
Introducción
IntroducciónIntroducción
Introducción
 
Guia en lenguaje c
Guia en lenguaje c Guia en lenguaje c
Guia en lenguaje c
 
Unidad II
Unidad IIUnidad II
Unidad II
 
Introducción
IntroducciónIntroducción
Introducción
 
Lenguaje de-programación-c
Lenguaje de-programación-cLenguaje de-programación-c
Lenguaje de-programación-c
 
Logica taller de tipo de datos
Logica taller de tipo de datosLogica taller de tipo de datos
Logica taller de tipo de datos
 
Funciones C (gnu/linux)
Funciones C (gnu/linux)Funciones C (gnu/linux)
Funciones C (gnu/linux)
 

Similar a Dev c 1 2011

Introducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxIntroducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxJosé Luis Alonso Ochoa
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje carea21
 
Trabajo Final de Programación
Trabajo Final de ProgramaciónTrabajo Final de Programación
Trabajo Final de Programacióngaby71293
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivasstarduslex
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivasstarduslex
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivastacubomx
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++Idalia Tristan
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cZalimanunezc
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1joeshego
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacionrotflol
 

Similar a Dev c 1 2011 (20)

Introducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptxIntroducción a los Lenguaje de Programación.pptx
Introducción a los Lenguaje de Programación.pptx
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Programación en c
Programación en cProgramación en c
Programación en c
 
Practica
PracticaPractica
Practica
 
Trabajo Final de Programación
Trabajo Final de ProgramaciónTrabajo Final de Programación
Trabajo Final de Programación
 
Introduccion del Lenguaje C
Introduccion del Lenguaje CIntroduccion del Lenguaje C
Introduccion del Lenguaje C
 
IntroLenguajeC.ppt
IntroLenguajeC.pptIntroLenguajeC.ppt
IntroLenguajeC.ppt
 
Fundamentos de Lenguaje C
Fundamentos de Lenguaje CFundamentos de Lenguaje C
Fundamentos de Lenguaje C
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
Lenguajes diapositivas
Lenguajes diapositivasLenguajes diapositivas
Lenguajes diapositivas
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
Manual de c c++
Manual de c c++Manual de c c++
Manual de c c++
 
INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++INSTRUCCIONES BÁSICAS PARA C++
INSTRUCCIONES BÁSICAS PARA C++
 
Apuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje cApuntes1 elementos del lenguaje c
Apuntes1 elementos del lenguaje c
 
Lenguajec 1
Lenguajec 1Lenguajec 1
Lenguajec 1
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
Lenguajec
LenguajecLenguajec
Lenguajec
 
Revista digital
Revista digitalRevista digital
Revista digital
 

Más de Zherisbeth Garcés de Sánchez (6)

Dev c
Dev cDev c
Dev c
 
Intro dev c 2011
Intro dev c 2011Intro dev c 2011
Intro dev c 2011
 
Un gran hombre-ok
Un gran hombre-okUn gran hombre-ok
Un gran hombre-ok
 
Arquitectura sql
Arquitectura sqlArquitectura sql
Arquitectura sql
 
Driver
DriverDriver
Driver
 
Placa base (1)
Placa base (1)Placa base (1)
Placa base (1)
 

Dev c 1 2011

  • 1. Introducción a laIntroducción a la ProgramaciónProgramación Objetivos Al finalizar la asignatura el alumno debe conocer los aspectos fundamentales de los lenguajes de programación, siendo capaz de reconocer los elementos léxicos y sintácticos de un lenguaje. Así mismo, debe conocer los principios básicos de programación: Funcional y Concurrente, pudiendo resolver pequeños problemas siguiendo los principios básicos de programación.
  • 2. Introducción a laIntroducción a la ProgramaciónProgramación Fundamentos y Estructuras deFundamentos y Estructuras de ControlControl
  • 3. Lenguaje C: Estructura de un ProgramaLenguaje C: Estructura de un Programa #include <stdio.h> #include <stdlib.h> # … # … … /* Otras definiciones */ int main(int argc, char *argv[]) { … /* Zona de */ … /* declaración */ … /* de variables */ … /* Zona de */ … /* instrucciones del */ … /* programa principal */ system("PAUSE"); return 0; } Cabecera de Programa: ficheros cabecera y otras definiciones Función main: cuerpo principal del programa NORMALMENTE LA FUNCIÓN MAIN SE ENCUENTRA EN UN FICHERO LLAMADO “main.c”
  • 4. Lenguaje C: CaracterísticasLenguaje C: Características • Algunas características son: • El Lenguaje C es sensible al uso de mayúsculas y minúsculas. • Las sentencias (instrucciones) terminan con el símbolo punto y coma ‘;’ y se componen de palabras reservadas o palabras clave, identificadores, constantes, operadores y separadores. • Se pueden establecer bloques de instrucciones mediante el uso de llaves: los símbolos abre-llave ‘{’ y cierra-llave ‘}’. • Los programas se componen de: • Palabras reservadas o palabras clave. • Variables y funciones de la librería estándar. • Variables y funciones definidas por el programador.
  • 5. Lenguaje C: CaracterísticasLenguaje C: Características • Palabras reservadas o palabras clave auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
  • 6. Lenguaje C: IdentificadoresLenguaje C: Identificadores • Un identificador permite identificar (nombrar) una variable o una función dentro de un programa. Siguen las siguientes reglas: 1. Se forma de una secuencia de símbolos pertenecientes SÓLO al conjunto de símbolos: {‘a’, …, ‘n’, ‘o’, …, ‘z’, ‘A’, …, ‘N’, ‘O’, …, ‘Z’, ‘0’, …, ‘9’, ‘_’}. 2. El primer carácter o símbolo del identificador NO PUEDE SER un dígito numérico. 3. Se distinguen las letras mayúsculas de las minúsculas, así, el identificador “suma” de los identificadores “SUMA”, “Suma”, “sUMa”, etc. 4. Se pueden definir identificadores de hasta 31 símbolos de longitud.
  • 7. Lenguaje C: IdentificadoresLenguaje C: Identificadores • Ejemplos de identificadores válidos son: tiempo, modulo, distancia_total, suma10,_el_producto_, Tiempo, Modulo, Distancia_Total, laSumaDeTodo, elProducto,miVariable, Tu_Variable, estaFuncion, _el_Identificador_ • Ejemplos de identificadores no válidos son: 10_segundos, el-modulo, la distancia total, $dolares, %porciento,6seis6, este-no-es-un-identificador-valido, módulo, estaFunción
  • 8. Lenguaje C: ConstantesLenguaje C: Constantes • Las constantes en C pueden ser de los siguientes tipos: 1. Constantes numéricas: son valores numéricos, o bien, enteros o en notación científica (punto flotante). 2. Constantes carácter: cualquier símbolo o carácter alfanumérico encerrado entre apóstrofos (Ejs.: ‘a’, ‘:’, ‘Z’, ‘+’, …). 3. Cadenas de caracteres: cualquier secuencia de símbolo o caracteres encerrado entre comillas (Ejs.: “esto es una cadena de caracteres”, “Hola Mundo!n”, …). 4. Constantes simbólicas: son constantes que se identifican con un identificador.
  • 9. Lenguaje C: OperadoresLenguaje C: Operadores • Los operadores son símbolos que indican operaciones cuyos operandos son normalmente variables, y/o constantes, así como también funciones. En C hay diferentes tipos de operadores: 1. Aritméticos: { +, -, /, *, %, ++, --}. 2. De asignación: { =, +=, -=, *=, /= }. 3. Relacionales: { ==, <, >, <=, >=, !=}. 4. Lógicos: { &&, ||, ! }. 5. Otros: { &, |, ^, <<, >>, …}
  • 10. Lenguaje C: Separadores y ComentariosLenguaje C: Separadores y Comentarios • Los separadores permiten que los programas sean legibles al permitir separar los diferentes elementos que aparecen en el programas (identificadores, sentencias, …). Los separadores son los llamados símbolos de formato: el espacio en blanco, el tabulador, y el salto de línea. • En el código fuente de un programa el programador puede introducir comentarios para dar mayor legibilidad al mismo. Los comentarios en Lenguaje C deben estar entre los dos pares de símbolos siguientes: • /*: indica comienzo de comentario • */: indica final de comentario • //: indica que el resto de la línea es un comentario Ejemplos: a=b+c; /* aquí se calcula la suma */ printf(“a=%dn”,a); // aquí se imprime la suma
  • 11. Lenguaje C: VariablesLenguaje C: Variables • Tipos de datos fundamentales en C Tipo Base Modificador signed unsigned short long Tipo Carácter char (signed) char unsigned char ---- ---- Tipo Entero int (signed) int unsigned int short (int) long (int) Tipo Real float ---- ---- ---- ---- double ---- ---- ---- long double
  • 12. Lenguaje C: VariablesLenguaje C: Variables • Variables Tipo Carácter Ejemplos: char identificador1 = ‘c’; char identificador2, identificador3; • Contienen un único símbolo o carácter ASCII. • Almacenan un byte de información. 1 byte = 8 bits  2 8 =256 números binarios diferentes
  • 13. Lenguaje C: VariablesLenguaje C: Variables • Variables Tipo Entero Ejemplos: short identificador1 = 345; int identificador2 = -2345; long identificador3= -4352359; • Almacenan números enteros. • Tienen diferentes tamaños: • Entero corto  short (<=4 bytes) • Entero normal  int (>=4 bytes) • Entero largo  long (>= 4 bytes) • Pueden aceptar los siguientes modificadores: • Entero con signo  signed • Entero sin signo  unsigned
  • 14. Lenguaje C: VariablesLenguaje C: Variables • Variables Tipo Real Ejemplos: float identificador1 = -4.4567; double identificador2,identificador3; long double identificador4= 6.19e+23; • Almacenan números reales. • Tienen diferentes tamaños: • Simple precisión  float (4 bytes) • Doble precisión  double (8 bytes) • Cuadruple precisión  long double (16 bytes)
  • 15. Lenguaje C: ConstantesLenguaje C: Constantes • Constantes Enteras Ejemplos: 8797 // constante int o short 0x3ae5 // constante int o short 06573 // constante int o short 7890L // constante long 97987UL // constante unsigned long • Constantes Reales Ejemplos: 1.23 // constante float o double 3.87e-3 // constante float o double -9.005768e-12 // constante float o double
  • 16. Lenguaje C: ConstantesLenguaje C: Constantes • Constantes Carácter Ejemplos: ‘a’ // constante char ‘g’ // constante char ‘A’ // constante char ‘n’ // constante char (salto de línea) ‘0’ // constante char (carácter nulo) ‘t’ // constante char (tabulador horizontal) • Constantes Cadena de Carácteres Ejemplos: “Informática” // constante cadena (string) “Hola Mundo!n” // constante cadena (string) “Esto es una frase” // constante cadena (string)
  • 17. Lenguaje C: ConstantesLenguaje C: Constantes • Constantes Enumeración Ejemplos: enum Dia {lunes, martes, miercoles, jueves, viernes, sabado, domingo}; enum Mes {enero=1, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre}; … Dia diaCita=martes; Mes mesCita=abril;
  • 18. Lenguaje C: ConstantesLenguaje C: Constantes • Variables constante Ejemplos: const int i=50; const long double pi= 3,141592653589; const char unaLetra=‘a’; const char unaCadena[]=“Esto es una cadena”; • Se forman utilizando el cualificador const
  • 19. Lenguaje C: OperadoresLenguaje C: Operadores • Operadores Aritméticos • Suma: + • Resta: - • Multiplicación: * • División: / • Módulo (Resto de División Entera): % Ejemplos: y=a*x*x+b*x+c; b=50%12; // el resultado es 2 z=k*x+(r-909)/((456.78-q)*s); l=2*pi*radio; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a);
  • 20. Lenguaje C: OperadoresLenguaje C: Operadores • Operadores Asignación • Asignación: = • Suma y asignación: += • Resta y asignación: -= • Multiplicación y asignación: *= • División y asignación: /= Ejemplos: t=a*s*s+b*s+c; b+=1; // equivalente a b=b+1; c-=1; // equivalente a c=c-1; d*=k; // equivalente a d=d*k; e/=m; // equivalente a e=e/m;
  • 21. Lenguaje C: OperadoresLenguaje C: Operadores • Operadores Incrementales • Incremento: ++ • Decremento: -- Sólo se pueden utilizar con variables de tipo entero o puntero. Ejemplos: i++; // equivalente a i=i+1; o a i+=1; j--; // equivalente a j=j-1; o a j-=1; a= (i++) + k; // operador de post-incremento b= (++i) + k; // operador de pre-incremento
  • 22. Lenguaje C: OperadoresLenguaje C: Operadores • Operadores Relacionales: expresan condiciones lógicas • Igual que: == • Menor que: < • Mayor que: > • Menor o igual que: <= • Mayor o igual que: => • Distinto que: != Ejemplos: (a<b) // ¿a es menor que b? Depende de a y b (r!=8) // ¿r es diferente de 8? Depende de r SI LA CONDICIÓN ES VERDADERA SE EVALÚA COMO 1, SI ES FALSA SE EVALÚA COMO 0.
  • 23. Lenguaje C: OperadoresLenguaje C: Operadores • Operadores Lógicos: expresan condiciones lógicas compuestas • Y lógico: && • O lógico: || • NO lógico: ! Ejemplos: (a<b) && (k!=l) // ¿a es menor que b Y // k es diferente de 1? // Depende de a, b, k y l (m>=n) || !(q==j) // ¿m es mayor o igual que n O // q no es igual a j? Depende de // m, n, q y j SI LA CONDICIÓN COMPUESTA ES VERDADERA SE EVALÚA COMO 1, SI ES FALSA SE EVALÚA COMO 0.
  • 24. Lenguaje C: OperadoresLenguaje C: Operadores • Otros operadores: • Más unario: + (indica que una variable es positiva) • Menos unario: - (cambia el signo a una variable numérica) • sizeof (indica el tamaño en bytes de una variable) • Operador coma: ,(permite realizar varias sentencias en una sóla línea) • Operador Dirección: & (permite obtener la dirección de memoria donde se almacena una variable) • Operador Indirección: * (permite acceder a la memoria apuntada por una dirección de memoria) Ejemplos: a=-b; r=sizeof(k);
  • 25. Lenguaje C: ExpresionesLenguaje C: Expresiones Ejemplos: x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); a=b=c=d=e=f=1; // multi-asignación a=((b>c)&&(c>d))||((c==e)||(e==b)); // condición // compuesta zmas=sqrt(r*r-x*x-y*y) // semiesfera positiva zmenos=sqrt(r*r-x*x-y*y) // semiesfera negativa
  • 26. Lenguaje C: Precedencia de OperadoresLenguaje C: Precedencia de Operadores Precedencia Asociatividad () [] -> . izda. a dcha. ++ -- ! sizeof() (tipo) + (unario) –(unario) *(indirección) &(dirección) dcha. a izda. * / % izda. a dcha. + - izda. a dcha. < <= > >= izda. a dcha. == != izda. a dcha. && izda. a dcha. || izda. a dcha. ?: dcha. a izda. = += -= *= /= dcha. a izda. , (operador coma) izda. a dcha.
  • 27. Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica • Función printf: … printf(“cadena_formato”,expresion1,expresion2,…); … La función printf permite escribir texto por pantalla. La cadena_formato indica qué es lo que se va a escribir por pantalla en cada utilización de printf. Es posible incluir en cadena_formato referencias a expresiones que tras ser evaluadas deben incluirse en el texto que se imprimirá por pantalla. Ejemplo: … int a=3; float x=23.0; char c=‘A’; printf(“Hola mundo!!n”); printf(“Un entero %dn”,a); printf(“Un real %f ny un char %cn”,x,c); …
  • 28. Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica • Función printf: Formato Cadena Formato Tipo de Expresión Resultado Impreso %d %i short, int número entero %ld %li long %u unsigned short, unsigned int número entero sin signo %lu unsigned long %o [unsigned] short, [unsigned] int número entero octal sin signo %lo [unsigned] long %x %X [unsigned] short, [unsigned] int número entero hexadecimal sin signo %lx %lX [unsigned] long %f float, double, long double número real en coma fija %e %E %g %G float, double, long double número real en notación científica %c char, unsigned char se imprime un símbolo ASCII %s char* se imprime una cadena de símbolos %p void* se imprime el valor de un puntero
  • 29. Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica • Función scanf: … scanf(“cadena_formato”,expresion1,expresion2,…); … La función scanf permite leer texto desde teclado. La cadena_formato indica qué es lo que se va a leer por teclado en cada utilización de scanf. Es posible incluir en cadena_formato referencias a expresiones que tras ser evaluadas deben incluirse en el texto que se imprimirá por pantalla. Ejemplo: … int a; float x; char c; scanf(“%d”,&a); /* Lee un entero y lo almacena en a */ scanf(“%f %c”,&x,&c); /* Lee x y c */ …
  • 30. Lenguaje C: Entrada/Salida BásicaLenguaje C: Entrada/Salida Básica • Función scanf: Formato Cadena Formato Tipo de Expresión Resultado Impreso %hd %hi short se lee un número entero%d %i int %ld %li long %hu unsigned short se lee número entero sin signo%u unsigned int %lu unsigned long %ho Short se lee un número entero en octal%o int %lo long %hx %hX Short se lee un número entero en hexadecimal%x %X int %lx %lX long %f %e %E %g %G float se lee un número real%lf %le %lE %lg %lG double %Lf %Le %LE %Lg %LG long double %c char se lee un símbolo ASCII %s char* se lee una cadena de símbolos
  • 31. Lenguaje C: SentenciasLenguaje C: Sentencias • Una sentencia de un programa en Lenguaje C es una instrucción de un programa. Hay tres tipos de sentencias: • Sentencias Generales float espacio,espacio_inicial,tiempo,velocidad; Scanf(%f,espacio,%f,espacio_inicial…..) … espacio=espacio_inicial+velocidad*tiempo; printf(“Espacio recorrido =%fn”,espacio); • Sentencia Vacía o Nula ; // sentencia vacía o nula • Sentencias Compuestas o Bloques … { int i,j,k,m; … i=j+k*m } …
  • 32. Lenguaje C: Estructuras de ControlLenguaje C: Estructuras de Control • Las estructuras o sentencias de control de flujo en C son las siguientes: • Sentencias Condicionales • if, if-else • switch-case • Operador Condicional ? • Sentencias Iterativas o Bucles • while • do-while • for • Sentencias de Salto Incondicional • continue • break • goto
  • 33. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Sentencia Condicional if: … if(expresion_logica) sentencia; … Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta sentencia. Si expresion_logica se evalúa como falsa (0) entonces sentencia no se ejecuta y el programa continua ejecutándose en la siguiente línea. Ejemplos: … if(a>b) mayor=a; … … if(a>b) { // sentencia compuesta mayor=a; printf(“mayor=%dn”,mayor); } …
  • 34. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Sentencia Condicional if-else: … if(expresion_logica) sentencia_1; else sentencia_2; … Si expresion_logica se evalúa como verdadera (1) entonces se ejecuta sentencia_1. Si expresion_logica se evalúa como falsa (0) entonces se ejecuta sentencia_2. Ejemplos: … if(a>b) mayor=a; else mayor_o_igual=b; … … if(a>b) { // sentencia compuesta mayor=a; printf(“mayor=%dn”,mayor); } else { // sentencia compuesta mayor_o_igual=b; printf(“mayor o igual=%dn”,mayor_o_igual); } …
  • 35. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Sentencia Condicional if-else: Ejemplos: … if(a>b) mayor=a; else if(a=b) igual=a; else menor=a; … if(i<10) { if(j<10) k=i+j; } else k=10; … … if(a>b) { // sentencia compuesta mayor=a; printf(“mayor=%dn”,mayor); } else if(a=b) // sentencia compuesta { // sentencia compuesta igual=a; printf(“igual=%dn”,igual); } else { // sentencia compuesta menor=a; printf(“menor=%dn”,menor); } …
  • 36. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Sentencia Condicional switch: … switch(expresion_entera) { case expresion_cte_1: sentencia_1; [break;] case expresion_cte_2: sentencia_2; [break;] … case expresion_cte_n: sentencia_3; [break;] [default: sentencia_default;] } … • Si expresion_entera es igual a alguna de la expresiones constantes {expresion_cte_1, …, expresion_cte_n} entonces se ejecuta la sentencia correspondiente de entre las sentencias {sentencia_1, …, sentencia_n}. • Si expresión_entera no coincide con ninguna de las expresiones constantes {expresion_cte_1, …, expresion_cte_n} se ejecuta la sentencia sentencia_default asociada con la sentencia default. • Las sentencias break saltan el resto de la sentencia condicional switch.
  • 37. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Sentencia Condicional switch: Ejemplo: … printf (“Introduzca opción?:”);ç scanf(“%d”,&opcion); switch(opcion) { case 1: a=b+c; break; case 2: a=b-c; break; case 3: a=b*c; break; case 4: a=b/c; break; case 5: a=b%c; break; default: printf(“Error: opción %d no válida.n”,opcion); } …
  • 38. Lenguaje C: Sentencias CondicionalesLenguaje C: Sentencias Condicionales • Operador condicional ?: … (expresion_logica)? expresion_1: expresion_2; … Si expresion_logica se evalúa como verdadera (1) entonces se evalua expresion_1. Si expresion_logica se evalúa como falsa (0) entonces se evalúa expresion_2. Ejemplo: … a=(a<0)? a+b: a-b; … … // sentencia if-else equivalente if(a<0) a=a+b; else a=a-b; …
  • 39. Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles • Sentencia iterativa while: … while(expresion_logica) sentencia; … Mientras expresion_logica se evalúe como verdadera (1) se ejecuta sentencia repetidamente. Cuando expresion_logica se evalúe como falsa (0) entonces la ejecución continua en la siguiente sentencia de programa. Ejemplos: … a=0; while(a<b) a++; … … a=0; while(a<b) { // sentencia compuesta a++; printf(“a=%dn”,a); } …
  • 40. Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles • Sentencia iterativa do-while: … do sentencia; while(expresion_logica); … Inicialmente se ejecuta sentencia una vez.Luego mientras expresion_logica se evalúe como verdadera (1) sentencia se ejecuta repetidamente. Cuando expresion_logica se evalúe como falsa (0) entonces la ejecución continua en la siguiente sentencia de programa. Ejemplos: … a=-1; do a++; while(a<b); … … a=-1; do { // sentencia compuesta a++; printf(“a=%dn”,a); } while(a<b); …
  • 41. Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles • Sentencia iterativa for: … for(sentencia_inicializacion; expresion_logica; sentencia_actualizacion) sentencia; … Inicialmente se ejecuta sentencia_inicializacion. A continuación se evalúa expresion_logica. Si se evalúa como verdadera (1) se ejecuta sentencia, y luego sentencia_actualizacion. Luego se vuelve a evaluar expresion_logica y si es verdadera se vuelve a ejecutar sentencia, y luego sentencia_actualizacio. Esto se hará repetidamente hasta que expresion_logica se evalúe como falsa (0), en ese punto el bucle finaliza y la ejecución continua en la siguiente sentencia de programa.
  • 42. Lenguaje C: Sentencias Iterativas o BuclesLenguaje C: Sentencias Iterativas o Bucles • Sentencia iterativa for: Ejemplo: … // contando for(a=0; a<b; a++) printf(“a=%dn”,a); … … // sentencia while equivalente a=0; while(a<b) { // sentencia compuesta a++; printf(“a=%dn”,a); } … … // sumando for(i=0, suma=0; i<n; i++) { printf(“Sumando %dn”,i); suma=suma+i; } … … // sentencia while equivalente i=0; suma=0; while(i<n) { // sentencia compuesta printf(“Sumando %dn”,i); suma=suma+i; i++; } …
  • 43. Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional • Sentencia continue: … continue; … Se utiliza dentro de sentencias repetitivas o bucles para obligar a la finalización de la iteración actual y reevaluación de la expresión lógica que controla la duración del bucle. Ejemplo: … // sumando for(i=-n, suma=0; i<n; i++) { if(n<0) continue; printf(“Sumando %dn”,a); suma=suma+i; } … … // sentencia while equivalente i=-n; suma=0; while(i<n) { // sentencia compuesta if(n<0) continue; printf(“Sumando %dn”,a); suma=suma+i; i++; } …
  • 44. Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional • Sentencia break: … break; … Se utiliza dentro de la sentencia condicional switch, así como en sentencias repetitivas o bucles para obligar a la finalización de la sentencia y continuación del programa en la siguiente sentencia de programa. Ejemplo: … // sumando for(i=0; i<n; i++) { if(i==2) break; printf(“Sumando %dn”,i); suma=suma+i; } … … // sentencia while equivalente i=0; suma=0; while(i<n) { // sentencia compuesta if(i==2) break; printf(“Sumando %dn”,i); suma=suma+i; i++; } …
  • 45. Lenguaje C: Sentencias de Salto IncondicionalLenguaje C: Sentencias de Salto Incondicional • Sentencia goto: … goto etiqueta; … etiqueta: sentencia; … La instrucción goto hace saltar la ejecución del programa a la sentencia sentencia etiquetada con la etiqueta etiqueta. Ejemplo: … // contando i=0; inicio_bucle: prinft(“i=%dn”,i); i++; if(i<n) goto inicio_bucle; … … // sentencia while equivalente i=0; while(i<n) { // sentencia compuesta printf(“i=%dn”,i); i++; } …