You are on page 1of 59

Materia:

Algoritmo y lenguaje de
Programacin

Instit
uto
Ingeniera Industrial
Tecn
Trabajo:
Investigacin
olgi
Catedrtico:
Mtra. Alejandra Guadalupe
co
Presenta:
Mara Alejandra Delesma vilaSupe
Semestre/ grupo:
rior
5t0 A
De
La
Regi
Teapa Tabasco A
noviembre De 2013
n
Teapa Tabasco A MayoSierr
De

Algoritmo Y Lenguajes De
Programacin
ndice
TEMA
Introduccin.
.
Unidad 3. Introduccin A La Programacin De Un Lenguaje
Estructurado
3.1 Introduccin a la programacin. .
.............................................
3.2 Estructura bsica de un programa. .
.............................................
3.3 Tipos de datos. .
.............................................
3.4 Identificadores. .
..
3.5 Almacenamiento, direccionamiento y representacin en
memoria. .............................................
3.6 Proposicin de asignacin. .
...
3.7 Operadores, operandos y expresiones. .
.
3.8 Prioridad de operadores, evaluacin de expresiones.
..
3.9 Elaboracin de programas.
.
Unidad 4 .Estructuras Selectivas y de Repeticin.
4.1 Selectiva simple. .
.
4.2 Selectiva doble. .
...
4.3 Selectiva anidada. .
...
4.4 Selectiva mltiple. .
...
4.5 Repetir mientras. .
..............................................
4.6 Repetir hasta. .
.
4.7 Repetir desde. .
.
4.8 Elaboracin de programas. .
............................................

PA
G.
03

04
04
07
12
14
16
18
20
22

24
25
26
27
30
32
33
34

Algoritmo Y Lenguajes De
Programacin
Unidad 5 Arreglos y Archivos.
5.1 Arreglo unidimensionales. .
..............................................
5.2 Arreglo bidimensionales... .
.
5.3 Archivos. .
............................................
5.4 Elaboracin de programas.

Unidad 6 Funciones.
6.1 Introduccin. .
..
6.2 Funciones estndar. .
.............................................
6.3 Entrada y salida de datos. .
...
6.4 Funciones definidas por el usuario. .
.............................................
6.5 Pase por valor. .
............................................
6.6 Pase por referencia. .
.
6.7 Punteros. .
...
6.8 Elaboracin de programas. .
...
Conclusin.

Fuentes de informacin.
..

36
39
43
45

46
47
49
51
52
55
55
56
59
60

Introduccin

Visual Basic es uno de los tantos lenguajes de programacin que podemos encontrar hoy en da. Dicho
lenguaje nace del BASIC (Beginners All-purpose Symbolic Instruction Code) que fue creado en su
versin original en el Dartmouth College, con el propsito de servir a aquellas personas que estaban

Algoritmo Y Lenguajes De
Programacin
interesadas en iniciarse en algn lenguaje de programacin.
<http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada&oldid=30205148>.
Colaboradores de Wikipedia. Vector (informtica) [en lnea]. Wikipedia, La enciclopedia libre, 2009 [fecha
de consulta: 2 de octubre del 2009]. Disponible en <http://es.wikipedia.org/w/index.php?title=Vector_(inform
%C3%A1tica)&oldid=30249361>.
La solucin de problemas mediante en uso de un computador nos lleva a desarrollar
programas o aplicaciones, la construccin de estos programas debe ser realizada mediante
una metodologa, los pasos para la construccin de programas son:

1. Disear el algoritmo, consiste en analizar el problema y describir los instrucciones de


forma ordenada que resuelven el problema.
2. Codificar de forma sistemtica la secuencia de instrucciones en un lenguaje.
3. Ejecutar y validar el programa en un computador (verificacin)

Para codificar de forma sistemtica un algoritmo se necesita de un lenguaje


programacin que la computadora comprenda.
Las estructuras de repeticin, permiten la ejecucin de una lista o secuencia de instrucciones
(<bloque de instrucciones>) en varias ocasiones. El nmero de veces que el bloque de
instrucciones se ejecutar se puede especificar de manera explcita, o a travs de una condicin
lgica que indica cundo se ejecuta de nuevo y cundo no. A cada ejecucin del bloque de
instrucciones se le conoce como una iteracin.

Algoritmo Y Lenguajes De
Programacin

UNIDAD 3: Introduccin A La Programacin De Un Lenguaje


Estructurado

3.1 Introduccin a la programacin.


Despus que se ha diseado y pensado como resolver el problema en papel, se debe comenzar el
proceso de introducir el programa en un archivo en el disco de la computadora. La introduccin y

Algoritmo Y Lenguajes De
Programacin
modificacin del programa en un archivo se hace utilizando un simple editor de texto o un editor
especializado que hace la tarea de escribir un programa una tarea muy fcil.
El programa que se introduzca en el editor estar escrito en java o C++ o cualquier otro, pero ni C++ ni
java son lenguajes mquina, muy al contrario, son lenguajes de alto nivel diseado para hacer ms fcil,
la programacin que utilizando el lenguaje mquina. Los lenguajes, como todo hay que a prendrselos,
pero tienen una ventaja y es que hay varios puntos en comn.

Identifica las caractersticas de los lenguajes de programacin


Evala cada uno de los tipos de programacin.

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.
o Estructura de control selectiva simple
o Estructura de control selectiva doble
o Estructura de control selectiva mltiple

Algoritmo Y Lenguajes De
Programacin
3. Estructura de control cclica o repetitiva
o Estructura de control desde
o 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 lgico se construyen las condiciones compuestas.

Algoritmo Y Lenguajes De
Programacin
Anadamiento: el cuerpo se cualquier estructura puede ser instrucciones simples u otras estructuras, que
a su vez pueden contener a otras.
Estructura bsica de un programa en C
La mejor forma de aprender un lenguaje es programando con l. El programa ms sencillo que se puede
escribir en C es el siguiente:
Main ( ) {}
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte ms importante de
cualquier programa C y adems, es el ms pequeo que se puede escribir y que se compile
correctamente. En l se define la funcin main, que es la que ejecuta el sistema operativo al llamar a un
programa C. El nombre de una funcin C siempre va seguida de parntesis, tanto si tiene argumentos
como si no. La definicin de la funcin est formada por un bloque de sentencias, que est encerrado
entre llaves {}.
Un programa algo ms complicado es el siguiente:
#include <stdio.h>
Main ( )
{
Printf ("Hola amigos!\n");
}
Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera lnea indica que se tengan en
cuenta las funciones y tipos definidos en la librera stdio (standard input/output). Estas definiciones se
encuentran en el fichero header stdio.h. Ahora, en la funcin main se incluye una nica sentencia que
llama a la funcin printf. Esta toma como argumento una cadena de caracteres, que se imprimen van
encerradas entre dobles comillas " ". El smbolo \n indica un cambio de lnea.
Hay un grupo de smbolos, que son tratados como caracteres individuales, que especifican algunos
caracteres especiales del cdigo ASCII. Los ms importantes son:
\a
\b
\f
\n
\'

Alerta
Espacio atrs
Salto de pgina
Salto de lnea
Comilla simple

\r
\t
\v
\\
\OOO

\"

Comillas dobles

\xHHH

Retorno de carro
Tabulacin horizontal
Tabulacin vertical
Barra invertida
Visualiza un carcter cuyo cdigo ASCII es OOO en
octal
Visualiza un carcter cuyo cdigo ASCII es HHH en
hexadecimal

Un programa C puede estar formado por diferentes mdulos o fuentes. Es conveniente mantener las

Algoritmo Y Lenguajes De
Programacin
fuentes de un tamao no muy grande, para que la compilacin sea rpida. Tambin, al dividirse un
programa en partes, puede facilitar la legibilidad del programa y su estructuracin. Los diferentes fuentes
son compilados de forma separada, nicamente los fuentes que han sido modificados desde la ltima
compilacin, y despus combinados con las libreras necesarias para formar el programa en su versin
ejecutable.

3.3 Tipos de datos.


Existen dos tipos de datos Simples (sin estructura) y los compuestos (estructurados).Los tipos de
datos Simples son los siguientes:
a) Numricos: Permite representar valores escalares de forma numrica, esto incluye a los nmeros
enteros y los reales. Estos tipos de datos permiten hacer operaciones matemticas comunes. Para
usarlos se escribe de manera normal como los usamos cotidianamente. por ejem. 412, 14.3,
-17,9

entero: Son nmeros completos no tienen componentes fraccionarios o decimales y pueden ser
positivos o negativos. se denominan en ocasiones de punto o coma fijo.

real: Son nmeros que siempre tienen un punto decimal y pueden ser positivos o
negativos, se denominan en ocasiones de punto o coma flotante.

b) Alfanumricos: Permite representar valores identificables de forma descriptiva, esto incluye


nombres de personas, direcciones, caractersticas, etc. Es decir, permite identificar mediante
nombres algunos atributos de una entidad. Es posible representar nmeros como alfanumricos,
es decir no es posible hacer operaciones con ellos. Este tipo de datos se representa encerrados
entre comillas, para diferenciarlos de las variables ( que veremos mas adelante ) y los valores
numricos.
Los caracteres que la mayora de las computadoras reconocen son los siguientes:

Caracteres alfabticos (a..z y A...Z)


Caracteres numricos (0,1,2,3,4,5,6,7,8,9)
Caracteres especiales ( + - # $ % ^ & * ( ) / < > : ; ' " )

c) Lgicos Tambin denominado boleano, es aquel dato que solo puede tomar uno

de dos

valores cierto o falso.

Permite representar respuestas simples, producto de la comparacin entre dos


datos de tipo
numrico o alfanumrico. Esto nos permite realizar cierta tarea en
funcin del valor de
algunos datos.

