Está en la página 1de 20

PROGRAMACIÓN ESTRUCTURADA

M.Sc. William Noel Martínez Orozco

UNAN-León

Información recopilada Plan docente para obtener título de Master UNAN-León realizado por
M.Sc. Raúl Hermógenes Ruiz Cabrera
INDICE

TEMA ELEMENTOS DE LENGUAJE C ............................................................................................................ 1


Caracteres en C ................................................................................................................................... 1
Caracteres especiales y signos de puntuación ........................................................................................ 2
Tipos fundamentales de datos ............................................................................................................ 3
Creación de un enumerado..................................................................................................................... 5
Reglas de los enumerados .................................................................................................................. 5
Literales .................................................................................................................................................. 6
Identificadores ........................................................................................................................................ 8
Palabras claves ........................................................................................................................................ 9
Variables ................................................................................................................................................. 9
Declaraciones de constante simbólicas ................................................................................................ 10
Const ..................................................................................................................................................... 10
Expresiones numéricas ......................................................................................................................... 11
Operadores ........................................................................................................................................... 11
Operadores de relación .................................................................................................................... 12
Operadores lógicos ........................................................................................................................... 13
Operadores unitarios ........................................................................................................................ 14
Operadores a nivel de bits ................................................................................................................ 14
Tabla de la O exclusiva (^) ................................................................................................................. 15
Ejercicio................................................................................................................................................. 17
BIBLIOGRAFÍA BÁSICA ............................................................................................................................... 18
TEMA ELEMENTOS DE LENGUAJE C

CONTENIDOS
(1) Caracteres de C
(2) Tipos fundamentales de datos
(3) Nombre de tipo
(4) Constante, identificadores, palabras clave comentario
(5) Variables declaraciones de constante
(6) Expresiones numéricas, operadores
(7) Expresión de Bool, Expresiones condicionales, prioridades y
orden evaluación

Caracteres en C

El C cuenta con los elementos para trabajar como lo son (caracteres,


secuencias de escape, tipos de datos operadores, etc.)
Los caracteres de C pueden ser dígitos, letras, espacios en blancos,
caracteres especiales, signos de puntuación y secuencias de escape.
LETRAS DÍGITOS Y CARACTERES DE SUBRAYADO
Uso de los caracteres: para formar constantes identificadores y
palabras claves. (C reconoce las letras mayúsculas y minúsculas en
forma distintas)
Letras mayúsculas del alfabeto Inglés
A B C D E F G H I J K L M N O P Q R S T U V W X y Z
Letras minúsculas del alfabeto inglés
a b c d e f g h i j k l m n o p q r s t u v w x y z
Dígitos
0 1 2 3 4 5 6 7 8 9
Subrayado
“ _”

Página 1 de 20
Se denominan espacios en blanco todos los caracteres tabuladores
horizontales, verticales, avance de página y nueva línea.
Los espacios en blancos en exceso son ignorados por el compilador,
estos se usan para hacer programas más legibles.
Ejemplo.

main ()
{
LINEA En BLANCO

ESPACIO EN BLANCO

printf ( “ Hola Que tal !!!\n”); }

Ejemplo.
Otra secuencia de escape especial es el final de fin de fichero (End
Of File)
En Windows Ctrl+Z y Ctrl+ D en UNIX.

Caracteres especiales y signos de puntuación

Son caracteres que indican que un identificador es una función,


matriz, o para identificar operación lógica o de relación

. , ; : ? “ ( ) [ ] { } < ! / | + # % & ^ * - = >


Secuencia de escape
Una secuencia de escape está formada por el carácter \ seguido de una
letra ó combinación de dígitos.

Página 2 de 20
Tipos fundamentales de datos

Existen siete tipos básicos de datos o primitivos todos los demás


tipos de datos se basan en algunos de estos tipos.
 Tipos enteros: char, short, int, long y enum.
 Tipos reales: float y double.
 Tipo especial: void nada. (realmente no es un tipo).
El tamaño y el intervalo de estos tipos de datos varían con cada tipo
de procesador y de compilador. Podemos decir que, en cualquier caso,
char es de 1byte, el tamaño de un int 2 bytes. Los ficheros de
cabecera limits.h y float.h especifican los valores máximo y mínimo de
cada tipo.
A los tipos de datos primitivos pueden tener distintos modificadores
precediéndolos. Un modificador se usa para alterar el significado del
tipo primitivo de forma que se ajuste más precisamente a las
necesidades de cada momento.
Los modificadores son: signed, unsigned
La diferencia entre enteros con o sin signo está en cómo se
interpreta el bit más significativo del entero. Si se especifica
entero con signo el compilador genera código que asume que el bit más
significativo será el bit de signo, si este es 0 entonces es positivo
si es 1 el entero es negativo.
Todos los tipos de datos definidos por el estándar de C.

