viernes, 25 de marzo de 2011

JERARQUIA DE OPERACIONES

El problema de no tomar en cuenta la jerarquia de los operadores al plantear y resolver una operacion casi siempre conduce a resultados muchas veces equivocados como estos:

Ejemplos:

2+ 3* 4 := 20(incorrecto)

:= 14 (correcto)

b) si calif1=60 y calif2=80 y si entonces en programa se usa

promedio := calif1 + calif2/2

la pc daria como resultado promedio = 100

Recordar siempre, que antes de plantear una formula en un programa se debera evaluar contra el siguiente:

Orden de operaciones:

1.- Parentesis

2.- Potencias y raices

3.- Multiplicaciones y divisiones

4.- Sumas y restas

5.- Dos o mas de la misma jerarquia u orden, entonces resolver de izquierda a derecha

Nota: Si se quiere alterar el orden normal de operaciones, entonces usar parentesis.

Nota: Tampoco es bueno usar parentesis de mas en una operacion, esto solo indica que no se evaluo bien la formula, como en el siguiente ejemplo;



aqui los parentesis estan de mas, porque por orden de operaciones, multiplicacion y division tienen la misma jerarquia y entonces se resuelven de izquierda a derecha, en otras palabras ni que falten parentesis ni que sobren parentesis.

PROGRAMACION ENTRADA/SALIDA

La estructura de un programa en pascal es;

PROGRAM NOMPROG;

CONST

VAR

BEGIN

INSTRUCCIONES;

END.

EJEMPLO Prog1.pas


program prog1;

var

area,base,altura :real;

begin

(* area de captura *)

write('Dame Base :');

readln(base);

write('Dame Altura:');

readln(altura);

(* area de operaciones *)

area := base * altura / 2;

(* area de despliegue *)

writeln('El Area es =',area:0:2);

readln;

end.

Corrida:



Reglas para escribir un programa en PASCAL :

a) Se sigue la estructura del programa, escrita al principio del tema.

b) Primero declarar la variables.

c) El cuerpo de instrucciones del programa debera encerrarse entre el begin —- end.

d) Todas las instrucciones ejecutables terminan con punto y coma.

e) Los comentarios se ponen encerrados entre (* comentario *)

f La declaracion de variables ocupa la primera posicion.

g) Se utiliza una instruccion llamada write() o writeln() para desplegar mensajes u otros elementos en el dispositivo de salida standar(pantalla).

h.- Se utiliza una instruccion llamada read() o readln() para capturar datos desde el dispositivo de entrada standar (teclado).

i.- Se usa una instruccion readln; al final para detener la pantalla hasta que el usuario pulse la tecla “any key” para continuar o el programa responde tan aprisa que no se alcanza a ver y se regresa al editor.

Ya creadas y cargadas las variables normales se efectuan los procesos u operaciones normales con ellas.

Este programa se debera crear usando el editor del turbo pascal y grabarlo como prog1.pas en el folder de su preferencia, para ejecutarlo usar la opcion RUN del propio editor.

RECORDAR nunca grabarlo con un nombre que contenga mas de 8 letras o caracteres, recordar que estamos hablando de los tiempos de msdos

INSTRUCCION WRITE() y WRITELN()

Es una de las mas poderosas herramientas de despliegue de datos que posee el lenguaje.

Su formato completo es:

WRITE(lista de parametros);

* Donde lista de parametros pueden ser:

a).- Mensaje o texto

b).- variables

c).- Combinacion de los dos

ejemplos;

write('el area es')'

write('el area es=',area);

