Está en la página 1de 22

INSTITUTO DE EDUCACIN SUPERIOR

TECNOLGICO PRIVADO
SAN EDUARDO

INFORME:
TRABAJO DE INVESTIGACIN
ASESOR

Ing. QUISPE MEDARDO VARN


ALUMNO:
JOS LEANDRO CHOQUEHUANCA CAMPOS

CICLO: II
TRUJILLO PER

2014

Una de las grandes diferencias de la programacin estructurada que


fomenta el Pascal sobre la programacin "libre" al estilo del
lenguaje BASIC, es el hecho que los programas pueden escribirse en
forma modular, permitiendo as que un problema general se
descomponga en una secuencia de subproblemas individuales. La
modularizacin proporciona dos ventajas importantes. Primero, para
tareas que deben efectuarse ms de una vez, la modularizacin evita
la necesidad de programacin redundante (repetida) en esencia del
mismo conjunto de instrucciones. En vez de ello, un mdulo de
programa puede definirse una vez para luego ser invocado desde
varios puntos del programa. Cada vez que el mdulo sea llamado
podr procesar un conjunto diferente de datos. El uso de mdulos
puede, por tanto, reducir apreciablemente la longitud de un
programa.
De mayor importancia an es la claridad lgica resultante de la
descomposicin de un programa en mdulos concisos e
independientes, donde cada mdulo representa una parte bien
definida del problema total. Tales programas son ms faciles de
escribir y depurar, y su estructura lgica es ms clara que la de los
programas que carecen de este tipo de estructura. Esto es
particularmente cierto cuando los programas son largos y
complicados. Muchos programas Pascal son, por tanto, modularizados
incluso cuando puedan no requerir la ejecucin repetida de las
mismas tareas. De hecho, la Modularidad de un programa se
considera parte importante de una buena prctica de programacin,
junto con otras caractersticas deseables tales como la Precisin del
clculo, Claridad, Simplicidad, Generalidad y la Eficiencia en cuanto a
velocidad y uso de la memoria (lo que no debe lograrse a expensas de
la claridad o la sencillez).
En Pascal estos mdulos o subprogramas se implementan como
procedimientos y funciones. Un procedimiento es una parte
autnoma includa dentro de un programa Pascal y se activa desde
cualquier parte del programa principal con solo invocar su nombre
(seguido de una lista de parmetros, si los tiene). Cuando se invoca
un procedimiento, el control se transfiere al comienzo del mismo. Se
efectan entonces las sentencias ejecutables del procedimiento.
Cuando se han ejecutado todas las instrucciones se devuelve

automticamente el control a la sentencia inmediatamente posterior


a la llamada del procedimiento.
Un subprograma puede ser Pre-declarado (estndar del Pascal) o
puede ser definido por el usuario. Los procedimientos y funciones
estndar se pueden llamar sin ninguna declaracin previa.

PROCEDIMIENTOS
La declaracin de un procedimiento definido por el usuario se debe
hacer en el bloque de declaraciones de procedimientos del mdulo
desde el cual ser invocado, y consta del encabezamiento y los
bloques de declaraciones y de instrucciones (cuerpo del
subprograma). El encabezamiento est formado por la palabra
PROCEDURE seguida del nombre o identificador del procedimiento y,
opcionalmente, una lista de parmetros.
Veamos un sencillo ejemplo:
program procedimientos;
var
cadena : string;
longitud,
carcter : integer;
procedure PreguntarCad;
begin
Write('Cadena a convertir a maysculas : ');
Readln(cadena);
end; , Preguntar procedure A_Mayusculas;
begin
longitud := length(cadena);
for carcter := 1 to longitud do
cadena*carcter+ := UpCase(cadena*carcter+);
end; , A_Mayusculas begin , Programa principal PreguntarCad;

A_Mayusculas;
Writeln(cadena)
ReadLn;
end.

Este programa convierte los caracteres alfabticos en minscula


dentro de una cadena de caracteres de entrada a sus
correspondientes maysculas. Para ello utiliza dos procedimientos; el
primero pregunta la cadena a transformar y el siguiente
procedimiento (A_Mayusculas) realiza la conversin. Aunque cada
sentencia del procedimiento podra ubicarse directamente en el
bloque principal, el modularizar el programa le da ms claridad y
elegancia.

Las constantes y variables que aparecen dentro de las sentencias