Algoritmo Y Lenguajes De
Programacin
Cuando usamos un programa es muy importante manejar datos. En C podemos almacenar los datos en
variables. El contenido de las variables se puede ver o cambiar en cualquier momento. Estas variables
pueden ser de distintos tipos dependiendo del tipo de dato que queramos meter. No es lo mismo guardar
un nombre que un nmero. Hay que recordar tambin que la memoria del ordenador es limitada, as que
cuando guardamos un dato, debemos usar slo la memoria necesaria. Por ejemplo si queremos
almacenar el nmero 400 usaremos una variable tipo int (la estudiamos ms abajo) que ocupa slo 16
bits, y no una de tipo long que ocupa 32 bits. Si tenemos un ordenador con 32Mb de Ram parece una
tontera ponernos a ahorrar bits (1Mb=1024Kb, 1Kb=1024bytes, 1byte=8bits), pero si tenemos un
programa que maneja muchos datos puede no ser una cantidad despreciable. Adems ahorrar memoria
es una buena costumbre.
A las variables no se les puede dar cualquier nombre. No se pueden poner ms que letras de la 'a' a la 'z'
(la no vale), nmeros y el smbolo '_'. No se pueden poner signos de admiracin, ni de interrogacin. El
nombre de una variable puede contener nmeros, pero su primer carcter no puede serlo.
Ejemplos de nombres vlidos:
Camiones
Numero
Ejemplos de nombres no vlidos:
1abc

Buffer
a1

j10hola29
num_alumnos

nombre?

num/alumnos

El tipo int.
En una variable de este tipo se almacenan nmeros enteros (sin decimales). El rango de valores que
admite es -32767 a 32767. Cuando definimos una variable lo que estamos haciendo es decirle al
compilador que nos reserve una zona de la memoria para almacenar datos de tipo int. Para guardarla
necesitaremos 16 bits de la memoria del ordenador (2 16=32767). Para poder usar una variable primero
hay que declararla (definirla). Hay que decirle al compilador que queremos crear una variable y hay que
indicarle de qu tipo. Por ejemplo:
int numero;
Mostrar variables por pantalla
Vamos a ir u poco ms all con la funcin printf. Supongamos que queremos mostrar el contenido de la
variable x por pantalla:
Printf (%i", x);
Suponiendo que x valga 10 (x=10) en la pantalla tendramos: 10

10

Empieza a complicarse un poco no? Vamos poco a poco. Recuerdas el smbolo "\" que usbamos
para sacar ciertos caracteres? Bueno, pues el uso del "%" es parecido. "%i" no se muestra por pantalla,

Algoritmo Y Lenguajes De
Programacin
se sustituye por el valor de la variable que va detrs de las comillas. ( %i, de integer=entero en ingls).
Para ver el contenido de dos variables, por ejemplo x e y, podemos hacer:
printf ( "%i ", x );
Printf ( "%i", y );
Resultado (suponiendo x=10, y=20):
10 20
Pero hay otra forma mejor:
printf( "%i %i", x, y );
Asignar valores a variables de tipo int
La asignacin de valores es tan sencilla como

x = 10;

Tambin se puede dar un valor inicial a la variable cuando se define: int x = 15;
Tambin se pueden inicializar varias variables en una sola lnea: int x = 15, y = 20;
Hay que tener cuidado con lo siguiente: int x, y = 20;
Podramos pensar que x e y son igual a 20, pero no es as. La variable x est sin valor inicial y la variable
'y' tiene el valor 20.
Veamos un ejemplo para resumir todo:
#include <stdio.h>
void main()
{
int x = 10;
prinft( "El valor inicial de x es %i\n", x );
x = 50;
printf( "Ahora el valor es %i\n", x );
}

El tipo Char
Las variables de tipo char sirven para almacenar caracteres. Los caracteres se almacenan en realidad
como nmeros del 0 al 255. Los 128 primeros (0 a 127) son el ASCII estndar. El resto es el ASCII
extendido y depende del idioma y del ordenador. Consulta la tabla ASCII en el anexo.

11

Para declarar una variable de tipo char hacemos: char letra;

Algoritmo Y Lenguajes De
Programacin
En una variable char slo podemos almacenar solo una letra, no podemos almacenar ni frases ni
palabras. Eso lo veremos ms adelante (strings, cadenas). Para almacenar un dato en una variable char
tenemos dos posibilidades:
letra = 'A'; o letra = 65;
En ambos casos se almacena la letra 'A' en la variable. Esto es as porque el cdigo ASCII de la letra 'A'
es el 65.
Para imprimir un char usamos el smbolo %c (c de character=caracter en ingls):
letra = 'A';
printf( "La letra es: %c.", letra );
Resultado:
La letra es A.
Tambin podemos imprimir el valor ASCII de la variable usando %i en vez de %c:
letra = 'A';
printf( "El nmero ASCII de la letra %c es: %i.", letra, letra );
Resultado:
El cdigo ASCII de la letra A es 65.
Como vemos la nica diferencia para obtener uno u otro es el modificador (%c %i) que usemos.
Una curiosidad:
letra = 'A';
printf( "La letra es: %c y su valor ASCII es: %i\n", letra, letra );
letra = letra + 1;
printf( "Ahora es: %c y su valor ASCII es: %i\n", letra, letra );

EL TIPO FLOAT
En este tipo de variable podemos almacenar nmeros decimales, no slo enteros como en los anteriores.
El rango de posibles valores es del 3,4E-38 al 3,4E38.
Declaracin de una variable de tipo float:
float numero;
Para imprimir valores tipo float Usamos %f.
float num=4060.80;
printf( "El valor de num es : %f", num );

12

Algoritmo Y Lenguajes De
Programacin
Resultado:
El valor de num es: 4060.80
Si queremos escribirlo en notacin exponencial usamos %e:
float num = 4060.80;
printf( "El valor de num es: %e", num );
Que da como resultado:
El valor de num es: 4.06080e003
Resumen de los tipos de datos en C
Esto es algo orientativo, depende del sistema.
Tipo

Datos almacenados

N
de Valores
Bits
(Rango)

posibles Rango
usando
unsigned

char

Caracteres

-128 a 128

0 a 255

int

enteros

16

-32.767 a 32.767

0 a 65.535

long

enteros largos

32

-2.147.483.647
2.147.483.647

float

Nums.
reales
flotante)

(coma

32

3,4E-38 a 3,4E38

double

Nums.
reales
flotante doble)

(coma

64

1,7E-307 a 1,7E308

0 a 4.294.967.295

3.4 Identificadores
Son los nombres elegidos para las variables, constantes, funciones, clases y similares. El primer carcter
debe ser una letra o un subrayado. El resto del nombre puede contener dgitos. Los identificadores que
comienzan con dos subrayados estn reservados para uso interno del compilador C++.

13

IDENTIFICADOR: Es un nombre dado a un elemento tal como una constante o variable un


procedimiento o un programa, estn formados por letras o dgitos en cualquier orden excepto que el

Algoritmo Y Lenguajes De
Programacin
primer caracter debe ser una letra
VARIABLES Y CONSTANTES
VARIABLE: Espacio en la memoria de la computadora que permite almacenar temporalmente un
dato durante la ejecucin de un proceso, su contenido puede cambiar segn necesite el programa.
Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre
con el cual podemos identificarla dentro de un algoritmo. Este nombre debe comenzar con una letra
o guin bajo ( _ ), puede contener en el resto del nombre nmeros o letra o guiones bajos y no debe
tener ms de ocho caracteres
Partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecucin del programa.

durante la

Algunos nombres validos de variables son:


Cost_unit,

iva10 ,

_dominio,

a1_b4

o variable numrica : Aquella que solo permite almacenar valores numricos


o variable alfanumrica : Aquella que puede almacenar uno o ms caracteres ( dgitos, nmeros, y
smbolos)
Tipos de variables.- Los tipo ms comunes son: enteras, reales, carcter, cadena y lgicas.

CONSTANTE: Dato numrico o alfanumrico que permanece invariable durante la ejecucin de un


algoritmo. Estos datos pueden pasarse a variables para poder hacer uso de ellos en el algoritmo. El
proceso de [pasar valores constantes a variables se le conoce como asignacin

Tipos de constantes.Tipo

Ejemplo

a) Entera:

-1, 0, 25

b) Reales:

0.002, 3.14159, -2.34567, 5432.

c) Carcter:

'a', 'A', '+', ',', '9'

d)
Cadena
caracteres:

de

'A1', 'Hola', 'PRIMER ALGORITMO'

14

Algoritmo Y Lenguajes De
Programacin
e) Lgicas:

falso, verdadero; 0, 1; Si, No

Uso de las variables:


Como se puede observar en la definicin dada en el punto anterior, las variables son zonas de la
memoria que nos permite almacenar valores temporalmente. Por ello, en estas zonas podemos
poner el resultado de operaciones matemticas, para posteriormente ser usadas o modificadas.
Esta cualidad da como resultado, que existan ciertas formas de uso estndar en las variables. Este
uso de las variables las hace muy tiles en el desarrollo de programas y son los siguientes:
o Trabajo: Es aquella que recibe el resultado de una operacin matemtica completa y que ese usa
normalmente dentro de un programa.
o Contador: Forma que toma una variable y que sirve para llevar la cuenta de las operaciones o
procesos realizados, con incrementos constantes, generalmente de 1 en 1.
o Acumulador : Forma que toma una variable y que sirve para llevar la suma acumulativa de una
serie de valores que se van leyendo o calculando progresivamente
o Indicadores: Variables que reciben un determinado valor cuando se cumple cierta condicin o
sucede cierto evento dentro de u programa. Se les conoce tambin como banderas.

3.5 Almacenamiento, direccionamiento y representacin en memoria.


La configuracin de los platos de discos, cabezales y brazos de acceso hace posible posicionar el
cabezal sobre cualquier parte de cualquier superficie de cualquier plato en el dispositivo de
almacenamiento. Sin embargo, esto no es suficiente; para utilizar esta capacidad de almacenamiento,
debemos tener algn mtodo de dar direcciones a partes uniformes del almacenamiento disponible.
Hay un aspecto final requerido de este proceso. Considere todas las pistas en los muchos cilindros
presentes en un dispositivo tpico de almacenamiento masivo. Puesto que las pistas tienen dimetros
variados, sus circunferencias tambin varan. Por lo tanto, si el almacenamiento fue resuelto solamente a
nivel de pistas, cada pista tendr diferentes cantidades de datos - pista #0 (estando cerca del centro del
plato) puede almacenar 10,827 bytes, mientras que la pista #1,258 (cerca del borde externo del plato)
puede almacenar 15,382 bytes.

15

La solucin es dividir cada pista en mltiples sectores o bloques segmentos de un tamao consistente (a
menudo 512 bytes) de almacenamiento. El resultado es que cada pista contiene un nmero fijo de
sectores.

