viernes, 7 de abril de 2017

Programación en Pascal

Resolucion de Problemas
1.     Algoritmo
2.     Diagrama de flujo
3.     Codificar (Programa fuente)
Seccion del programa:
v  Write
              I.        Despliega texto:
Write (‘C’)
             II.        Valor de una variable
Write (C)
v  Read
v  Readln
4.     Compilardor (Textocompliado)
Interprete (Por lineas)
5.     Correr prorama
Guardar: F2
Correr: Ctrl+F9
Compilar: Alt+F9
Programacion en Pascal
·         Encabezado
·         Seccion de Declaración
·         Seccion del programa:
Begin
     Instruccines
End.
Funciones en Pascal
·         ABS (valor absoluto de un número)
·         SQR (El cuadrado de un número)

·         SQRT (Raiz cuadrada)

Ejemplos de Programas en Pascal
Case
Program Comida
Uses crt;
Var opc:char;
Begin
  Clrscr;
  Writeln (‘1) Pollo’9;
Writeln (‘2) Cordero’);
Writeln (‘3) Pescado’9;
Writeln (‘4) Res’);
Writeln (’59 Nunguno’);
  Writeln (‘Elija una opción’);
  Read (Opc);
  Case opc of
  ‘1’: Writeln (‘Eligió pollo’);
  ‘2’:Writeln (‘Eligió Cordero’);
  ‘3’: Writeln (‘Eligió Pescado’);
  ‘4’: writeln (‘Eligió Res’);
  End;
  Delay(5000);
End.

For
Program Cohete;
Var i:integer;
Begin
 For I:=100 Down To 1 Do
  Writeln (I);
  Writeln (‘¡¡Despegue!! Adiós tierra’);
End



Repeat Until
Program HolaXD;
    ------------------ (Declaraciones)
    ------------------
Opc:char;
Begin
    ------------------- (Cuerpo del Programa)
    -------------------
    --------------------
Write (‘Desea hacer otra suma: S/N’);
Read (opc);
Until opc=’N’;

Reloj
Program Reloj;
Var
  Hora
  Minuto
  Segundo: Integer;
Begin
  For Hora:=0 To 23 Do
    For Minuto:=0 To 59 Do
      For Segundo:= 0 To 59 Do
      Begin
      Write (Hora,’:’,Minuto,’:’, Segundo);
      If Hora <=7 Then
         Writeln (‘Por la mañana’)
      Else If (Hora >=7) and (Hora<12) Then
         Writeln (‘Por la tarde’)
     Else writeln (‘Por la noche’);
     End;
End.





Fundamentos de Programación en un Lenguaje Estructurado

Programación Estructurada
La programación estructurada es una teoría de programación que consiste en construir programas de fácil comprensión. La programación estructurada propone segregar los procesos en estructuras lo más simple posibles, las cuales se conocen como secuencia, selección e *****. Estas están disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias. Combinando esquemas sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil entendimiento. La representación grafica de la programación estructurada se realiza a través de diagramas de flujo o flow chart, el cual representa el programa con sus entradas, procesos y salidas.
Lenguaje Pascal

El lenguaje de programación Pascal es un lenguaje de alto nivel y de propósito general, lo cual quiere decir que se puede que se puede utilizar para cualquier tipo de propósitos. El lenguaje de programación Pascal se considera un lenguaje estructurado, sencillo y práctico para todos aquellos usuarios que se inician en el mundo de la programación, ya que fue creado con fines de aprendizaje.
Estructura General del Programa
Todos los programas en Pascal están compuestos por tres partes muy diferenciadas:

El ENCABEZADO: Aquí ira el nombre del programa
La SECCIÓN DE DECLARACIÓN es en donde se describen los objetos de datos que se emplearan en el programa.
La SECCION DEL PROGRAMA es en donde se especifican las acciones explicitas que deben efectuarse con dichos objetos de datos.
La estructura de un programa codificada en Pascal debe ser la que se muestra y no se deberá alterar el orden de las secciones porque se perderían los lineamientos de la programación estructurada.

Program Nombre (i,o);

