VELIA UNIDAD 2.docx

May 26, 2017 | Autor: Genaro Ramirez | Categoria: Petroleum geology
Share Embed


Descrição do Produto

FUNDAMENTOS DE PROGRAMACIONFUNDAMENTOS DE PROGRAMACION
FUNDAMENTOS DE PROGRAMACION
FUNDAMENTOS DE PROGRAMACION














Alumno: Genaro Ramírez CarmonaMaestra: Velia Del Pilar Rubí Materia: Principios de ProgramaciónNúmero de equipo: 3Nombre de equipo: Black GoldGrado: 4 Sección: AUNIVERSIDAD TECNOLOGICA DEL NORTE DE COAHUILA Alumno: Genaro Ramírez CarmonaMaestra: Velia Del Pilar Rubí Materia: Principios de ProgramaciónNúmero de equipo: 3Nombre de equipo: Black GoldGrado: 4 Sección: AUNIVERSIDAD TECNOLOGICA DEL NORTE DE COAHUILA
Alumno: Genaro Ramírez Carmona
Maestra: Velia Del Pilar Rubí
Materia: Principios de Programación
Número de equipo: 3
Nombre de equipo: Black Gold
Grado: 4 Sección: A
UNIVERSIDAD TECNOLOGICA DEL NORTE DE COAHUILA
Alumno: Genaro Ramírez Carmona
Maestra: Velia Del Pilar Rubí
Materia: Principios de Programación
Número de equipo: 3
Nombre de equipo: Black Gold
Grado: 4 Sección: A
UNIVERSIDAD TECNOLOGICA DEL NORTE DE COAHUILA













Contenido
1 Tipos de datos 3
2 Tipos de operadores 4
3 Tipos de expresiones 7
4 Estructura del programa 9
5 Decisión y repetición 14
6 Funciones 15





















1 Tipos de datos
Los tipos de datos se utilizan para asignar una variable o una constante con un nombre fijo que tome una porción de memoria y que almacene una información en memoria, si el tipo de dato es numérico solo almacenará datos numéricos y si el tipo de dato es una cadena de caracteres almacenará texto.
Y dependiendo el tipo de datos numérico se podrá almacenar una cantidad de dato dependiendo la precisión que tenga la variable.
En programacion los tipos de datos son (o pueden ser) distintos entre si, cada tipo corresponde a como se va a jugar con la memoria, es decir un dato numerico puede usar entre 2 y 4 byte (depende del compilador), mientras que un dato carácter usara un byte por cada carácter, es por eso que se especifica que es lo que se necesita.
En C, algunos tipos de datos son:
INT : Para numero enteros.
Ej:
Int a=5;
CHAR : Para caracteres. Se usa [] con un valor para hacer una cadena de caracteres, por ejemplo una palabra.
Ej:
Char [4] a=Hola;
FLOAT : Para numeros decimales.
Ej:
Float a=1.25;
En Visual Basic / Visual.Net, algunos tipos de datos son (cabe resaltar que en este lenguaje de programación se anticipa la instrucción "DIM" que declara y asigna espacio para almacenar una o más variables).
Integer : Para números enteros



Ej:
Dim a as integer
a= 4
String: Para cadena de caracteres

Ej:
Dim cadena as string
cadena="Visual Basic"
Double: Para número decimales.

Ej:
Dim b as doublé
b=4.12
-Hay muchos mas, pero estos son mas comunes y son usados en otros lenguajes (son como un estandar, pero no son regla).

2 Tipos de operadores
C es un lenguaje con un gran número de operadores. La tabla de abajo es un listado de los operadores de C: su símbolo a la izquierda y su significado a la derecha. Muchos de ellos no los hemos utilizado todavía y los iremos aprendiendo a manejar poco a poco.
Esta tabla agrupa a los operadores por su precedencia, es decir, el orden en que se evalúan en las expresiones que contienen más de un operador. Por ejemplo, la multiplicación tiene más precedencia que la suma. Por lo tanto, en la siguiente instrucción, se evalúa b*c antes de sumar a:
Las expresiones entre paréntesis se evalúan primero independientemente de la precedencia. Por ejemplo, en la siguiente expresión, se evalúa a+b y la suma se multiplica por c:
y = (a + b) * c;

Todos los operadores de una misma caja en la tabla tienen la misma precedencia. La precedencia disminuye a medida que descendemos por la tabla.
