Algoritmo Y Lenguajes De
Programacin
Un efecto secundario es que cada sector contiene espacio inutilizado - el espacio entre sectores. A pesar
del nmero constante de sectores en cada pista, la cantidad de espacio inutilizado vara - relativamente
poco espacio inutilizado en las pistas internas y una cantidad mucho mayor de espacio en las pistas ms
externas. En cualquier caso, este espacio inutilizado se desperdicia, pues all no se puede almacenar
datos.
Sin embargo, la ventaja que supera este espacio desperdiciado es que ahora es posible direccionar
efectivamente el almacenamiento en un dispositivo de almacenamiento masivo. De hecho, hay dos
mtodos de direccionamiento - el direccionamiento basado en la geometra y el direccionamiento basado
en bloques.
Clasificacin de los Dispositivos de Almacenamiento.
Acceso secuencial: En el acceso secuencial, el elemento de lectura del dispositivo debe pasar por
el espacio ocupado por la totalidad de los datos almacenados previamente al espacio ocupado
fsicamente por los datos almacenados que componen el conjunto de informacin a la que se
desea acceder.
Acceso aleatorio: En el modo de acceso aleatorio, el elemento de lectura accede directamente a
la direccin donde se encuentra almacenada fsicamente la informacin que se desea localizar sin
tener que pasar previamente por la almacenada entre el principio de la superficie de grabacin y el
punto donde se almacena la informacin buscada.
Medidas de Almacenamiento de la Informacin
o Byte: unidad de informacin que consta de 8 bits; en procesamiento informtico y almacenamiento,
el equivalente a un nico carcter, como puede ser una letra, un nmero o un signo de
puntuacin.
o Kilobyte (Kb): Equivale a 1.024 bytes.
o Megabyte (Mb): Un milln de bytes o 1.048.576 bytes.
o Gigabyte (Gb): Equivale a mil millones de bytes.
Direccionamiento:
Tras almacenar la direccin de memoria de un dato en la posicin 000000200, es posible obtener de
nuevo el nmero 00153F2AB? La respuesta es afirmativa, pero no de forma inmediata, se debe obtener
de memoria primero los cuatro bytes almacenados en la posicin 000000200 y utilizarlos como una
direccin de memoria de donde obtener los cuatro bytes contenidos en la posicin 000000100. El
acceso a este ltimo dato se ha realizado de forma indirecta, es decir, mediante un acceso previo a
memoria para obtener la direccin del dato final. Utilizando la notacin funcional de operaciones sobre
memoria, el acceso al dato se logra ejecutando Lectura (Lectura (000000200)).

16

Algoritmo Y Lenguajes De
Programacin
Representacin en memoria

Secure Digital (SD)

Estn basadas en el formato Multimedia Card (MMC). Las tarjetas


marcadas
como HC (High Capacity) funcionan a alta velocidad y tienen tasas de
transferencia de datos muy altas; algunas cmaras fotogrficas digitales
requieren
este tipo de tarjetas para poder grabar video con fluidez o para capturar mltiples fotografas en sucesin
rpida.

Starmedia

Tambin conocidas como (Tarjeta de Disco Floppy en Estado Slido). Son


su apariencia fsica es similar a la de un disquete, pero con el tamao
de una estampilla de correo. Su forma impide introducirlas en su ranura en
contrario.

duraderas y
aproximado
sentido

Memory Stick

Tarjetas digitales con memoria flash diseadas con la compaa Sony. Adems de ser
aptas para cmaras digitales de esta marca, las Memory Stick se pueden utilizar en una
gran variedad de aparatos digitales. Estas tarjetas sirven para
almacenar
imgenes, msica, datos, textos y grficos Ofrecen una alta velocidad
de acceso y o
necesitan ningn dispositivo para la reproduccin, pues disponen de
un adaptador
para disquetes.

Minini SD FLASH MEMORY

Por su tamao tan reducido, este formato de tarjeta se utiliza


especialmente
en telfonos celulares. Combina gran capacidad de almacenamiento, alta tasa de transferencia de datos,
confiabilidad, seguridad y bajo consumo de energa. Tambin se
utiliza
en
reproductores de audio, cmaras digitales (por medio de un
adaptador)
y
asistentes digitales personales (PDA).

Micro SD CARD

17

Este formato de tarjeta solo mide 10.9mm x 14.9mm x 1mm y puede almacenar vrios GB de informacin.
Al igual que el MINI SD, es my utilizado en telfonos celular

Algoritmo Y Lenguajes De
Programacin
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
fmod ()) 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.
Operadores de Comparacin
El operador para probar la igualdad es ==, por lo que se deber tener cuidado de no escribir accidentalmente slo
=, ya que:
if ( i = j ) ...

18

Es una sentencia legal de C (sintcticamente hablando aunque el compilador avisa cuando se emplea), la cual

Algoritmo Y Lenguajes De
Programacin
copia el valor de ``j'' en ``i'', lo cual ser interpretado como VERDADERO, si j es diferente de cero.
Diferente es!=, otros operadores son: < menor que, > mayor que, <= menor que o igual a y >= (mayor que o igual
a).
Operadores lgicos
Los operadores lgicos son usualmente usados con sentencias condicionales o relacionales, los operadores
bsicos lgicos son:
&& Y lgico, || O lgico y ! negacin.

3.7 Operadores, operandos y expresiones.


Los operadores son elementos del lenguaje que sirven para reducir expresiones y obtener
resultados. Dependiendo de su tipo, se aplican sobre uno, dos o tres operandos.
Los operadores se agrupan en las siguientes categoras:
o Unarios. Se aplican sobre un slo operando.
o Binarios. Se aplican sobre dos operandos.
o Ternarios. Se aplican sobre tres operandos.
Aqu describiremos brevemente los operadores binarios, algunos unarios que se relacionan con las
operaciones
de
suma
y
resta,
y
el
operador
ternario?:
Binarios
A los elementos que se relacionan (variables o constantes) se les conoce como operandos y los
elementos relaciona dores se les conoce como operadores. Existen los siguientes tipos de
operadores: Matemticos, relacionales y lgicos.
Matemticos
Las expresiones aritmticas son anlogas a las frmulas matemticas, la cte. y el valor son numricos y
los operadores son los aritmticos
+
*
/

Suma
Resta
Multiplicacin
Divisin

Mod
Div
()

Modulo de la divisin
Divisin entera
Parntesis

19

Algoritmo Y Lenguajes De
Programacin
Operadores Relacionales
Los operadores relacionales permiten comparar dos valores entre si y obtener una respuesta de
esta comparacin. Esta respuesta es de tipo lgico, es decir, puede ser solamente cierto cuando
se cumpla la comparacin y falso cuando no se cumple.
Cabe mencionar que el resultado de una operacin de relacin no puede ser asignado a una
variable. Esto es el resultado es directamente usado por una estructura de control de programa.
Como se ver ms delante.
Los operadores relacionales son:
>
Mayor que
<
Menor que
>=
mayor o igual que
<=
menor o igual que
= o == igual
<>
Diferente
Operadores Lgicos
Los operadores lgicos permiten comparar dos valores lgicos, los cuales como se deducen,
pueden provenir de una comparacin relacional (usando operadores relacionales). Dicho de otra
manera permiten efectuar dos comparaciones hechas cada una con un operador relacional, en una
sola lnea. Como ya mencionamos, una comparacin relacional arroja resultados ciento o falso. El
producto de una comparacin lgica da tambin cierto o falso. Los operadores lgicos san:
And
Or
Not

y
o
no (negacin)

Estos operadores se rigen por las siguientes tablas


Estos operadores son utilizados en las expresiones lgicas donde el resultado da siempre
verdadero o falso.
Expresiones (Operadores)
Expresiones.- Son conjuntos de constantes, variables, operadores y parntesis. Normalmente se
utilizan para definir operaciones matemticas. Consta de operandos y operadores.

20

Expresiones Aritmticas.- Son anlogas a las frmulas matemticas. Las variables y constantes
son numricas y las operaciones son las aritmticas. Los operadores ms comunes son:
Smbol

Significado

Multiplicaci

Algoritmo Y Lenguajes De
Programacin
o
()
^
DIV
MOD

Parntesis
Exponenciaci
n
Divisin entera
Mdulo

n
Divisin

Suma

Resta
Asignacin