Uses                 <librería>;
Label<declaración de etiquetas>;
Const<declaración de constantes>;
Type<declaración de datos definidos por el usuario>;
Var                   <declaración de variables>;
Procedure<declaración de procedimientos>;
Fuction<declaración de funciones>;
Begin                <bloque de instrucciones>;
End.


Elementos del Lenguaje de Programación
VARIABLE 
Una variable es un objeto que puede asumir diferentes valores durante la ejecución de un   programa. ASIGNAR UNA VARIABLE: Asignar es darle un valor a la variable y se realiza de la siguiente forma: variable:*expresión: [Asignación de valor a una variable]
    SIGNOS ESPECIALES 
{COMENTARIO} O (“COMENTARIO”) =SIGNOS PARA COMENTARIOS
(;)Signo para indicar fin de instrucción.
(.)Signo para indicar fin del programa.
(,)Signo de separación dentro de la misma instrucción.
     TIPOS DE DATOS PREDEFINIDOS
(Variables)
Integer= numero entero (ejemplos1,-22,45)
Real= numero con punto flotante (ejemplos: 3.453,-0.98, 0.7687)
Char= carácter (ejemplos: a, 8, M,”)
Boolean=verdadero o falso (ejemplos: true, false)
String [n]= Cadena de caracters (ejemplo: Juan López)
      Notación de Operadores
ARITMETICOS
Suma                                                          +
Resta                                                          -
Multiplicación                                              *
División                                                       /
Exponenciación                                          **
DIV= Devuelve el cociente entero de una división
MOD= Devuelve el residuo entero de la división
 LÓGICO   
 Y= AND
O= OR
Negation= NOT
RELACIONALES (comparación) 
Mayor que                       >
Menor que                       <
Igual a                             =
Diferente                         <>
Menor o igual a               <=
Mayor o igual a               >=

Sintaxis de Declaraciones
Program: nombre (i, o);
Uses:<nombre de librería>;
Label: <entero sin signos>; 5,15;
Const: <identificador>=<constante>; PI= 3.1416
Type: <identificador>= (<identificador>);
Diasdelasem= (dom, lun, mar, mie, jue, vie, sab);
<Identificador>= constante. Constante;
Codigooctal= 0… 7;
<identificador>= ARRAY (<dimensión>) OF <tipo>;
Cadena= ARRAY (1…10) OF char;
<identificador>= FILE OF<spot>;
Archivoamigos= FILE OF
                    RECORD
Nombre: ARRAY (1…30) OF char;
Edad: integer
Teléfono: integer;
Domicilio: ARRAY (1…50) OF char;
Novio: toolean
End, (fin de la declaración de registro)
<identificador>= SET OFF <base tipo>;
Conjuntodeletras= ``a´´…``z´´;
<identificador>= RECORD<listado de campos> END
  