ejecutables de un procedimiento pueden haber sido declaradas
externamente (dentro de un mdulo que contiene la declaracin de
procedimiento), o localmente (dentro del propio procedimiento).
Aquellas constantes y variables declaradas dentro del bloque que
contiene la declaracin de procedimiento pueden utilizarse en
cualquier punto dentro de este bloque, ya sea interior o exterior al
procedimiento. Los identificadores definidos de esta manera se
consideran globales al procedimiento. Recuerde que un identificador
es un nombre dado a un elemento de un programa, tal como una
constante, una variable, un procedimiento o un programa. En general,
son preferibles los identificadores locales a los globales.

Las partes de un subprograma son similares a las de un programa, o


sea: encabezamiento, parte de declaraciones y parte de instrucciones.
Todas las variables declaradas en un subprograma y definidas dentro
de l son variables locales, es decir slo existen dentro del mdulo y
durante su ejecucin. No son conocidas por el programa principal, ni
fuera del procedimiento o funcin. La parte de instrucciones o cuerpo
del subprograma especifica las acciones que se llevarn a cabo
cuando el procedimiento sea invocado.

FUNCIONES
Una funcin es similar a un procedimiento, pero a diferencia de ste,
una funcin se usa para devolver un solo valor de tipo simple a su
punto de llamada. Esta llamada puede hacerse dentro de una
expresin como si fuera una variable ordinaria de tipo simple. El
nombre de una funcin puede ir seguido de uno o ms parmetros
actuales encerrados entre parntesis y separados por coma.
Suponiendo que fac es el nombre de una funcin que calcula el
factorial de una cantidad entera (el factorial de n se define como n! =
1*2*3*..n). La frmula
f = x!/a!(x-a)!
podra entonces ser evaluada como
f := fac(x) / (fac(a) * (fac(x-a));
donde f, x y a son variables de algn tipo numrico.
La funcin en s misma, consiste de una cabecera de funcin y los
bloques de declaraciones y de instrucciones (cuerpo del
subprograma). La cabecera se escribe de la forma
FUNCTION nombre(parmetros formales) : tipo;
El ltimo elemento, tipo, especifica el tipo de dato del resultado que
la funcin retorna.

Los bloque de declaraciones y de instrucciones son similares a los de


un procedimiento aplicando las mismas reglas de construccin para
ste. Dentro del bloque de instrucciones, sin embargo, el
identificador que representa el nombre de la funcin debe tener
asignado un valor del tipo apropiado (segn se especifica en la
cabecera). Este es el valor que la funcin devuelve a su punto de
referencia. Pueden asignarse valores al nombre de la funcin en ms
de un lugar dentro del bloque, siendo vlida la ltima asignacin que
se efecta. En Object Pascal tambien es posible asignar el valor que
retorna la funcion a la variable result, esta variable se declara
implicitamente para toda funcion y se utiliza para expecificar el valor
de retorno. Actualmente se da prioridad al uso de result en lugar del
nombre de la funcin.
He aqu el desarrollo de un programa para calcular el factorial de un
nmero, por medio de una funcin definida:

program factorial;
var
numero : real;
function fac(n : Integer) : real;
var
i
: integer;
acum : real;
begin
acum := 1;
for i := 2 to trunc(n) do
acum := acum * i;
result := acum; // El cdigo sin usar result seria :
// fac := acum;
end; , fac begin
Repeat
Write('Numero a calcular su factorial ?');

Readln(numero);
Writeln(fac(numero):40:0);
Until numero = 0;
end.
La declaracion de la funcin fac, incluye una declaracin del
parmetro por valor n. Note tambin que la ltima palabra de la lnea
(real) establece que la funcin devolver una cantidad de tipo real.
Esta funcin acepta un valor n y luego calcula el valor de n! usando
dos variables locales (i de tipo entero y acum de tipo real). El
resultado final se asigna al identificador fac, que es tambin el
nombre de la funcin.
TIPOS PROCEDIMIENTO
En una extensin al Pascal estandar, Object Pascal permite que
procedimientos y funciones sean tratados como objetos que pueden
ser asignados a variables y pasados como parmetros a subrutinas;
esto es posible usando tipos procedimiento (Procedure types).

Declaracin de un tipo procedimiento


La declaracin de un tipo procedimiento es, en esencia, igual al
encabezamiento de un procedimiento o funcin, excepto que se
omite
el
identificador
que
sigue
a
la
palabra
clave procedure o function. Esta declracin debe especificar los
parmetros y, en el caso de funciones, el tipo del resultado. Estos son
algunos ejemplos:

type
Proc
= Procedure(Var x, y : integer);
Rutina = Procedure;
Funcion = Function (x : real) : real;
ProcesoCad = Procedure(Var C : String);

Los nombres de los parmetros en la declaracin de un tipo


procedimiento son meramente decorativos, stos no afectan el
significado de la declaracin.

TIPOS DE BUCLES CICLOS DE REPETICIN EN PHP:


WHILE, DOWHILE Y FOR.
ESTRUCTURAS REPETITIVAS O BUCLES EN PHP
Las estructuras repetitivas (bucles) son aquellas que reiteran una o un
grupo de instrucciones "n" veces y dependen de una variable de
control del ciclo. Es decir, ejecutan una o varias instrucciones un
nmero de veces definido. Las instrucciones bsicas que permiten
construir este tipo de estructuras son while, do ... while y for.
LA INSTRUCCIN WHILE
La instruccin while (que en castellano se traducira como
mientras) ejecuta una porcin de programa mientras se cumpla
una cierta condicin.
Mientras la condicin sea verdadera, se ejecutan las instrucciones
contenidas en el while. Cuando deja de cumplirse la condicin, se sale
del ciclo y se contina ejecutando el resto del programa.
Si la condicin no se cumple ni la primera vez que se comprueba, las
lneas en el interior del while no se ejecutarn ni una vez.
La estructura general o sintaxis habitual de un bucle while es la
siguiente:
<?php
while (condicin) ,

... sentencias;
?>

En este fragmento de cdigo estaramos indicando que mientras se


cumpla la condicin se realizan las sentencias, y en este caso si no se
cumpliese la condicin se seguira ejecutando el programa o
mostrando los contenidos de la pgina web justo despus del cierre
de la instruccin while (que queda determinado por el smbolo de
cierre - ).
Escribe ahora este cdigo y gurdalo con un nombre de archivo como
ejemplo1.php. A continuacin, sube el fichero al servidor y visualiza
el resultado.
<?php
$galletas = 0;
while ($galletas < 10),
echo "$galletas, ";
$galletas++;
?>

En este ejemplo, las instrucciones dentro del while se ejecutaran 10


veces, mostrando los nmeros de 0 a 9 separados por coma. Hay que
tener especial cuidado en no crear estructuras repetitivas que se
ejecuten infinitamente (bucles infinitos). En el ejemplo anterior, si
no incrementamos el valor de la variable $galletas, la condicin del
while se cumplira siempre y tendramos un problema porque
habramos creado un bucle infinito, quedando el programa atascado
en dicho while.

EJERCICIO 1
Crea el cdigo PHP donde generes:
a) Un bucle while que cuente desde 50 hasta 40 (fjate que en este
caso es decreciente)
b) Un bucle while que a partir de una variable $contador que toma
valores de 1 a 5, muestre por pantalla el doble del valor de $contador,
es decir, que muestre 2, 4, 6, 8, 10.