Es una coleccin de operandos (nmeros, constantes, variables, etc.) enlazados por ciertos
operadores, para construir una formula algebraica qu representa un valor.
Expresiones Relacionales.- Permiten realizar comparaciones de valores de tipo numrico o
carcter. Sirven para expresar las condiciones en algoritmos o programas. Formato: Operador
relacional. Ver Operadores relacionales.
Expresiones lgicas.- Formato: Operador lgico. Ver Operadores lgicos
Toda expresin debe satisfacer las siguientes condiciones generales:
1.No estn permitidos dos operadores sucesivos. (Se pueden usar parntesis para
separar dos operadores consecutivos.
2.Una expresin puede consistir en un solo identificador usado como constante o como
variable.
3.Un nombre de una funcin puede ser utilizado un lugar de un identificador de constante
o variable dentro de una expresin.

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.
Cuando se desea realizar una operacin con baja prioridad por adelantado, debe agruparse a los
operandos involucrados.

21

Algoritmo Y Lenguajes De
Programacin
Los
parntesis
tienen
prioridad
sobre
el
resto
de
las
operaciones.
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.
Cuando se desea realizar una operacin con baja prioridad por adelantado, debe agruparse a los
operandos involucrados.
Una
expresin
es
una
combinacin
de
operandos
y
operadores.
La evaluacin de una expresin consiste en reducirla, esto es, realizar todas las operaciones
contenidas
en
ella
para
obtener
un
valor
final.
Para evaluar una expresin es necesario conocer la prioridad de los operadores, con lo cual se
puede determinar cul operacin se va a realizar antes que las dems.
Una expresin entre parntesis se evala primero que las dems. Si hay parntesis anidados, se
evala
primero
la
expresin
contenida
en
los
parntesis
ms
internos.
La siguiente tabla muestra los operadores y su asociatividad (empezando con los de mayor
prioridad).
Operadores
Asociatividad
( ) [ ] . new typeof
Izquierda a derecha
- ~ ! ++ -- (tipo) expresin
derecha a izquierda
*/%
izquierda a derecha
+izquierda a derecha
<< >>
izquierda a derecha
< <= > >= is as
izquierda a derecha
== !=
izquierda a derecha
&^
izquierda a derecha
&&
izquierda a derecha
?:
derecha a izquierda
= *= /= %= += -= <<= >>= >>>= &= = ^=

22

Algoritmo Y Lenguajes De
Programacin
derecha a izquierda

3.9 Elaboracin de programas.


Se puede crear un archivo que contenga el programa completo, como en los ejemplos que se tienen ms adelante.
Se puede usar cualquier editor de textos ordinario con el que se est familiarizado. Un editor disponible en la
mayora de los sistemas UNIX es vi, y en Linux se puede usar pico.
Por convencin el nombre del archivo debe terminar con ``.c'' por ejemplo: miprograma.c progprueba.c. El
contenido del archivo deber obedecer la sintaxis de C.
Ejecucin de programa.
El siguiente estado es correr el programa ejecutable. Para correr un ejecutable en UNIX, simplemente se escribe el
nombre del archivo que lo contiene, en este caso programa (o a.out).
Con lo anterior, se ejecuta el programa, mostrando algn resultado en la pantalla. En ste estado, podra haber
errores en tiempo de ejecucin (run-time errors), tales como divisin por cero, o bien, podran hacerse evidentes al
ver que el programa no produce la salida correcta.
Si lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y ejecutarlo
nuevamente.
Sin embargo, se da alguna informacin bsica para algunos programas de C. El preprocesador acepta el cdigo
fuente como entrada y es responsable de:
quitar los comentarios
interpretar las directivas del preprocesador las cuales inician con #.
Por ejemplo:
#include -- incluye el contenido del archivo nombrado. Estos son usualmente llamados archivos de
cabecera (header). Por ejemplo:
#include <math.h> -- Archivo de la biblioteca estndar de matemticas.
#include <stdio.h> -- Archivo de la biblioteca estndar de Entrada/Salida.
#define -- define un nombre simblico o constante. Sustitucin de macros.
#define TAM_MAX_ARREGLO 100
Compilador de C
El compilador de C traduce el cdigo fuente en cdigo de ensamblador. El cdigo fuente es recibido del
preprocesador.
Ensamblador.

23

El ensamblador crea el cdigo fuentei o los archivos objeto. En los sistemas con UNIX se podrn ver los archivos
con el sufijo .o.

Algoritmo Y Lenguajes De
Programacin
Ligador

Si algn archivo fuente hace referencia a funciones de una biblioteca o de funciones que estn definidas
en otros archivos fuentes, el ligador combina estas funciones (con main()) para crear un archivo
ejecutable.

24

Algoritmo Y Lenguajes De
Programacin
X =A/ B - C + D * E -A* C
EXPRESIN
Operandos

Operadores

Delimitadores

5 operandos A,B,C,D,E
Pueden ser cualquier variable o constante vlida del lenguaje
Los valores de las variables deben ser coherentes con las operaciones que se realicen con ellas
6 operadores /,-,+,*,-,*
Describen las operaciones que se realizan entre las variables
Pueden ser aritmticos, lgicos, relacionales
X =A/ B - C + D * E -A* C
Orden en el que se deben realizar las operaciones
Cada lenguaje debe definir exactamente dicho orden
Si A = 4, B = C = 2, D = E = 3 =>
X=((4/2)-2)+(3*3)-(4*2)
=0+9-8
=1
X = ( 4 / (2 - 2 + 3 ) ) * ( 3 - 4 ) * 2
= ( 4 / 3 ) * ( -1 ) * 2

Algoritmo Y Lenguajes De
Programacin
Unidad 4: Estructura Selectiva Y De Repeticin
4.1 Selectiva
simple.
Selectivas (Simples): Se utilizan para tomar decisiones lgicas. Se suelen denominar tambin
estructuras de decisiones o alternativas. Es estas estructuras se evala una condicin y en funcin
del resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando
expresiones lgicas. Su representacin en seudocdigo es:
Si condicin entonces accin si
no otra accin
o
o
o
o
o
o

Donde Si
Condicin
Entonces
Accin
Sino
Otra accin

indica el comando de comparacin


indica la condicin a evaluar
precede a las acciones a realizar cuando se cumple la condicin
Accin o conjunto de acciones que se realiza cuando se cumple la condicin
precede a las acciones a realizar cuando no se cumple la condicin
Accin o conjunto de acciones que se realizan cuando no se cumple la condicin.

Dependiendo si la comparacin es cierta o falsa, se puede realizar una o ms acciones. Para


realizar ms de una, se puede usar el concepto de bloque (INICIO FINAL)
Representacin en diagrama de
No

condicin

si

Ejecuta una determinada condicin y si el resultado es verdadero se ejecuta solo una determinada
accin. Si la condicin es falsa el programa sigue con su secuencia normal.

Diagrama de flujo

Algoritmo Y Lenguajes De
Programacin
Pseudocdigo:
Si <condicin> entonces
<Accin>
fin_si
If <condicin> the
<Accin>
Hendir
Simple: ejecuta una determinada condicin y si el resultado es verdadero se ejecuta solo una
determinada accin. Si la condicin es falsa el programa sigue con su secuencia normal.

4.2 Selectiva doble.


Se utilizan cuando se tienen dos opciones de accin, se debe ejecutar una o la otra, pero no
ambas a la vez, es decir, son mutuamente excluyentes. Si la condicin es verdadera, se
ejecuta la accin 1, si es falsa, se ejecuta la accin 2.
Diagrama de flujo

Pseudocdigo:
Espaol
Si <condicin> entonces
<accin S1>
sino
<accin S2>
Fin_Si

Ingls
If <condicin> then
<accin S1>
else
<accin S2>
End_if

Algoritmo Y Lenguajes De
Programacin
Entonces, si una condicin C es verdadera, se ejecuta la accin S1 y si es falsa, se ejecuta la accin S2.

4.3 Selectiva anidada.


La estructura selectiva anidada es una cadena de estructuras selectivas que se conectan de la parte else
de la actual con la parte if de la siguiente, es decir cuando despus de una decisin se debe tomar otra,
despus otra y as sucesivamente.
If <n=0> Then

Diagrama de flujo

CERO
Else
If <n>0> Then
ENTERO
Else
DECIMAL
End If

Pseudocdigo:
If <condicion1> Then
Bloque de instrucciones1
Else
If <condicion2> Then
Bloque de instrucciones 2

Algoritmo Y Lenguajes De
Programacin
Else
Bloque de instrucciones 3
End If

4.4 Selectiva Mltiple.

Mltiple
Estructuras repetitivas: Consiste en repetir una o varias acciones un nmero determinado de veces.
A esta accin se le llama bucle o ciclo.
Las dos principales preguntas que se realizan en el diseo de un ciclo son
o Que contiene el ciclo?
o Cuantas veces se debe repetir?
Estructura repetitiva Mientras (While... do): Es aquella en que el cuerpo del ciclo se repite mientras
se cumple una determinada condicin.
La representacin grfica es:

en seudocdigo:

mientras condicin hacer


accin 1
accin 2
accin n
fin mientras
ejemplo: Escribir un algoritmo que
permita accin n
escribir en la pantalla la

Algoritmo Y Lenguajes De
Programacin
frase " desea continuar s o no'

Estructura repetitiva repetir (Repeat....until): Es aquel en que el cuerpo del se ejecuta hasta que se
cumpla una condicin determinada que se verifica al final del ciclo.
La representacin
grfica es

en seudocdigo

repetir
accin 1
accin 2
accin n
hasta que condicin
Ejemplo: Algoritmo que
calcule la suma de 100
nmeros
introducidos por
el teclado
La diferencia de estas estructuras consiste en:
o La estructura mientras termina cuando la condicin es falsa y en la estructura repetir termina
cuando la condicin es verdadera
o Es la estructura repetir el cuerpo del ciclo se ejecuta siempre al menos una vez por lo contrario la
estructura mientras es ms general y permite la posibilidad de
que el ciclo pueda no ser
ejecutado.
Estructura repetitiva Desde hasta (for to): Ejecuta las acciones del cuerpo del ciclo un nmero
determinado de veces y de modo automtica controla el nmero de veces que se repetirn las
instrucciones del cuerpo del ciclo.

Algoritmo Y Lenguajes De
Programacin
Se representa grficamente de la siguiente forma

en seudocdigo
desde variable (v) = vi hasta
vf hacer
accin 1
accin 2
accin n
fin desde
donde v = variable ndice
vi = valor inicial de la variable
vf = valor final de la variable

La estructura desde comienza con una valor inicial de la variable ndice y las acciones especficas
se ejecutan a menos que el valor inicial sea mayor que el valor final. El incremento de la variable
ndice siempre es uno si no se indica lo contrario. Dependiendo del lenguaje es posible que el
incremento sea distinto de uno positivo o negativo

Select Case expres


Case value1
Block of one or more VB statements
Case value2
Block of one or more VB Statements
Case value3
Case Else
Block of one or more VB Statements
End Select
Select Case expression
Case value1
Block of one or more VB statements
Case value2
Block of one or more VB Statements
Case value3
Case Else
Block of one or more VB Statements
End Select

Algoritmo Y Lenguajes De
Programacin
4.5 Repetir mientras.
Este ciclo consiste en un conjunto de instrucciones que se repiten mientras se cumpla una condicin. De
igual manera que en los condicionales, la condicin es evaluada y retorna un valor lgico, que puede ser
verdadero o falso. En el caso del ciclo mientras las instrucciones contenidas en la estructura de repeticin
se ejecutarn solamente si al evaluar la condicin se genera un valor verdadero; es decir, si la condicin
se cumple; en caso contrario, se ejecutar la instruccin que aparece despus de Fin mientras.
A diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresin condicional, si el resultado
es verdadero se ejecutarn las instrucciones que estn entre el mientras y el fin mientras, al encontrarse
la lnea fin mientras se volver a evaluar la condicin, si se cumple se ejecutarn nuevamente las
instrucciones y as sucesivamente hasta que la condicin deje de cumplirse, en cuyo caso, el control del
programa pasa a la lnea que aparece despus de fin mientras.
Si en la primera pasada por el ciclo mientras la condicin no se cumple las instrucciones que estn dentro
del ciclo no se ejecutarn ni una sola vez.
En diagrama de Chapin (N-S), esta estructura tiene la presentacin:
Ejemplos:
1. Un algoritmo para mostrar los nmeros del 1 al 10.
Definicin del problema
Mostrar listado de nmeros de 1 a 10.
Anlisis del problema
Datos de entrada: ninguno
Datos de salida: nmero
Proceso: ninguno
Diseo de la solucin
Este es un algoritmo muy trivial pero permite revisar la aplicacin de la estructura de repeticin Mientras.
Lo primero a tener en cuenta es la declaracin e inicializacin de la variable: num = 1. En este caso no

Algoritmo Y Lenguajes De
Programacin
solo se est declarando una variable de tipo entero, sino tambin se est asignando un valor inicial, que
ser el primer nmero mostrado.
La condicin o expresin relacional con la cual se implementa el ciclo es num <= 10, dado que num inicia
en 1, la primera vez que se encuentra la instruccin mientras, la expresin es verdadera, por tanto se
ejecutan las instrucciones que aparecen al interior del ciclo.
Despus de haber mostrado el contenido de la variable num, ste cambia, se incrementa en 1.
3. Leer n nmeros y encontrar el valor promedio, el mayor y el menor
o Definicin del problema
o Encontrar el promedio, el mayor y el menor de varios nmeros
o Anlisis del problema
Para solucionar este problema, lo primero que hay que plantear es cmo se sabr cuando terminar la
lectura de datos, ya que no se especifica la cantidad de nmeros que sern ingresados y en el
planteamiento del problema no se da ninguna condicin que permita saber cundo terminar el ciclo. Este
tipo de problemas es muy comn.
Hay dos formas de abordar este ejercicio, la primera consiste en preguntar al usuario con cuantos
nmeros desea trabajar y guardar dicho valor en una variable que se utilizar para establecer el ciclo. La
segunda consiste en preguntar despus de leer cada dato, si se desea ingresar otro. En este ejercicio se
utilizar la primera estrategia.
Datos de entrada: cantidad de nmeros, nmero
Datos de salida: promedio, mayor y menor
Procesos:
Suma = suma + nmero
Promedio = suma / cantidad de nmeros
Diseo de la solucin
3. La serie Fibonacci comienza con los nmeros: 0, 1, 1, 2, 3, 5, 8, 13, 21, Se requiere un algoritmo
para generar los primeros 10 nmeros.

Algoritmo Y Lenguajes De
Programacin
Definicin del problema
Generar los 10 primeros nmeros de la serie fibonacci
Anlisis del problema
La serie fibonacci se genera a partir de dos valores iniciales que son el 0 y el 1, que al sumarse dan como
resultado 1. El siguiente nmero se obtiene sumando el ltimo nmero obtenido con el anterior, en este
caso 1 + 1 = 2, luego ser 2 + 1 = 3 y as sucesivamente.

4.6 Repetir hasta.


Esta estructura es caracterstica de lenguajes como PASCAL, y su uso es muy sencillo, se especifica un
valor de partida (lgicamente) y un valor de parada(por eso es hasta) que es el valor lmite hasta el cual
se realizara cierta instruccin utilizando como base el valor de repeticin. Esta estructura es manejada
por PASCAL como una estructura aparte, veamos de que forma:
PROGRAM Ciclo_hasta;
VAR
Numero: Integer;
BEGIN
Numero:= 1;
REPEAT
writeln (Numero);
Numero:= Numero + 1;
UNTIL Numero = 50;
Esta estructura se encuentra en cualquier lenguaje de programacin, no necesariamente tal cual se
muestra aqu, se utiliza un for o un while, simplemente se modifica la condicin para que no afecte al
nmero de repeticiones. Por ejemplo con un for:
for (a = 0; a<50; a++)
printf(Rafa\n);
Esta sentencia se ejecutara 50 veces, osea hasta el 50.
Como conclusin decir que todo lo necesario para realizar repeticiones se encuentran con las estructuras
while() y for(), solo es cuestin de saber estructurar las condiciones.

Algoritmo Y Lenguajes De
Programacin
4.7 Repetir desde.

Realiza la accin o conjunto de acciones, luego evala una condicin, de resultar cierta vuelve a realizar
la(s) accin(es). Cuando sea falsa se sale del ciclo. Su sintaxis es:
Do {
Sentencia,
} While ();
La diferencia fundamental, entre el ciclo while y do while es que en este ltimo, las sentencias se
realizarn por lo menos una vez, en cambio, con while, solo se cumplirn mientras se cumpla la
condicin, lo cual puede ser nunca.
Ejemplo: Programa que imprima luna lista de nmeros del 1 al 100(PARA JCREATOR)
1 class fibo {
2 public static void main(String args[]){
3 int n1=0;
4 do{ n1++;
5 System.out.println(n1+);
6 }while(n1<100);
7}
8}

4.8 Elaboracin de programas.


Estructuras repetitivas del software PSeint

Algoritmo Y Lenguajes De
Programacin
Dentro del programa PSeint se tienen disponibles a 3 de las estructuras repetitivas, las cuales son
Mientras,
Repetir-Hasta y la estructura Para, ver figura 4.7. La estructura y sintaxis de uso de cada una se explica a
continuacin.
* Mientras
* Repetir Hasta
* Para
Figura 4.7: Comandos de PSeint para estructuras repetitivas
Sintaxis y uso de la instruccin Mientras
Repite un bloque de instrucciones (Secuencia_de_acciones) limitada entre el paso Mientras y paso
FinMientras.

La repeticin del bloque de pasos se controla al inicio de la estructura, gracias a evaluar a una condicin
lgica CL
Expresion_logica, cuyo resultado Verdadero o Falso es aprovechado para determinar si repite o no el
bloque!!
Al utilizar un lazo Mientras hay que tener cuidado de lo siguiente:
a) Para permitir que el lazo Mientras ejecute al menos una vez su ciclo de instrucciones, usted
debe de asegurarse que su Condicin Lgica se cumpla (inicialmente), sino PSeint ignora a
toda el bloque a repetir dentro de la estructura y continuara con el paso justamente despus
del cierre del Mientras.
b) Para que el lazo Mientras pueda repetir el Bucle una o ms veces, asegrese que en el
interior de los pasos del ciclo se modifique/altere el valor de (por lo menos) una de las
variables utilizada en la CL, de manera que al finalizar el ciclo actual, PSeint evalu de
nuevo la CL, y decida si repetir el Bucle.
c) Segn la aclaracin anterior, si necesita que el lazo finalice (que ya no se repita de nuevo el
ciclo), asegrese que al volver a evaluar la CL, est ya no se cumpla.

