Practico 2
Practico 2
Se trata de un término no aceptado por todos, pero q seguramente habrás oído. Estos
lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos
lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar
con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la
vez realizar operaciones de alto nivel.
En esta categoría se encuentran los más utilizados. Se usan palabras del inglés lo cual
facilita que una persona pueda intervenir más fácil que en los dos anteriores.
3¿Lenguajes de Alto Nivel?
Cuando hablamos de un lenguaje de alto nivel nos referimos al tipo de lenguaje de
programación que no expresa los algoritmos teniendo en cuenta la capacidad que tienen
las máquinas para ejecutar órdenes, sino al que se utiliza teniendo en cuenta las
capacidades cognitivas de los seres humanos. Existen desde la década de los 50 y
nacieron con el objetivo de ir más allá respecto a las limitaciones de los lenguajes de
bajo nivel, permitiendo a los usuarios resolver problemas de una forma sencilla y
rápida. Desde entonces han aparecido distintos lenguajes de alto nivel y es conveniente
conocer, al menos, los principales.
Basic
En el año 1965 nacía este lenguaje de programación de alto nivel que tenía la intención
de convertirse en el estándar entre las personas que estuvieran comenzando. De ahí su
nombre, dado que sus letras son representativas de las siglas BASIC: Beginner’s All
purpose, Symbolic Instruction Code, permitiendo a una nueva generación de
programadores iniciarse y crear sus primeros trabajos.
No era un lenguaje tan eficiente como otros que se habían utilizado en este segmento,
pero tenía la ventaja de ser realmente fácil de usar y aprender. Eso ayudó a que muchos
estudiantes lo usaran como primer paso en la programación. Llegó en la época de los
microordenadores y ayudó de forma significativa debido a ese nivel de interacción que
proporcionaba a los usuarios.
Cobol
Fortran
IBM fue la empresa que en 1954 creó este lenguaje de programación de alto nivel, el
primero del mundo tal y como ha sido registrado en términos históricos. Desde siempre
ha sido muy popular y ha ido protagonizando varias versiones a lo largo de las décadas,
enfocándose al sector técnico y científico.
Representado con una sola letra, pero de una gran relevancia, el lenguaje de alto nivel C
vio la luz a inicios de los años 70 de la mano de dos expertos en el sector, uno de ellos
el diseñador de Unix. Su meta desde siempre fue conseguir un tipo de lenguaje que
pudiera separarse de la máquina y que facilitara una nueva forma de ver las cosas. Lo
lograron y esto ha llevado a que su funcionalidad sea aprovechada en todo tipo de
sectores.
Incluye lo más característico de los lenguajes de alto nivel, pero también se deja influir
por algunos rasgos más propios de los lenguajes que se engloban en la categoría de bajo
nivel. Al romper con esta inflexibilidad de otros lenguajes es capaz de ofrecer un
rendimiento que permite más posibilidades, lo que ha llevado a que haya mucha
discusión sobre si este lenguaje no debería ocupar una categoría de nivel medio en vez
de alto. Polémicas al margen, los resultados de trabajar con C hablan por sí solos y se
puede ver que son realmente avanzados.
En los años 80 se llevó a cabo C++, que venía a dar sucesión al C original, aportando
una forma diferente de plantear la representación de los programas. El principal
obstáculo con el que se ha encontrado esta evolución de C es que si bien ya C es
complejo de aprender, en el caso de C++ la dificultad es todavía superior. Y para llegar
a poder trabajar con C++ es obligatorio pasar primero por C, por lo que hay muchos
profesionales que prefieren quedarse con en lenguaje de los 70 y no con su evolución.
4¿Compiladores?
Es un Software que traduce un programa escrito en un lenguaje de programación de alto
nivel (C / C ++, COBOL, etc.) en lenguaje de máquina. Un compilador generalmente
genera lenguaje ensamblador primero y luego traduce el lenguaje ensamblador al
lenguaje máquina. Una utilidad conocida como «enlazador» combina todos los módulos
de lenguaje de máquina necesarios en un programa ejecutable que se puede ejecutar en
la computadora.
Estas fases no son en estricto rigor secuencial, sino que los módulos que las
implementan interactúan durante el proceso de compilación, complementando sus
tareas, unos con otros. Sin embargo, a modo didáctico se plantea un esquema secuencial
de fases, lo que permitirá el estudio de cada módulo en forma independiente
6¿Lenguaje Pascal y el leguaje Delphi?
Pascal: Es un lenguaje de programación creado por el profesor suizo Niklaus
Wirth entre los años 1968 y 1969, y publicado en 1970. Su objetivo era crear un
lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando
la programación estructurada y estructuración de datos. Sin embargo, con el tiempo su
utilización excedió el ámbito académico para convertirse en una herramienta para la
creación de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programación fuertemente tipado. Esto
implica que, por un lado, el código está dividido en porciones fácilmente legibles
llamadas funciones o procedimientos, lo que facilita la utilización de la programación
estructurada en oposición al antiguo estilo de la programación monolítica; y, por otro,
que el tipo de dato de todas las variables debe ser declarado previamente para que su
uso quede habilitado.
Características únicas
Otra diferencia importante es que en Pascal el tipo de una variable se fija en su
definición; la asignación a variables de valores de tipo incompatible no está permitida
(en C, en cambio, el compilador hace el mejor esfuerzo para dar una interpretación a
casi todo tipo de asignaciones). Esto previene errores comunes donde variables son
usadas incorrectamente porque el tipo es desconocido; y también evita la necesidad
de notación húngara, que vienen a ser prefijos que se añaden a los nombres de las
variables y que indican su tipo.
Delphi: El Delphi es un lenguaje de programación que se creo con el propósito de
agilizar la creación de software basándolo en una programación visual. En el Delphi se
utiliza una versión más actual del Pascal conocida como Object Pascal como lenguaje
de programación.
El Delphi es un lenguaje muy versátil se usa para casi cualquier proyecto como por
ejemplo servicios del sistema operativo, establecer comunicación entre un servidor web
y un programa, aplicaciones de consola, conectividad con bases de datos, para realizar
aplicaciones visuales, etc.
Las herramientas usadas para la Compilación de Delphi según el sistema operativo son:
Para Windows:
Borland Delphi 7, RAD Studio 2007
Para Linux y Unix:
Kylix 3.0.
7¿Instrucciones de programa usadas por el Lenguaje Pascal?
Asignacion: La asignacion se usa para dar valores a variables. La estructura
de la instruccion es la siguiente:
a := b;
donde a y b se entienden que son variables correctamente definidas y del
mismo tipo.
Muestreo por pantalla: Para poder imprimir datos por pantalla usaremos la
instruccion write. Su estructura es:
write(a);
donde a es una variable con datos guardados previamente.
En caso de que deseemos imprimir por pantalla cierto texto, deberemos
escribir:
write("Texto que desea mostrar");
Recepción de valores: Para que el programa trabaje con datos introducidos
por el usuario debemos usar la instruccion read. Su estructura es:
read (a);
donde a es una variable definida para recibir unos datos de un tipo
determinado.
Si queremos recibir varios valores seguidos, sera:
read(a,b,c,...,n);
El usuario debera introducir los valores separados por espacio, o por intro.
Tambien tenemos la posibilidad de mostrar por pantalla (equivalentemente
introducir datos) en lineas distintas. Para ello, usaremos la palabra reservada
writeln (eq. readln):
program prueba;
begin
writeln('Esto es una prueba de la instruccion writeln');
writeln('Esta es la segunda linea de escritura');
end.
Y por pantalla se mostraria:
Esto es una prueba de la instruccion writeln
Esta es la segunda linea de escritura
Comentarios: Los comentarios en nuestros programas seran de gran
utilidad para poder aclarar la funcion de una variable, procedimiento, etc. En
Pascal, tenemos dos maneras de crear comentarios: mediante el uso de "{" y
"}" o "(*" y "*)". Todo lo que escribamos entre ambas partes, formara parte
de los comentarios de nuestro programa y en ningun momento seran
compilados.
8;Formato de las Instrucciones de Entrada / Salida: (READ, WRITE,
WRITELN() y ClrScr). Ejemplos.
En Pascal no existen palabras reservadas para realizar entradas y salidas. Para ello,
el programador puede hacer uso de los procedimientos de entrada y salida estándar
proporcionados por Pascal: Read y ReadLn,o Write y WriteLn.
Write( <expresión_1>, <expresión_2>, ..., <expresión_n> );
EJ:
program EJE11334;
uses Crt;
begin
ClrScr;
Write( 'uno' );
Write( 'dos' );
Write( 'tres' )
end.
Si se considera un ejemplo de la vida diaria, podría ser semejante a las decisiones que
se toman para realizar acciones específicas:
SI SIMPLE
Sintaxis:
Pseudocódig
DFD Java
o
if
(condición)
{
si (condición)
instrucción
paso1
1
paso2
instrucción
2
...
...
pasoN
instrucción
finSi N
}
SI COMPLETO (VERDADERO - FALSO)
En esta forma, los pasos o instrucciones que se encuentran entre el inicio y fin de la
estructura, tienen dos secciones:
Sintaxis:
En
DFD En Java
Pseudocódigo
si (condición)
paso1
paso2
if
... (condición)
{
pasoN
instrucción1
finSi
instrucción2
caso contrario
...
paso1
instrucción
paso2 N
... }
pasoN
finCasoContrari
o
SI ANIDADO
Sintaxis:
Pseudocódi
DFD Java
go
if
(condición){
Si (condición)
pasos
pasos
}
caso contrario
else{
si (condición)
if(condición)
{
pasos
pasos
caso contrario
}
si (condición)
else{
pasos
if(condición)
finSi {
finSi pasos
finSi }
}
Como puede observarse en la tabla anterior, esta característica de la instrucción if,
permite decidir entre más de dos posibilidades de respuesta, siendo posible extenderse
tantas como sea necesario. Es necesario aclarar que tanto la parte verdadera como la
parte falsa pueden anidar dentro de sí mismas otra instrucción de tipo if con o sin su
correspondiente caso contrario.
EJEMPLOS
Realice el análisis, diseño, pruebas e implementación de un programa que verifique si
un estudiante aprobó una asignatura. La normativa indica que debe obtenerse un
mínimo de 14 puntos entre la nota final del primer y segundo bimestre para aprobar.
ANÁLISIS
Lectura 1: Comprender. ¿De qué se trata este problema?
Así en la gráfica puede será necesario realizar una suma (nota1 + nota2) y con
su resultado (suma) verificar si es superior o igual a 14 en cuyo caso se deberá
indicar que SÍ APROBÓ (respuesta)
Entradas:
Salidas:
String respuesta
DISEÑO
Proceso para determinar si aprueba
Escribir "Ingresar nota1"
Leer nota1 //Dato ingresado por el usuario
Escribir "Ingresar nota2"
Leer nota2 //Dato ingresado por el usuario
suma = nota1 + nota2 // obtener acumulado de dos bimestres
Si (suma >=14)
respuesta = "APROBADO"
FinSi
Escribir respuesta
DFD
El diseño toma la mayoría de datos de la fase de análisis, para incorporarlo a
un proceso secuencial. Al distinguir cuáles son las acciones que se realizan una
sola vez y las que se realizan varias veces, éstas últimas son aquellas que van
dentro de las instrucciones repetitivas.
IMPLEMENTACIÓN
public static void main(String[] args) {
A las estas estructuras se les conoce también como ciclos o bucles, por su
funcionamiento. Existen 3 estructuras repetitivas:
While
Do-while
For
Las tres instrucciones tienen el mismo fin, y difieren únicamente en su sintaxis, siendo
posible sustituir una solución en la que se utiliza "while", por una en la que se utiliza
"do-while" o "for".
CONTADORES
Un contador es una variable de tipo entero, que incrementa o decrementa su valor de
forma CONSTANTE y requiere ser inicializada generalmente en 0 o 1, aunque en
realidad depende del problema que se está resolviendo. Como su nombre lo indica se
utilizan en la mayoría de veces para contar el número de veces que se ejecuta una
acción, o para contar el número de veces que se cumple una condición (expresión
relacional/lógica).
Por ejemplo si se desea sumar los números del 1 al 5, se necesitará una variable que
genere esos números, es decir que empiece en 1 y llegue hasta el 5.
La variable que cumple el rol de contador, aparece tanto a la izquierda como a la
derecha, por la propiedad destructiva de la asignación; así tomará el valor anterior, le
adicionará o reducirá el valor constante y asignará el nuevo valor.
ACUMULADORES
Un acumulador es una variable numérica, que incrementa o decrementa su valor de
forma NO CONSTANTE y requiere ser inicializada. Como su nombre lo indica se
utilizan para acumular valores en una sola variable, ya sea de suma o producto. Por lo
tanto existen dos modos de inicialización:
EJEMPLO
Realice un programa que permita obtener el factorial de un número dado por el usuario
ANÁLISIS
Lectura 1: Comprender. El factorial de un entero positivo n, se define como
el producto de todos los números enteros positivos desde 1 hasta n.
Entradas:
int num
Salidas:
int fact
DISEÑO
Proceso Factorial
Escribir 'Ingresar número'
Leer num //Dato ingresado por el usuario
cont<-0 //Inicializa el contador, se realiza una SOLA VEZ, va fuera del ciclo
fact<-1 //Inicializa el acumulador, se realiza una SOLA VEZ, va fuera del
ciclo
Mientras cont<=5 Hacer
fact<-fact*num //Instrucción de acumulador, se realiza VARIAS VECES, por
eso va en el ciclo
cont<-cont+1 //Incremento constante del contador, se realiza VARIAS
VECES, por eso va en el ciclo
FinMientras
Escribir fact
FinProceso
DFD
El diseño toma la mayoría de datos de la fase de análisis, para incorporarlo a
un proceso secuencial. Al distinguir cuáles son las acciones que se realizan una
sola vez y las que se realizan varias veces, éstas últimas son aquellas que van
dentro de las instrucciones repetitivas.
IMPLEMENTACIÓN
public static void main(String[] args) {
Repeat
La sentencia repeat es otra estructura repetitiva, la cual ejecuta al menos una vez su
bloque repetitivo, a diferencia del while que podía no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos
una vez se ejecutará el bloque repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while que
está en la parte superior.
INSTRUCCIÓN FOR
La sentencia for nos sirve ya que con ella se puede ejecutar un bucle que se repita
determinado número de veces.
Esta sentencia requiere que conozcamos el numero de veces que se desea ejecutar la
sentencia del interior del bucle. Si no se conoce de antemano el numero de repeticiones
es mejor utilizar la sentencia while o repeat.
Ej:
PROGRAM Ciclo_RepeatUntil;
VAR
Numero : Integer;
BEGIN
Numero := 1;
REPEAT
WriteLn (Numero);
Numero := Numero + 1;
UNTIL Numero = 50;
END.
Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.
repeat
<Operación(es)>
until <Condición>;
11) El Entorno de Programación TURBO PASCAL. Instalación.
Arranque (carga) y salida del Turbo Pascal. Entorno de Programación
Turbo Pascal. Los Menú.
Entorno de programación turbo pascal
Para desarrollar programas en pascal se requieren del uso del entorno de programación
turbo, donde se carga y se ejecuta un Editor de textos, se edita el programa o código
fuente en pascal, donde se compila el programa, etc.Entonces el entorno de
programación es la mejor herramienta para el aprendizaje en la programación en
pascal.Antes de comenzar a escribir programas se debe conocer algunas teclas
específicas especiales como: teclas de control, alternativas y de función.Para comenzar
a trabajar en turbo pascal se comienza a cargar en memoria el programa, después se
puede arrancar el programa turbo pascal directamente desde el directorio raíz o del
archivo Autoexec.bat. Con este archivo podrá arrancar con la orden tp. Se inicia con un
letrero que indica la versión y con cualquier tecla se borra y se visualiza una pantalla en
dos ventanas y el menú. A partir de ese momento inicia la sesión de trabajo. Y después
de que se acabó la sesión se puede abandonar de dos maneras: permanente,temporal
Instalación
Menú Principal
El menú principal está formado por un conjunto de submenús desplegables a los que es
posible acceder por medio de abreviaturas de teclado o haciendo clic con el puntero del
Mouse. Los submenusque presenta el menuprincipal son: FILE, EDIT, SEARCH,
COMPILE, DEBUG, TOOLS, OPTIONS, WINDOW y HELP.Ahora describiremos
algunos menús que son muy usuales en la escritura de los programas utilizando este
lenguaje de programación
Ejemplo halt(1) indicará que se salió porque no se encontraron los datos necesarios.
Creación de programas:
Edición.
Se realiza escribiendo las sucesivas líneas del programa, terminando cada línea
pulsando la tecla ↵.
Dentro del menú principal existe la opción Edit (Editar) que ofrece algunas
posibilidades complementarias del editor que permiten copiar y pegar fragmentos de
texto.
Una vez situado en el editor comience a escribir el siguiente programa:
Program primero;
Begin
Writeln(‘Hola’);
Writeln(‘Bienvenido a Turbo Pascal 7.0’);
End.
Terminada la edición y corregidos los posibles errores (utilizando las órdenes del
editor), puede hacer dos cosas: guardarlo en un disco o compilarlo. El orden lógico,
para evitar pérdidas indeseadas, sería guardar el programa fuente en disco (Save), darle
nombre en este momento, compilar el programa fuente (Compile) y ejecutar el
programa compilado (Run).
Compilación.
En esta fase de desarrollo del programa vamos a realizar la traducción de nuestro
programa fuente en Pascal (almacenado en un archivo con extensión .PAS) a un
programa objeto, ejecutable, que al compilarse en el disco tendrá la extensión .EXE.
Para compilar se selecciona el menú Compile. Dentro de este menú se elige la opción
Compile.
Aparece un cuadro de diálogo y se visualiza el proceso de compilación del programa. Si
no ocurre ningún error, el mensaje “Compile Successful: press any key” parpadea en el
cuadro hasta que se pulse una tecla.
Si ocurre un error Turbo Pascal se detiene, posiciona el cursor en el punto donde
ocurrió el error y visualiza un mensaje de error en la parte superior del editor.
Una vez corregido el error, hay que volver a salvar y compilar el programa.
Un error de compilación o de sintaxis ocurre cuando se viola una regla de la sintaxis de
Pascal. Errores típicos en tiempo de compilación:
‘;’ expected (falta un ;)
unknown identifier (identificador desconocido, no declarado)
No declarar todas las variables, tipos de datos, constantes y subprogramas, antes de
utilizarlo.
Parejas begin..end desequilibradas.
Asignación de tipos de datos incompatibles.
Elección del destino de la compilación.
Durante la depuración, la compilación se puede efectuar almacenando el programa
ejecutable en memoria RAM, lo que permite una mayor velocidad. Una vez que el
programa esté totalmente depurado puede compilarse en disco, creándose el archivo
ejecutable.
Se puede elegir compilar el programa en disco o en memoria con la orden
Compile/Destination.
Si se elige compilar en disco, el programa objeto ejecutable se almacena en disco con el
mismo nombre que el archivo en el que se encuentre el programa fuente, pero con la
extensión .EXE y se almacena en el mismo directorio que los archivos fuente o en el
directorio EXE y TPU (Options/Directories) si se especifica.
Si se elige compilar en memoria, el programa se almacena en memoria, y si no lo graba,
se pierde cuando salga de Turbo Pascal.
Una vez que hemos compilado (en memoria o en disco) el programa con éxito ya se
puede ejecutar.
Otras opciones de compilación.
Compilar todos los archivos modificados (Compile/Make)
Compilar todos los archivos de su proyecto (Compile/Build)
Compilar y ejecutar su programa (Run/Run)
Ejecución.
Para ejecutar un programa hay que acceder a la opción Run del menú Run. La salida de
nuestro programa se visualiza en la ventana de salida, en nuestro caso:
Hola
Bienvenido a Turbo Pascal 7.0
Cuando el programa termine de ejecutarse, el entorno Turbo Pascal reaparece y está
listo para otro ciclo: editar, compilar y ejecutar.
Si se quiere ver la ventana de salida, se pulsan las teclas ALT+F5
Si ocurriera un error mientras el programa se está ejecutando, los llamados errores de
ejecución, se visualiza en pantalla un mensaje similar a:
Run-time error <numerror> at <segmento>:<offset>
donde:
<numerror> es el código del error
<segmento>:<offset> es la dirección de memoria donde ocurre el error.
Los errores de ejecución son problemas que el compilador no puede detectar por
anticipado, pero que originan la parada del programa antes de su terminación. Valores
de entrada imprevistos, cálculos no válidos (división por cero), problemas en acceso a
disco, etc., producen errores de ejecución.
RUN (Ejecutar) Ejecuta el programa de edición activa, compilándolo previamente si
fuera necesario. La orden RUN ejecutara el programa hasta encuentre un punto de
ruptura o hasta el final del programa.
ANALISIS
DISEÑO
Algoritmo
Léxico
seg, seg2, min : Z
Inicio
Escribir ("Ingrese segundos" )
Leer (seg)
min ← seg div 60
seg ← seg mod 60
Escribir (" Los minutos y segundos equivalentes son " min "y" seg)
Fin
PASCAL
Program Minseg;
Uses crt;
Var
seg, seg2, min : Integer;
Begin
Clrscr;
Writeln ('Ingrese segundos');
Readln (seg);
min:= seg div 60;
seg2:= seg mod 60;
Writeln ('El equivalente en minutos y segundos es ', min, ' minutos ',seg2,' segundos');
End.
EJERCICIO 2
ANALISIS
DISEÑO
Algoritmo Maximo;
Léxico
a,b,c,max,maximo : R
Inicio
Escribir (“Ingrese tres números”)
Leer (a,b,c)
max ← ((a+b)+abs(a-b))/2
maximo ← ((max + c) + abs (a-b))/2
Escribir (“El máximo es”, maximo)
Fin
PASCAL
Program Maximi;
var
a,b,c,max,maximo : Real;
begin
Writeln ('Ingrese tres numeros');
Readln (a);
Readln (b);
Readln (c);
max:=((a+b)+abs(a-b))/2;
maximo:= ((max + c) + abs (max - c))/2;
Writeln ('El maximo es', maximo:10:2);
End.
14)Ingresar al Lenguaje Delphi. Cuáles son las Pantallas que usa para
ingresar a Delphi. Como se escribe y Corrige un Programa Delphi.
Como se Compila el programa. Como se Ejecuta su programa. Como
se Guarda su programa (INDICAR LOS METODOS USADOS).
Lo primero que se debe hacer es instalar Delphi en la pc.
Una vez instalado ingresar Delphi, Al abrir Delphi, se crea automáticamente un
programa nuevo que está listo para correr. Es una ventana de windows vacía que no
hace nada.
Una vez terminado la codificación para verificar si tu algoritmo esta correcto debes dar
un clic en run seguidamente en la opción ejecutar
En caso de que haiga algún error Delphi te subraya con un color toda la fila donde está
el error donde tú tienes que ver en que te equivocaste y corregirlo
Una vez corregido el programa se ejecutara
Ejemplos-
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
a:=StrToInt(Edit1.Text) ;
b:=StrToInt(Edit2.Text) ;
c:=StrToInt(Edit3.Text) ;
d:=StrToInt(Edit4.Text) ;
if (a>=51) then
begin
Notas_aprobadas:=Notas_aprobadas+''+ Edit1.Text;
end;
if (b>=51) then
begin
Notas_aprobadas:= Notas_aprobadas+' '+Edit2.Text;
end;
if (c>=51) then
begin
Notas_aprobadas:=Notas_aprobadas+' '+ Edit3.Text;
end;
if (d>=51) then
begin
Notas_aprobadas:=Notas_aprobadas+' '+Edit4.Text;
end;
ShowMessage('Notas aprobadas '+ Notas_aprobadas+
'fin' ) ;
end;
end.