You are on page 1of 12

UNIDAD 3 INTRODUCCIN A LA PROGRAMACIN DE UN LENGUAJE

ESTRUCTURADO.
3.1 INTRODUCCIN A LA PROGRAMACIN.
Se llama Programacin a la implementacin de un algoritmo en un determinado lenguaje
de programacin, para realizar un programa.
Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de
seguirse para resolver un problema.
Programa (Software en ingls) es una secuencia de instrucciones que una computadora
puede interpretar y ejecutar.
El proceso de creacin de software es materia de la ingeniera del software, una de las
ramas propias de la Ingeniera Informtica.
Segn Niklaus Wirth un programa est formado por algoritmos y estructura de datos.
Se han propuesto diversas tcnicas de programacin, cuyo objetivo es mejorar tanto el
proceso de creacin de software como su mantenimiento. Entre ellas se pueden
mencionar la programacin lineal, estructurada, modular y orientada a objetos.

Caractersticas generales que debe reunir un programa y que influyen en su calidad

Legibilidad: El programa deber ser claro y sencillo de tal forma que facilite su
lectura y compresin.
Fiabilidad: El programa debe ser claro y sencillo de tal forma que facilite su lectura
y compresin
Portabilidad: Debe permitir su codificacin en distintos lenguajes y su instalacin
en distintos sistemas
Modificabilidad: El programa ha de facilitar su mantenimiento; es decir las
modificaciones y actualizaciones necesarias para adaptarlo a 1 nueva situacin.
Eficiencia: Se deben aprovechar al mximo los recursos del ordenador
minimizando la memoria utilizada y el tiempo de proceso o ejecucin siempre que
no sea a costa de las anteriores caractersticas.

Fases para la resolucin de problemas con una computadora

Anlisis: Comprender y definir el problema.
Desarrollo de la solucin o algoritmo: La esencia lgica de pasos para resolver el
problema.
Trascripcin de la solucin a 1 lenguaje de programacin.
Prueba: Seguir los pasos para planificar que la solucin resuelve verdaderamente
el problema.


Definiciones de lenguaje de programacin

Un lenguaje de programacin es 1 lenguaje que nos permite comunicarnos con 1
ordenador.
Es una conversin para escribir descripciones que pueden ser adecuadas. Uno de los
elementos ms importantes en la tarea de programacin es el lenguaje que vamos a usar;
el lenguaje elegido fuerza al programador a pensar de una forma determinada influyendo
en la calidad de los programas desarrollados.
Es una notacin para escribir programas a travs de los cuales podemos comunicarnos con
el Hardware y dar as las rdenes adecuadas para la realizacin de 1 determinado proceso.
Un lenguaje Viene de programacin viene definido por una gramtica o conjunto de reglas
que se aplican a un alfabeto constituido por el conjunto de signos utilizados. Los distintos
niveles de programacin existentes nos permiten acceder al Hardware de tal forma que
segn utilicemos un nivel u otro as tendremos que utilizar un determinado lenguaje
ligado a sus correspondientes traductores.
.
En el siguiente esquema se representan los distintos niveles de acceso a la mquina
teniendo en cuenta que por el nico que se accede al Hardware directamente es por el
lenguaje mquina por el resto accedemos a un lenguaje virtual que considera el lenguaje
del nivel en que estemos como su lenguaje mquina.
Los niveles de programacin los podemos dividir segn la posibilidad que presentan
respecto al Hardware en:

Nivel bajo (Lenguaje mquina)
Nivel medio(Esamblador)
Nivel Alto(Gestin, Cientficos, propsito general, especficos)

Lenguaje mquina: Es el nico que entiende directamente la computadora, son lenguajes
muy unidos a la mquina en la que van a ser utilizados. Los programas escritos en estos
leguajes se ejecutan rpidamente ya que no necesitan traduccin o esta es muy sencilla.
Son lenguajes de difcil aprendizaje y muy especializados. Utilizan el alfabeto binario qu
consta de los smbolos 0 y 1 (bit). Fue el primer lenguaje utilizado en programacin pero
dej de utilizarse por su dificultad y complicacin siendo sustituido por otros lenguajes
ms fciles de aprender y utilizar que adems reducen la posibilidad de cometer errores.