3 Tipos de expresiones
Todos los operadores pueden recibir variables como parámetros siempre que sean del tipo adecuado, no solamente valores constantes como lo hemos hecho hasta ahora. De esta forma podemos almacenar valores en variables, realizar operaciones sobre ellos y almacenar los resultados en otras variables. Los siguientes son algunos ejemplos de este tipo de uso de los operadores.
Esta operación calcula el área de un cuadrado a partir de la longitud de sus lados, almacenada en la variable longitud_del_lado, y la almacena en la variable área_cuadrado.
área_cuadrado := longitud_del_lado * 4
Esta operación toma los valores de las variables precio y cantidad, calcula la operación correspondiente (una multiplicación en este caso) y almacena el resultado en la variable total.
total := precio * cantidad
Esta operación estima la cantidad de semanas transcurridas tomando la cantidad de días transcurridos y dividiéndola entre 7. semanas_transcurridas es una variable real para almacenar el resultado con decimales. Se usa 7.0 como divisor para garantizar que el resultado de la expresión sea un número real, no entero, y evitar un error al compilar o ejecutar el programa.
real semanas_transcurridas := días_transcurridos / 7.0
*Expresiones complejas y precedencia de operadores
Al igual que en las operaciones usadas en la aritmética, en los lenguajes de programación las operaciones simples que hemos visto hasta el momento se pueden combinar en operaciones más complejas y estas se evalúan realizando las operaciones en un orden preestablecido. Este orden especificado por la precedencia de los operadores. Los operadores con mayor precedencia se evalúan antes que los operadores con menor precedencia. Cuando el compilador encuentra una expresión con dos operadores que tiene el mismo nivel de precedencia, los evalúa de izquierda a derecha.[1] En el siguiente ejemplo se efectúa primero la multiplicación y luego la suma, porque ese operador tiene precedencia.

total := costo_por_servicio + precio_producto * cantidad_adquirida
Al igual que en las matemáticas básicas, es posible alterar el orden de evaluación usando paréntesis para agrupar y acomodar expresiones.[1] En la siguiente expresión se usan los paréntesis para realizar primero la suma que modifica el precio actual y luego calcular el costo total usando la multiplicación:
costo_total := ( precio_actual + aumento_del_costo ) * cantidad_adquirida
La siguiente tabla muestra la precedencia que tienen los operadores que hemos visto en esta lección en la mayoría de los lenguajes de programación. La precedencia se muestra de forma decreciente por lo tanto los operadores con la menor precedencia en esta tabla se evalúan primero. Los operadores que tienen la misma precedencia se evalúan de izquierda a derecha.









Estos son algunos ejemplos de expresiones complejas con una explicación de la transformación que realizan.


4 Estructura del programa
La programación estructurada es una técnica para escribir programas (programación de computadora). Para ello se utilizan únicamente tres estructuras: secuencia, selección e iteración; siendo innecesario el uso de la instrucción o instrucciones de transferencia incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples RETURN).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 1960, principalmente debido a las aplicaciones gráficas, por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.
Orígenes de la programación estructurada
A finales de los años 1970 surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
Secuencia
Instrucción condicional.
Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas citadas.
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.


Ejemplo:
INPUT x
INPUT y
auxiliar= x
x= y
y= auxiliar
PRINT x
PRINT y
Esta secuencia de instrucciones permuta los valores de x e y, con ayuda de una variable auxiliar, intermedia.
1º Se guarda una copia del valor de x en auxiliar.
2º Se guarda el valor de y en x, perdiendo su valor anterior, pero se mantiene una copia del contenido en auxiliar.
3º Se copia a y el valor de auxiliar, que es el valor inicial de x.
El resultado es el intercambio de los valores entre x e y, en tres operaciones secuenciales.
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.
Ejemplo:

IF a > b THEN
PRINT a ; " es mayor que " ; b
ELSE
PRINT a ; " no es mayor que " ; b
END IF

La instrucción selectiva anterior puede presentar uno de dos mensajes: a es mayor que b o a no es mayor que b, según el resultado de la comparación entre a y b; si el resultado de a > b es verdadero, se presenta el primer mensaje, si es falso se exterioriza el segundo. Las palabras clave IF, THEN, ELSE, y END IF; constituyen la propia estructura de la instrucción condicional (palabra reservadas), proporcionada por el lenguaje, el usuario no debe utilizar sus nombres salvo para este fin.
El caso ejemplo se ha codificado en BASIC.
IF señala el comienzo de la instrucción condicional, y se espera que después siga la condición lógica de control de la instrucción.
THEN señala el fin de la condición, y después estará la instrucción a ejecutar si la condición es verdadera.
ELSE es opcional, le sigue la instrucción que se ejecutará si la condición es falsa.
END IF indica el final de la estructura, luego de ésta el programa seguirá su curso.
Ampliando un poco el ejemplo anterior, con estructuras anidadas:

IF a > b THEN
PRINT a ; " es mayor que " ; b
ELSEIF a < b THEN
PRINT a ; " es menor que " ; b
ELSE
PRINT a ; " es igual que " ; b
END IF
Este ejemplo permite considerar situaciones en las que se tiene más de dos alternativas. En este caso se ha considerado tres, pero hay situaciones en las que deben considerarse más casos y para ellos se puede repetir las veces que sea necesario la opcional ELSEIF.