Algoritmo Y Lenguajes De
Programacin

UNIDAD 5. Arreglos y Archivos.


5.1 Arreglo Unidimensionales.
Los arreglos son una coleccin de variables del mismo tipo que se referencian utilizando un nombre
comn. Un arreglo consta de posiciones de memoria contigua. La direccin ms baja corresponde
al primer elemento y la ms alta al ltimo. Un arreglo puede tener una o varias dimensiones. Para
acceder a un elemento en particular de un arreglo se usa un ndice. El formato para declarar un
arreglo unidimensional es:
Tipo nombre_arr [ tamao ] Por ejemplo, para declarar un arreglo de enteros llamado a con diez
elementos se hace de la siguiente forma:
Int a[10]; En C, todos los arreglos usan cero como ndice para el primer elemento. Por tanto, el
ejemplo anterior declara un arreglo de enteros con diez elementos desde a[0] hasta a[9]. La forma
como pueden ser accesados los elementos de un arreglo, es de la siguiente forma:
a[2] = 15; /* Asigna 15 al 3er elemento del arreglo a*/
num = a[2]; /* Asigna el contenido del 3er elemento a la variable num */ El lenguaje C no realiza
comprobacin de contornos en los arreglos. En el caso de que sobrepase el final durante una
operacin de asignacin, entonces se asignarn valores a otra variable o a un trozo del cdigo, esto
es, si se dimensiona un arreglo de tamao N, se puede referenciar el arreglo por encima de N sin
provocar ningn mensaje de error en tiempo de compilacin o ejecucin, incluso aunque
probablemente se provoque un error en el programa. Como programador se es responsable de
asegurar que todos los arreglos sean lo suficientemente grandes para guardar lo que pondr en
ellos el programa. C permite arreglos con ms de una dimensin, el formato general es:
tipo nombre_arr [ tam1 ][ tam2 ] ... [ tamN]; Por ejemplo un arreglo de enteros bidimensionales se
escribir como:
int b[50][50]; Observar que para declarar cada dimensin lleva sus propios parntesis cuadrados.

Algoritmo Y Lenguajes De
Programacin
Para acceder los elementos se procede de forma similar al ejemplo del arreglo unidimensional, esto
es,
b[2][3] = 15; /* Asigna 15 al elemento de la 3 fila y la 4 columna*/
num = b[25][16]; A continuacin se muestra un ejemplo que asigna al primer elemento de un arreglo
bidimensional cero, al siguiente 1, y as sucesivamente.
main() {

int t,i,num[3][4];

for(t=0; t<3; ++t)


for(t=0; t<3; ++t){
printf("\n"); }

for(i=0; i<4; ++i)


for(i=0; i<4; ++i)

num[t][i]=(t*4)+i*1;
printf("num[%d][%d]=%d ", t,i,num[t][i]);

} En C se permite la inicializacin de arreglos, debiendo seguir el siguiente formato:


tipo nombre_arr[ tam1 ][ tam2 ] ... [ tamN] = {lista-valores}; Por ejemplo:
int c[10] = {1,2,3,4,5,6,7,8,9,10};
int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

ARREGLOS:
Las estructuras de datos que hemos visto hasta ahora (listas, tuplas, diccionarios, conjuntos)
permiten manipular datos de manera muy flexible. Combinndolas y anidndolas, es posible
organizar informacin de manera estructurada para representar sistemas del mundo real.
En muchas aplicaciones de Ingeniera, por otra parte, ms importante que la organizacin de los
datos es la capacidad de hacer muchas operaciones a la vez sobre grandes conjuntos de datos
numricos de manera eficiente. Algunos ejemplos de problemas que requieren manipular grandes
secuencias de nmeros son: la prediccin del clima, la construccin de edificios, y el anlisis de
indicadores financieros entre muchos otros.
La estructura de datos que sirve para almacenar estas grandes secuencias de nmeros
(generalmente de tipo float) es el arreglo.
Los arreglos tienen algunas similitudes con las listas:los elementos tienen un orden y se pueden
acceder mediante su posicin, los elementos se pueden recorrer usando un ciclo for.
Sin embargo, tambin tienen algunas restricciones: todos los elementos del arreglo deben tener el
mismo tipo, en general, el tamao del arreglo es fijo (no van creciendo dinmicamente como las
listas), se ocupan principalmente para almacenar datos numricos.