Para comprobar si tus respuestas y cdigo son correctos puedes


consultar en los foros aprenderaprogramar.com.
LA INSTRUCCIN DO WHILE
La estructura repetitiva do-while (en castellano equivaldra a hacer
mientras) es muy similar a la estructura while, excepto q ue la
expresin verdadera es verificada al final de cada iteracin en lugar
de al principio. La diferencia principal con los bucles while es que est
garantizado que se ejecuten las instrucciones que contienen, al
menos una vez (la verificacin de si se tiene que repetir el proceso se
realiza al final de la repeticin de la estructura.

La estructura general o sintaxis habitual de un bucle do while es la


siguiente:
<?php
do ,
sentencias
- while(condicin);
?>

En este fragmento de cdigo estaramos indicando que se ejecute una


primera vez s o s las sentencias, y que despus se evale la
condicin para comprobar si se deben ejecutar nuevamente las
sentencias. Como vemos, aunque no se cumpla la condicin las
sentencias se ejecutaran al menos una primera vez.
Escribe ahora este cdigo y gurdalo con un nombre de archivo como
ejemplo2.php. A continuacin, sube el fichero al servidor y visualiza
el resultado.
<?php
$galletas = 0;
do ,
echo "$galletas, ";
$galletas++;
- while ($galletas < 10);
?>

EJERCICIO 2
Crea el cdigo PHP donde generes:
a) Un bucle dowhile que cuente desde 50 hasta 40 (fjate que en
este caso es decreciente)
b) Un bucle dowhile que a partir de una variable $contador que
toma valores de 1 a 5, muestre por pantalla el doble del valor de
$contador, es decir, que muestre 2, 4, 6, 8, 10.