write('base=',base,'altura='altura');

Ademas cada argumento ya sea texto o variable puede incluir el sguiente modificador;

Texto o variable:tamanocampo:tamanodecimal

Ejemplo

Write('mama':10); ←- se desplegara centrado en los 10 primeros espacios de los 80 espacios que tiene una pantalla de msdos.

Si el texto es mayor que el tamano asignado, TP ignora el tamano asignado y despliega todo el texto.

Ejemplo

Pi:real;

Begin

Pi:=3.1416;

Write(pi:10:2);

End.

Estamos pidiendo desplegar todo el numero en 10 espacios, en este caso TP centra y redondea al entero mas cercano, es decir la slida es 3.14.

La diferencia entre WRITE y WRITELN, es que el segundo incluye un cambio de renglon al final del despligue.

RECORDAR que en este compilador, cuando esten capturando una string y luego un dato numerico con read(), el compilador se va a saltar la captura del dato numerico, esto es un bug del compilador, para resolver este problema, solo agregar uno o varios readln; sin nada despues del read de captura de string o mejor aun solo usar readln() para captura.

INSTRUCCION READ() Y READLN();

Esta instruccion permite que el dato entrado desde el teclado sea capturado y almacenado en la variable correspondiente su formato completo es:

read(lista de variables);

ejemplo

read(base,altura,nombre,edad);

Aqui se pretende capturar cuatro variables en una sola pasada.

Lo mas sensato es usar un read(variable) por cada variable que se ocupe capturar en el programa.

Recordar tambien que en el caso de captura de reales es preferible agregar un cero (0) para decimales que no lo contengan, es decir no capturar .234 sino 0.234

La diferencia entre read() y readln(), es que el primero deja el cursor en el renglon de captura y readln() lo avanza un renglon.

FORMATO DE PANTALLA

Uses crt; Libreria a usar

Esta libreria se pone despues del program prog; y antes de CONST o VAR o BEGIN dependiendo del problema.

1.- ClrScr(); Limpia pantalla

ESTA INSTRUCCION NO OCUPA ACLARACION

2.- Gotoy(#de col,#de ren); posiciona cursor en lugar indicado

RECORDAR QUE UNA CONSOLA NORMAL TIENE 24 RENGLONES Y 80 COLUMNAS

En particular poner un gotoxy(); antes de cada write() en el programa.

Recordar ademas que en el folder TP esta tambien el programa THELP que les da un miniprograma residente con ayuda para pascal.

ISNTRUCCIONES DE CONTROL DE PROGRAMA

nstrucciones de control de programa permiten alterar la secuencia normal de ejecucion de un programa.

Estas instrucciones se dividen en tres grandes categorias:

Instrucciones Condicionales que en pascal se implementan con las instrucciones if y case.

Instrucciones de ciclos con, for, while, repeat until.

Instruccion de salto incondicional goto.

INSTRUCCIONES CONDICIONALES

Una de las mas poderosas caracteristicas de cualquier computador es la capacidad que tiene de tomar decisiones.

Es decir al comparar dos alternativas diferentes el computador puede tomar una decision, basandose en la evaluacion que hace de alguna condicion.

ejemplo de instrucciones condicionales ;

a)

si sueldo > 3000

desplegar “rico”

si no

desplegar “pobre”

fin-si

b)

si sexo = 'm'

imprime mujer

si no

imprime hombre

fin-si

De los ejemplos observar que los caminos por el computador dependeran de la evaluacion que el computador hace con y de la condicion.

Todo lenguaje de programacion debe tener instrucciones que permitan formar condiciones e instrucciones que pueden evaluar esas condiciones.

El formato general de una instruccion condicional es:


Como se observa son cuatro partes bien diferenciadas entre si;

La propia instruccion condicional en si
La condicion
El grupo cierto de instrucciones
El grupo falso de instrucciones
Cuando el computador evalua una condicion, el resultado de esa evaluacion solo es evaluado de dos maneras o la condicion es CIERTA o la condicion es FALSA.

Esto dependera del valor que tenga asignado o que se haya capturado para la variable que esta en la condicion, por ejemplo si se capturo 6000 en sueldo en el ejemplo a), entonces el computador indicaria que la condicion es CIERTA, pero en otro caso, si a la variable sueldo primero se le asigno un valor de 250 entonces el computador indicaria que la condicion es FALSA.

Ya dependiendo del resultado de la evaluacion, el computador ejecuta las instrucciones contenidas en la parte CIERTA o en la parte FALSA de la condicion.

Empezaremos el analisis por la CONDICION.

CONDICIONES SIMPLES

En general todas las condiciones simples se forman con:

variables operadores relacionales constante o var.

sexo = 'm'

sueldo > 300000

Una condicion simple se define como el conjunto de variables y/o constantes unidas por los llamados operadores relacionales.

Los operadores relacionales que reconoce el lenguaje pascal son:

OperadorSignificado
=Igual que
>Mayor que
<Menor que
>=Mayor o igual que
Menor o igual que
<>No es igual que o es diferente que
INPertenece A

NOTA IMPORTANTE, Para el caso de objetos de tipo string, los operadores mencionados arriba funcionan, es decir es valido usar la siguiente condicion:

string carrera;

if (carrera=“informatica) etc, etc, etc,

INSTRUCCIONES IF

Es la instruccion condicional mas usada en los diversos lenguajes de programacion, su formato completo y de trabajo en pascal es :

cargar o asignar la variable de condicion;

if condicion Then

begin

grupo cierto de instrucciones;

end

else

brgin

grupo falso de instrucciones;

end;

Primus.- Observar donde van y donde no van los puntos y comas;

Secundus.- Si un if no ocupa un grupo falso de instrucciones, entonces no se pone el else y el end antes del else si terminaria con punto y coma.

PROG2.pas

program prog2;  uses crt;  var  edad:integer;  ciudad,nombre:string;  begin  clrscr;  (* area captura datos *)  gotoxy(20,5);write('dame nombre :');  readln(nombre);  gotoxy(20,6);write('dame ciudad :');  readln(ciudad);  gotoxy(20,7);write('dame edad :');  readln(edad);  (* area de condicion *)  if ciudad = 'tijuana' then  begin  edad:=edad*12;  gotoxy(20,10);write(nombre,' tienes ',edad,' meses');  end  else  begin  gotoxy(20,10);write('no cumple la condicion');  end;  readln; readln;  end.  

CORRIDA:

image234.jpg