Estructura iterativa
Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repita su ejecución mientras se cumpla una condición, el número de iteraciones normalmente está determinado por el cambio en la condición dentro del mismo bucle, aunque puede ser forzado o explícito por otra condición.
Ejemplo:
a= 0
b= 7
DO WHILE b > a
PRINT a
a= a + 1
LOOP
Esta instrucción tiene tres palabras reservadas WHILE, DO y LOOP.
DO WHILE: señala el comienzo del bucle ("haga mientras") y después de estas palabras se espera la condición lógica de repetición, si la condición es verdadera pasa el control al cuerpo del bucle, en caso contrario el flujo salta directamente al final de la estructura, saliendo de la misma.
LOOP: señala el final del cuerpo de la estructura de bucle.
El bucle mientras, se repite mientras la condición sea verdadera, esta condición se comprueba o chequea antes de ingresar al cuerpo del bucle, por lo que el mismo puede que no se ejecute nunca (cuando la condición es falsa desde un principio) o bien que se repita tantas veces como resulte y mientras la condición sea cierta.
En el ejemplo se tienen definidas dos variables a y b, que al iniciarse el bucle contienen los valores a=0 y b=7.
La condición del bucle es b > a.
Si a=0 y b=7. la condición es verdadera, en el cuerpo del bucle se escribe el valor de a en pantalla y luego se incrementa esa variable en una unidad. Entonces pasa a ser a=1 y b=7.
... (se repite la secuencia)
...
Cuando a=6 y b=7. la condición sigue siendo verdadera, se escribe el valor de a en pantalla y se incrementa en una unidad.
Cuando se llega a que a=7 y b=7. Entonces la condición ya resulta falsa y la instrucción WHILE finaliza, saliendo por LOOP.
La salida por pantalla de este ejemplo es 0 1 2 3 4 5 6, y se iteró 7 veces.
El lenguaje utilizado en el ejemplo (BASIC), además de tener otras del tipo iterativas, permite utilizar la misma estructura indicada, pero de la siguiente forma:
a= 0
b= 7
WHILE b > a
PRINT a
a= a + 1
WEND
Que es absolutamente análoga, en éste formato la palabra reservada WEND marca el fin del bucle y no se utiliza ni DO ni LOOP.

5 Decisión y repetición
Un programador se enfrenta al desarrollo de un programa con recursos y experiencia. Vamos a tratar de abordar los distintos recursos disponibles en base a una terminología. En el diseño de un algoritmo no es en absoluto trascendente saber si lo que necesitamos es una estructura o una herramienta, pero sí será decisivo que conozcamos el recurso necesario, llámese como se llame.

 
Llamaremos estructura a una instrucción o conjunto de instrucciones que controlan el flujo del programa para que éste sea secuencial, alternativo o repetitivo. De ahí la denominación de estructura secuencial, estructura de decisión o estructura de repetición, que gráficamente podemos asociar a:
 

Esquema o estructura Esquema o estructura Esquema o estructura
secuencial de decisión de repetición (bucle)
 


La potencia de los ordenadores se apoya, como es evidente, en la velocidad, pero también y de forma decisiva en las capacidades para decidir y repetir. En general, a una estructura de repetición se le conoce por "bucle" y así se puede decir "estamos en el bucle 7" ó "estamos en la iteración 7" en alusión a que se trata de la séptima repetición de un proceso.
Iremos estudiando poco a poco cómo se materializan estas formas de estructurar un algoritmo o programa y haciendo ejercicios de aplicación.
 

6 Funciones
Hasta ahora, en todos los programas que hemos escrito, las llamadas a las funciones se encontraban después de las definiciones, como en el siguiente programa:

#include
int longitud (char cad [])
{
int i;
for (i=0; cad [i]; i++);
return i;
}
void main ()
{
char cadena [50] = "hola";
printf ("%d\n", longitud (cadena));
}

¿Qué ocurre cuando la llamada se encuentra antes de la definición como en la siguiente versión?
#include
void main ()
{
char cadena [50] = "hola";
printf ("%d\n", longitud (cadena));
}
int longitud (char cad [])
{
int i;
for (i=0; cad [i]; i++);
return i;
}

Lo que ocurre es que el compilador detecta la llamada antes de compilar la definición y emite un aviso indicando que da por hecho que la función devuelve un número entero. Si esto no es cierto, cuando el compilador alcanza la definición emite además un error por redefinición. es decir, por dos definiciones diferentes.

Para evitar estos problemas no es necesario situar la definición antes de la llamada, que es demasiado exigente cuando el programa se complica, basta con colocar el prototipo de la función antes de la llamada como en el siguiente ejemplo:

#include
int longitud (char cad []);
void main ()
{
char cadena [50] = "hola";
printf ("%d\n", longitud (cadena));
}
int longitud (char cad [])
{
int i;
for (i=0; cad [i]; i++);
return i;
}

Las ventajas de este enfoque son muchas. Entre ellas, el compilador aunque no haya visto la definición antes de la llamada, sí puede detectar si la llamada se ajusta al prototipo de la definición, es decir, si se pasan el número correcto de argumentos y si éstos son de los tipos adecuados. Además, como veremos más adelante, esto nos permite escribir programas repartidos entre varios archivos cómodamente.






Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.