Para comprobar si tus respuestas y cdigo son correctos puedes


consultar en los foros aprenderaprogramar.com.

LA INSTRUCCIN FOR
La estructura repetitiva for (en castellano se traducira como
desde) se utiliza generalmente cuando tenemos bien determinada
la cantidad de repeticiones a realizar. Se diferencia de las anteriores
en que se debe incluir en la propia instruccin una variable de
control, la cual se incrementa o decrementa de forma automtica. La
estructura de estas instrucciones viene a ser muy similar a la anterior.
La estructura general o sintaxis habitual de un bucle for es la
siguiente:
<?php
for

($variable=valor_inicial;

condicin;

incremento) ,
... sentencias;
?>

En este fragmento de cdigo estaramos indicando que mientras se


cumpla la condicin se realizan las sentencias, y en este caso si no se
cumpliese la condicin se seguira ejecutando el programa justo
despus del cierre de la instruccin for (-). Todo esto es igual a la
instruccin while anteriormente citada, salvo que en la propia
declaracin de la estructura se encuentra la variable de control, que
en cada repeticin se incrementa automticamente.
Esta instruccin consta, por tanto, de tres parmetros:

Inicializacin de la variable que se utilizar en la condicin.

Condicin que se debe cumplir para permanecer en el ciclo.

Modificacin de la variable utilizada en la condicin.

Escribe ahora este otro cdigo gurdalo con un nombre de archivo


como ejemplo3.php. A continuacin, sube el fichero al servidor y
visualiza el resultado.
<?php
for ($galletas
$galletas++),

= 0;

echo "$galletas, ";


?>

$galletas

< 10;

Este ejemplo muestra a la salida, la misma informacin que mostraba


la instruccin while. Como podemos observar, el valor inicial y el
incremento de la variable $galletas, van en la propia instruccin.
EJERCICIO 3
Crea el cdigo PHP donde generes:
a) Un bucle for que cuente desde 50 hasta 40 (fjate que en este caso
es decreciente y que por tanto la variable deber operar como
$galletas ).
b) Un bucle for que a partir de una variable $contador que toma
valores de 1 a 5, muestre por pantalla el doble del valor de $contador,
es decir, que muestre 2, 4, 6, 8, 10.

Para comprobar si tus respuestas y cdigo son correctos puedes


consultar en los foros aprenderaprogramar.com.
MODIFICAR EL PASO O STEP DE LA VARIABLE CONTADORA
Crea el siguiente cdigo, gurdalo con un nombre de archivo como
ejemplo4.php y visualiza los resultados en tu navegador.
<?php
for ( $i = 0; $i < 50; $i+=5 ),
echo " $i <br/> ";

?>

Fjate que en este caso a la variable contador la hemos denominado i.


Es habitual usar nombres como i, j, k para las variables contadoras en
bucles.
Otra cosa interesante es que usando la instruccin += conseguimos
que la variable contadora no vaya de uno en uno, sino que el paso
(step) de la variable sea el nmero que nosotros deseemos. En este
caso, hemos utilizado un incremento de 5 unidades en cada
repeticin del bucle. Tambin podemos lograr el mismo efecto pero
con decrementos usando =.
EJERCICIO 4
Crea el cdigo PHP donde generes:
a) Un bucle for que cuente desde 50 hasta 500 de 25 en 25.

b) Un bucle for que a partir de una variable de control $j que toma


valores de 100 a 500 de 100 en 100, muestre por pantalla el resultado
de dividir la variable de control por 20. En este caso, el resultado ser
5 (que es 100/20), 10 (que es 200/20), 15, 20, 25.

ARREGLOS Y MATRICES
En cualquier lenguaje de programacin es posible construir
estructuras que almacenen conjuntos de datos. Estas estructuras
pueden tener una o ms dimensiones. Las estructuras con una
dimensin se denominan arreglos y las estructuras con dos
dimensiones se denominan matrices. Hay casos particulares en que se
requiere el uso de ms de dos dimensiones, en ese caso se
denominan arreglos multidimensionales. Java adems incluye en su
API clases que proveen servicios para el almacenamiento de objetos
denominadas colecciones.

ARREGLOS
Un arreglo es una estructura que posee un conjunto de datos del
mismo tipo. Los arreglos en Java son objetos pero sus elementos
pueden ser tipos primitivos de datos o clases. Un arreglo tiene las
siguientes caractersticas:

Nombre. El nombre identifica al arreglo y a travs de este, se


