Vous êtes sur la page 1sur 12

Universidad Autnoma de Baja California

Unidad II
Introduccion al lenguaje de programacin en C

Coronel Valenzuela Luis Antonio


Marco Cabrera

10/noviembre/2016

UNIDAD 2: Introduccin al lenguaje de programacin C


2.1 Conceptos bsicos de programacin estructurada
2.1.1 Definicin de programacin
2.1.2 Definicin de lenguaje de programacin
2.1.3 Definicin de programa
2.1.4 Paradigma de la programacin estructurada
2.2 Estructura bsica de un programa
2.2.1 Comentarios
2.2.2 Declaracin de archivo de cabecera (directivas de preprocesador)
2.2.3 Prototipos de funcin
2.2.4 Declaracin de variables y constantes
2.2.5 La funcin principal main()
2.2.6 Definicin de otras funciones
2.3 Zonas de memoria
2.3.1 Tipos de datos
2.3.2 Identificadores
2.3.3 Palabras reservadas
2.3.4 Definicin y declaracin de variables
2.3.5 Definicin y declaracin de constantes
2.4 Operadores
2.4.1 Operadores de asignacin y expresin
2.4.2 Operadores aritmticos, de relacin y lgicos
2.4.3 Operadores de incremento y decremento
2.4.4 Jerarqua de operadores
2.5 Expresiones bsicas
2.5.1 Sentencias de asignacin
2.5.2 Expresiones aritmticas, relacionales y lgicas
2.5.3 Funciones de entrada/salida [scanf(), printf()]
2.5.3.1 Especificador de formato
2.5.3.2 Secuencias de escape
2.5.4 Funciones matemticas (math.h)

2.2 Conceptos bsicos de la programacin estructurada

Lenguaje C es un lenguaje de programacin estructurado de proposito general.


Algunas de sus caractersticas es el uso a un nivel ms bajo, entre lenguaje
mquina y el lenguaje de alto nivel.
El lenguaje C se origina con el lenguaje BCPL, creado por Martin Richards,
influyo en el desarrollo del lenguaje B implementado por Ken Thompson y su
vez permitio el desarrollo del lenguaje C , implementado por Dennis Ritchie en
1971.
Para 1973 El sistema operativo UNIX estaba escrito en lenguaje C.
El lenguaje C la unidad bsica de programacin es la funcin, los programas
estn formados por mdulos. Cada mdulo realiza una tarea especfica y es un
subprograma independiente. Los programas estructurados tienen un conjunto
de mdulos relacionados logicamente como una unidad integrada.

2.2.1 Definicion de programacin


Es un conjunto de reglas semnticas as como sintcticas que los
programadores usan para la codificacin de instrucciones de un programa o
algoritmo de programacin.

2.2.2 Definicion de lenguaje de programacin


Un lenguaje de programacin consiste en todos los smbolos, caracteres y
reglas de uso que permiten a las personas "comunicarse" con las
computadoras. Existen varios cientos de lenguajes y dialectos de programacin
diferentes. Algunos se crean para una aplicacin especial, mientras que otros
son herramientas de uso general ms flexibles que son apropiadas para
muchos tipos de aplicaciones. En todo caso los lenguajes de programacin
deben tener instrucciones que pertenecen a las categoras ya familiares de
entrada/salida, clculo/manipulacin de textos, lgica/comparacin y
almacenamiento / recuperacin.

2.1.3 Definicin de programa


Un programa es un conjunto de instrucciones u rdenes basadas en un
lenguaje de programacin que una computadora interpreta para resolver un
problema o una funcin especfica.

2.1.4 Paradigma de la programacin estructurada


Un paradigma de programacin es el que determina la visin y mtodos de un
programador en la construccin de un programa o subprograma. Diferentes
paradigmas resultan en diferentes estilos de programacin y en diferentes

formas de pensar la solucin de problemas cabe mencionar que con la solucin


de mltiples problemas se construye una aplicacin.

2.2 Estructura bsica de un programa


Todo programa escrito en C consta de una o ms funciones, una de las cuales
se llama main. El programa siempre comenzar por la ejecucin de la
funcin main. Cada funcin debe contener:

Una cabecera de la funcin, que consta del nombre de la funcin,


seguido de una lista opcional de argumentos encerrados con
parntesis.

Una lista de declaracin de argumentos, si se incluyen estos en la


cabecera.

Una sentencia compuesta, que contiene el resto de la funcin.

Los argumentos son smbolos que representan informacin que se le pasa a la


funcin desde otra parte del programa . (Tambin se llaman parmetros
los argumentos).