Lenguaje ensamblador: Es el 1 intento de sustituir el lenguaje mquina por otro ms
similar el utilizado por las personas. En este lenguaje cada instruccin equivales a una
instruccin en lenguaje mquina. Utilizamos para su escritura palabras nemotcnicas en
lugar de cadenas de bits. Este lenguaje presenta la mayora de los inconvenientes del
lenguaje mquina son:
Inconvenientes

Cada modelo de ordenador tiene 1 lenguaje ensamblador propio distinto de los
dems por lo cual 1 programa solo puede utilizarse en la mquina para la cual se
program.
El programador debe conocer perfectamente el Hardware del equipo ya que
maneja directamente las posiciones de memoria, registros, procesador y dems
elementos fsicos.
Todas las instrucciones son elementales. Es decir en el programa se deben
describir al mximo detalle todas las instrucciones y operaciones que se han de
llevar a cabo en la mquina para la realizacin de cualquier proceso. Tanto el
lenguaje mquina cono el ensamblador presentan la ventaja de mnima ocupacin
en memoria y mnimo tiempo de ejecucin en comparacin con el resultado de la
compilacin de programa escrito en otros lenguajes.

Lenguaje de alto nivel: Surgen con posterioridad a los anteriores con los siguientes
objetivos.

Lograr independencia de la mquina de la mquina pudiendo utilizar 1 mismo
programa en distintos equipos con la nica condicin de disponer un programa
traductor o compilador para obtener el programa ejecutable en lenguaje binario
de la mquina que se trate adems no se necesita conocer el Hardware especfico
de dicha mquina.
Aproximarse al lenguaje natural para que el programa se pueda escribir y leer de
una forma ms sencilla eliminando.

3.2 ESTRUCTURA BSICA DE UN PROGRAMA.

Las partes principales de un programa estn relacionadas con dos bloques: declaraciones
e instrucciones.
En las instrucciones podemos diferenciar tres partes fundamentales.

Entrada de Datos:
La constituyen todas las instrucciones que toman los datos de entrada desde un
dispositivo externo y los almacena en la memoria principal para que puedan ser
procesados.
Proceso o algoritmo: Est formado por las instrucciones que modifican los objetos a partir
de su estado inicial (datos de entrada) hasta el estado final (resultados) dejando los
objetos que lo contiene disponibles en la memoria principal.
Salida de resultados: Conjunto de instrucciones que toman los datos finales (resultado) de
la memoria principal y los envan a los dispositivos externos.

El teorema de Bhm y Jacopini (1966) dice que un programa propio puede ser escrito
utilizando slo tres tipos de estructuras de control:
1. Estructura secuencial
Una estructura de programa es secuencial si las instrucciones se ejecutan una tras otra, a
modo de secuencia lineal, es decir que una instruccin no se ejecuta hasta que finaliza la
anterior, ni se bifurca el flujo del programa.


2. Estructura selectiva o de seleccin

La estructura selectiva permite que la ejecucin del programa se bifurque a una
instruccin (o conjunto) u otra/s, segn un criterio o condicin lgica establecida, slo uno
de los caminos en la bifurcacin ser el tomado para ejecutarse.
Estructura de control selectiva simple
Estructura de control selectiva doble
Estructura de control selectiva mltiple
3. Estructura de control cclica o repetitiva
Estructura de control desde
Estructura de control mientras
Para estas estructuras son necesarios los operadores lgicos y de relacin.


Operadores de relacin
Mayor a >
Menor a <
Mayor o igual a >=
Menor o igual a <=
Diferente a ~=
Operadores lgicos
Y (and) &
O (or) |
No (not) ~
Exclusivo o (or) xor
Con el uso de los operadores de relacin se construyen las condiciones simples y con el
uso de los operadores de relacin y lgicos se construyen las condiciones compuestas.
Anidamiento
El cuerpo de cualquier estructura puede ser instrucciones simples u otras estructuras, que
a su vez pueden contener a otras.

