Sie sind auf Seite 1von 39

INSTITUTO TECNOLGICO SUPERIOR

DE ALVARADO
INGENIERA INDUSTRIAL
Materia:
ALGORITMOS Y LENGUAJES DE PROGRAMACION

Semestre-Grupo:
4 SEMESTRE

Producto Acadmico:
UNIDADES # 4, 5, 6
Presenta:
JOSE NESTOR ORTIZ ESPEJO
No. 146Z0267

Docente:
MCA. ALFONSO ROSAS ESCOBEDO
FECHA 18/06/2016

H. Y. ALVARADO, VER.

ndice
TEMA
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
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

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 Donde Si
indica el comando de comparacin
o Condicin
indica la condicin a evaluar
o Entonces
precede a las acciones a realizar cuando se cumple la
condicin
o Accin
Accin o conjunto de acciones que se realiza cuando se
cumple la condicin
o Sino
precede a las acciones a realizar cuando no se cumple la
condicin
o Otra accin
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

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

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
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.
en seudocdigo:
La representacin
grfica es:
mientras condicin
hacer
accin 1
accin 2
accin n
fin mientras
ejemplo: Escribir un
algoritmo que permita accin
n
escribir en la
pantalla la 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.

en seudocdigo
La
representacin
grfica es

repetir
accin 1
accin 2
accin n
hasta que
condicin
Ejemplo:
Algoritmo que
calcule la suma de
100 nmeros
introduci
dos 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.
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

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 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.
1.
o
o
o

Leer n nmeros y encontrar el valor promedio, el mayor y el menor


Definicin del problema
Encontrar el promedio, el mayor y el menor de varios nmeros
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.
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.

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

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.

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];
enteros bidimensionales se escribir como:

Por ejemplo un arreglo de

int b[50][50]; Observar que para declarar cada dimensin lleva sus propios
parntesis cuadrados.
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(i=0; i<4; ++i)

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


for(i=0; i<4; ++i)
t,i,num[t][i]);
printf("\n"); }

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

} 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.
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,
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 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],
[ 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],
[ 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, 8.76, 8.78])
Note que el nmero de dimensiones es igual a la cantidad de rebanados que
hay en los ndices:
>>> a[2, 3]
# valor escalar (arreglo de cero dimensiones)
2.56
>>> a[2:3, 3]
array([ 2.56])

# 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
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
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
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.
Una subrutina al ser llamada dentro de un programa hace que el cdigo principal
se detenga y se dirija a ejecutar el cdigo de la subrutina, en cambio cuando se
llama a una macro, el compilador toma el cdigo de la macro y lo implanta donde
fue llamado, aumentando as el cdigo fuente y por consiguiente el objeto.
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.

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.

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.

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
Integer correspondiente al botn elegido por el usuario.
Visual-Basic tiene una serie de constantes memo-tcnicas que permiten
fcilmente recordar las opciones posibles.
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.


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 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);
}
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;
}
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

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.

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.
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

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+R
epetici%C3%B3n.

Das könnte Ihnen auch gefallen