Mini-Tutorial en un paso Pascal Básico
Pascal Básico- Minilección: 1 - Hola, Mundo
El ejemplo básico en cualquier lenguaje de programación, aplicado a Pascal: escribir Hola, Mundo en pantalla
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:22:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=49 *)
program Saludo; begin write('Hola, Mundo'); end.
Pascal Básico- Minilección: 2 - Sumar dos números
Cómo sumar dos números introducidos por el usuario, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:25:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=51 *)
program SumaDosNumeros; var numero1, numero2, suma: integer; begin writeln('Introduce el primer número'); readln( numero1 ); writeln('Introduce el segundo número'); readln( numero2 ); suma := numero1 + numero2; writeln('La suma de los dos números es: ', suma); end.
Pascal Básico- Minilección: 3 - Operaciones aritméticas
Ejemplo de cómo realizar las principales operaciones aritméticas, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:27:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=49 *)
program operaciones; var e1, e2: integer; (* Numeros enteros *) r1, r2, r3: real; (* Números reales *) begin e1:=17; e2:=5; r1:=1; r2:=3.2; writeln('Empezamos...'); r3:=r1+r2; writeln('La suma de r1 y r2 es :', r3); writeln(' o también ', r1+r2 :5:2); (* Indicando el formato *) writeln('El producto de r1 y r2 es :', r1 * r2); writeln('El valor de r1 dividido entre r2 es :', r1 / r2); writeln('La diferencia de e2 y e1 es : ', e2 - e1); writeln('La división de e1 entre e2 : ', e1 / e2); writeln(' Su división entera : ', e1 div e2); writeln(' Y el resto de la división : ', e1 mod e2); writeln('El opuesto de e2 es :', -e2); end.
Pascal Básico- Minilección: 4 - IF básico
Comprobación básica de condiciones, en lenguaje Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:32:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=80 *)
program if1; var numero: integer; begin writeln('Escriba un número'); readln(numero); if numero>0 then writeln('El número es positivo'); end.
Pascal Básico- Minilección: 5 - IF con ELSE
Cómo comprobar una condición e indicar qué se debe hacer si la condición no se cumple, en lenguaje Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:33:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=80 *)
program if4; var numero: integer; begin writeln('Escriba un número'); readln(numero); if numero<0 then writeln('El número es negativo.') else writeln('El número es positivo o cero.') end.
Pascal Básico- Minilección: 6 - IF con ELSE anidados
Cómo comprobar varias condiciones de forma sucesiva, en lenguaje Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:35:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=80 *)
program if5; var numero: integer; begin writeln('Escriba un número'); readln(numero); if numero<0 then writeln('El número es negativo.') else if numero>0 then writeln('El número es positivo.') else writeln('El número es cero.') end.
Pascal Básico- Minilección: 7 - Comprobar varios casos
Cómo comprobar variables que puedan tener valores variados, usando CASE
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:37:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=80 *)
program case1; var letra: char; begin WriteLn('Escriba un símbolo'); ReadLn(letra); case letra of ' ': WriteLn('Un espacio'); 'A'..'Z', 'a'..'z': WriteLn('Una letra'); '0'..'9': WriteLn('Un dígito'); '+', '-', '*', '/': WriteLn('Un operador'); else { otherwise en SURPAS } WriteLn('No es espacio, ni letra, ni dígito, ni operador'); end; end.
Pascal Básico- Minilección: 8 - Contar del 1 al 10 con FOR
Ejemplo de cómo escribir en pantalla los números del 1 al 10, en lenguaje Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:39:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=116 *)
Program For1; var contador: integer; begin for contador := 1 to 10 do writeln( contador ); end.
Pascal Básico- Minilección: 9 - Tablas de multiplicar
Ejemplo de cómo escribir en pantalla las tablas de multiplicar, usando
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:44:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=116 *)
Program For3; var tabla, numero: integer; begin for tabla := 1 to 5 do begin for numero := 1 to 10 do writeln( tabla, ' por ', numero ,' es ', tabla * numero ); writeln; (* Línea en blanco *) end; end.
Pascal Básico- Minilección: 10 - Letras de A a Z
Ejemplo de cómo escribir en pantalla las letras de la A a la Z
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:46:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=116 *)
Program For4; var letra: char; begin for letra := 'a' to 'z' do write( letra ); end.
Pascal Básico- Minilección: 11 - Clave de acceso
Ejemplo de cómo repetir un bloque de programa, por ejemplo hasta que se introduzca la clave de acceso correcta.
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:49:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=116 *)
program ClaveDeAcceso; var ClaveCorrecta, Intento: String[30]; begin ClaveCorrecta := 'PascalForever'; repeat WriteLn( 'Introduce la clave de acceso... ' ); ReadLn( Intento ) until Intento = ClaveCorrecta; (* Aquí iría el resto del programa *) WriteLn( 'Acceso permitido.' ); end.
Pascal Básico- Minilección: 12 - Repetir un bloque de un programa
Ejemplo de cómo repetir un bloque de programa mientras se cumpla una condición.
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:52:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=116 *)
Program While1; var frase: string; begin writeln('Escribe frases, y deja una línea en blanco para salir'); write( '¿Primera frase?' ); readln( frase ); while frase <> '' do begin writeln( 'Su longitud es ', length(frase) ); write( '¿Siguiente frase?' ); readln( frase ) end end.
Pascal Básico- Minilección: 13 - Funciones en Pascal
Ejemplo de funciones que devuelven un valor, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:54:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=136 *)
program PruebaDePotencia; var numero1, numero2: integer; (* Variables globales *) function potencia(a,b: integer): integer; (* Definimos la función *) var i: integer; (* Locales: para bucles *) temporal: integer; (* y para el valor temporal *) begin temporal := 1; (* incialización *) for i := 1 to b do temporal := temporal * a; (* hacemos "b" veces "a*a" *) potencia := temporal; (* y finalmente damos el valor *) end; begin (* Cuerpo del programa *) writeln('Potencia de un número entero'); writeln; writeln('Introduce el primer número'); readln( numero1 ); writeln('Introduce el segundo número'); readln( numero2 ); writeln( numero1 ,' elevado a ', numero2 ,' vale ', potencia (numero1, numero2) ) end.
Pascal Básico- Minilección: 14 - Procedimientos en Pascal
Ejemplo de procedimiento que recibe parámetros, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:56:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=136 *)
program ProcConParametros; procedure saludo (nombre: string); (* Nuestro procedimiento *) begin writeln('Hola ', nombre, ' ¿qué tal estás?'); end; begin (* Comienzo del programa *) writeln; (* Linea en blanco *) saludo( 'Aurora' ); (* Saludamos a Aurora *) end. (* Y se acabó *)
Pascal Básico- Minilección: 15 - Parámetros por referencia
Ejemplo de procedimiento que recibe parámetros por referencia y modifica su valor, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:58:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=136 *)
program PruebaDeParametrosRef; var dato: integer; procedure modifica( var variable : integer); begin variable := 3 ; writeln( 'Dentro: ', variable ); end; begin dato := 2; writeln( 'Antes: ', dato ); modifica( dato ); writeln( 'Después: ', dato ); end.
Pascal Básico- Minilección: 16 - Factorial (recursivo)
Ejemplo básico de función recursiva: el factorial de un número, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 20:59:20 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=136 *)
program PruebaDeFactorial; var numero: integer; function factorial( num : integer) : integer; begin if num = 1 then factorial := 1 (* Aseguramos que tenga salida siempre *) else factorial := num * factorial( num-1 ); (* Caso general *) end; begin writeln( 'Introduce un número entero (no muy grande) ;-) ' ); readln(numero); writeln( 'Su factorial es ', factorial(numero) ); end.
Pascal Básico- Minilección: 17 - Leer un fichero de texto
Ejemplo básico de cómo leer todo el contenido de un fichero de texto, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 21:03:04 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=154 *)
program MuestraAutoexec; var fichero: text; (* Fichero de texto *) linea: string; (* Línea que leemos *) begin assign( fichero, 'C:\AUTOEXEC.BAT' ); (* Le asignamos el nombre *) reset( fichero ); (* Lo abrimos para lectura *) while not eof( fichero ) do (* Mientras que no se acabe *) begin readln( fichero, linea ); (* Leemos una línea *) writeln( linea ); (* y la mostramos *) end; close( fichero ); (* Se acabó: lo cerramos *) end.
Pascal Básico- Minilección: 18 - Copiar un fichero
Ejemplo de cómo copiar el contenido de un fichero en otro, usando Pascal
Lenguaje: Pascal (compilador: FreePascal)
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Disponible desde 2011-06-28 21:05:04 *)
(* Aportado por Nacho *)
(* Autor original: Nacho Cabanes *)
(* Web original: http://www.aprendeaprogramar.com/mod/resource/view.php?id=154 *)
program CopiaFichero; { Sencillo y rápido programa de copia de ficheros, SIN comprobación de errores } var Origen, Destino: file; CantLeida, CantEscrita: Word; NombreOrg, NombreDest: String; Buffer: array[1..2048] of Char; begin Write( 'Introduzca el nombre del fichero ORIGEN... ' ); ReadLn( NombreOrg ); Write( 'Introduzca el nombre del fichero DESTINO... ' ); ReadLn( NombreDest ); Assign( Origen, NombreOrg ); Reset( Origen, 1 ); { Tamaño = 1 } Assign( Destino, NombreDest ); Rewrite( Destino, 1 ); { Lo mismo } WriteLn( 'Copiando ', FileSize(Origen), ' bytes...' ); repeat BlockRead( Origen, Buffer, SizeOf(Buffer), CantLeida); BlockWrite( Destino, Buffer, CantLeida, CantEscrita); until (CantLeida = 0) or (CantEscrita <> CantLeida); Close( Origen ); Close( Destino ); WriteLn( 'Terminado.' ) end.