3.3 TIPOS DE DATOS.
En lenguajes de programacin un tipo de dato es un atributo de una parte de los datos
que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se
va a procesar.
En un sentido amplio, un tipo de datos define un conjunto de valores y las
operaciones sobre estos valores.
Casi todos los lenguajes de programacin explcitamente incluyen la notacin del
tipo de datos, aunque lenguajes diferentes pueden usar terminologa diferente.
La mayor parte de los lenguajes de programacin permiten al programador definir
tipos de datos adicionales, normalmente combinando mltiples elementos de
otros tipos y definiendo las operaciones del nuevo tipo de dato. Por ejemplo, un
programador puede crear un nuevo tipo de dato llamado "Persona" que especifica
que el dato interpretado como Persona incluir un nombre y una fecha de
nacimiento.
Tipo de dato entero (int).
Un tipo de dato entero en computacin es un tipo de dato que puede representar
un subconjunto finito de los nmeros enteros. El nmero mayor que puede
representar depende del tamao del espacio usado por el dato y la posibilidad (o
no) de representar nmeros negativos. Los tipos de dato entero disponibles y su
tamao dependen del lenguaje de programacin usado as como la arquitectura en
cuestin. Por ejemplo, si para almacenar un nmero entero disponemos de
4 bytes de memoria tememos que:
4 Bytes = 4x8 = 32 bits Con 32 bits se pueden representar 232=4294967296
valores: Slo positivos: del 0 al 4294967295
Positivos y negativos: del -2147483648 al 2147483647.
Tipos de datos en coma flotante
Se usan para representar nmeros con partes fraccionarias. Hay dos tipos de coma
flotante: float y double. El primero reserva almacenamiento para un nmero de
precisin simple de 4 bytes y el segundo lo hace para un nmero de precisin
doble de 8 bytes.
Tipo:
float
4 Bytes (32 bits)
double
8 Bytes (64 bits)
Tipo de dato carcter (Char)
Es cualquier signo tipogrfico, puede ser una letra, un nmero, un signo de
puntuacin o un espacio. Este trmino se usa mucho en computacin.
Un valor de tipo carcter es cualquier carcter que se encuentre dentro del
conjunto ASCII ampliado, el cual est formado por los 128 caracteres del ASCII ms
los 128 caracteres especiales que presenta, en este caso, IBM.
Los valores ordinales del cdigo ASCII ampliado se encuentran en el rango de 0 a
255. Dichos valores pueden representarse escribiendo el carcter correspondiente
encerrado entre comillas simples (apstrofos).
As, podemos escribir:
'A' < 'a
Que significa: "El valor ordinal de A es menor que el de a" o "A est antes que a"
Un valor de tipo carcter (char en ingls) se guarda en un byte de memoria.
La nica operacin (adems de las relacionales) que podemos hacer con
caracteres es la concatenacin concatenando dos caracteres, por ejemplo 'a' y 'X'
obtendramos la cadena "aX".
Tipo de dato lgico
El tipo de dato lgico o booleano es en computacin aquel que puede representar
valores de lgica binaria, esto es, valores que representen falso o verdadero. Se
utiliza normalmente
en programacin, estadstica, electrnica, matemticas (lgebra booleana), etc...
Para generar un dato o valor lgico a partir de otros tipos de datos, tpicamente, se
emplean los operadores relacionales (u operadores de relacin), por ejemplo: 0 es
igual a falso y 1 es igual a verdadero
(3>2)= 1 = verdadero
(7>9)= 0 = falso

