ELEMENTOS BASICOS DE UN PROGRAMA

LOS ELEMENTOS BASICOS CONSTITUTIVOS DE UN PROGRAMA O ALGORITMO SON:

PALABRAS RESERVADAS (INICIO,FIN, SI-ENTONCES,…ETC.)

DENTIFICADORES (NOMBRES DE VARIABLES, PROCEDIMIENTOS, FUNCIONES,..ETC)

CARACTERES ESPECIALES (COMA, APOSTROFO,ETC)

CONSTANTES

VARIABLES

EXPRESIONES

NSTRUCCIONES

OTROS ELEMENTOS DEL PROGRAMA

l BUCLES

l CONTADORES

l ACUMULADORES

l INTERRUPTORES

l ESTRUCTURAS

1. SECUENCIALES

2. SELECTIVAS

3. REPETITIVAS


ETAPAS EN LA CONSTRUCCION DE UN PROGRAMA














DEFINICION DE COMPILADOR

UN COMPILADOR ES UN PROGRAMA QUE TRADUCE UN PROGRAMA EN LENGUAJE DE ALTO NIVEL, TAL COMO C / C++ /JAVA , ETC EN UN PROGRAMA DE UN LENGUAJE MAS SENCILLO QUE LA COMPUTADORA PUEDE COMPRENDER.

PARTES DEL COMPILADOR

ESCANER

Conocido también como analizador léxico, es el componente que clasifica cada instrucción y los somete a un diccionario nos dice si hay expresiones escritas incorrectamente.

PARSER

También conocido como analizador sintáctico, es el componente que verifica el orden adecuado de las instrucciones de un programa, nos avisa si hay alguna incoherencia en la secuencia de las instrucciones.

SINTETIZADOR

Es el modulo que genera el código binario (0011101001) que será ejecutado por el ordenador o computadora

PROGRAMA OBJETO (.OBJ)

Es el programa traducido por el compilador interprete (necesita del programa de alto nivel) a lenguaje de bajo nivel.

ENLAZADOR O LINKEADOR

Es el programa que pasa el programa objeto a programa ejecutable.

PROGRAMA EJECUTABLE (.EXE)

Es el programa traducido por el compilador traductor (no necesita del programa de alto nivel) para pasar a lenguaje de bajo nivel.








LENGUAJE C

DEFINICION


  • C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. Es un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se pueden desarrollar cualquier tipo de aplicación.
  • La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. El primer compilador de C fue escrito por Dennis Ritchie

CARACTERISTICAS DEL LENGUAJE C


  • El lenguaje C se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (Por ejem: Basic). Los compilados convierten el código fuente en un fichero objeto y éste en un ejecutable. Este es el caso del lenguaje C.
  • Podemos decir que el lenguaje C es un lenguaje de nivel medio, ya que combina elementos de lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques dentro de otros procedimientos. Hay que destacar que el C es un lenguaje portable, ya que permite utilizar el mismo código en diferentes equipos y sistemas informáticos: el lenguaje es independiente de la arquitectura de cualquier máquina en particular.

ESTRUCTURA DE UN PROGRAMA EN C

Todo programa en C consta de una o más funciones, una de las cuales se llama main. Todo programa en C debe contener al menos la función main(), desde la cual es posible llamar a otras funciones.

Cada función se designa con una cabecera, compuesta por el nombre de la misma y la lista de argumentos (si los hubiese), la declaración de las variables a utilizar y la secuencia de sentencias a ejecutar.

Ejemplo:

directivas

constantes

declaraciones de funciones

declaraciones de variables globales

main( )

{

declaración de variables locales

cuerpo de la función principal

}

funcion_1( )

{

declaración de variables locales

cuerpo de la función_1

}

Comentarios

A la hora de programar es conveniente añadir comentarios para poder saber que es lo que hace cada parte del código. Los comentarios facilitan el trabajo a otros programadores que puedan utilizar nuestro archivo fuente.

Para poner comentarios en un programa escrito en C usamos los símbolos /* y */ o el símbolo //. Los comentarios no son tomados en cuenta por el compilador.

Ejemplo:

/* Un coment

ario también puede

estar escrito en varias líneas */

O

// Un comentario también puede

// estar escrito en varias líneas


TIPOS DE DATOS

Tipos