Regestudiante= RECORD
Nombre: ARRAY (1…30) OF char;
Edad: integer
Nodecta: integer;
Domicilio: ARRAY (1…50) OF char;
End: (fin de declaración de registro)
Var: <identificador>:<tipo de dato>;
Entero, x, y: integer;
Puntoflotante, w: real;
Carácter, adod;char;
Verdadero, falso: boolean:
Color: cadena;
Procedure: <identificador> (var identificador: tipo de dato);
Begin
<bloque de instrucciones>;
End;
Function: <identificador> (var identificador: tipo de dato; tipo de dato;
Begin;
<Bloque de instrucciones>
End;
Begin:
<bloque de instrucciones>;
End.

Array= arreglo
File= Archivo
Record= Registro

Estructuras de Programación
Las estructuras de programación son aquellas que permiten la entrada y Salida de los datos, y controlan el flujo o secuencia del programa.
Entrada y salida: Estas estructuras de programación permiten la entrada y salida de datos e información.
Write
Write (`<tecto>´, variable): (Desplega texto o valor de una variable)
WriteLn (`<texto>´, variable): (Desplega texto o valor de una variable terminado con retorno de carro)
Read
Read (variable9: (Lee una variable)
ReadLn (variable): (Lee una variable terminando con retorno de carro) 

Estructuras de Selección
IF Then{Si la condición es verdadera se realizarán las instrucciones (a)}
If (condición) then
Begin   <bloque de instrucciones (a)>;
End;
Dagrama de Flujo IF THEN            















IF THEN ELSE {Si la condición es  verdadera se realizaran las instrucciones (a), de lo contario se realizarán las instrucciones (b)}
If (condición) then
Begin
<bloque de instrucciones (a)>
End
Else
Diagrama de Flujo IF THEN ELSE               












CASE
{En caso de presentarse un valor igual al de la expresión realizar instrucción}
Case expresión of:
Val1: <instrucción>;
Val2: <instrucción>;
Valn: <instrucción>;
End;
Diagrama de Flujo CASE


















Estructuras Repetitivas: Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces se denominan Buclesy se denomina Iteracion al hecho de repetir la ejecucion de una secuencia de acciones.
WHILE DO: {Mientras la condición sea verdadera se repitara el ciclo, de lo contrario terminará}
While (condición) do
Begin
<Bloque de instrucciones>;

End;
Diagrama de Flujo WHILE DO















REPEAT UNTIL: {Hasta que la condición se cumpla terminará de repetirse el ciclo}

Repeat
Begin
<bloque de instrucciones>;
End;

Until (condición)
Diagrama de Flujo REPEAT UNTIL
















FOR TO DO/DOWINTO: {Ejecuta repetidamente la instrucción o bloque de instrucciones a partir del valor asignado a la variable hasta llegar al valor o condición fijada}
For: variable:=expresión to expresión do
Begin
<Bloque de instrucciones>;
End;
For: variable: =expresión downto expresión do
Begin
<Bloque de instrucciones>;
End;
Diagrama de Flujo FOR TO DO






















Jerarquia de Operaciones
Los operadores son signos que nos permiten expresar relaciones entre variables y/o constantes, relaciones de las cuales normalmente se despreende un resultado. La jerarquia de operadores no es mas que un conjunto de reglas que le permiten a una computadora evaluar de solo una forma una expresion matematica para que no haya espaciopara ambiguedades.
Evaluacion de Expresiones
Orden de Evaluación
1.     Parentesis: Si queremos alterar el orden normal de las operaciones para eso se tienen los parentesis. Cuando se utilizan parentesis, la computadora detecta el primer parentesis mas interno y dentro de el aplica la tabla de jerarquia de operadores. La computadora considera un juego de parentesis como ``más interno´´ cuando dentro de él no existe ningun otro juego de parentesis. El hecho de que las computadoras se basen en esta jeraquia de operaciones, para realizar sus operaciones, es lo unico que garactiza, que para una determinada expresion, el resultado en cualquier computadora sera el mismo.
2.     Potencias y raices
3.     Multiplicaciones y divisiones
4.     Sumas y restas
5.     Dos o más de la misma jerarquia u orden: Entonces resolver de izquierda a derecha, tanto para el nivel de multiplicaciones y diviones como para el nivel de sumas y restas la evaluacion es totalmente indistinta, esto quiere decir que en la medida que va encontrando sumas y restas (si estan en el mismo nivel) las va ejecutando.
Ejemplo: Si se tiene la siguiente expresión: 15-2*6=?  El resultado de la expresión sería: 15-2*6=3

Porque primero evalúa la operación de la multiplicación y después se hace la resta que sería: 15-12=3
Si se requiere analizar primero la resta se expresaría: (15-2)*6=?
Prueba de Escritorio
La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo, diagrama de flujo o programa. Puede ser también realizada para verificar que algoritmo, diagrama de flujo o programa cumple ******** objetivo. Una prueba de escritorio es una ****** mano´´ del algoritmo, diagrama de flujo o programa *** se debe llevar ****** valores que ****una de.



Se debe crear una tabla con las variables que se usaran, donde se irán anotando los valores que van tomando las variables, en este caso, los valores que tomaran en el flujo del diagrama.
Se inicializan los valores de las variables a=1, b=1 y c=1
Se asigna a la variable a=1+1=2 entonces ahora a=2
Se asigna a la variable b=1+1*2=1+2=3, entonces ahora b=3
Se asigna a la variable c=1+3-2=2 entonces ahora c=2
Se muestran los valores finales de a, b y c que serían a=2, b=3 y c=2

a
b
c
1
1
1
2
1
1
2
3
1
2
3
2