Algoritmo Y Lenguajes De
Programacin
A la vez, los arreglos tienen muchas ventajas por sobre las listas, que iremos descubriendo a
medida que avancemos en la materia.
Los arreglos son los equivalentes en programacin de las matrices y vectores de las matemticas.
Precisamente, una gran motivacin para usar arreglos es que hay mucha teora detrs de ellos que
puede ser usada en el diseo de algoritmos para resolver problemas verdaderamente interesantes.
Crear arreglos
El mdulo que provee las estructuras de datos y las funciones para trabajar con arreglos se
llama NumPy, y no viene includo con Python, por lo que hay que instalarlo por separado.
Descargue el instalador apropiado para su versin de Python desde la pgina de descargas de
NumPy. Para ver qu versin de Python tiene instalada, vea la primera lnea que aparece al abrir
una consola.
Para usar las funciones provistas por NumPy, debemos importarlas al principio del programa:
from numpy import array
Como estaremos usando frecuentemente muchas funciones de este mdulo, conviene importarlas
todas de una vez usando la siguiente sentencia:
from numpy import *
(Si no recuerda cmo usar el import, puede repasar la materia sobre mdulos).
El tipo de datos de los arreglos se llama array. Para crear un arreglo nuevo, se puede usar la
funcin array pasndole como parmetro la lista de valores que deseamos agregar al arreglo:
>>> a = array([6, 1, 3, 9, 8])
>>> a
array([6, 1, 3, 9, 8])
Todos los elementos del arreglo tienen exactamente el mismo tipo. Para crear un arreglo de
nmeros reales, basta con que uno de los valores lo sea:
>>> b = array([6.0, 1, 3, 9, 8])
>>> b
array([ 6., 1., 3., 9., 8.])
Otra opcin es convertir el arreglo a otro tipo usando el mtodo astype:
>>> a
array([6, 1, 3, 9, 8])
>>> a.astype(float)
array([ 6., 1., 3., 9., 8.])
>>> a.astype(complex)
array([ 6.+0.j, 1.+0.j, 3.+0.j, 9.+0.j, 8.+0.j])
Funciones sobre arreglos
NumPy provee muchas funciones matemticas que tambin operan elemento a elemento. Por
ejemplo, podemos obtener el seno de 9 valores equiespaciados entre 0 y /2 con una sola
llamada a la funcin sin:
>>> from numpy import linspace, pi, sin
>>> x = linspace(0, pi/2, 9)
>>> x
array([ 0.
, 0.19634954, 0.39269908,

Algoritmo Y Lenguajes De
Programacin
0.58904862, 0.78539816, 0.9817477 ,
1.17809725, 1.37444679, 1.57079633])
>>> sin(x)
array([ 0.
, 0.19509032, 0.38268343,
0.55557023, 0.70710678, 0.83146961,
0.92387953, 0.98078528, 1.
])
Como puede ver, los valores obtenidos crecen desde 0 hasta 1, que es justamente como se
comporta la funcin seno en el intervalo [0, /2].
Aqu tambin se hace evidente otra de las ventajas de los arreglos: al mostrarlos en la consola o al
imprimirlos, los valores aparecen perfectamente alineados. Con las listas, esto no ocurre:
>>> list(sin(x))
[0.0, 0.19509032201612825, 0.38268343236508978, 0.5555702330
1960218, 0.70710678118654746, 0.83146961230254524, 0.9238795
3251128674, 0.98078528040323043, 1.0]

