Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


pascal, Ejercicios de Ingeniería Industrial

Asignatura: Fundamentos de informática, Profesor: Pedro Latorre, Carrera: Ingeniería de Tecnologías Industriales, Universidad: UniZar

Tipo: Ejercicios

2017/2018

Subido el 04/04/2018

carlossacra
carlossacra 🇪🇸

4

(1)

5 documentos

1 / 47

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
APRENDA PASCAL
Contenido
Introducción
Compiladores de Pascal
Historia de Pascal
Hola, mundo
Fundamentos
Estructura de un programa
Identificadores
Constantes
Variables y tipos de datos
Asignaciones y operaciones
Funciones standard
Puntuación e identación
Ejemplo N°1
Solución
Entrada/Salida
Entrada
Salida
Formato de salida
Archivos
EOLN y EOF
Ejemplo N°2
Solución
Flujo del programa
Control secuencial
Expresiones booleanas
Ramificaciones
If
Case
Lazos
For do
While do
Repeat until
Ejemplo N°3: Serie de Fibonacci y potencias de dos
Soluciones
Subrutinas
Procedimientos
Parámetros
Funciones
Scope
Recursividad
Forward
Ejemplo N°4: Las Torres de Hanoi
Solución
Tipos de datos
Tipos de datos numerados
Subrangos
Arreglos unidimensionales
Arreglos multidimensionales
Estructuras
Punteros
Palabras Finales
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f

Vista previa parcial del texto

¡Descarga pascal y más Ejercicios en PDF de Ingeniería Industrial solo en Docsity!

Contenido

  • Introducción
  • Compiladores de Pascal
  • Historia de Pascal
  • Hola, mundo
  • Fundamentos
    • Estructura de un programa
    • Identificadores
    • Constantes
    • Variables y tipos de datos
    • Asignaciones y operaciones
    • Funciones standard
    • Puntuación e identación
    • Ejemplo N°
    • Solución
  • Entrada/Salida
    • Entrada
    • Salida
    • Formato de salida
    • Archivos
    • EOLN y EOF
    • Ejemplo N°
    • Solución
  • Flujo del programa
    • Control secuencial
    • Expresiones booleanas
    • Ramificaciones
      • If
      • Case
    • Lazos
      • For do
      • While do
      • Repeat until
    • Ejemplo N°3: Serie de Fibonacci y potencias de dos
    • Soluciones
  • Subrutinas
    • Procedimientos
    • Parámetros
    • Funciones
    • Scope
    • Recursividad
    • Forward
    • Ejemplo N°4: Las Torres de Hanoi
    • Solución
  • Tipos de datos
    • Tipos de datos numerados
    • Subrangos
    • Arreglos unidimensionales
    • Arreglos multidimensionales
    • Estructuras
    • Punteros
  • Palabras Finales

Introducción

Bienvenido a Aprenda Pascal! Este manual es una introducción simple y completa al lenguaje de programación Pascal, incluyendo punteros. Puede encontrar su versión original en : http://web.mit.edu/taoyue/www/tutorials/pascal/pas-x.html. He tratado de hacer las cosas tan claras como sea posible. Si usted no entiende nada, pruebe los programas en su compilador de Pascal e irá aprendiendo poco a poco algunas cosas. Pascal es un lenguaje sintácticamente estricto. Esto significa que si usted comete un error, el compilador se detendrá y le informará de su error. Si usted quiere ver con mayor profundidad temas que estén mas allá de estructuras de datos básicos, recurra a los libros de la bibliografía de la materia. Para programar en Pascal (o en cualquier lenguaje de alto nivel), usted necesitará un compilador. Usted puede utilizar cualquier compilador de Pascal standard con este manual. Si necesita descargar un compilador, o si usted es la primera vez que va a programar y no sabe que compílador utilizar visite el link “Compiladores” para más información.

Por favor elija su destino desde la barra de herramientas de abajo.

Continuar Contenido

Historia de Pascal

  • Origins
  • Wirth Invents Pascal
  • UCSD Pascal
  • Pascal Becomes Standard
  • Extensions
  • The World Changes
  • So Why Learn Pascal