Palabra reservada
Una palabra reservada es una palabra que tiene un
significado Gramatical especial para ese lenguaje y no puede ser utilizada como un
identificador en ese lenguaje.
Por ejemplo, en SQL, un usuario no puede ser llamado "group", porque la
palabra group es usada para indicar que un identificador se refiere a un grupo, no
a un usuario. Al tratarse de una palabra clave su uso queda restringido.
Ocasionalmente la especificacin de un lenguaje de programacin puede tener
palabras reservadas que estn previstas para un posible uso en futuras versiones.
En Java const y goto son palabras reservadas no tienen significado en Java, pero
tampoco pueden ser usadas como identificadores. Al reservar los trminos pueden ser
implementados en futuras versiones de Java, si se desea, sin que el cdigo fuente ms
antiguo escrito en Java deje de funcionar.
3.4 INDENTIFICADORES
Los identificadores (IDs) son smbolos lxicos que nombran entidades. El concepto es
anlogo al de "nombres de procesamiento de la informacin". Nombrar las entidades
hace posible referirse a las mismas, lo cual es esencial para cualquier tipo de
procesamiento simblico.
En los lenguajes informticos, los identificadores son elementos textuales (tambin
llamados smbolos) que nombran entidades del lenguaje. Algunas de las de entidades que
un identificador puede denotar son las variables, las constantes, los tipos de dato,
las etiquetas, las subrutinas (procedimientos y funciones) y los paquetes.
En muchos lenguajes algunas secuencias tienen la forma lxica de un identificador pero
son conocidos como palabras clave (o palabras reservadas). Lo habitual es que si un
identificador se corresponde con una palabra clave o reservada, ste ya no pueda
utilizarse para referirse a otro tipo de entidades como variables o constantes (en unos
pocos lenguajes, como PL/1, esta distincin no est del todo clara).
Los lenguajes informticos normalmente ponen restricciones en qu caracteres pueden
aparecer en un identificador. Por ejemplo, en las primeras versiones de C y C++, los
identificadores estn restringidos para que sean una secuencia de una o ms letras ASCII,
dgitos numricos (que en ningn caso deben aparecer como primer carcter) y barras
bajas. Las versiones posteriores de estos lenguajes, as como otros muchos ms lenguajes
modernos soportan casi todos los caracteres Unicode en un identificador. Una restriccin
comn es que no est permitido el uso de espacios en blanco ni operadores del lenguaje.
En lenguajes de programacin compilados, los identificadores generalmente son
entidades en tiempo de compilacin, es decir, en tiempo de ejecucin el programa
compilado contiene referencias a direcciones de memoria y offsets ms que
identificadores textuales (estas direcciones de memoria u offsets, han sido asignadas por
el compilador a cada identificador).
En lenguajes interpretados los identificadores estn frecuentemente en tiempo de
ejecucin, a veces incluso como objetos de primera clase que pueden ser manipulados y
evaluados libremente. En Lisp, stos se llaman smbolos.
Los compiladores e intrpretes normalmente no asignan ningn significado semntico a
un identificador basado en la secuencia de caracteres actual. Sin embargo, hay
excepciones. Por ejemplo:
En Perl una variable se indica utilizando un prefijo llamado sigil, que especifica
aspectos de cmo se interpreta la variable en las expresiones.
En Ruby una variable se considera automticamente como inmutable si su
identificador empieza con una letra mayscula.
En Fortran, la primera letra de una variable indica si por defecto es creada
como entero o como flotante.
3.5 ALMACENAMIENTO, DIRECCIONAMIENTO Y REPRESENTACION EN MEMORIA

Almacenamiento
La computadora posee determinada cantidad de almacenamiento interno denominado
memoria principal, memoria RAM o memoria voltil. Esta memoria se activa al encender
la computadora y se desactiva al apagarla. Para que un programa se ejecute, debe
cargarse en la memoria principal, as como los datos necesarios. Como es ms costosa, es
un recurso escaso donde slo se almacenan los datos que se requieren de inmediato, y los
dems se relegan a los dispositivos de almacenamiento externo, donde la capacidad de
almacenamiento es mayor, pero tambin el tiempo de recuperacin. Por otra parte, el
costo del almacenamiento externo es ms bajo.

Direccionamiento
La memoria principal de la computadora se divide en pequeas unidades de tamao
uniforme denominadas palabras, que tienen una direccin nica.
Cada una de stas palabras es capaz de almacenar una unidad de informacin (como, por
ejemplo, resultados numricos), y determina el nmero ms grande y el ms pequeo que
puede almacenar.
El tamao de la palabra depende de la computadora, pero siempre se especifica en
mltiplos de 8 bits. As, existen computadoras con tamaos de palabra de 8, 16, 32 y 64
bits.
Cada palabra de la memoria principal tiene una direccin fija que va de cero hasta el
nmero total de palabras - 1. Las direcciones de memoria sirven para identificar cada
palabra individualmente, de tal manera que pueda accederse al dato contenido en ella. A
fin de simplificar su comprensin, las memorias se consideran como una hilera de
palabras.
Por ejemplo, suponiendo que la memoria principal de una computadora tiene un tamao
de palabra de 8 bits, la cinta de color amarillo que se muestra enseguida podra
representar las tres primeras palabras:

Direccin
P a l a b r a
Valor en decimal
0000
0
1
0
0
1
0
1
1
75
0001
0
1
0
0
0
0
0
1
65
0002
0
0
1
1
0
0
1
0
50