accede al arreglo para su lectura y escritura de informacin. La
identificacion del arreglo con el nombre, se realiza mediante la
declaracion del arreglo

1 int *+ miArreglo;

Instancia con el operador new que permite la asignacin del


tamao del arreglo

1 miArreglo = new int*20+

Es posible realizar los procedimientos anteriores en una sola


lnea de cdigo.

1 int *+ miArreglo = new int*20+

Se accede a los elementos del arreglo a travs de corchetes


cuadrados * + indicando la posicin del elemento al cual se
desea acceder. La posicin del elemento es denominada ndice.
El ndice inicial es 0 y el final es n-1 donde n es la cantidad de
elementos del arreglo

1 miArreglo*0+=10;

Los elementos de un arreglo se inicializan al valor por defecto


del tipo de dato

Los arreglos se pueden inicializar con valores entre corchetes ,


- separados por comas

String
dias*+
=
1 ,"lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "dom
ingo"-;
Calculo de promedio en un arreglo
Para calcular el promedio en un arreglo, basta con hacer la sumatoria
de nmeros del arreglo y dividir en el nmero de elementos

Su implementacin es la siguiente

01 import java.util.Scanner;

02 public class EjemplosArreglos ,


03 public static void main(String*+ args) ,
04 Scanner s = new Scanner(System.in);
05 double promedio;
06 double sumatoria=0;
07 int tamano=10;
08 double *+arreglo = new double*tamano+;
09 for(int i=0; i<tamano; i++),
10

arreglo*i+=s.nextInt();

11 12 System.out.println("El arreglo original es:");


13 for(int i=0; i<tamano; i++),
14

System.out.println(arreglo*i+);

15 16 for(int i=0; i<tamano; i++),


17

sumatoria+=arreglo*i+;

18 19 promedio=sumatoria/tamano;
20 System.out.println("El promedio es:"+promedio);
21 22 -

Para probar el algoritmo, se usan los sigientes datos

Entrada Estndar
25
34
12
8
7
11
45
20
21
10
Salida Estndar
El arreglo original es:
25.0
34.0
12.0
8.0
7.0
11.0
45.0
20.0
21.0
10.0
El promedio es:19.3

MATRICES

Una matriz es un arreglo bidimensional. Una matriz cuenta con filas y


columnas. Con base en la combinacin de fila y columna, se puede
acceder a cada uno de los elementos de la matriz.
Una matriz tiene las siguientes caractersticas:

Nombre. El nombre identifica al arreglo y a travs de este, se


accede al arreglo para su lectura y escritura de informacin. La
identificacin de la matriz con el nombre, se realiza mediante la
declaracin de la matriz

1 int *+*+ miMatriz;

Instancia con el operador new que permite la asignacin del


tamao del arreglo

1 miMatriz = new int*3+*4+;

Es posible realizar los procedimientos anteriores en una sola


lnea de cdigo

1 int *+*+ miMatriz = new int*3+*4+;

Los elementos de una matriz se inicializan al valor por defecto


del tipo de dato

Las matrices se pueden inicializar con valores entre corchetes


,- separados por comas por cada fila de datos. Cada fila
tambin se separa por comas

1 int *+*+ miMatriz =,,1,2,3,4-,,5,6,7,8-,,9,10,11,12La siguiente figura representa una matriz en Java

Calculo de la traspuesta de una matriz


La traspuesta de una matriz consiste en intercambiar filas por
columnas y viceversa. Su implementacin es la siguiente
01 public class EjemplosMatrices ,

02 public static void main(String*+ args) ,


03 int *+*+ miMatriz =,,1,2,3-,
04

,4,5,6-,

05

,7,8,9-

06 -;
07 int *+*+ miMatrizTraspuesta = new int*3+*3+;
08 System.out.println("La matriz original es:");
09 for(int i=0; i<3; i++),
10

for(int j=0; j<3; j++),

11

System.out.print(miMatriz*i+*j++"\t");

12

13

System.out.println();

14 15 for(int i=0; i<3; i++),


16

for(int j=0; j<3; j++),

17

miMatrizTraspuesta*j+*i+=miMatriz*i+*j+;

18

19 20 System.out.println("La matriz traspuesta es:");


21 for(int i=0; i<3; i++),
22

for(int j=0; j<3; j++),

23

System.out.print(miMatrizTraspuesta*i+*j++"\t");

24

25

System.out.println();

26 27 28 -

Salida Estndar

La matriz original es:


123
456
789
La matriz traspuesta es:
147
258
369

También podría gustarte