Cada sentencia compuesta se encierra con un par de llaves, {.....}. Las llaves
pueden contener combinaciones de sentencias elementales (denominadas
sentencias de expresin) y otras sentencias compuestas. As las sentencias
compuestas pueden estar anidadas, una dentro de otra. Cada sentencia de
expresin debe acabar en punto y coma (;).

Los comentarios pueden aparecer en cualquier parte del programa, mientras


estn situados entre los delimitadores /* ................ */ (por ejemplo: /*esto es
un ejemplo*/). Los comentarios son tiles para identificar los elementos
principales de un programa o simplemente para orientar a un posible usuario
de ese cdigo.

2.3 Zonas de memoria


El compilador asigna un espacio determinado para las variables y genera las
referencias para accesar a las variables del stack y de la zona esttica. El
tamao de las variables de estas zonas no puede cambiarse durante la
ejecucin del programa, es asignado en forma esttica. El tiempo de vida de
las variables de la zona esttica es la duracin del programa; las variables
denominadas automticas, o en la zona del stack, existen durante la ejecucin
de la funcin que las referencia. Los argumentos y variables locales, son
asignados y desasignados en forma dinmica durante la ejecucin de las
funciones; pero en forma automtica, el programador no tiene responsabilidad
en ese proceso. Esta organizacin permite direccionar eficientemente variables
que sern usadas frecuentemente; a la vez posibilita ahorrar espacio de
direccionamiento ya que se puede reutilizar el espacio de memoria dedicado a
la funcin cuando sta termina; y tambin posibilita el diseo de funciones
recursivas y reentrantes, asociando un espacio diferente para las variables por
cada invocacin de la funcin. Es importante notar que varias funciones
pueden emplear los mismos nombres para las variables locales y argumentos y
esto no provoca confusin; existe independencia temporal de las variables de
una funcin. Si se emplea una global, con igual nombre que una local, dentro
de la funcin se ve la local; y fuera existe la global. Por la misma razn, no
pueden comunicarse los valores de variables locales de una funcin a otra.
Cuando un programa se carga en la memoria, desde el disco, slo se traen la
zona de cdigos y los datos de la zona esttica. Las zonas de stack y heap, son
creadas en memoria antes de la ejecucin del programa.
2.3.1 Tipos de datos
Una variable es un objeto del lenguaje cuyo valor se puede cambiar. Antes de
utilizar una variable sta debe de ser declarada. Al declarar una variable, se le
asocia un identificador, es decir, un nombre, con un tipo de almacenamiento
cuya forma determina la visibilidad y existencia de la variable.
El tipo de la variable nos indica el conjunto de valores que puede tomar y las
operaciones que pueden realizarse con ella. Existen cinco tipos de datos
bsicos en C:

Tipos de
Datos
int

Descripcin
Cantidad entera

Memoria
2 bytes o una
palabra (vara segn

compilador).
char

Carcter

1 byte.

float

Almacena valores reales en punto


flotante.

1 palabra (4 bytes).

double

Almacena valores reales en doble


precisin.

2 palabras (8 bytes).

void

Se utiliza para definir una funcin que no


devuelve ningn valor o declarar punteros
genricos (lo veremos ms tarde).

Estos tipos bsicos admiten una modificacin del rango de valores, aplicando
las siguientes palabras reservadas:

short (corto).

long (largo).

signed (con signo).

unsigned (sin
signo).

Las modificaciones se aplican a los tipos int y char, a excepcin del


modificador long que tambin puede aplicarse al tipo double. Las posibles
combinaciones son:

TIPO

Nmero
de bits

Rango

char

-128 a 127

unsigned
8
char

0 a 255

signed
char

-128 a 127

short

16

-32768 a 32767

int

16

-32768 a 32767

unsigned
16
int

0 a 65535

signed
int

16

-32768 a 32767

short int 16

-32768 a 32767

unsigned
16
short int

0 a 65535

signed
16
short int

-32768 a 32767

long int

32

-2147483648 a
2147483647

signed
long int

32

-2147483648 a
2147483647

unsigned
32
long int

0 a 4294967295

long

-2147483648 a
2147483647

32

unsigned
32
long

0 a 4294967295

float

32

3.4E-38 a 3.4E+38

double

64

1.7E-308 a
1.7E+308

long
double

64 80 1.7E-308 a
(segn
1.7E+308 3.4Eversin). 4932 a 1.1E+4932