Origins

Pascal grew out of ALGOL, a programming language intended for scientific computing. Meeting in Zurich, an international committee designed ALGOL as a platform-independent language. This gave them more more free rein in the features they could put into it, but also made it more difficult to write compilers for it. Many computer vendors did not. The lack of compilers on many platforms, combined with its lack of pointers and many basic data types such as characters, led to ALGOL not being widely accepted. Scientists and engineers flocked to FORTRAN, a programming language which was available on many platforms. ALGOL mostly faded away except as a language for describing algorithms. Back to top

Wirth Invents Pascal

In the 1960s, several computer scientists worked on extending ALGOL. One of these was Dr. Niklaus Wirth of the Swiss Federal Institute of Technology (ETH-Zurich), a member of the original group that created ALGOL. In 1971, he published his specification for a highly-structured language which resembled ALGOL in many ways. He named it Pascal after the 17th-century French philosopher and mathematician who built a working mechanical digital computer. Pascal is very data-oriented, giving the programmer the ability to define custom data types. With this freedom comes strict type-checking, which ensured that data types didn't get mixed up. Pascal was intended as a teaching language, and was widely adopted as such. Pascal is free-flowing, unlike FORTRAN, so student programmers didn't have to worry about formatting. In addition, Pascal reads very much like a natural language, making it very easy to understand code written in it. Back to top

UCSD Pascal

One of the things that killed ALGOL was the difficulty of creating a compiler for it. Dr. Wirth avoided this by having his Pascal compiler compile to an intermediate, platform-independent object code stage. Another program turned this intermediate code into executable code. Prof. Ken Bowles at the University of California at San Diego (UCSD) seized on the opportunity this offered to adapt the Pascal compiler to the Apple II, the most popular microcomputer of the day. UCSD P-System became a standard, and was widely used at universities. This was aided by the low cost of Apple II's compared to mainframes, which were necessary at the time to run other languages such as FORTRAN. Back to top

Pascal Becomes Standard

By the early 1980's, Pascal has already become widely accepted at universities. Two things happened to make it even more popular. First, the Educational Testing Service, the company which writes and administers the principal college entrance exam in the United States, decided to add a Computer Science exam to its Advanced Placement exams for high school students. For this exam, it chose the Pascal language. Because of this, secondary- school students as well as college students began to learn Pascal. Pascal remained the official language of the AP exams until 1999, when it was replaced by C++, which gave way to Java very soon afterwards. Second, a small company named Borland International came out with the Turbo Pascal compiler for the IBM Personal Computer. This compiler was truly revolutionary. It did take some shortcuts and made some modifications to standard Pascal, but these were minor and led to its greatest advantage: speed. Turbo Pascal compiled at a dizzying rate: several thousand lines a minute. At the time, the available compilers for the PC platform were slow and bloated. When Turbo Pascal came out, it was a breath of fresh air. Soon, Turbo Pascal became the de facto standard for programming on the PC. When computing magazines published source code for utility programs, it was usually in either assembly or Turbo Pascal. At the same time, Apple came out with its Macintosh series of computers. Since UCSD Pascal has first been implemented on the Apple II, Apple made Pascal the standard programming language for the Mac. When programmers received the API and example code for Mac programming, it was all in Pascal. Back to top

Extensions

From version 1.0 to 7.0 of Turbo Pascal, Borland continued to expand the language. One of the criticisms of the original version of Pascal was its lack of separate compilation for modules. Dr. Wirth even created a new programming language, Modula-2, to address that problem. Borland added this to Pascal with its units feature. By version 7.0, many advanced features had been added. One of these was DPMI (DOS Protected Mode Interface), a way to run DOS programs in protected mode, gaining extra speed and breaking free of the 640K barrier instituted by Microsoft its early versions of DOS. Turbo Vision, a text-based windowing system, allowed programmers to create great-looking interfaces in practically no time at all. Pascal even became object-oriented, as version 5.5 adopted the Apple Object Pascal extensions. When Windows 3.0 came out, Borland created Turbo Pascal for Windows, bringing the speed and ease of Pascal to the graphical user interface. It seemed that Pascal's future was secure. Back to top

