domingo, 11 de maio de 2014

Tema 3 Estructura dun Programa en Pascal



Antes de comezar, que non vos asuste si a cantidade de coñecementos e conceptos que se expoñen a continuación vos parece excesiva. O propósito deste apartado é proporcionar unha visión global dun programa en Pascal. Aínda non temos a base suficiente para comprender en profundidade todos os compoñentes dun programa, pero é interesante ver o aspecto global.

A estrutura xenérica dun programa en Pascal sería a seguinte:

program nome_do_programa ;

uses
unidades;

const
const_1 = valor_1;
const_2 = valor_2;
type
tipos_definidos_polo_usuario;
var
declaración_de_variables;

{** Funcions e procedementos **}
procedure
definicions_de_procediementos;
function
definicions_de_funcions;
{** Corpo do programa **}
begin
sentenzas;
end.


Imos ir explicando cada unha desas partes.

program

Esta palabra marca o comezo do programa e vai acompañada do nome que lle imos dar o noso programa. Vai seguida de punto e coma que é o separador de sentenzas.
Un dos erros que debemos evitar é utilizar o nome do programa que aparece a continuación da palabra program noutros elementos do noso programa, polo tanto debe ser único en todo o desenvolvemento e non debe incluír espazos en branco nin caracteres que non pertenzan ao léxico da linguaxe. No apartado seguinte explícanse as regras para construír identificadores.

program exemplo;

uses

Esta palabra reservada vai seguida dos nomes das unidades (units) que utiliza o noso programa. Pero, que son as unidades? Son o que noutros ámbitos se coñecen coma bibliotecas. Son un conxunto de utilidades das que o programador pode dispor para construír o seu programa. Algunhas proporciónaas o entorno de programación e outras podelas construír ti mesmo ou proporcionalas un terceiro.

const, type e var

No noso programa precisaremos almacenar os nosos resultados no que se chaman variables e é posible que utilicemos valores (números, letras, etc.) que non cambien durante a execución do programa chamadas constantes. Por último é posible que o programador cree estruturas de datos (unha forma de agrupar información) axustadas as necesidades do seu programa dando lugar a os chamados tipos definidos polo ususario.

procedure e function

Cando en temas anteriores mencionabamos a programación modular afirmabamos que era recomendable descompor os programas en partes denominadas módulos ou subprogramas. A forma de descompor o programa en módulos que proporciona Pascal son as funcións e os procedementos.


begin-end

Este e o corpo do programa principal. É o lugar onde comeza a executarse o programa, e a palabra reservada end marca o seu fin. É o que e da en chamar módulo principal en teoría da programación.

Léxico dun programa en Pascal

Denominase léxico dunha linguaxe a todas aquelas palabras (tokens) que poda ter un programa. Co léxico constrúense os programas en Pascal. Dentro do léxico destacan:

  • Palabras reservadas
  • Identificadores
  • Comentarios
  • Separadores
  • Símbolos especiais


Palabras reservadas

Reciben este nome porque significan algo especial para o compilador. Xa vimos algunhas: program, var, const, procedure, function, begin, end.

O listado completo das palabras reservadas en Pascal non é moi extenso, aínda que hai que sinalar que os diferentes fabricantes de compiladores introduciron algunhas con obxecto de aumentar as prestacións da linguaxe Pascal. As que se consideran Pascal estándar son as seguintes:


and
array
begin
case
const
div
do
downto
else
end
file
for
function
goto
if
in
label
mod
nil
not
of
or
packed
procedure
program
record
repeat
set
then
to
type
until
var
while
with


Identificadores

Os identificadores permiten dalle nome a os diferentes elementos dun programa. O primeiro identificador que empregamos e o nome do programa que aparece xunto a sentenza program.
Por outra banda os identificadores permiten “bautizar” a os subprogramas (procedementos e funcións), a os tipos de datos e a os propios datos de cada programa: variables e constantes. Un identificador é unha cadea de caracteres que debe cumprir:

  1. Debe comezar por unha letra (a..z ou A..Z) e non pode conter espazos en branco.
  2. A partir do primeiro carácter están permitidos díxitos e o subliñado (_).
  3. Non se poden utilizar palabras reservadas como identificadores.