Página 3 de 20
En la siguiente tabla se especifican unos ejemplos:

Otro tipo de dato es el denominado enum que pertenece a los enteros la


declaración de un tipo enumerado es simplemente una lista de valores
que pueden ser tomados por una variable de ese tipo. Los valores de un
enumerado se representarán con identificadores, que serán las
constantes del nuevo tipo. Ejemplo:
enum dia_semana

{
lunes,
martes,
miércoles,
jueves,
viernes,
sabado,
domingo
} hoy;
enum dia_semana ayer;

Las variables hoy y ayer son de tipo enumerado

Página 4 de 20
Creación de un enumerado

Crear un enumerado supone definir un nuevo tipo de dato, denominado


tipo enumerado.
Sintaxis
enum tipo_enumerado
{
/* identificadores */
};
Cualquier identificador de la lista se le puede asignar un valor
inicial entero por medio de una expresión constante. Los
identificadores sucesivos tendrán valores correlativos a partir de
este.
Ejemplo:
enum colores {
azul,
amarillo,
rojo,
verde=0,
blanco,
negro }color;

En este ejemplo azul =0, amarillo=1, rojo =2 , verde =0, blanco =1,
negro =2.
También es equivalente lo siguiente:
color =rojo;
color = 2;
Reglas de los enumerados
i) Dos o más miembros podrán tener el mismo valor
ii) Un identificador no podrá aparecer en más de un tipo.
iii) No es posible leer o escribir directamente un valor de un tipo
enumerado

Página 5 de 20
Ejemplo:
/* enum.c */
enum colores
{
azul,amarillo,rojo,blanco,negro
};
main()
{
enum colores color; printf (“color”); // leer color del teclado
scanf (“%d”, &color); // Si se introduce 3
printf(“ %d\n”, color); // visualiza 3
}

Literales

Un literal es una expresión de un valor de un tipo primitivo, o bien


una cadena de caracteres ejemplo: 5, 3.14, ’a’, “Hola”, podemos decir
que son valores constantes.
Literales enteros
C permite especificar un literal entero en base 10, 8,16, el signo +
es opcional si el valor es positivo y signo (-) es obligatorio para
valores negativos.
Si literal es decimal y no tiene sufijo, su tipo es el primero de los
tipos int, long int o unsigned long int.
Si es octal o hexadecimal y no tiene sufijo, su tipo es el primero de
los tipos int, unsigned int, long int, unsigned long int. También se
puede indicar explícitamente el tipo de un literal entero con los
sufijos L (long), U (unsigned)ó UL (unsigned long).
Literales enteros, decimales dígito del 0 al 9 pueden repetirse y el
primero nunca cero
Ejemplo:

 4346 constante entera int


 15245 L constante entera unsigned int
 1000 L constante entera long.

Página 6 de 20
Los literales octales
Son uno o más dígitos del 0 al 7 teniendo como inicio siempre cero
Ejemplo:
0326 constante octal
Un literal hexadecimal son dígitos del 0 a 9 y literales A a la F
(Mayúsculas y minúsculas) pueden repetirse siempre comienzan con 0x ó
0X.
Ejemplos:
256 decimal
0400 256 decimal a octal
0x 100 256 decimal a hexadecimal
- 0400 -256 decimal a octal
-0x100 -256 decimal a hexadecimal
Literales reales
Representan a los Números reales, enteros y punto decimal.
Ejemplos:

 -17.24
 14.12
 .008e3
 27E-3
 Se puede añadir una f ó F
 Ejemplo 17.24 F
Literales de un solo carácter
Estos son de tipo char, se representan por un único carácter entre
comillas simple.

 ‘ ‘ espacio en blanco
 ‘x ‘ letra minúscula x
 ‘ \n ‘ cambio de línea
 ‘\x07’ pitido
 ‘\ x1B’ carácter ASCII de Esc.

Página 7 de 20
Literales de cadenas de caracteres
Las cadenas de caracteres se encierran entre comillas dobles ejemplo.

 “León Nicaragua”“
 1.1416”
 “ “ /* esto es una cadena vacía*/
Estas cadenas se almacenan en localizaciones sucesivas de memoria,
cada carácter ocupa un byte y siempre finalizan con \0 (carácter
nulo).

