Professional Documents
Culture Documents
Curso Introductorio Al
Lenguaje De Programacin
En C
Enteros
Variables
Objeto abstracto donde se almacena un valor.
Declaracin
1. Asociar un identificador
2. Reservar espacio en memoria
3. Opcionalmente, asignar un valor (inicializacin)
Tipo
int
unsigned int
short int
unsigned short int
long int
Sintaxis
A.
tipo_de_datos nombre_de_variable;
B.
C.
Rango
[-32,768 , 32,767]
[0, 65,535]
[-32768, 32767]
[0, 65535]
[-2,147,483,648,
2,147,483,647]
[0, 4,294,967,295]
Tamao
Formato
16 bits
16 bits
16 bits
16 bits
32 bits
%d
%u
%d
%u
%ld
32 bits
%lu
Reales
Tipo
Rango
Caracter
Tamao
Formato
float
3.4 * (10**-38) a
3.4 * (10**+38)
4 bytes
%f,%e,%g
double
1.7 * (10**-308) a
1.7 * (10**+308)
8 bytes
%f,%e,%g
3.4 * (10**-4932) a
1.1 * (10**+4932)
16 bytes
long double
Operadores:
Dos
Operandos
1 byte
1 byte
Expresiones Relacionales
variable=expresion
Un
Operando
unsigned char
Tamao
%f,%e,%g
Rango
char
Expresiones Aritmticas
Tipo
Cambio de signo
Incremento
Decremento
++
--
Suma
Resta
Multiplicacin
Divisin
Mdulo
+
*
/
%
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Igual que
Distinto que
<
>
<=
>=
==
!=
Operadores:
Resultado lgico:
falso cero
cierto distinto de cero
Ejemplos:
4 > 8 falso
3 <= 24 cierto
23 == 22 falso
4 != 5 cierto
No confundir asignacin (=) con comparacin (==)
x = 3 es tambin una expresin, no cero cierto
Expresiones Lgicas
Expresiones condicionales
Operadores:
Tabla de verdad
Conjuncin Y lgico
Disyuncin O lgico
Negacin NO lgico
&&
||
!
!A
A&&B
A||B
cierto
cierto
falso
falso
cierto
falso
cierto
falso
falso
falso
cierto
cierto
cierto
falso
falso
falso
cierto
cierto
cierto
falso
Ejemplos:
3 && 0
!(7 > 1)
(x < x - 8) || 1
(5 <= 0) || !(x > x -1)
2 && (4 > 9)
(8 == 4 * 2) && (5 > 2)
Prioridad De
Operadores
falso
falso
cierto
falso
falso
cierto
Ejercicios
1. Realizar un programa que obtenga el volumen de un
cubo.
2. Realizar un programa que obtenga el rea de una
circunferencia y el volumen de una esfera de la
misma longitud de radio.
3. Realizar un programa que obtenga el permetro de un
tringulo escaleno.
4. A partir de una cantidad en segundos, proporcionar a
cuantas horas, minutos y segundos es equivalente.
Operador
Parntesis
Negacin Lgica
Ms Unario
Menos Unario
Incremento
Decremento
Multiplicacin
Divisin
Mdulo
Suma
Resta
Menor que
Menor o igual que
Mayor que
Mayor o igual que
Igual a
Diferente a
Y lgico
O lgico
Asignacin
Smbolo
()
!
+
++
-*
/
%
+
<
<=
>
>=
==
!=
&&
||
= ,*=, /=, %=,
+= ,-=,&=, |=
Asociatividad
Izq. A Der.
Der. A Izq.
Izq. A Der.
Izq. A Der.
Izq. A Der.
Izq. A Der.
Izq. A Der
Der. A Izq.
Estructuras Condicionales
Estructuras:
A. if
B. Switch
En las expresiones relacionales:
a) Falso : valor 0
b) Cierto : cualquier valor distinto de 0
Instruccin if
if (condicin) {
grupo_de_sentencias_1;
}
else {
grupo_de_sentencias_2;
}
Ejemplos:
...
if (n > 0)
if (a > b)
z = a;
else
z = b;
...
switch ( expresin )
{
case constante_1:
{
grupo_de_sentencias_1;
break;
}
case constante_2:
{
grupo_de_sentencias_2;
break;
}
...
case constante_n:
{
grupo_de_sentencias_n;
break;
}
default:
{
grupo_de_sentencias_por_defecto;
break;
}
}
if (condicin_1) {
grupo_de_sentencias_1;
}
else if (condicin_2) {
grupo_de_sentencias_2;
}
...
else if (condicin_N) {
grupo_de_sentencias_N;
}
else {
grupo_de_sentencias_por_defecto;
}
...
if (n > 0)
{
if (a > b)
z = a;
}
else
z = b;
...
Estructura switch
Ejercicios
#include <stdio.h>
void main()
{
// capturar un nmero
switch ( num )
{
case 1 : {
printf("Uno.\n");
break;
}
case 2 : {
printf("Dos.\n");
break;
}
...
case 5 : {
printf("Cinco.\n");
break;
}
default : {
printf("No esperado.\n");
break;
}
}
}
Ejercicios
Estructuras Iteractivas
Ejecucin repetida de un grupo de sentencias:
file
open
close
edit
delete
paste
insert
Estructura while
while (expresin_condicional)
sentencia;
while (expresin_condicional)
{
grupo_de_sentencias;
}
La sentencia o grupo de sentencias se repite hasta que
el valor de la expresin condicional alcance un valor de
falso, o mientras que al evaluar la expresin condicional
de un resultado de verdadero
do {
grupo_de_sentencias;
} while (condicin);
Similar a while
Primero se ejecuta el conjunto de instrucciones y
despus se verifica la condicin
El grupo de instrucciones se ejecuta entre 1 y N veces
Tanto while como do-while suelen usarse cuando el
nmero de iteraciones no se desconoce a priori
Estructura for
Ejemplo
for
i=13
Ejemplo:
for (sentencia_inicial; condicin; incr/decr)
sentencia;
i=0
(i3-i2)
#include <stdio.h>
void main()
{
int i;
float cuad,cubo,suma;
suma = 0;
for (i = 1 ; i <= 13 ; i++) {
cuad = i*i;
cubo = cuad * i;
suma += cubo - cuad;
}
// imprimir el resultado de suma
}
Equivalencia for-while
for (sentencia_inicial; condicin; incr/decr)
{
grupo_de_sentencias;
}
Ejercicios I
Estructuras Iteractivas
1. Escribir un programa que con nmeros capturados indefinidamente
calcule la suma de los 20 primeros nmeros mltiplos de 5 o de 7 y
al cumplirse esta condicin termine.
2. Crear un programa que calcule la potencia de un nmero entero,
solicitando su valor y el del exponente.
sentencia_inicial;
while (condicin) {
grupo_de_sentencias;
incremento/decremento;
}
Ejercicios II
Estructuras Iteractivas
5. Escribir un programa que determine si un nmero entero dado es
primo o no lo es.
6. Desarrollar un programa que calcule el factorial de un nmero
entero ledo por teclado.
Tipos de datos
Estructurados: Tablas
Introduccin
Creacin de tipos de datos complejos: vectores, matrices,
tablas multidimensionales y cadenas de caracteres
Coleccin de datos del mismo tipo bsico
Referenciados mediante un mismo nombre
Acceso a un elemento
nombre_vector[ndice];
Indice entre 0 y N-1 !!!
Ejemplos:
int contador[10];
int i, j, x;
...
int vector[TAM], i;
x = contador[1];
x = contador[i];
contador[i*2+j] = 24;
...
vector[i] = 0;
}
ltimo elemento
del vector
Ejemplo de Vectores
Normalizar un conjunto de nmeros reales
#include <math.h>
define MAX 100
void main ()
{
float v[MAX], modulo;
int i;
/* Lectura del vector */
for (i=0; i<MAX; i++)
scanf("%f", &v[i]);
/* Calcular el mdulo */
modulo = 0.0;
for (i=0; i<MAX; i++)
modulo += (v[i]*v[i]);
modulo = sqrt(modulo);
/* Normalizacin */
for (i=0; i<MAX; i++)
v[i] /= modulo;
/* Escritura del vector */
for (i=0; i<MAX; i++)
printf("v[%d]=%f\n", i, v[i]);
}
Ejemplo de Matrices
#define MAX 20
#include <stdio.h>
void main ()
{
int m[MAX][MAX], mt[MAX][MAX];
int fil, col, i, j;
/* Lectura de la matriz */
// capturar cantidad de fila de matriz en variable fil
// capturar cantidad de columnas de matriz en variable col
for (i=0; i<fil; i++)
for (j=0; j<col; j++)
{
// capturar los elementos m[i][j]
}
/* Traspuesta */
for (i=0; i<fil; i++)
for (j=0; j<col; j++)
mt[j][i] = m[i][j];
/* Escritura de la matriz */
for (i=0; i<fil; i++)
for (j=0; j<col; j++)
// imprimir elementos mt[i][j]
}
Tablas
multidimensionales
Tablas
multidimensionales
Declaracin:
tipo_de_datos nombre_tabla[tam1][tam2]...[tamN];
Acceso
nombre_tabla[ndice1][ndice2]...[ndiceN]
Inicializacin de Cadenas
Cadenas de caracteres
Vectores de tipo caracter (char) con un tratamiento
especial
El ltimo elemento til del vector debe ser el caracter nulo
(cdigo ASCII 0) \0
Cadena de N caracteres declarar un vector con N+1
elementos
Ejemplo: char cadena[6]; reserva suficiente espacio para
almacenar una cadena de hasta 5 caracteres:
Cadena vaca:
char cadena[12] = "Una frase";
...
cadena = \0; /* Ahora es una cadena vacia */
10
Ejercicios I de Arreglos
Ejercicios II de Arreglos
11