Si o noso programa intenta calcular o saldo medio dunha conta corrente, seguramente precisaremos un dato para almacenar ese saldo e o seu identificador podería ser:

saldo_medio

É importante que os identificadores teñan un certo nome significativo que reflicta o contido xa que isto axuda a hora de ler e modificar o código. Tamén é importante destacar que Pascal non destingue entre maiúsculas e minúsculas, polo tanto son o mesmo identificador saldo, Saldo, SALDO ou sAlDo.

Comentarios

Un comentario é un texto explicativo situado no código fonte do programa. Este texto é ignorado polo compilador pero facilita a lexibilidade e comprensión do código por parte de outro programador ou do propio autor unha vez transcorrido certo tempo dende o seu desenvolvemento. En definitiva é unha forma de incluír anotacións directamente sobre o código do programa.

E como distingue o compilador os comentarios do programa? Para que un texto se considere comentario debe ir encerrado entre (* e*):

(* Este formato é de comentario *)

Ou có seguinte formato adicional nos compiladores de Turbo Pascal:

{ Isto é un comentario }

Os comentarios son de gran importancia para dar claridade ao código e imprescindibles nas fases de posta a punto e mantemento.

Símbolos especiais

Son símbolos formados por un ou máis caracteres con un significado específico. Xa vimos algúns: o punto e coma como separador de sentenzas ou o punto final que da lugar a fin do programa. Tamén forma parte destes os operadores matemáticos:

< > . ; : { } [ ] + - * / <= >= # $

Separadores

Para que as palabras reservadas, identificadores ou símbolos sexan distinguibles uns dos outros fan falla separadores. En Pascal úsanse como separadores o espacio en branco, o tabulador ou o caracter de nova liña (Intro). Ademais os separadores permiten dar claridade a lectura do código.






O meu primeiro programa

Neste apartado editaremos o noso primeiro programa en Pascal.

Program Benvido;

Const

     OLA='Benvido ao mundo da programacion';

Var

     nome: string[40];

begin

     write('Introduzca o seu nome: ');
     readln(nome);
     writeln(OLA,' ', nome);
     readln;


end.

martes, 6 de maio de 2014

Tema 2.1 Exemplos de diagramas e pseudocódigo

Aquí vos deixo algúns exemplos de diagramas de fluxo e o seu correspondente pseudocódigo:


Título do exercicio-1: Desenvolva un algoritmo que permita ler tres valores e almacenalos nas variables A, B, C respectivamente. O algoritmo debe imprimir por pantalla cal e o valor meirande.

Este é o diagrama do exemplo que vimos no video do tema 2 (pincha video tema 2), deixovos o enlace por si queredes votarlle unha ollada.

De seguido o pseudocódigo deste programa:

  1. Inicio
  2. Inicializar as variables A, B, C
  3. Ler os tres valores
  4. Almacenar os valores nas variables A, B, C
  5. Si A > B e B > C Entón
  6. Escribir A "É o maior"
  7. Se non
  8. Si B > A e B > C Entón
  9. Escribir B "É o maior"
  10. Se non
  11. Escribir C "É o maior"
  12. Fin 
Recordemos a que chamabamos  algoritmo: dixemos que non é máis que unha serie de instruccións para resolver un problema.
Se vos fixades na cabeceira da páxina antes do diagrama de fluxo exponse o títuto que non e máis que unha declaración dun problema, neste caso queremos averiguar cal e o maior de tres valores.


Poñamos outro exemplo para que que de máis claro:

Título do exercicio-2: Desenvolva un algoritmo que realice a suma dos números comprendidos entre o 1 e o 10, é dicir, 1+2+3..+10 e imprima o resultado por pantalla.



E o pseudocódigo:

  1. Inicio
  2. Declaración e inicialización de variables N = 0 e Suma = 0
  3. Asignación contador N = N + 1
  4. Asigniación acumulador Suma = Suma + N
  5. Si N = 10 Entón
  6. Escribir Suma
  7. Se non, repetir dende o paso 3.
  8. Fin

Estes dous exemplos son unha pequena mostra de aquí en diante deberiades intentar realizar un diagrama de fluxo e o pseudocódigo de todos os programas de exemplo que aparezan ó longo do curso.