Básicamente existe cuatro tipos de datos, de los cuales se puede definir otros tipos de datos

TIPO Tamaño Rango de valores

char 1 byte -128 a 127

int 2 bytes -32768 a 32767

float 4 bytes 3'4 E-38 a 3'4 E+38

double 8 bytes 1'7 E-308 a 1'7 E+308

Calificadores de tip

o

Los calificadores de tipo tienen la misión de modificar el rango de valores de un determinado tipo de variable. Estos calificadores son cuatro:

Signed: Le indica a la variable que va a llevar signo.

tamaño rango de valores

signed char 1 byte -128 a 127

signed int 2 bytes -32

768 a 32767

Unsigned: Le indica a la variable que no va a llevar signo (valor absoluto).

tamaño rango de valores

unsigned char 1 byte 0 a 255

unsigned int 2 bytes 0 a 65535

Short: Rango de valor

es en formato corto (limitado).

tamaño rango de valores

short char 1 byte -128 a 127

short int 2 bytes -32768 a 32767

Long: Rango de valores en formato largo (ampliado).

tamaño rango de valores

long int 4 bytes -2.14

7.483.648 a 2.147.483.647

long double 10 bytes -3'36 E-4932 a 1'18 E+4932


Archivos de Cabecera

En la programación en C e

s posible utilizar funciones que no estén incluidas en el propio programa. Para ello utilizamos la directiva #include, que nos permite añadir librerías o funciones que se encuentran en otros ficheros a nuestro programa


























ALGEBRAICAS

exp(n) devuelve e (2,7182818) elevado a la n.

pow(b,n) devuelve b elevado a la n

log(n) devuelve el logaritmo natural de x

logio(x) devuelve el algoritmo decimal de x

sqrt(x) devuelve la raíz cuadrad

a de x

ceil(x) devuelve el menor entero de los enteros mayores a x

floor(x) devuelve el mayor entero de los enteros menores a x

abs(x) devuelve el valor absoluto de x

labs(x) igual al anterior pero x está dado en entero longint

fabs(x) igual al anterior pero x es

tá dado en double

modf(n&x) devuelve la parte fraccionaria de n y la parte entera la guarda en x.

rand( ) devuelve un entero en el rango comprendido entre 0 y 32767

srand(exp) produce la generación aleatoria del número.

randomize( ) utiliza el reloj del computador para generar el número

aleatorio (time.h, stdlib.h)

random(n) devuelve un número entero aleatorio dentro del rango de 0

an-1. (stdlib.h)




















PARA BUSCAR CARACTERES EN UNA CADENA

strchr(c,ch) devuelve los caracteres de la cadena desde donde

encontró por primera vez el carácter ch.

strrchr(c,ch) devuelve los caracteres de la cadena desde donde

encontró por última vez el carácter ch.

strpbrk(c1,c2) devuelve los caracteres de c1 desde donde encontró el

primer carácter de c2.

strspn(c1,c2) devuelve el número de caracteres comunes de c1 y c2.

strcspn(c1,c2) devuelve el número de caracteres que están en c1 y no en c2 hasta el primer carácter común.

strstr(c1,c2) devuelve los caracteres desde donde encontró c2 en caso que no sea una subcadena devuelve el puntero nulo.

PARA COMPARAR

strcmp(c1,c2) devuelve un número luego de efectuar la comparación

entre c1 y c2.

strncmp(c1,c2,n) igual al anterior pero hace la comparación de los n
primeros caracteres. (0 si son iguales, >0 si c1>c2, >0 si c1>c2)

OTRAS

strlen(c) devuelve la longitud sin contar el delimitador nulo.

strlwr(c) devuelve la cadena en minúscula excepto la ñ.

strupr(c) devuelve la cadena en mayúscula excepto la ñ.

strnset(c,ch,n) coloca ch en los primeros n caracteres de c.

strrev(c) invierte la cadena, el único carácter que respeta es el delimitador nulo.

memset(d,c,n) fija los primeros n caracteres de la cadena d con el carácter c.











OPERADORES ARITMETICOS Y DE ASIGNACION

Permiten realizar operaciones matemáticas en lenguaje C.

Operadores aritméticos

Existen dos tipos de operadores aritméticos:

Los binarios:

+ Suma

- Resta

* Multiplicación

/ División

% Módulo (resto)

y los unarios:

++ Incremento (suma 1)