La cadena “león“ representada gráficamente

l e o n \0

Identificadores

En C los nombres de las variables, funciones, etiquetas y otros


objetos definidos por el usuario se denominan identificadores.
Los identificadores deben contener uno o varios caracteres el primero
deberá ser una letra o un subrayado a continuación letras y números
Ejemplo:

Los identificadores podrán ser de cualquier longitud no todos los


caracteres han de ser significativos.

Página 8 de 20
Palabras claves

Estos son identificadores predefinidos que tienen un significado


especial para el compilador de C, quiere decir, que un usuario no
podrá usar estos como sus identificadores propios.
Palabras claves de C

Comentarios
Un comentario es un mensaje a quien lea el código fuente, el objetivo
de esto es explicar las acciones del programa fuente.
Comentario Tradicional comienza con /* y finaliza con */

Variables

Una variable es una posición de memoria con nombre que se usa para
contener un valor y que puede ser modificado por el programa, las
variables deben ser declaradas antes de usarlas.
Sintaxis
tipo lista_de_variables
tipo es cualquier tipo válido con algún modificador
lista_de_variables es uno o más nombres de identificador.

Página 9 de 20
//Ejemplo:
int i,j,l;
short int si;
unsigned int ui;
double salario, gastos;
Nota: el nombre de una variable nada tiene que ver con su tipo.

Declaraciones de constante simbólicas

Una constante simbólica significa decirle al compilador de C el nombre


de la constante y su valor, esto se hace antes de la función principal
o main se utiliza la directriz # define
Sintaxis #define Nombre_contante Valor
Ejemplo:

#define PI 3.1459
#define SL ‘\n’

#define MENSAJE “Pulse una tecla y continua\n”

Const

Cuando se le antepone la palabra reservada const a una variable no


puede ser modificada por el programa. (Se puede iniciar con un valor).
El compilador es libre de situar esta variable en la memoria de solo
lectura.
const double Pi =3.1416; /*esta variable después de iniciada no puede cambiar*/
¿Por qué usar las constantes?
Se utilizan las constantes porque es más fácil de modificar los
programas, una vez definida una variable en un programa si se usa esta
muchas veces en el mismo solo tenemos que modificar en donde la
definimos y nos olvidamos donde y cuantas veces se ha utilizado en el
programa.
Página 10 de 20
Expresiones numéricas
Una expresión es un conjunto de operandos unidos mediante operadores
para especificar una operación, todas las expresiones cuando se
evalúan retornan un valor.
Ejemplo:
a+1;
suma+c;
cantidad*precio;
y=x*x+3*x-2;
Cuando C tiene que evaluar expresiones en las que intervienen
operandos de diferentes tipos, realiza una conversión solo para
realizar las operaciones, los valores de los operandos al tipo del
operando cuya precisión sea la más alta, ejemplo un int es más preciso
que un char, un doble es más preciso que un int.

Operadores

C es un lenguaje muy rico en operadores incorporados, le da más


significado a los operadores que la mayoría de los demás lenguajes de
programación.
Los operandos son símbolos que indican como son manipulados los datos
se clasifican en los siguientes grupos: Aritméticos, relacionales,
lógicos, unitarios, a nivel de bit, de asignación, operadores
condicionales y otros.

Ejemplos
int x,y;

x=5, y =2;
printf(“%d “, x/y); /* mostrará 2*/

printf(“%d “,x%y); /*mostrará 1*/


si tomamos

x=1 ,y =2;
printf(“ %d, %d “ x/y,x%y ); /* se muestra =1 */

Página 11 de 20
Se realiza la conversión de tipo de forma explícita de acuerdo a la
precisión del tipo de dato
Ejemplo
int a=10,b =3,c;

float x=2.of ,y;


y=x+a; /* Resulta 12.0 tipo float, a se convierte a float para realizar esta
operación*/

y =a/b; /*Resulta 3 se convierte a float para asignarlo a y */


c=x/y; /* operación 0.666667 de tipo float se toma solo la parte entera para
asignarlo a c (c=0) */

Operadores de relación

Estos operadores evalúan la igualdad y magnitud; también se denominan


de comparación. Los resultados son verdad ó falso (0 ó 1).
Operadores relación

Ejemplos:
Los operandos tienen que ser de un tipo primitivo.
int x=10, y =0, r=0;

r= x== y ; // r=0 (falso)

r= x> y ; // r=1 (verdad)

r= x>!= y ; // r=1 (verdad)