The World Changes

However, this was not so. In the 1970s, Dennis Ritchie and Brian Kernighan of AT&T Bell Laboratories created the C Programming Language. Ritchie then collaborated with Ken Thompson to design the UNIX operating system. AT&T had, at that time, a monopoly on telephone service in the United States, and was permitted to keep that monopoly in exchange for being banned from the computer business. AT&T thus gave away the operating system, with source code, to universities for free. Thus, a whole generation of computer science students learned Pascal in the introductory programming courses, then learned C when they delved into operating systems. Slowly but surely, C began to filter into the computer programming world. The killer, ironically enough, was object orientation and the move to Windows on the PC platform. Bjarne Stroustrop introduced object-orientation to most of the world when he created C++. Object Pascal was quickly created in response, but for most programmers, the first thing that pops to mind when OOP is mentioned is C++. At the same time, As the world moved towards Windows, the job of keeping up with it became greater. Windows was programmed in C (K&R C, to be specific), and Microsoft released the API entirely in C. Example code came in C. Most third-party programs were written in C. Programming Windows applications in Pascal went against the tide. Many colleges and universities moved away from Pascal, choosing C++, or the new Java, for their programming courses. Finally, the AP exam moved to C++, ending Pascal's dominance in high schools. Back to top

So Why Learn Pascal?

Despite its fading away as the de facto standard, Pascal is still extremely useful. C and C++ are very symbolic languages. Where Pascal chooses words (e.g. begin - end ), C/C++ chooses symbols ( { - } ). Also, C and C++ are not strongly-typed languages. In Pascal, mixing types often led to an error. In C/C++, nothing would happen. You could even treat pointers as integers and do pointer arithmetic with them. In this way, you could very easily crash your program. When the AP exam switched to C++, only a subset of C++ was adopted. Many features, like arrays, were considered too dangerous, and ETS provided its own "safe" version of these features. Java corrects many of these problems of C++ (there are no actual pointers in Java). Another reason: speed and size. The Borland Pascal compiler is still lightning- fast. Borland has revitalized Pascal for Windows with Delphi, a Rapid-Application-Development environment. Instead of spending several hours writing a user interface for a Windows program in C/C++, you could do it in ten minutes with Delphi's graphical design tools. You could do the same in Visual BASIC, but Delphi is so much faster than Visual BASIC. Also, Pascal remains preferred at many universities, partly due to the complexity of teaching introductory programming in Java or C++. Teaching Java requires the teaching of handles and object orientation - a lot of overhead for a beginning programming course. To teach simple procedural programming, Pascal remains the top choice. Thus, even after C, C++, and Java took over the programming world, Pascal retains a niche in the market. Many small-scale freeware, shareware, and open-source programs are written in Pascal/Delphi. So enjoy learning it while it lasts. It's a great introduction to computer programming. It's not scary like C, dangerous like C++, or abstract like Java. In another twenty years, you'll be one of the few computer programmers to know and appreciate Pascal.

Back to top

1A – Estructura de un Programa

La estructura básica de un programa en Pascal es:

PROGRAM PnombredelPrograma ( FileList ) ;

CONST (* Declaración de Constantes *)

TYPE (* Declaración de Tipos *)

VAR (* Declaración de Variables *)

(* Definiciones de Subprogramas *)

BEGIN (* Instrucciones Ejecutables *) END. Los elementos de un programa deben estar en el órden correcto, aunque algunos pueden eomitirse si no se necesitan. Aquí hay un programa que no hace nada, pero tiene todos los elementos requeridos:

program NoHaceNada ; begin end. Los comentarios en Pascal comienzan con un (* y terminan con un *). No se pueden anidar comentarios :