5.2 Arreglo bidimensionales.

Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional
est simultneamente en una fila y en una columna.
En matemticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en
problemas de Ingeniera.
En un arreglo bidimensional, cada elemento tiene una posicin que se identifica mediante dos
ndices: el de su fila y el de su columna.
Crear arreglos bidimensionales
Los arreglos bidimensionales tambin son provistos por NumPy, por lo que debemos comenzar
importando las funciones de este mdulo:
from numpy import *
Al igual que los arreglos de una dimensin, los arreglos bidimensionales tambin pueden ser
creados usando la funcin array, pero pasando como argumentos una lista con las filas de la matriz:
a = array([[5.1, 7.4, 3.2, 9.9],
[1.9, 6.8, 4.1, 2.3],
[2.9, 6.4, 4.3, 1.4]])
Todas las filas deben ser del mismo largo, o si no ocurre un error de valor:
>>> array([[1], [2, 3]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: setting an array element with a sequence.
Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaos de cada
dimensin. En el ejemplo, a es un arreglo de dos dimensiones que tiene tres filas y cuatro

Algoritmo Y Lenguajes De
Programacin
columnas:
>>> a.shape
(3, 4)
Los arreglos tambin tienen otro atributo llamado size que indica cuntos elementos tiene el arreglo:
>>> a.size
12
Por supuesto, el valor de a.size siempre es el producto de los elementos de a.shape.
Hay que tener cuidado con la funcin len, ya que no retorna el tamao del arreglo, sino su cantidad
de filas:
>>> len(a)
3
Las funciones zeros y ones tambin sirven para crear arreglos bidimensionales. En vez de pasarles
como argumento un entero, hay que entregarles una tupla con las cantidades de filas y columnas
que tendr la matriz:
>>> zeros((3, 2))
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
>>> ones((2, 5))
array([[ 1., 1., 1., 1., 1.],
[ 1., 1., 1., 1., 1.]])
Lo mismo se cumple para muchas otras funciones que crean arreglos; por ejemplo la
funcin random:
>>> from numpy.random import random
>>> random((5, 2))
array([[ 0.80177393, 0.46951148],
[ 0.37728842, 0.72704627],
[ 0.56237317, 0.3491332 ],
[ 0.35710483, 0.44033758],
[ 0.04107107, 0.47408363]])
Operaciones con arreglos bidimensionales
Al igual que los arreglos de una dimensin, las operaciones sobre las matrices se aplican trmino a
trmino:
>>> a = array([[5, 1, 4],
...
[0, 3, 2]])
>>> b = array([[2, 3, -1],
...
[1, 0, 1]])
>>> a + 2
array([[7, 3, 6],
[2, 5, 4]])
>>> a ** b
array([[25, 1, 0],

Algoritmo Y Lenguajes De
Programacin
[ 0, 1, 2]])
Cuando dos matrices aparecen en una operacin, ambas deben tener exactamente la misma forma:
>>> a = array([[5, 1, 4],
...
[0, 3, 2]])
>>> b = array([[ 2, 3],
...
[-1, 1],
...
[ 0, 1]])
>>> a + b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
Obtener elementos de un arreglo bidimensional
Para obtener un elemento de un arreglo, debe indicarse los ndices de su fila i y su
columna j mediante la sintaxis a[i, j]:
>>> a = array([[ 3.21, 5.33, 4.67, 6.41],
[ 9.54, 0.30, 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56],
[ 8.19, 2.12, 6.28, 8.76],
[ 8.72, 1.47, 0.77, 8.78]])
>>> a[1, 2]
2.14
>>> a[4, 3]
8.78
>>> a[-1, -1]
8.78
>>> a[0, -1]
6.41
Tambin se puede obtener secciones rectangulares del arreglo usando el operador de rebanado con
los ndices:
>>> a[2:3, 1:4]
array([[ 0.54, 0.71, 2.56]])
>>> a[1:4, 0:4]
array([[ 9.54, 0.3 , 2.14, 6.57],
[ 5.62, 0.54, 0.71, 2.56],
[ 8.19, 2.12, 6.28, 8.76]])
>>> a[1:3, 2]
array([ 2.14, 0.71])
>>> a[0:4:2, 3:0:-1]
array([[ 6.41, 4.67, 5.33],

Algoritmo Y Lenguajes De
Programacin
[ 2.56, 0.71, 0.54]])
>>> a[::4, ::3]
array([[ 3.21, 6.41],
[ 8.72, 8.78]])
Para obtener una fila completa, hay que indicar el ndice de la fila, y poner : en el de las columnas
(significa desde el principio hasta el final). Lo mismo para las columnas:
>>> a[2, :]
array([ 5.62, 0.54, 0.71,
2.56])
>>> a[:, 3]
array([ 6.41, 6.57, 2.56,
Note que el nmero de
igual a la cantidad de rebanados
ndices:
>>> a[2, 3]
# valor
cero dimensiones)
2.56
>>> a[2:3, 3]
array([ 2.56])

8.76, 8.78])
dimensiones es
que hay en los
escalar (arreglo de

# arreglo de una dimensin de 1 elemento

>>> a[2:3, 3:4] # arreglo de dos dimensiones de 1 x 1


array([[ 2.56]])

5.3 Archivos.
Los archivos son un mecanismo de abstraccin: proporcionan una forma de almacenar informacin
en el disco y leerla despus.
Cuando un proceso crea un archivo, le asigna un nombre. Cuando el proceso termina, el archivo
sigue existiendo y otros procesos pueden acceder a l utilizando su nombre.
Las reglas exactas para nombrar archivos varan tanto de un sistema a otro, pero todos los sistemas
operativos permiten cadenas de 1 a 8 caracteres como nombres de archivos vlidos. En muchos
casos se permite tambin dgitos y caracteres especiales.

Estructura de Archivos

Algoritmo Y Lenguajes De
Programacin
Los archivos pueden estructurarse de varias maneras. Tres posibles comunes son:
Secuencia de bytes
Secuencia de registros
rbol

Tipos de Archivos
o Archivos Regulares: Son los que contienen informacin del usuario.
o Directorios: Son archivos de sistema que sirven para mantener la estructura del sistema de
archivos.
o Archivos Especiales por Caracteres: Estn relacionados con E/S y sirven para modelar
dispositivos deE/S en serie.
o Archivos Especiales por Bloques: Sirven para modelar discos.
Acceso a Archivos
Los primeros sistemas operativos solo ofrecan un tipo de acceso a los archivos: Acceso
Secuencial. En estos sistemas, un proceso poda leer todos los bytes o registros de un archivo en
orden, comenzado por el principio, pero no poda saltar de un lado a otro y leerlos en desorden.
Los archivos cuyos bytes o registros se pueden leer en cualquier orden se denominan Archivos de
Acceso Aleatorio. Los Archivos de Acceso Directo son esenciales para muchas aplicaciones.
Atributos de Archivos
Todo archivo tiene un nombre y ciertos datos. Adems, todos los sistemas operativos asocian
informacin adicional a cada archivo. Llamamos a estos datos adicionales Atributos del Archivo. La
lista de atributos varia considerablemente de un sistema a otro.
Operaciones con Archivos
Los diferentes archivos ofrecen distintas operaciones de almacenamiento y recuperacin.
Create
Delete
Open
Close

Algoritmo Y Lenguajes De
Programacin
Read
Write
Append
Seek
Get attributes
Set attributes
Rename

5.4 Elaboracin de programas.


Ejm:
char c1,c2,c3;
c1 = a; c2 = ); c3 = 9;
Caractersticas de caracteres:
o Secuencialidad de los caracteres
o comparar caracters c1>c2
o maysculas < minsculas..
Ejemplo:
int i;
for (i=65; i<91; i++)
Ejemplo:
char c;
for (c='a'; c<='z'; c++)
ver car1.c y car2.c
Problemas:
o car1, car3,
o tabla ascii
o Conversin maysculas a minsculas
Arreglo de caracteres
char a[N]={'r','u','t','h'};
Problema:
detectar un palndrome

Algoritmo Y Lenguajes De
Programacin
String:
Cadena de caracteres.
char linea[] = "buenos dias"
b u e n o s d i a s \0
0 1 2 3 4 5 6 7 8 9 10 11
Ejemplos:
o como asignar datos a un string [string1.c]
o ingresa nombre y saluda [string2.c]
o despliega las letras del nombre separadas con un
blanco [string3.c]

UNIDAD 6: Funciones
6.1 Introduccin.
Subalgoritmo.
Se le llama as a cada una de las partes de un algoritmo ms general que resuelve cada una de las
tareas particulares necesarias para que dicho algoritmo general alcance el objetivo para el que fue
diseado, es decir resolver un problema.
Las variables locales: se declaran dentro de un mdulo o Subalgoritmo y slo tienen utilidad dentro de
ese mdulo, no se podr acceder a ellas desde otros mdulos. Pueden existir variables locales con el
mismo nombre siempre que estn en mdulos diferentes.
Las variables globales: son declaradas de forma que puedan ser utilizadas (consultada y/o modificada)
desde cualquiera de los mdulos que forman el programa. En este caso, no puede haber dos variables
globales con el mismo nombre, ya que esto producira una ambigedad que el compilador no podra
resolver.
Funcin.
Tambin conocido como una subrutina o subprograma, como idea general, se presenta como un
Subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea especfica.
Algunos lenguajes de programacin, como Visual Basic .NET o Fortran, utilizan el nombre funcin para
referirse a subrutinas que devuelven un valor.

Algoritmo Y Lenguajes De
Programacin
Una subrutina al ser llamada dentro de un
cdigo principal se detenga y se dirija a ejecutar
subrutina, en cambio cuando se llama a una
toma el cdigo de la macro y lo implanta donde
aumentando as el cdigo fuente y por
objeto.

programa hace que el


el cdigo de la
macro, el compilador
fue
llamado,
consiguiente
el

Elementos de la declaracin de una subrutina.


Las declaraciones de subrutinas generalmente
son
especificadas
por:
Un nombre nico en el mbito: nombre de la funcin con el que se identifica y se distingue de otras.
Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolver al terminar su ejecucin.
Una lista de parmetros: especificacin del conjunto de argumentos (pueden ser cero, uno o ms) que la
funcin debe recibir para realizar su tarea.
El cdigo u rdenes de procesamiento: conjunto de rdenes y sentencias que debe ejecutar la subrutina.
Por ejemplo un seudocdigo puede ser
Private Sub cmdregre_Click() (programa principal)
Unload Me
End Sub
Sub Sumar(ByRef Valor As Long)
Valor = Valor + 100
End Sub
Private Sub cmdByRef_Click()
Dim Un_Valor As Long
Un_Valor = 100
Call Sumar(Un_Valor)
MsgBox Un_Valor, vbInformation, "Modifica la variable"
End Sub ( fin del programa)
Donde se puede ver claramente donde inicia la funcin del programa y donde termina.

6.2 Funciones estndar.


1-Cadenas de caracteres.

Algoritmo Y Lenguajes De
Programacin
Len: Indica la cantidad de caracteres que tiene una determinada cadena.
Lcase y Ucase: Convierte cadenas de texto a minscula y mayscula.
2-Con nmeros.
Round: se utiliza para redondear un nmero decimal, devolviendo un
nmero entero.
Dim Mimumero As Long
Minumero = Round (245.8) '(La funcin devuelve 246)
3-Fechas
FormatCurrency: Formato en dinero.
Ejemplo:
FormatCurrency(txt1) esto quiere decir que los datos numricos puestos en el text box 1se dar en forma
de dinero

FormatPercent: Porcentajes.
Ejemplo: FormatPercent(txt2) los datos introducidos en text box 2 se dara en formato de porcentaje

.
4-Presentar mensajes en pantalla
Funcin InputBox: Presenta un mensaje al usuario, permitindole ingresar un valor en una caja de texto.

Algoritmo Y Lenguajes De
Programacin

6.3 Entrada y salida de datos.

La entrada de datos consiste en colocar en la memoria principal datos provenientes desde algn
dispositivo de entrada (teclado, disco, etc.) para que la computadora, de acuerdo a un programa, realice
una
tarea.
La salida de datos consiste en enviar datos (que, generalmente, son el resultado de un procesamiento)
desde la memoria principal hacia un dispositivo de salida (pantalla, impresora, disco, etc.).
La siguiente figura muestra un esquema conceptual del equipo de cmputo.
o Esquema conceptual del equipo de cmputo La consola
o En los albores de la computacin, el teclado y la pantalla formaban la consola.
o En la actualidad, a la combinacin de teclado y pantalla se les sigue considerando como a la
antigua consola.
o En C#, la entrada y la salida de datos se pueden manejar a travs de los mtodos de la clase
Console.
o Entrada de datos desde el teclado
Para la entrada de datos por medio del teclado se pueden utilizar los mtodos Read( ) y ReadLine(
) de la clase Console.
Ejemplos:
o System.Console.Read( ) ; // Lee el siguiente carcter desde el flujo de la entrada estndar.
o System.Console.ReadLine( ) ; // Lee la siguiente lnea de caracteres desde el flujo de la entrada
estndar.
Salida de datos hacia la pantalla
o La salida de datos hacia la pantalla se puede realizar utilizando los mtodos Write y WriteLine( ) de
la clase Console.

Algoritmo Y Lenguajes De
Programacin
Ejemplos:
o System.Console.Write( ) ; // Escribe el siguiente carcter en el flujo de la salida estndar (la
pantalla).
o System.Console.WriteLine( ) ; // Escribe la siguiente lnea de caracteres en el flujo de la salida
estndar.
Cuadro de Mensaje
Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn. Si se
emplea como funcin, devuelve un tipo Integer correspondiente al botn elegido por el usuario.
La sintaxis es:
MsgBox (mensaje [, botones] [, ttulo] [, archivo Ayuda,

contexto])

Cuando MsgBox se emplea como funcin, devuelve un tipo


correspondiente al botn elegido por el usuario.

Integer

Visual-Basic tiene una serie de constantes memo-tcnicas que


recordar las opciones posibles.

permiten

fcilmente

Funcin InputBox
El InputBox o cuadro de entrada es otro de los cuadros de dilogos utilizados para la interaccin del
usuario con la aplicacin. El InputBox permite mostrar un cuadro de dilogo donde el usuario pasar un
parmetro, valor o dato para que el programa lo trate y lo ejecute. El mensaje que quiere que aparezca
se realiza de forma casi idntica al MsgBox.
La sintaxis es:
InputBox (mensaje [,ttulo][, estndar] [, posx][,posy][, archivo Ayuda
, contexto])
Salida de datos
Segn hemos visto, el mtodo Print visualiza datos en un formulario
(objeto Form). As mismo, permite visualizar datos en la ventana inmediato (a travs del objeto Debug),
en una caja de imagen (Control PictureBox) o en una impresora (utilizando el objeto Printer).

6.4 Funciones definidas por el usuario.

Algoritmo Y Lenguajes De
Programacin
Son funciones que el usuario crea para cubrir necesidades que estn fuera del alcance de las funciones
estndar. Cada funcin tiene una misin muy concreta, de modo que nunca tiene un nmero de lneas
excesivo y siempre se mantiene dentro de un tamao manejable. Es muy frecuente que al hacer una
modificacin para aadir una funcionalidad o corregir un error, se introduzcan nuevos errores en partes
del programa que antes funcionaban correctamente.
Adems, una misma puede ser llamada muchas veces en un mismo programa, e incluso puede ser
reutilizada por otros programas. Una funcin es capaz de mantener una gran independencia con el resto
del programa.
Las funciones siempre devuelven un valor al programa que las invoc.
Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se
incluyen los parmetros entre parntesis. Para invocar una funcin es necesario hacerlo en una
expresin.
Existen cuatro formas de pasar un argumento a una funcin (subrutina) o procedimiento: por valor, por
referencia, por valor-resultado y por nombre.
Ventajas de las funciones definidas por el usuario
Las ventajas de utilizar las funciones definidas por el usuario en SQL Server son:
Permiten una programacin modular.
Puede crear la funcin una vez, almacenarla en la base de datos y llamarla desde el programa tantas
veces como desee. Las funciones definidas por el usuario se pueden modificar, independientemente del
cdigo de origen del programa.
Permiten una ejecucin ms rpida.
Al igual que los procedimientos almacenados, las funciones definidas por el usuario Transact-SQL
reducen el costo de compilacin del cdigo Transact-SQL almacenando los planes en la cach y
reutilizndolos para ejecuciones repetidas. Esto significa que no es necesario volver a analizar y
optimizar la funcin definida por el usuario con cada uso, lo que permite obtener tiempos de ejecucin
mucho ms rpidos.
Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las funciones Transact-SQL para
tareas de clculo, manipulacin de cadenas y lgica empresarial. Transact-SQL se adecuan mejor a la
lgica intensiva del acceso a datos.
Pueden reducir el trfico de red.
Una operacin que filtra datos basndose en restricciones complejas que no se puede expresar en una
sola expresin escalar se puede expresar como una funcin. La funcin se puede invocar en la clusula
WHERE para reducir el nmero de filas que se envan al cliente.
Tipos de funciones
o Funcin escalar:
Las funciones escalares definidas por el usuario devuelven un nico valor de datos del tipo definido en la
clusula RETURNS. En una funcin escalar insertada no hay cuerpo de la funcin; el valor escalar es el

