Escolar Documentos
Profissional Documentos
Cultura Documentos
Materia:
Algoritmo y lenguaje de
Programación
Ingeniería Industrial
La Región Sierra
Trabajo:
Investigación
Catedrático:
Mtra. Alejandra Guadalupe
Presenta:
María Alejandra Delesma Ávila
Semestre/ grupo:
5t0 “A”
TEMA PAG.
Introducción………………….……………………………………………………………………. 03
Unidad 3. Introducción A La Programación De Un Lenguaje Estructurado
3.1 Introducción a la programación. ………………….……………………............................................. 04
3.2 Estructura básica de un programa. ………………….…………………............................................. 04
3.3 Tipos de datos. ………………….……………………………………............................................. 07
3.4 Identificadores. ………………….…………………………………………………………….. 12
3.5 Almacenamiento, direccionamiento y representación en memoria. …………............................................. 14
3.6 Proposición de asignación. ………………….…………………………………………………... 16
3.7 Operadores, operandos y expresiones. ………………….…………………………………………. 18
3.8 Prioridad de operadores, evaluación de expresiones. ………………….……………………………. 20
3.9 Elaboración de programas………………….……………………………………………………. 22
Unidad 4 .Estructuras Selectivas y de Repetición.
4.1 Selectiva simple. ………………….……………………………………………………………. 24
4.2 Selectiva doble. ………………….……………………………………………………………... 25
4.3 Selectiva anidada. ………………….…………………………………………………………... 26
4.4 Selectiva múltiple. ………………….…………………………………………………………... 27
4.5 Repetir mientras. ………………….………………………………….............................................. 30
4.6 Repetir hasta. ………………….………………………………………………………………. 32
4.7 Repetir desde. ………………….………………………………………………………………. 33
4.8 Elaboración de programas. ………………….…………………………............................................ 34
Unidad 5 Arreglos y Archivos.
5.1 Arreglo unidimensionales. ………………….………………………….............................................. 36
5.2 Arreglo bidimensionales... ………………….……………………………………………………. 39
5.3 Archivos. ………………….…………………………………………............................................ 43
5.4 Elaboración de programas………………….…………………………………………………… 45
Unidad 6 Funciones.
6.1 Introducción. ………………….……………………………………………………………….. 46
6.2 Funciones estándar. ………………….………………………………............................................. 47
6.3 Entrada y salida de datos. ………………….…………………………………………………... 49
6.4 Funciones definidas por el usuario. ………………….…………………............................................. 51
6.5 Pase por valor. ………………….……………………………………............................................ 52
6.6 Pase por referencia. ………………….…………………………………………………………. 55
6.7 Punteros. ………………….…………………………………………………………………... 55
6.8 Elaboración de programas. ………………….…………………………………………………... 56
Conclusión………………….……………………………………………………………………… 59
Fuentes de información………………….………………………………………………………….. 60
2
Algoritmo Y Lenguajes De Programación
Introducción
Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy
en día. Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction
Code) que fue creado en su versión original en el Dartmouth College, con el propósito de
servir a aquellas personas que estaban interesadas en iniciarse en algún lenguaje de
programación.
<http://es.wikipedia.org/w/index.php?title=Programaci%C3%B3n_estructurada&oldid=3
0205148>.
lógica que indica cuándo se ejecuta de nuevo y cuándo no. A cada ejecución del bloque de
4
Algoritmo Y Lenguajes De Programación
El programa que se introduzca en el editor estará escrito en java o C++ o cualquier otro, pero
ni C++ ni java son lenguajes máquina, muy al contrario, son lenguajes de alto nivel diseñado
para hacer más fácil, la programación que utilizando el lenguaje máquina. Los lenguajes,
como todo hay que a prendérselos, pero tienen una ventaja y es que hay varios puntos en
común.
Las partes principales de un programa están 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 envían a los dispositivos externos.
El teorema de Böhm y Jacopini (1966) dice que un programa propio puede ser escrito
utilizando sólo tres tipos de estructuras de control:
5
Algoritmo Y Lenguajes De Programación
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 instrucción no
se ejecuta hasta que finaliza la anterior, ni se bifurca el flujo del programa.
2. Estructura selectiva o de selección: La estructura selectiva permite que la ejecución
del programa se bifurque a una instrucción (o conjunto) u otra/s, según un criterio o
condición lógica establecida, sólo uno de los caminos en la bifurcación será el tomado
para ejecutarse.
Operadores de relación
Mayor a >
Menor a <
Mayor o igual a >=
Menor o igual a <=
Diferente a ~=
Operadores lógicos
Y (and) &
O (or) |
No (not) ~
Exclusivo o (or) Xor
Con el uso de los operadores de relación se construyen las condiciones simples y con el uso
de los operadores de relación y lógico se construyen las condiciones compuestas.
Anadamiento: el cuerpo se cualquier estructura puede ser instrucciones simples u otras
estructuras, que a su vez pueden contener a otras.
La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo
que se puede escribir en C es el siguiente:
Main ( ) {}
6
Algoritmo Y Lenguajes De Programación
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más
importante de cualquier programa C y además, es el más pequeño que se puede escribir y
que se compile correctamente. En él se define la función main, que es la que ejecuta el
sistema operativo al llamar a un programa C. El nombre de una función C siempre va
seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está
formada por un bloque de sentencias, que está encerrado entre llaves {}.
Un programa algo más 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 línea indica que se
tengan en cuenta las funciones y tipos definidos en la librería stdio (standard input/output).
Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la función main se
incluye una única sentencia que llama a la función printf. Esta toma como argumento una
cadena de caracteres, que se imprimen van encerradas entre dobles comillas " ". El símbolo
\n indica un cambio de línea.
Hay un grupo de símbolos, que son tratados como caracteres individuales, que especifican
algunos caracteres especiales del código ASCII. Los más importantes son:
\a Alerta \r Retorno de carro
real: Son números que siempre tienen un punto decimal y pueden ser positivos
o negativos, se denominan en ocasiones de punto o coma flotante.
Los caracteres que la mayoría de las computadoras reconocen son los siguientes:
c) Lógicos También denominado boleano, es aquel dato que solo puede tomar
uno de dos valores cierto o falso.
A las variables no se les puede dar cualquier nombre. No se pueden poner más que letras de
la 'a' a la 'z' (la ñ no vale), números y el símbolo '_'. No se pueden poner signos de
admiración, ni de interrogación. El nombre de una variable puede contener números, pero su
primer carácter no puede serlo.
Ejemplos de nombres válidos:
Camiones Buffer j10hola29
Numero a1 num_alumnos
El tipo int.
En una variable de este tipo se almacenan números 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
(216=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;
9
Algoritmo Y Lenguajes De Programación
Empieza a complicarse un poco ¿no? Vamos poco a poco. ¿Recuerdas el símbolo "\" que
usábamos para sacar ciertos caracteres? Bueno, pues el uso del "%" es parecido. "%i" no se
muestra por pantalla, se sustituye por el valor de la variable que va detrás de las comillas. (
%i, de integer=entero en inglés).
Para ver el contenido de dos variables, por ejemplo x e y, podemos hacer:
printf ( "%i ", x );
Printf ( "%i", y );
void main()
{
int x = 10;
El tipo Char
Las variables de tipo char sirven para almacenar caracteres. Los caracteres se almacenan en
realidad como números del 0 al 255. Los 128 primeros (0 a 127) son el ASCII estándar. El
10
Algoritmo Y Lenguajes De Programación
resto es el ASCII extendido y depende del idioma y del ordenador. Consulta la tabla ASCII en
el anexo.
Para declarar una variable de tipo char hacemos: char letra;
En una variable char sólo podemos almacenar solo una letra, no podemos almacenar ni
frases ni palabras. Eso lo veremos más 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 código ASCII
de la letra 'A' es el 65.
Para imprimir un char usamos el símbolo %c (c de character=caracter en inglés):
letra = 'A';
printf( "La letra es: %c.", letra );
Resultado:
La letra es A.
Resultado:
El código 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 números decimales, no sólo enteros como en
los anteriores. El rango de posibles valores es del 3,4E-38 al 3,4E38.
Declaración de una variable de tipo float:
11
Algoritmo Y Lenguajes De Programación
float numero;
Resultado:
-2.147.483.647 a
long enteros largos 32 0 a 4.294.967.295
2.147.483.647
12
Algoritmo Y Lenguajes De Programación
3.4 Identificadores
Son los nombres elegidos para las variables, constantes, funciones, clases y similares. El
primer carácter debe ser una letra o un subrayado. El resto del nombre puede contener
dígitos. Los identificadores que comienzan con dos subrayados están reservados para uso
interno del compilador C++.
VARIABLES Y CONSTANTES
Partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo
o durante la ejecución del programa.
Tipos de variables.- Los tipo más comunes son: enteras, reales, carácter, cadena y
lógicas.
13
Algoritmo Y Lenguajes De Programación
Tipos de constantes.-
Tipo Ejemplo
a) Entera: -1, 0, 25
Como se puede observar en la definición 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 matemáticas, para
posteriormente ser usadas o modificadas. Esta cualidad da como resultado, que existan
ciertas formas de uso estándar en las variables. Este uso de las variables las hace muy
útiles en el desarrollo de programas y son los siguientes:
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
14
Algoritmo Y Lenguajes De Programación
3.5 Almacenamiento, direccionamiento y representación en memoria.
Hay un aspecto final requerido de este proceso. Considere todas las pistas en los muchos
cilindros presentes en un dispositivo típico de almacenamiento masivo. Puesto que las pistas
tienen diámetros variados, sus circunferencias también varían. 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.
La solución es dividir cada pista en múltiples sectores o bloques segmentos de un tamaño
consistente (a menudo 512 bytes) de almacenamiento. El resultado es que cada pista
contiene un número fijo de sectores.
Un efecto secundario es que cada sector contiene espacio inutilizado - el espacio entre
sectores. A pesar del número constante de sectores en cada pista, la cantidad de espacio
inutilizado varía - relativamente poco espacio inutilizado en las pistas internas y una cantidad
mucho mayor de espacio en las pistas más 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 métodos de direccionamiento - el direccionamiento basado en la
geometría y el direccionamiento basado en bloques.
15
Algoritmo Y Lenguajes De Programación
Medidas de Almacenamiento de la Información
Direccionamiento:
Representación en memoria
Starmedia
16
Algoritmo Y Lenguajes De Programación
Memory Stick
Tarjetas digitales con memoria flash diseñadas con la compañía Sony. Además de ser aptas
para cámaras digitales de esta marca, las Memory Stick se pueden utilizar en
una gran variedad de aparatos digitales. Estas tarjetas sirven para almacenar
imágenes, música, datos, textos y gráficos Ofrecen una alta velocidad de
acceso y o necesitan ningún dispositivo para la reproducción, pues disponen
de un adaptador para disquetes.
Micro SD CARD
Lo mismo que en otros lenguajes de programación, en C se tienen los operadores aritméticos más
usuales (+ suma, - resta, * multiplicación, / división y % módulo).
main()
{
Z++;
x = ( z-y ) % 100;
y--;
}
El operador % (módulo o residuo) solamente trabaja con enteros, aunque existe una función para
flotantes (15.1 fmod ()) de la biblioteca matemática.
El operador división / es para división entera y flotantes. Por lo tanto hay que tener cuidado. El
resultado de x = 3 / 2; es uno, aún si x es declarado como float. La regla es: si ambos argumentos en
una división son enteros, entonces el resultado es entero. Si se desea obtener la división con la
fracción, entonces escribirlo como: x = 3.0 / 2; o x = 3 / 2.0 y aún mejor x = 3.0 / 2.0.
Por otra parte, existe una forma más corta para expresar cálculos 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 Comparación
El operador para probar la igualdad es ==, por lo que se deberá tener cuidado de no escribir
accidentalmente sólo =, ya que:
if ( i = j ) ...
Operadores lógicos
Los operadores lógicos son usualmente usados con sentencias condicionales o relacionales, los
operadores básicos lógicos son:
&& Y lógico, || O lógico y ! negación.
18
Algoritmo Y Lenguajes De Programación
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 categorías:
Matemáticos
Las expresiones aritméticas son análogas a las fórmulas matemáticas, la cte. y el valor son
numéricos y los operadores son los aritméticos
Operadores Relacionales
Los operadores relacionales permiten comparar dos valores entre si y obtener una
respuesta de esta comparación. Esta respuesta es de tipo lógico, es decir, puede ser
solamente cierto cuando se cumpla la comparación y falso cuando no se cumple.
Cabe mencionar que el resultado de una operación de relación no puede ser asignado
a una variable. Esto es el resultado es directamente usado por una estructura de control
de programa. Como se verá más delante.
19
Algoritmo Y Lenguajes De Programación
<= menor o igual que
= o == igual
<> Diferente
Operadores Lógicos
Los operadores lógicos permiten comparar dos valores lógicos, los cuales como se
deducen, pueden provenir de una comparación relacional (usando operadores
relacionales). Dicho de otra manera permiten efectuar dos comparaciones hechas cada
una con un operador relacional, en una sola línea. Como ya mencionamos, una
comparación relacional arroja resultados ciento o falso. El producto de una comparación
lógica da también cierto o falso. Los operadores lógicos san:
And y
Or o
Not no (negación)
Expresiones (Operadores)
() Paréntesis / División
^ Exponenciación + Suma
Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen
diferentes paréntesis anidados (interiores unos a otros), las expresiones más internas
se evalúan primero.
En caso de coincidir varios operadores de igual prioridad en una expresión o
subexpresión encerrada entre paréntesis, el orden de prioridad en este caso es de
izquierda a derecha.
Cuando se desea realizar una operación con baja prioridad por adelantado, debe
agruparse a los operandos involucrados.
Cuando se desea realizar una operación con baja prioridad por adelantado, debe
agruparse a los operandos involucrados.
Operadores
Asociatividad
( ) [ ] . new typeof
Izquierda a derecha
- ~ ! ++ -- (tipo) expresión
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
= *= /= %= += -= <<= >>= >>>= &= = ^=
derecha a izquierda
22
Algoritmo Y Lenguajes De Programación
3.9 Elaboración de programas.
Se puede crear un archivo que contenga el programa completo, como en los ejemplos que se tienen
más adelante. Se puede usar cualquier editor de textos ordinario con el que se esté familiarizado. Un
editor disponible en la mayoría de los sistemas UNIX es vi, y en Linux se puede usar pico.
Por convención el nombre del archivo debe terminar con ``.c'' por ejemplo: miprograma.c
progprueba.c. El contenido del archivo deberá obedecer la sintaxis de C.
Ejecución 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 algún resultado en la pantalla. En éste estado,
podría haber errores en tiempo de ejecución (run-time errors), tales como división por cero, o bien,
podrían 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 información básica para algunos programas de C. El preprocesador
acepta el código fuente como entrada y es responsable de:
Compilador de C
El compilador de C traduce el código fuente en código de ensamblador. El código fuente es recibido
del preprocesador.
Ensamblador.
El ensamblador crea el código fuentei o los archivos objeto. En los sistemas con UNIX se podrán ver
los archivos con el sufijo .o.
Ligador
Si algún archivo fuente hace referencia a funciones de una biblioteca o de funciones que
están definidas en otros archivos fuentes, el ligador combina estas funciones (con main())
para crear un archivo ejecutable.
23
Algoritmo Y Lenguajes De Programación
X=A/B-C+D*E-A*C
EXPRESIÓN
Operandos Operadores Delimitadores
5 operandos A,B,C,D,E
Pueden ser cualquier variable o constante válida 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 aritméticos, lógicos, relacionales
X=A/B-C+D*E-A*C
24
Algoritmo Y Lenguajes De Programación
Representación en diagrama de
No condición si
25
Algoritmo Y Lenguajes De Programación
Diagrama de flujo
Pseudocódigo:
Si <condición> entonces
<Acción>
fin_si
If <condición> the
<Acción>
Hendir
Diagrama de flujo
26
Algoritmo Y Lenguajes De Programación
Pseudocódigo:
Español Inglés
“CERO”
Else
If <n>0> Then
“ENTERO”
Else
“DECIMAL”
End If
27
Algoritmo Y Lenguajes De Programación
Pseudocódigo:
If <condicion1> Then
Bloque de instrucciones1
Else
If <condicion2> Then
Bloque de instrucciones 2
Else
Bloque de instrucciones 3
End If
Múltiple
28
Algoritmo Y Lenguajes De Programación
en seudocódigo:
La representación gráfica es:
acción 1
acción 2
acción n
fin mientras
en seudocódigo
La representación gráfica es
repetir
acción 1
acción 2
acción n
29
Algoritmo Y Lenguajes De Programación
La diferencia de estas estructuras consiste en:
Estructura repetitiva Desde hasta (for to): Ejecuta las acciones del cuerpo
del ciclo un número determinado de veces y de modo automática controla el
número de veces que se repetirán las instrucciones del cuerpo del ciclo.
en seudocódigo
Se representa gráficamente de la
desde variable (v) =
siguiente forma
vi hasta vf hacer
acción 1
acción 2
acción 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 específicas 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
30
Algoritmo Y Lenguajes De Programación
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
31
Algoritmo Y Lenguajes De Programación
Ejemplos:
Para solucionar este problema, lo primero que hay que plantear es cómo se sabrá
cuando terminar la lectura de datos, ya que no se especifica la cantidad de
números que serán ingresados y en el planteamiento del problema no se da
ninguna condición que permita saber cuándo terminar el ciclo. Este tipo de
problemas es muy común.
32
Algoritmo Y Lenguajes De Programación
que se utilizará para establecer el ciclo. La segunda consiste en preguntar
después de leer cada dato, si se desea ingresar otro. En este ejercicio se utilizará
la primera estrategia.
Procesos:
Diseño de la solución
33
Algoritmo Y Lenguajes De Programación
Numero: Integer;
BEGIN
Numero:= 1;
REPEAT
writeln (Numero);
Numero:= Numero + 1;
UNTIL Numero = 50;
printf(“Rafa\n”);
Do {
Sentencia,
} While ();
La diferencia fundamental, entre el ciclo while y do… while es que en este último,
las sentencias se realizarán por lo menos una vez, en cambio, con while, solo se
cumplirán mientras se cumpla la condición, lo cual puede ser nunca.
34
Algoritmo Y Lenguajes De Programación
Ejemplo: Programa que imprima luna lista de números del 1 al 100(PARA
JCREATOR)
1 class fibo {
3 int n1=0;
4 do{ n1++;
5 System.out.println(n1+””);
6 }while(n1<100);
7}
8}
* Mientras
* Repetir Hasta
* Para
35
Algoritmo Y Lenguajes De Programación
Repite un bloque de instrucciones (Secuencia_de_acciones) limitada entre el paso
Mientras y paso FinMientras.
a) Para permitir que el lazo Mientras ejecute al menos una vez su ciclo
de instrucciones, usted debe de asegurarse que su Condición Lógica
se cumpla (inicialmente), sino PSeint ignora a toda el bloque a repetir
dentro de la estructura y continuara con el paso justamente después
del cierre del Mientras.
b) Para que el lazo Mientras pueda repetir el Bucle una o más veces,
asegúrese 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) Según la aclaración anterior, si necesita que el lazo finalice (que ya
no se repita de nuevo el ciclo), asegúrese que al volver a evaluar la
CL, está ya no se cumpla.
36
Algoritmo Y Lenguajes De Programación
Los arreglos son una colección de variables del mismo tipo que se
referencian utilizando un nombre común. Un arreglo consta de posiciones de
memoria contigua. La dirección más baja corresponde al primer elemento y la
más 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:
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:
int b[50][50]; Observar que para declarar cada dimensión lleva sus propios
paréntesis cuadrados.
37
Algoritmo Y Lenguajes De Programación
num = b[25][16]; A continuación se muestra un ejemplo que asigna al primer
elemento de un arreglo bidimensional cero, al siguiente 1, y así
sucesivamente.
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.
Combinándolas y anidándolas, es posible organizar información de manera
estructurada para representar sistemas del mundo real.
Los arreglos tienen algunas similitudes con las listas:los elementos tienen un
orden y se pueden acceder mediante su posición, los elementos se pueden
recorrer usando un ciclo for.
Sin embargo, también tienen algunas restricciones: todos los elementos del
arreglo deben tener el mismo tipo, en general, el tamaño del arreglo es fijo
38
Algoritmo Y Lenguajes De Programación
(no van creciendo dinámicamente como las listas), se ocupan principalmente
para almacenar datos numéricos.
A la vez, los arreglos tienen muchas ventajas por sobre las listas, que iremos
descubriendo a medida que avancemos en la materia.
Crear arreglos
El módulo que provee las estructuras de datos y las funciones para trabajar
con arreglos se llama NumPy, y no viene incluído con Python, por lo que hay
que instalarlo por separado.
Descargue el instalador apropiado para su versión de Python desde
la página de descargas de NumPy. Para ver qué versión de Python tiene
instalada, vea la primera línea 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 módulo,
conviene importarlas todas de una vez usando la siguiente sentencia:
from numpy import *
(Si no recuerda cómo usar el import, puede repasar la materia
sobre módulos).
El tipo de datos de los arreglos se llama array. Para crear un arreglo nuevo,
se puede usar la función array pasándole como parámetro 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 números 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 opción es convertir el arreglo a otro tipo usando el método 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])
39
Algoritmo Y Lenguajes De Programación
Funciones sobre arreglos
NumPy provee muchas funciones matemáticas que también operan
elemento a elemento. Por ejemplo, podemos obtener el seno de 9
valores equiespaciados entre 0 y π/2 con una sola llamada a la
función sin:
>>> from numpy import linspace, pi, sin
>>> 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 función seno en el intervalo [0, π/2].
Aquí también 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]
40
Algoritmo Y Lenguajes De Programación
from numpy import *
Al igual que los arreglos de una dimensión, los arreglos bidimensionales
también pueden ser creados usando la función 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
tamaños de cada dimensión. En el ejemplo, a es un arreglo de dos
dimensiones que tiene tres filas y cuatro columnas:
>>> a.shape
(3, 4)
Los arreglos también tienen otro atributo llamado size que indica cuántos
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 función len, ya que no retorna el tamaño del
arreglo, sino su cantidad de filas:
>>> len(a)
3
Las funciones zeros y ones también 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.]])
41
Algoritmo Y Lenguajes De Programación
[ 0.35710483, 0.44033758],
[ 0.04107107, 0.47408363]])
>>> a + 2
array([[7, 3, 6],
[2, 5, 4]])
>>> a ** b
array([[25, 1, 0],
[ 0, 1, 2]])
Cuando dos matrices aparecen en una operación, 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
>>> a[4, 3]
8.78
42
Algoritmo Y Lenguajes De Programación
8.78
>>> a[1:3, 2]
array([ 2.14, 0.71])
>>> a[:, 3]
array([ 6.41, 6.57, 2.56, 8.76, 8.78])
Note que el número 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
43
Algoritmo Y Lenguajes De Programación
5.3 Archivos.
Estructura de Archivos
Secuencia de bytes
Secuencia de registros
Árbol
Tipos de Archivos
44
Algoritmo Y Lenguajes De Programación
sirven para modelar dispositivos deE/S en serie.
Acceso a Archivos
Atributos de Archivos
Todo archivo tiene un nombre y ciertos datos. Además, todos los sistemas
operativos asocian información adicional a cada archivo. Llamamos a estos
datos adicionales Atributos del Archivo. La lista de atributos varia
considerablemente de un sistema a otro.
Create
Delete
Open
Close
Read
Write
Append
Seek
Get attributes
Set attributes
Rename
45
Algoritmo Y Lenguajes De Programación
Ejm:
char c1,c2,c3;
c1 = ‘a’; c2 = ’)’; c3 = ’9’;
Características de caracteres:
o Secuencialidad de los caracteres
o comparar caracters… c1>c2
o mayúsculas < minúsculas..
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 Conversión mayúsculas a minúsculas…
Arreglo de caracteres
char a[N]={'r','u','t','h'};
Problema:
detectar un palíndrome
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]
46
Algoritmo Y Lenguajes De Programación
UNIDAD 6: Funciones
6.1 Introducción.
Subalgoritmo.
Se le llama así a cada una de las partes de un algoritmo más general que resuelve
cada una de las tareas particulares necesarias para que dicho algoritmo general
alcance el objetivo para el que fue diseñado, es decir resolver un problema.
Las variables globales: son declaradas de forma que puedan ser utilizadas
(consultada y/o modificada) desde cualquiera de los módulos que forman el
programa. En este caso, no puede haber dos variables globales con el mismo
nombre, ya que esto produciría una ambigüedad que el compilador no podría
resolver.
Función.
Una subrutina al ser llamada dentro de un programa hace que el código principal
se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se
llama a una macro, el compilador toma el código de la macro y lo implanta donde
fue llamado, aumentando así el código fuente y por consiguiente el objeto.
47
Algoritmo Y Lenguajes De Programación
Un nombre único en el ámbito: nombre de la función 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 ejecución.
Donde se puede ver claramente donde inicia la función del programa y donde
termina.
1-Cadenas de caracteres.
48
Algoritmo Y Lenguajes De Programación
2-Con números.
3-Fechas
Ejemplo:
FormatCurrency(txt1) esto quiere decir que los datos numéricos puestos en el text
box 1se dará en forma de dinero
FormatPercent: Porcentajes.
49
Algoritmo Y Lenguajes De Programación
Ejemplos:
50
Algoritmo Y Lenguajes De Programación
Ejemplos:
Cuadro de Mensaje
La sintaxis es:
Función InputBox
La sintaxis es:
Salida de datos
51
Algoritmo Y Lenguajes De Programación
Son funciones que el usuario crea para cubrir necesidades que están fuera del
alcance de las funciones estándar. Cada función tiene una misión muy concreta,
de modo que nunca tiene un número de líneas excesivo y siempre se mantiene
dentro de un tamaño manejable. Es muy frecuente que al hacer una modificación
para añadir una funcionalidad o corregir un error, se introduzcan nuevos errores
en partes del programa que antes funcionaban correctamente.
Además, una misma puede ser llamada muchas veces en un mismo programa, e
incluso puede ser reutilizada por otros programas. Una función es capaz de
mantener una gran independencia con el resto del programa.
Las ventajas de utilizar las funciones definidas por el usuario en SQL Server son:
Permiten una programación modular.
Puede crear la función 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 código de origen del programa.
Permiten una ejecución más rápida.
Al igual que los procedimientos almacenados, las funciones definidas por el
usuario Transact-SQL reducen el costo de compilación del código Transact-SQL
almacenando los planes en la caché y reutilizándolos para ejecuciones
repetidas. Esto significa que no es necesario volver a analizar y optimizar la
función definida por el usuario con cada uso, lo que permite obtener tiempos de
ejecución mucho más rápidos.
Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las
funciones Transact-SQL para tareas de cálculo, manipulación de cadenas y lógica
empresarial. Transact-SQL se adecuan mejor a la lógica intensiva del acceso a
datos.
Pueden reducir el tráfico de red.
Una operación que filtra datos basándose en restricciones complejas que no se
puede expresar en una sola expresión escalar se puede expresar como una
52
Algoritmo Y Lenguajes De Programación
función. La función se puede invocar en la cláusula WHERE para reducir el
número de filas que se envían al cliente.
Tipos de funciones
o Función escalar:
Las funciones escalares definidas por el usuario devuelven un único valor de datos
del tipo definido en la cláusula RETURNS. En una función escalar insertada no
hay cuerpo de la función; el valor escalar es el resultado de una sola
instrucción. Para una función escalar de varias instrucciones, el cuerpo de la
función, 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 instrucción SELECT.
SQL Server proporciona numerosas funciones del sistema que se pueden usar
para realizar diversas operaciones. No se pueden modificar. Para obtener más
información, vea Funciones integradas (Transact-SQL), Funciones almacenadas
del sistema (Transact-SQL) y Funciones y vistas de administración dinámica
(Transact-SQL).
[Top]
Pasar por valor implica crear una nueva variable dentro de la función y pasarle una
copia del valor de la variable externa. Si se modifica el valor de la variable copia, la
variable original queda inalterada.
53
Algoritmo Y Lenguajes De Programación
Sea la función
int a=3;
funcion(a);
System.out.println("después de la llamada: a="+a);
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 función se pasa el valor de a en su único
argumento, el valor de a se copia en el parámetro x, la variable x toma el valor de
3. En el curso de la llamada a la función, el valor de x cambia a 5, pero cuando la
función retorna, la variable x ha dejado de existir. La variable a no se ha
modificado en el curso de la llamada a la función, y sigue valiendo 3.
Pasando objetos
Creamos una clase Entero muy sencilla que tiene como miembro dato un número
entero valor, y un constructor que inicializa dicho miembro público al crearse un
objeto de la clase Entero.
54
Algoritmo Y Lenguajes De Programación
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 número tres.
Estos dos ejemplos, nos ponen de manifiesto el significado de la frase "pasar por
valor un dato a una función", y el distinto comportamiento de los tipos básicos de
datos, que no se pueden modificar en el curso de la llamada a la función, de los
objetos que si se pueden modificar. La referencia a un objeto se pasa por valor a
la función. Dentro de la función, desde esta referencia podemos acceder a los
miembros públicos de dicho objeto para modificar su estado. Cuando la función
retorna el objeto estará modificado.
55
Algoritmo Y Lenguajes De Programación
String
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.)
El hecho de disponer de una dirección postal no garantiza que el lugar exista. Para
declarar variables de tipo puntero en la notación algorítmica 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 básicas sobre
el mismo: Asignarle memoria para almacenar un dato del tipo al que apunta:
56
Algoritmo Y Lenguajes De Programación
Crear
Destruir
Código:
57
Algoritmo Y Lenguajes De Programación
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
Por medio de cada programa, el auditor adquiere control sobre el desarrollo del
examen, pues estos además de ser una guía para los asistentes sirven para
efectuar una adecuada supervisión sobre los mismos, permitiendo
también determinar el tiempo real de ejecución de cada procedimiento para
compararlo con el estimado y así servir de pauta para la planeación de las
próximas, 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.
58
Algoritmo Y Lenguajes De Programación
o Una introducción que describa la naturaleza de las cuentas examinadas y
resuma los procedimientos de contabilidad de la compañía.
o Una descripción de los objetivos de auditoría que se persiguen en la
revisión de la sección.
o Una relación de los pasos de auditoría que se consideran necesarios para
alcanzar los objetivos señalados anteriormente.
59
Algoritmo Y Lenguajes De Programación
Conclusión
60
Algoritmo Y Lenguajes De Programación
Fuentes de información
www.virtual.unal.edu.co/cursos/ingenieria/2001839/index.html
Módulo 3. Constructores básicos parte B teoría
https://www.google.com.mx/?gws_rd=cr&ei=gv-
KUuq4I4bg2QWM8YDYAw#q=conclusion+de+Estructuras+Selectivas+y+de+Repetici%C3%B3n.
61