( ( ) ) dará un error porque el compilador aparea el primer (* con el primer ) , ignorano todo lo del medio. El segundo ) quedará sin su correspondiente (. En Turbo Pascal, { Comentario } es una alternativa a ( Comentario ). La llave abierta significa comienzo de un bloque de comentarios,y la llave cerrada significa el final del mismo. Los comentarios tienen dos propósitos: primero, hace el código más fácil de entender. Si usted escribe el código sin comentarios, puede volver a el un año después y tendrá mucha dificultad tratando de entender que quiso hacer o porque lo hizo de ese modo. Otro uso de los comentarios es para encontrar errores. Cuando usted no sabe qué está causando un error en su código, puede poner como comentario el segmento del código bajo sospecha de error. Recuerde la resticción anterior respecto de comentarios anidados. No incurrirá en error si hace esto: { ( Comentario *) }

Todoslos espacios y los end-of-lines son ignorados por el compilador de Pascal a menos que esten dentro de un string. Sin embargo, para hacer más legible un programa, debería indentar las sentencias y poner sentencias diferentes en distintas líneas.

1B - Identifcadores

Identificadores son nombres que ayudan a referenciar valores almacenados, tales como variables y constantes. Todo programa debe ser identificado (de aquí su nombre) porun identificador. Reglas para identificadores:

  • Deben comenzar con una letra del alfabeto inglés.
  • Pueden seguir caracteres alfanuméricos y el carácter _
  • No deben tener caracteres especiales. Ejemplos de caracteres especiales: ~! @ # $ % ^ & * ( ) _ + ` - = { } [ ] : " ; ' < >? ,. / |
    Las implementaciones de Pascal pueden diferir en sus reglas sobre caracteres especiales, especialmente el carácter _ Varios identificadores son palabres reservadas en Pascal – No puede usrlos como identificadores. Estos son: and array begin case const div do downto else end file for forward function goto if in label mod nil not of or packed procedure program record repeat set then to type until var while with Pascal tiene varios identificadores predefinidos. Pueden reemplazarse con definiciones propias de cada programador, pero entonces desaparecen parte de las funcionalidades de Pascal. abs arctan boolean char cos dispose Eof eoln exp false input integer ln maxint new odd ord output pack page pred read readln real reset rewrite round sin sqr sqrt succ text true trunc write writeln Pascal no distingue entre mayúsculas o minúsculas! MyProgram, MYPROGRAM, and mYpRoGrAm son equivalentes. Pero pora hacer los programas más legibles, es buena idea usar mayúsculas. Debido a que C, C++, y Java, los lenguajes de programción dominantes de hoy, distinguen entre mayúsculas y minúsculas, las implementaciones futuras de Pascal pueden venir del mismo modo. Los identificadores pueden tener cualquier longitud, pero algunos compiladores de Pascal sólo ven cierta longitud de caracteres comenzando dede losprimeros. Supongamos que ese número es 32. Entonces, ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFAlphaBeta ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGammaDelta serán equivalentes. Normalmente uno no utiliza demasiados caracteres o caracteres especiales ya que esto no brinda muchos beneficios a la funcionalidad del programa. Además, permaneciendo dentro de los límites dados por las reglas de selección de identificadores, ayudará en la compatibilidad entre plataformas. La mayoría de los programadores se arreglan con caracteres alfanuméricos.

1D - Variables y Tipo de Datos

Las variables son similares a las constantes, pero sus valores puedn ser cambiados mientras el programa se ejecuta. En Pascal las variables deben declararse antes de que puedan ser usadas:

var IdentifierList1 : DataType1 ; IdentifierList2 : DataType2 ; IdentifierList3 : DataType3 ; ... IdentifierList es una serie de identificadores, separados por comas (,). Todos los identificadores de la lista son declarados como pertenecientes al mismo tipo de datos. Los tipos de datos principales en Pascal son: integer real char Boolean Note que aunque hay constantes que puedan ser cadenas de caracteres (strings), no hay un tipo de datos llamado string excepto en algunas implementaciones especializadas (como Turbo Pascal). Mas información sobre tipo de datos en Pascal:

  • integer puede contener enteros desde -32768 hasta 32767.
  • real tiene un rango positivo desde 3.4x10-38^ hasta 3.4x10^38. Los valores reales pueden escribirse con notación científica o con notación de punto fijo. Entonces, 452.13 es lo mismo que 4.5213e
  • char es para caracteres. Asegurese de encerrarlos caracteres entre apostrofes: 'a' 'B' '+' Este tipo de datos puede contener caracteres del sistema, como el carácter nulo ( 0 ) y el carácter falso-espacio (255).
  • Boolean admite sólo dos valores: TRUE y FALSE Un ejemplo de declaración de varias variables es: var edad, año, grado : integer; circunferencia : real; LetterGrade : char; DidYouFail : Boolean;

1E – Asignaciones y Operaciones

Una vez declarada una variable, puede almacenar un valor en ella. Esto se llama asignación. Para asignar un valor auna variable, siga ésta sintaxis: nombre_variable := expresión ; Note que contrariamente a otros lenguajes, cuyo operador de asignación es el signo igual, Pascal usa dos puntos seguido del signo igual. La expresión puede ser sólo un valor : un_real := 385.385837; o puede ser una expresión aritmética : un_real := 37573.5 * 37593 + 385.8 / 367.1; Los operadores aritméticos en Pascal son:

Operador Operación Operandos Resultado

  • Suma real o entero real o entero
  • Resta real o entero real o entero
  • Multiplicación real o entero real o entero / División Real real o entero real div Division Entero entero entero mod Módulo entero entero

div y mod sólo opera con enteros. / trabaja con reales y enteros pero siempre da un resultado real. Las demás operaciones operan con reales y enteros. Para las operaciones que trabajan con reales y enteros, el resultado será entero si lo son todos los operandos y será real si lo es por lo menos un operando. Por lo tanto, 3857 + 68348 * 38 div 56834 dará un entero, pero 38573 div 34739 mod 372 + 35730 - 38834 + 1. será real porque 1.1 es real. A cada variable sólo se le puede asignar un valor que represente un datodel mismo tipo que el de la variable. No se le puede asignar un valor real a una variable entera. Sin embargo, hay ciertos tipos de datos que son compatibles con otros. Se le puede asignar un valor entero a una variable real. Suponga que tiene la siguiente sección de declaración de variables: var un_entero : integer; un_real : real; Cuando se ejecuta el siguiente bloque de instrucciones, un_entero := 375; un_real := un_entero; un_real tendrá un valor de 375.0, o 3.75e2. En Pascal el signo menos puede ser utilizado para obtener un valor negativo. El signo mas puede usarse para obtener un valor positivo, sin embargo no se lo hace porque no es necesario dado que por defecto todos los valores positivos. No deben usarse dos operandos seguidos (uno al lado del otro)! un_real := 37.5 * -2; Esto puede tener sentido para usted ya que está tratando de multiplicar por el número negativo –2. Sin embargo, para Pascal es confuso y no sabrá si multiplicar o restar. Esto se puede evitar usando paréntesis : un_real := 37.5 * (-2); La computadora sigue las operaciones con un orden similar al que usted sigue cuando hace operaciones aritméticas:

  • / div mod

La computadora resuelve cada expresión de acuerdo con las siguientes reglas:

  1. Evalua todas las expresiones dentro de los parentesis, comenzando desde el par de parentesis mas interno hacia los de más afuera.
  2. Evalua todas las multiplicaciones y divisiones de izquierda a derecha.
  3. Evalua todas las sumas y restas de izquierda a derecha. El valor de 3.5 * (2 + 3) seá 17.5. Pascal no puede realizar operaciones aritméticas standard con datos Booleanos. Hay un conjunto especial de Operaciones Booleanas. Tampoco se deben hacer operaciones standard con datos tipo caracteres porque el resultado puede variar de compilador en compilador.

1G - Puntuación e Indentación

Dado que Pascal ignora los espacios y los end-of-lines,hace falta puntuación para decirle al compilador cuando una sentencia termina. Debe haber un punto y coma siguiendo:

  1. el encabezamiento del programa
  2. cada definición de constantes
  3. cada declaración de variable
  4. cada definición de tipo
  5. todas las sentencias La última sentencia de un programa, la que precede inmediatamente el END, no requiere punto y coma. Sin embargo, no hay incovenientes en poner uno, y evita tener que agregar uno si de pronto se mueve hacia arriba esa sentencia. Indentación no se requiere. Sin embargo, es una buena práctica para el programador, ya que ayuda a hacer el programa más claro. Se puede tener un programa como el que sigue: program Stupid; const a=5; b=385.3; var alpha,beta:real; begin alpha := a + b; beta:= b / a end. Pero es mucho mejor el siguiente:

program Stupid;

const a = 5; b = 385.3;

var alpha, beta : real;

begin (* main ) alpha := a + b; beta := b / a end. ( main *) En general, conviene identar dos o cuatro espacios en cada bloque y dejar una línea en blanco entre bloques (como ente los bloques de constantes const y variables var). Lo más importante, use comentarios libremente! Si alguna vez usted vuelve a un programa que escribió hace diez años, probablemente no recuerde la lógica con el que lo escribió a menos que lo documente. Es una buena idea comentar la parte ejecutable del programa (main), para distinguirla de los subprogramas.

1H – Ejemplo N°

Ahora usted ya sabe usar variables y cambiarles su valor. ¿Listo para su primer programa? Pero hay un pequeño problema: usted aún no aprendió como mostrar los datos en la pantalla! ¿Cómo va a saber si el programa funciona o no si no puede ver ninguna salida? Entonces, aquí hay un MUY breve resumen de la próxima lección. Para ver datos en la pantalla, use: writeln ( argumentos ); Argumento está compuesto por cualquier cadena de caracteres o nombres de variables separados por comas. Un ejemplo es: writeln ('La suma da = ', sum);

Aquí sigue el programa de ejemplo para el capítulo 1: Encuentre la suma y el promedio de cinco enteros. El promedio debe ser real. Los cinco números son: 45 7 68 2 34 Use una constante para representar el núnero de enteros que manejará el programa – defina alguna constante con el valor 5. La salida deberia ser algo asi: Numero de enteros = 5 Numero1 = 45 Numero2 = 7 Numero3 = 68 Numero4 = 2 Numero5 = 34 Suma = 156 Promedio = 3.1200000000E+ Como puede ver, la salida por defecto de los números reales es la notación científica. En la siguiente sección se verá como formatearlo para fijar el punto decimal. Para ver una posible solución, haga click en Continuar.

2A - Entrada

Entrada significa leer un dato desde la memoria, del teclado, del mouse o de un archivo en un disco. No veremos cómo leer un dato proveniente del mouse porque la sintaxis difiere de máquina a máquina, y puede requerir una interrupción complicada al driver del mouse. Si desea ver el código fuente para un mouse para DOS, vea el siguiente link: http://web.mit.edu/taoyue/www/tutorials/pascal/pas-mou.html Esta unidad no trabajará bajo Windows, Macintosh, o X-Windows, porque estos sistemas operativos manejan toda entrada del mouse por usted y no le permiten una interface con el mouse directamente. El formato basico para leer entradas de datos es: read ( Lista_de_Variables ); Variable_List es una serie de identificadores de variables separados por comas. read, sin embargo, no va a la siguiente línea. Esto puede ser un problema con entradas de caracteres, porque el carácter de end-of-line es leido como un espacio. Para leer datos de entrada y luego ir a la siguiente línea: readln ( Lista_de_Variables ); Suponga que lee los enteros a, b, c, y d. 45 97 3 1 2 3 Esto será el resultado de varias sentencias:

Sentencia(s) a b c d

read (a); read (b); 45 97 readln (a); read (b); 45 1 read (a, b, c, d); 45 97 3 1 readln (a, b); readln (c, d); 45 97 1 2

La sentenci a read no salta a la siguiente línea, mientras que readln siempre salta a la siguiente línea luego de cada lectura. Cuando se leen enteros, se saltan todos los espacios hasta que se encuentra un número. A partir de ahí,todo número subsecuete es leído, hasta que se alcace un carácter no unmérico (incluído el espacio).

Cuando se lee un entero, el valor leído es 8352. Inmediatamente después lee el carácter '.' Si trata de leer ese número en dos enteros, tampoco funcionará porque cuando la computadora busca el segundo dato, ve '.' y para avisando que no puede encintrar ningún dato para leer. Con valores reales,la computadora también salta los espacios en blanco y luego lee todo lo que pueda ser leido. Sin embargo, hay una restricción: un real sin parte entera debe comenzar con 0. . es invalido y la computadora no lo puede leer como real, pero

es correcto. Aseguresé que todos los identificadores en la lista de argumentos se refieran a variables! En el argumento de una instrucción de lectura de datos de entrada no puede haber constantes ni valores literales.

2B - Salida

Para escribir datos en la pantalla, también hay dos sentencias: write ( Lista_de_Argumentos ); writeln ( Lista_de_Argumentos ); La sentencia writeln salta a la línea siguiente cuando termina. En la lista de argumentos se pueden usar cadenas de caracteres, constantes o values literales. Para que aparezcan comillas con una cadena de caractres, se deben usar dos comillas consecutivas: ´´

2D - Archivos

El uso de archivos para entrada/salida es diferente según el compilador de Pascal que se emplee. Sin embargo, el modo de lectura/escritura en archivos es el mismo en todos los compiladores: read ( file_variable , argument_list ); write ( file_variable , argument_list ); Lo mismo con readln y writeln. La mayoría de los sistemas Pascal requieren que se declare un archivo en la sección de variables: var ... filein, fileout : text; Usualmente se usa el tipo de datos texto. La diferencia entre compiladores de Pascal aparece luego de abrir un archivo para lectura o escritura. En la mayoría de los compiladores dePascal, incluido Metrowerks Codewarrior y el traductor de Pascal incluido con Unix/Linux, usan: reset ( file_variable, 'filename.extension' ); para abrir un archivo para lectura. Usan: rewrite ( file_variable, 'filename.extension' ); para abrir un archivo para escritura. Note que no se puede abrir un archivo para ambas cosas (lectura y escritura). Un archivo abierto con reset sólo puede ser usado con read y readln. Un archivo abierto con rewrite sólo puede ser usado con write y writeln. Turbo Pascal hace esto de modo diferente.Primero se debe asignar un archivo a una variable, luego se llama a reset o rewrite usando sólo la variable. assign (file_variable, 'filename.extension'); reset (file_variable) El modo de representar el path difiere dependiendo del sistema operativo. Ejemplos: Unix: ~login_name/filename.ext DOS/Win: c:\directory\name.pas Mac: Disk_Name:Programs Directory:File Name.pas Antes de terminar el programa se deben cerrar los archivos! Esto es igual para todos los compiladores: close ( File_Identifier ); El siguiente programa usa archivos. Fue escrito para Turbo Pascal y DOS, y crea file2.txt con el primer carácter proveniente de file1.txt: program CopyOneByteFile;

var mychar : char; filein, fileout : text;

begin assign (filein, 'c:\file1.txt'); reset (filein); assign (fileout, 'c:\file2.txt'); rewrite (fileout); read (filein, mychar); write (fileout, mychar); close(filein); close(fileout) end.

2E - EOLN y EOF

EOLN es una función Booleana que es verdadera (TRUE) cuando se alcanza el final de una línea (end of a line) en un archivo de entrada abierto. eoln ( file_variable ) Para ver si la entrada standard (el teclado) está en un end-of-line, simplemente poner eoln sin ningún parametro: eoln EOFTRUE cuando se alcanza el final del archivo. eof ( file_variable ) o eof para la entrada standard. Normalmente no se pulsa el carácter end-of-file desde el teclado. En máquinas DOS/Windows, este carácter es Control-Z or F6. En máquinas UNIX/Linux, el carácter end-of-file es Control-D.