-- Decremento (resta 1)

- Cambio de signo

Jerarquía de los operadores

Es importante tener en cuenta la precedencia de los operadores a la hora de trabajar con ellos:

( ) Mayor precedencia

++, --

*, /, %

+, - Menor precedencia













ESTRUCTURAS SECUENCIALES

Es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. La estructura secuencial tiene una entrada y una salida. Su representación gráfica es la siguiente:













Pseudocodigo de una Estructura Secuencial

Inicio

:

:

acciones

:

:

fin

Ejemplo:

l Calcular el salario de un trabajador, conociendo el número de horas trabajadas, el precio de la hora de trabajo y considerando unos descuentos fijos al sueldo por concepto de impuestos del 20%.

Inicio

Var: nh,ph,neto,desc,pago:Real

Escribir (“Ingresar horas trabaja

das”)

Leer (nh)

Escribir (“Ingresar precio por hora”)

Leer (ph)

neto nh * ph

desc neto * 0.20

pago neto - desc

Escribir (“El salario es:”, pago)

Fin











ESTRUCTURAS SECUENCIALES

ESTRUCTURAS SELECTIVAS

Los controles que se manejan en esta estructura son:

· IF (Si)

· ELSE (Según Sea)

Este tipo de sentencias permiten variar el flujo del programa en base a unas determinadas condiciones. Existen varias estructuras diferentes:

Estructura IF...ELSE

Sintaxis:

if (condición es verdad)

acción1;

else

acción2;

La estructura selectiva permite la realización de una instrucción u otra según un criterio o condición, y solo una de estas instrucciones se ejecutará.

Su estructura es:

Si (condición es Verdadera) entonces

Acción A

sino

Acción B

Finsi


ESTRUCTURAS REPETITIVAS

ITERACION: CICLO

La iteración simplemente significa hacer algo en forma repetida. En programación a esto se le llama ciclo porque la estructura de control iteración
ocasiona que el programa fluya entrando en un ciclo.

ESTRUCTURAS DE CONTROL REPETITIVO
  • WHILE
  • DO…WHILE
  • FOR( inicialización; condición; incremento)
SENTENCIA: WHILE

SINTAXIS: WHILE (CONDICION)
{

SENTENCIAS;
}

SENTENCIA WHILE

Con esta sentencia se controla la condición antes de entrar en el bucle. Si ésta no se cumple, el programa no entrará en el bucle. Naturalmente, si en el interior del bucle hay más de una sentencia, éstas deberán ir entre llaves para que se ejecuten como un bloque





















SENTENCIA: DO…WHILE

SINTAXIS:
DO
{
SENTENCIAS;

}


WHILE (CONDICION)

Con esta sentencia
se controla la condición al final del bucle. Si ésta se cumple, el programa vuelve a ejecutar las sentencias del bucle. La única diferencia entre las sentencias while y do...while es que con la segunda el cuerpo del bucle se ejecutará por lo menos una vez.

EJEMPLO: DO…WHILE













SENTENCIA FOR

SINTAXIS:

FOR (inicialización; condición; incremento)

{

sentencias;

}


SENTENCIA: FOR
















  • HACER EL ALGORITMO QUE CALCULE EL FACTORIAL DE UN NUMERO N.
  • Si N=5
  • FACTORIAL DE 5 ES= 1*2*3*4*5=120

EJEMPLO: SENTENCIA FOR






FUNCIONES Y PROCEDIMIENTOS

Las funciones generan retorno de un valor. Una función es una colección independiente de declaraciones y sentencias, generalmente enfocadas a realizar una tarea específica.

• Los procedimientos realizan parte del proceso de un programa

• El C++, no diferencia entre ambas las trabaja igual.












Modulo principal

• Se trabaja con un modulo principal, el cual contiene las llamadas a las funciones y/o procedimientos a realizar.
















Por ejemplo:

Trabajando con funciones programa que calcule la suma de 2 números.































El pseudocodigo será:

Inicio
Var: a,b,s: real
Escribir (“Ingresar primer numero”)
Leer (a)
Escribir (“Ingresar segundo numero”)
Leer (b)
s ß suma (a,b)
Escribir (“La suma es: ” , s)
Fin


Funcion suma (x:real , y:real)
Var: suma: real
suma ß x + y
retornar (suma)
Fin-función