Representacin en memoria
La representacin en memoria de los caracteres no reviste mayor complicacin, debido a
que los cdigos utilizados, como el ASCII (American Standard Code for Information
Interchange), les asignan valores enteros positivos.
En el caso de los datos numricos hay que considerar la distincin entre nmeros
negativos y positivos, y la que hay entre nmeros de punto flotante y enteros.
Los signos se manejan normalmente mediante el bit ms significativo de la palabra (el
situado a la extrema izquierda), y se le denomina bit de signo. Cuando el bit de signo
almacena un cero, el nmero se considera positivo; cuando almacena un uno el nmero
es negativo. Es por esto que, si el tamao de la palabra es de m bits, quedan m-1 bits para
representar la magnitud del nmero almacenado.
Los nmeros de punto flotante se manejan en formato logartmico, con un nmero fijo de
bits para la base y otro para la mantisa. El estndar para los nmeros de punto flotante lo
fija el IEEE.
Debido al formato logartmico, los clculos que se hacen con tipos de punto flotante no
son tan precisos como los que se hacen con tipos enteros.
3.6 PROPOSICIN DE ASIGNACIN.
Lo mismo que en otros lenguajes de programacin, en C se tienen los operadores aritmticos ms
usuales (+ suma, - resta, * multiplicacin, / divisin y % mdulo).
El operador de asignacin es =, por ejemplo: i=4; ch='y';
Incremento ++ y decremento -- unario. Los cuales son ms eficientes que las respectivas
asignaciones. Por ejemplo: x++ es ms rpido que x=x+1.
Los operadores ++ y -- pueden ser prefijos o postfijos. Cuando son prefijos, el valor es calculado
antes de que la expresin sea evaluada, y cuando es postfijo el valor es calculado despus que la
expresin es evaluada.
En el siguiente ejemplo, ++z es prefijo y -- es postfijo:
int x,y,z;
main()
{
x=( ( ++z ) - ( y-- ) ) % 100;
}

Que es equivalente a:
int x,y,z;
main()
{
z++;
x = ( z-y ) % 100;
y--;
}
El operador % (mdulo o residuo) solamente trabaja con enteros, aunque existe una funcin para
flotantes (15.1 mod() ) de la biblioteca matemtica.
El operador divisin / es para divisin entera y flotantes. Por lo tanto hay que tener cuidado. El
resultado de x = 3 / 2; es uno, an si x es declarado como float. La regla es: si ambos argumentos
en una divisin son enteros, entonces el resultado es entero. Si se desea obtener la divisin con la
fraccin, entonces escribirlo como: x = 3.0 / 2; o x = 3 / 2.0 y an mejor x = 3.0 / 2.0.
Por otra parte, existe una forma ms corta para expresar clculos en C. Por ejemplo, si se tienen
expresiones como: i = i + 3; o x = x * (y + 2);
Por lo que podemos reescribir las expresiones anteriores como: i += 3; y x *= y + 2;
respectivamente.
3.7 OPERADORES, OPERANDOS Y EXPRESIONES.
Los operadores especifican el tipo de clculo que se desea realizar con los elementos de
una frmula. Microsoft Excel incluye cuatro tipos diferentes de operadores de clculo:
aritmtico, comparacin y referencia.
Operadores aritmticos
Para ejecutar las operaciones matemticas bsicas como suma, resta o multiplicacin,
combinar nmeros y generar resultados numricos, utilice los siguientes operadores
aritmticos.
Operadores de comparacin
Se pueden comparar dos valores con los siguientes operadores. Cuando se comparan dos
valores utilizando estos operadores, el resultado es un valor lgico: VERDADERO o FALSO.
Operadores de referencia
Combinan rangos de celdas para los clculos.
OPERANDO: En matemticas, un operando es una de las entradas (argumentos) de
un operador.
3.8 PRIORIDAD DE OPERADORES, EVALUACIN DE EXPRESIONES
Determina el orden en que habrn de realizarse las operaciones en una expresin
determinada. Para obtener la prioridad se deben conocer las siguientes reglas: Las
operaciones que estn encerradas entre parntesis se evalan primero. Si existen
diferentes parntesis anidados (interiores unos a otros), las expresiones ms internas se
evalan primero. En caso de coincidir varios operadores de igual prioridad en una
expresin o subexpresin encerrada entre parntesis, el orden de prioridad en este caso
es de izquierda a derecha.

You might also like