Página 12 de 20
Un operador de relación equivale a una pregunta relativa de como son
los operandos entre sí.
Esto es x==y (x es igual a y) si respuesta es si (verdadero 1) si no
(falso=0)

Operadores lógicos
El resultado de una operación lógica (AND, OR, XOR, y NOT) es un valor
verdad (1) ó falso(0).

Operadores lógicos

Tabla de verdad de operadores lógicos

Los operadores de relación y lógicos tienen menor nivel de precedencia


que los operadores aritméticos.

Ejemplo:
10 >1+2 // esto se evaluará como 10 > (1+12) resultado es (0)falso

Los resultados de estos operandos siempre es de tipo int, se puede


combinar varias operaciones en una expresión y:
r= 10 >5 && !(10<9) || 3<=4; //resultado r = 1 (verdadero)

Página 13 de 20
Operadores unitarios

Estos operadores se aplican a un solo operando y


son: ! - ~ ++ y –

Ejemplo
int a =2 , b =0, c =0;
c= -a ; // c = -2
c = ~ b ; // c = -1

Operadores a nivel de bits

Estos operadores permiten realizar con sus operandos las operaciones


AND, OR, XOR y desplazamiento bit a bit los operadores tienen que ser
enteros.

Para &, | y ~ NOT (complemento a Uno) están gobernado por la misma


tabla de verdad que su equivalente lógico excepto que trabaja a nivel
de bit.

Página 14 de 20
Tabla de la O exclusiva (^)

Si los operandos tienen igual valor de verdad es falso lo contrario es


verdadero.
Ejemplo
char car_del_moden(void)
{
char c ;
c = leer_moden( );
return( c& 127);
}
La paridad se indica a menudo con el octavo bit, que se pone a cero al
hacer un AND con un byte que tenga los bit del 1 al 7 a uno y el bit 8
a cero.
Así:

Página 15 de 20
La XOR ó o exclusiva, pone a uno sólo uno de los bits que al
comprobarlo sea distintos. Así:
127 ^ 120

Los resultados con operadores de relación y lógicos producen valores


verdadero (1) ó falso (0), así los resultados a nivel de bit producen
valores arbitrarios.
Operadores de desplazamiento de bit >> y << desplazan todos los bit de
una variable a la derecha o a la izquierda según se especifica.
Ejemplo:

Unos de los métodos más sencillos es el de complementar cada byte


usando complemento a uno para invertir cada bit del byte así:

Página 16 de 20
dos complementos a uno producen el mismo número, el primero codifica y
el segundo descodifica.

Ejercicio
Ejercicio #1

Dado los siguientes valores. float x = 2, a = 30, b = 10, d = 15;


Al realizar las siguientes operaciones ¿cuál es el valor de x y b?
1. x = (a - b);
2. --b;
3. x *= ((b - 3) - (d+3)) * (b * 2) / (b - d);
4. b++;
5. b++;

Ejercicio 2
Dado los siguientes valores. int x = 1, n = 10, i = 3;
Al realizar las siguientes operaciones cuales son los resultados:
1. n++; // Incrementa el valor de n en 1.
2. ++n; // Incrementa el valor de n en 1.
3. x = ++n; // Incrementa n en 1 y asigna el resultado a x.
4. x = n++; // Equivale a realizar las dos operaciones
5. i += 2; // Realiza la operación i = i + 2.
6. x *= n - 3; // Realiza la operación x = x * (n-3) y no
7. n >>= 1; // Realiza la operación n = n >> 1 la cual

Ejercicio 3
Al realizar las siguientes operaciones cuales son los resultados:
int r;
r= 10 >5 && !(10<9) || 3<=4;
r= 10 <5 && !(10<9) || 3>=4;
r= 10 >5 && !(10>9) || 3>=4;
r= 10 >5 && !(10>9) || 3<4;

Página 17 de 20
BIBLIOGRAFÍA BÁSICA
Ceballos Fco. Javier C/C++. CURSO DE PROGRAMACIÓN
(Texto Base)2 da. Edición Editorial RA-MA España 2002 ISBN 84-480--6
Dietel – P.J.
Dietel. COMO PROGRAMAR EN C/C++. H.M. 2da. Edición Editorial Prentice
Hall Hispanoamericana, S.A. México-ENGLEWOOD CLUFFS-Londres SYDNEY.
Herbert Schild PROGRAMACIÓN EN TURBO C 4ta. Edición Editorial McGRAW-
HILL/INTERAMERICANA ESPAÑA

Página 18 de 20

También podría gustarte