Algoritmo Y Lenguajes De
Programacin
resultado de una sola instruccin. Para una funcin escalar de varias instrucciones, el cuerpo de la
funcin, definido en un bloque BEGIN...END, contiene una serie de instrucciones de Transact-SQL que
devuelven el nico valor. El tipo devuelto puede ser de cualquier tipo de datos
excepto text, ntext, image, cursor y timestamp.
Funciones con valores de tabla
Las funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Las
funciones insertada con valores de tabla no tienen cuerpo; la tabla es el conjunto de resultados de una
sola instruccin SELECT.
o Funciones del sistema
SQL Server proporciona numerosas funciones del sistema que se pueden usar para realizar diversas
operaciones. No se pueden modificar. Para obtener ms informacin, vea Funciones integradas
(Transact-SQL), Funciones almacenadas del sistema (Transact-SQL) y Funciones y vistas de
administracin dinmica (Transact-SQL).
[Top]

6.5 Pase por valor.


Pasar por valor implica crear una nueva variable dentro de la funcin y pasarle una copia del valor de la
variable externa. Si se modifica el valor de la variable copia, la variable original queda inalterada.
Los tipos de valor incluyen lo siguiente:
Todos los tipos de datos numricos
Boolean, Char y Date
Todas las estructuras, incluso si sus miembros son tipos de referencia
Las enumeraciones, ya que su tipo subyacente es siempre SByte, Short, Integer, Long, Byte, UShort,
UInteger o ULong

Pasando datos de tipo bsico


Sea la funcin
void funcion (int x){
x=5;
System.out.println("dentro de la funcin: a="+x);
}

Algoritmo Y Lenguajes De
Programacin
Sea la variable a que toma inicialmente el valor de 3. Cul ser el valor de a despus de la llamada a la
funcin funcion?
int a=3;
funcion(a);
System.out.println("despus de la llamada: a="+a);
En primer lugar, recordaremos que la funcin denominada funcion tiene un nico parmetro x, cuyo
alcance es desde la llave de apretura hasta la llave de cierre de la funcin. La variable x deja de existir
una vez que la funcin retorna.
Vamos a ver en este ejemplo el significado de "paso por valor". La variable a toma el valor inicial de 3.
Cuando se llama a la funcin se pasa el valor de a en su nico argumento, el valor de a se copia en el
parmetro x, la variable x toma el valor de 3. En el curso de la llamada a la funcin, el valor de x cambia a
5, pero cuando la funcin retorna, la variable x ha dejado de existir. La variable a no se ha modificado en
el curso de la llamada a la funcin, y sigue valiendo 3.
Durante el curso de la llamada a la funcin funcin, existe la variable a y su copia x, pero son dos
variables distintas, aunque inicialmente guarden el mismo valor.
Pasando objetos
Creamos una clase Entero muy sencilla que tiene como miembro dato un nmero entero valor, y un
constructor que inicializa dicho miembro pblico al crearse un objeto de la clase Entero.
public class Entero {
public int valor;
public Entero(int valor){
this.valor=valor;
}
}
El valor devuelto por new al cear un objeto es una referencia a un objeto en memoria, que hemos
denominado objeto. Creamos un objeto aInt de la clase Entero para guardar el nmero tres.
Entero aInt=new Entero(3);
funcion(aInt);
El valor devuelto por new lo guardamos en aInt, y se lo pasamos a la funcin denominada funcion.
void funcin(Entero xInt){
xInt.valor=5;
}

Algoritmo Y Lenguajes De
Programacin
Dentro de la funcin denominada funcin disponemos en xInt de la referencia al objeto aInt. Como el
argumento aInt y el parmetro xInt guardan la referencia al mismo objeto, es posible modificar dicho
objeto en el curso de la llamada a la funcin, accediendo a sus miembros pblicos.
Desde xInt accedemos al miembro pblico valor para modificarlo. Cuando la funcin retorna, el
objeto aInthabr modificado su estado.
public class ValorApp2 {
public static void main(String[] args) {
Entero aInt=new Entero(3);
System.out.println("Antes de llamar a la funcin");
System.out.println("objeto.miembro "+aInt.valor);
funcion(aInt);
System.out.println("Despus de llamar a la funcin");
System.out.println("objeto.miembro "+aInt.valor);
}
public static void function(Enter xInt){
xInt.valor=5;
}
}
Estos dos ejemplos, nos ponen de manifiesto el significado de la frase "pasar por valor un dato a una
funcin", y el distinto comportamiento de los tipos bsicos de datos, que no se pueden modificar en el
curso de la llamada a la funcin, de los objetos que si se pueden modificar. La referencia a un objeto se
pasa por valor a la funcin. Dentro de la funcin, desde esta referencia podemos acceder a los miembros
pblicos de dicho objeto para modificar su estado. Cuando la funcin retorna el objeto estar modificado.
6.6 Pase por referencia.
Pasar un argumento por referencia implica que en realidad se pasa a la funcin la variable original, de
modo que la funcin puede modificar su valor.
Los tipos de referencia incluyen lo siguiente:
String
Todas las matrices, incluso si sus elementos son tipos de valores
Los tipos de clase, como Form
Delegados

Algoritmo Y Lenguajes De
Programacin
6.7 Punteros.
Un puntero es un tipo simple que siempre est asociado a otro tipo (punteros a enteros, a reales, a
registros, etc.)
Se pueden ver los punteros como variables que almacenan direcciones de memoria; de aqu se deduce:
Un puntero es un medio para acceder al contenido real apuntado por la variable. La declaracin de un
puntero no implica que exista contenido apuntado por el misma. Es necesario crear y destruir
explcitamente el contenido apuntado por punteros. Se puede establecer una analoga entre los punteros
y las direcciones postales: Una direccin postal permite acceder al lugar fsico indicado.
El hecho de disponer de una direccin postal no garantiza que el lugar exista. Para declarar variables de
tipo puntero en la notacin algortmica se utiliza la sintaxis siguiente: variable puntero a tipo
Por ejemplo:
puntero a real

Una vez se declara un puntero pueden llevarse a cabo dos acciones bsicas sobre el mismo: Asignarle
memoria para almacenar un dato del tipo al que apunta:
Crear
Eliminar la memoria que tiene asignada y con ella el dato apuntado:
Destruir
Crear (variable puntero)
Destruir (variable puntero)
Es posible asignar a un puntero el contenido de otro; para hacer Esto es necesario que la variable a la
que vamos a asignar un Valor no apunte a ningn dato pues en ese caso el dato original Quedara
inaccesible. As pues, slo deberamos asignar un puntero a otro si el Puntero asignado no tiene memoria
reservada

6.8 Elaboracin de programas.

Algoritmo Y Lenguajes De
Programacin

Cdigo:
Private Sub cmdconv_Click()
If opt1.Value = True Then
txt1 = UCase(txt1)
opt1.Value = False
End If
If opt2.Value = True Then
txt1 = LCase(txt1)
opt2.Value = False
End If
End Sub
Private Sub cmdend_Click()
End
End Sub
Private Function suma(num1 As Integer, num2 As Integer) As Integer
Dim resultado As Integer
suma = num1 + num2
End Function
Private Sub cmdsuma_Click()
resultado = suma(175, 25)
MsgBox "La suma de 175 + 25 = " & resultado, vbInformation, "Resultado de funcion"
End Sub
Private Sub Form_Load()
End Sub
Private Sub iblsuma_Click()
resultado = suma(175, 25)
lblsuma.Caption = resultado
End Sub
Pase por valor y pase por referencia
El programa es un enunciado, lgicamente ordenado y clasificado, de los procedimientos de auditora
que han de emplearse, la extensin que se les ha de dar y la oportunidad en que se han de aplicar. Dado
que los programas de auditora se preparan anticipadamente en la etapa de planeacin, estos pueden
ser modificados en la medida en que se ejecute el trabajo, teniendo en cuenta los hechos concretos que
se vayan observando.
Se acostumbra a elaborar un programa por cada seccin a examinar, el cual debe incluir por lo menos el
programa de trabajo en un sentido estricto y el programa adscrito al personal del trabajo a realizar. Cada
programa permite el desarrollo del plan de trabajo general, pero a un nivel ms analtico, aplicado a un
rea en particular.

Algoritmo Y Lenguajes De
Programacin
El programa contiene prcticamente la misma informacin que el plan de trabajo, pero difiere de este en
que se le han adicionado columnas para el tiempo estimado, el tiempo real, la referencia al papel de
trabajo donde qued plasmada la ejecucin del programa, la rbrica de quien realiz cada paso y la fecha
del mismo.
Por medio de cada programa, el auditor adquiere control sobre el desarrollo del examen, pues estos
adems de ser una gua para los asistentes sirven
para efectuar una
adecuada supervisin sobre los mismos, permitiendo
tambin determinar
el tiempo real de ejecucin de cada procedimiento
para
compararlo
con el estimado y as servir de pauta para la
planeacin de las
prximas, as mismo, permite conocer en cualquier
momento el estado
de adelanto del trabajo, ayudando a la toma de
decisiones sobre la
labor pendiente por realizar.
Generalmente el programa de auditora comprender una seccin por cada rea de los estados
financieros que se examinan. Cada seccin del programa de auditora debe comprender:
o Una introduccin que describa la naturaleza de las cuentas examinadas y resuma los
procedimientos de contabilidad de la compaa.
o Una descripcin de los objetivos de auditora que se persiguen en la revisin de la seccin.
o Una relacin de los pasos de auditora que se consideran necesarios para alcanzar los objetivos
sealados anteriormente.
Esta seccin debe tener columnas para indicar la persona que efecta el trabajo, el tiempo empleado y
referencias cruzadas a las planillas o cdulas donde se realiza el trabajo.
Funcin estndar Len

Algoritmo Y Lenguajes De
Programacin

Conclusin

Algoritmo Y Lenguajes De
Programacin

Fuentes de informacin
www.virtual.unal.edu.co/cursos/ingenieria/2001839/index.html
Mdulo 3. Constructores bsicos parte B teora
https://www.google.com.mx/?gws_rd=cr&ei=gvKUuq4I4bg2QWM8YDYAw#q=conclusion+de+Estructuras+Selectivas+y+de+Repetici%C3%B3n.

You might also like