2.3.2 Identificadores
La mayora de los elementos de un programa se diferencian entre s por su
nombre. Por ejemplo, los tipos de datos bsicos en lenguaje C se nombran
como:
char, int, float, double y void
Cada uno de ellos es un identificador. Un identificador es el nombre que se le
da a un elemento de un algoritmo (o programa). Por ejemplo, el tipo de dato int
hace referencia a un tipo de dato que es distinto a todos los dems tipos de
datos, es decir, los valores que puede tomar un dato de tipo entero, no son los
mismos que los que puede tomar un dato de otro tipo.
Los identificadores char, int, float, double y void estn predefinidos, forman
parte del lenguaje C. No obstante, en el cdigo de un programa tambin
pueden existir identificadores definidos por el programador. Por ejemplo, un
programa puede utilizar variables y constantes definidas por el programador.
En lenguaje C, a la hora de asignar un nombre a un elemento de un programa,
se debe tener en cuenta que todo indenficador debe cumplir las siguientes
reglas de sintaxis:
Consta de uno o ms caracteres.
El primer carcter debe ser una letra o el carcter subrayado (_), mientras que,
todos los dems pueden ser letras, dgitos o el carcter subrayado (_). Las
letras pueden ser minsculas o maysculas del alfabeto ingls. As pues, no
est permitido el uso de las letras '' y ''.
No pueden exitir dos identificadores iguales, es decir, dos elementos de un
programa no pueden nombrarse de la misma forma. Lo cual no quiere decir
que un identificador no pueda aparecer ms de una vez en un programa.
De la segunda regla se deduce que un identificador no puede contener
caracteres especiales, salvo el carcter subrayado (_). Es importante resaltar
que las vocales no pueden llevar tilde ni diresis.
2.3.3 Palabras reservadas
2.3.4 Definicin y declaracin de variables
2.3.5 Definicin y declaracin de constantes
2.4 Operadores
La operacin ms importante en cualquier lenguaje de programacin es la
asignacin:

DdF

Descripcin

Asignacin

En C hay muchos operadores de asignacin que sern en realidad


simplificaciones de expresiones ms complejas, como las auto-operaciones
(+=, -=, *=, /=, &=, ...) y los pre/post incrementos/decrementos (++, --).
En general estas expresiones no podrn ser utilizadas en los diagramas de
flujo.
Operadores aritmticos
Cabe destacar que se diferencian la divisin entera y la divisin real, segn los
operandos.
DdF

Descripcin

Suma, adicin

Resta, sutraccin

Multiplicacin, producto

Div

Cociente divisin entera

Mod

Resto divisin entera

Divisin

Operadores relacionales
DdF

Descripcin

>

>

Mayor

>=

Mayor o igual

<

<

Menor

<=

Menor o igual

==

Igual

!=

Diferente

Operadores lgicos
Los operandos son considerados falsos (valor 0) ciertos (valor distinto de 0).
El resultado siempre es 0 1.
DdF

Descripcin

&&

And, y, conjuncin

||

Or, o, disyuncin

Not, no, negacin

Para estudiar el resultado se utilizan las tablas de verdad.

Operadores bit a bit


Afectan a los operandos bit a bit, por lo que se aplica la operacin lgica a cada
uno de ellos. El resultado bit a bit es 0 1 pero la composicin de estos
resultados no tiene porqu ser 0 1, como era el caso en los operadores
lgicos.
DdF

Descripcin

AndBB

&

And bit a bit

OrBB

Or bit a bit

CompBB

Complemento a uno o negacin bit a bit

XorBB

O-exclusiva bit a bit

Las tablas de verdad, aplicadas bit a bit a los operandos, son:

Operador condicional
Es un operador ternario, es decir, tiene tres operandos.
Su funcionamiento es el siguiente: para una
ejecucin c ? e1 : e2 siendo c, e1 y e2 tres expresiones,
Se evala c
Si el resultado es cierto (es decir, distinto de cero)
se evala e1 y ste sera el resultado.
Si no (el resultado es falso o cero)
se evala e2 y ste sera el resultado.
Ejemplos. Para x = 4, y = 2, z = 7:
La expresin x >= 5? 1:0 se evala a 1
La expresin x >= 5? y:z se evala a 7
La expresin x <= 5? y:z se evala a 2
La expresin x ? z+y:z-y se evala a 9
La expresin x >= 0 ? sqrt(x):0 se evala a 2.0 (sqrt: raz cuadrada, prototipo
en math.h)
DdF

Descripcin

:?

:?

Operador condicional c ? e1 : e2

Precedencia y asociatividad

Vous aimerez peut-être aussi