Pràctica Pascal (2014)

Trabajo Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Ingeniería en Organización Industrial - 1º curso
Asignatura Informatica 1
Año del apunte 2014
Páginas 11
Fecha de subida 29/11/2014
Descargas 0
Subido por

Vista previa del texto

Informàtica Pascal Índex: Missatge compilador Error vs warnig: documentar.
Errors típics. identificació línia/columna Falta símbol esperat / Identifier not found Programa en execució Apartats programa program , begin/end, uses, var Instruccions write, readln, clrscr, readkey, writeln, assignació Símbols Comentaris / Separadors / Format números Expressions Assignació, operadors, operands, Funcions Variables declaracio, identificador, tipus de dades (real, integer), assignació entrada/visualització Càlcul expressions complexes Expressió de mostra. Anàlisi per la separació en càlculs simples.
Missatge compilador Aquí podem veure un esquema de com seria una programació en pascal.
Basant-nos en el quadre on fica text, que representa el quadre on fariem totes les instruccions per a la configuració del programa, podem observar que aquest text passa pel compilador, que és l'encarregat de mirar si la sintaxi és correcta o no. Si la sintaxi no és correcta hens marcarà “ERROR” i haurem de tornar a començar el procés. Ara bé, també podem tenir un error que no sigui de caràcter sintàctic, com per exemple un error de càlcul, en aquest cas ens surtirà un avís “WARNING” que hens avisarà d'aquest fet.
Bé, ara suposem que no tenim cap error, el programa objecte executerà algunes instruccions donades per la CPU, però encara hens faltaràn instruccions per a fer aquest programa. A partir d'aqui la informació creada fins ara pasa per un “linker” que com fica a l'esquema és un tros de programa ja instal·lat i que podem utilitzar-lo i enllaçar-lo amb el nostre programa.
Per últim, comprovarem el funcionament del programa, així que l'executarem per provar-lo, si funciona ja està creat, però si encara té algun error l'haurem de modificar des de el principi i tornar a fer tot el procés. L'error que poguem trobar a l'executar el programa serà impossible que sigui un error sintàctic ja que aquest tipus d'error ja s'han trobat a l'inici del procés.
Algún dels errors típics és l'equivocació de referència en quan a línea o columna. Quan indiquem una instrucció que va relacionada amb alguna altra, hem d'indicar la fila i columna en que es troba aquesta altra instrucció per tal que la màquina sapiga quina és, però hem de saber que estàn invertides, és a dir, que l'indicador de fila i columna, el primer nombre és la fila i el segon la columna, però el marcador d'errors va al revés, el primer nombre és la columna i el segon nombre és la fila.
Indica la fila i la columna en que tenim el corsor Quan compilem les instruccions que portem fetes fins al moment, tenim possibilitats que hens surti un error que hens digui “Identifier not found” que ens ve a dir que falta algún símbol, ja sigui un separador d'instruccions, un parèntesi, etc. També pot passar que l'error digui que s'ha trobat un símbol quan s'esperava trobar-ne un altre, doncs el que farem serà mirar la fila i la columna en que es troba aquest error per tal de poder ficar el símbol que s'esperava.
Apartats programa En un programa podem distingir de manera molt clara tres apartats: 1. Program 2. Begin 3. End 1. El program és una paraula reservada*, que serveix per indicar quin és el nom o identificador del programa.
Per exemple: Program Dv1002; En aquest exemple, el nom del programa és Dv1002. Ho sé perquè davant tenim la paraula “program”.
Cada nom o identificador han de seguir una série de normes que trobem en Pascal: – El primer caràcter ha de ser una lletra.
– Els següents caràcters poden ser lletres de l'alfabet anglès, dígits i caràcters subrallats, (el primer caràcter mai podria).
– Mai podrem ficar lletres com ç, ñ, altres símbols o vocals accentuades.
– No podem utilitzar cap altre paraula reservada com a identificador.
– El símbol ; hi ha de ser per indicar fí de l'identificador.
2. Begin – 3. End Són paraules reservades, que estableixen un inici i un final d'instruccions. És a dir, les instruccions del programa les trobarem entra el Begin i l'End.
Exemple: Begin clrscr; write ('Entra valor x:'); End Instruccions A vegades també voldrem aclarar que tenim una llibreria que podem utilitzar-la per dir a la màquina que volem tenir relació amb aquesta llibraria, per fer aquesta aclaració introduirem la paraula reservada uses.
Però, si el que volem és donar valors (ja siguin numèics o no) haurem de dir a la màquina què és el que volem fer, per tant ficarem var ja que al ser una paraula reservada, la màquina identifica que volem donar valors.
*Les paraules reservades són part del llenguatge Pascal, i no poden ser redefinits Instruccions En el programa, trobarem diverses instruccions. Aquestes són paraules en anglés, i algunes poden ser abreujament en anglès. Cada instrucció només té assignat una paraula, per això, podrem saber, quina funció té cada mot que ens puguem trobar en el llenguatge Pascal.
Algunes d'aquestes instruccions són: Write: Consisteix en afegir un valor (alfabètic, numèric ...) per tal que el programa al passar per aquesta instrucció pugui llegir el valor que hem entrat.
Readln: Llegeix una línia. Aquesta línia serà informació que hem introduït anteriorment a les instruccions.
En aquesta instrucció, acostuma a aparèixer un error molt típic. Aquest error apareix perquè no hem definit bé l'aliniació de les instruccions que volem que llegeixi.
Clrscr: Conté informació en llibreries.
Exemple: uses crt; clrscr; (Està buscan informació en la llibreria crt, però no ho troba, una possible solució, és ficar “uses crt;” com si fos un comentari.) //uses crt; clrscr; Readkey: Part encarregada de llegir clrscr i buscar-la en llibreries. En cas d'error, la solució és la mateixa que en l'exemple anterior.
Writeln: instrucció que s'ocupa d'escriure un missatge que després podrà ser llegit i interpretat.
Exemple: Writenln ('L”arrel quadrada de la suma ...') En aquest cas, el missatge és que l'arrel quadrada de la suma x serà y. Entra parèntesis hem ficat (') tant al principi com al final, aquests apòstrofs indiquen inici i final respectivament.
Aquest exemple és interessant perquè és molt fàcil cometre un error, ja que si hens hi fixem, la paraula “L'arrel” porta apòstrof, i la màquina pot pensar que ja s'ha finalitzat el missatge. Per tal que no passi aquest error, a més d'apostrofar, ficarem (“) per surtir de confusions.
Assignació: una assignació és un símbol ( := ) que hens indica que a la esquerra (Left value) trobem un identificador variabe (que aquest ha d'estar declarat anteriorment) i a la dreta (right value) trobem un càlcul.
Aquest càlcul té valors i operants. Els valors poden ser identificatiu o literals i els operadors trobem tipus com: +,-,x,** ...
Exemple: r1:=x+y r1:=x+y el símbol és l'assignació.
R1 és l'identificador variable x és un valor + és un operant y és un valor Símbols En aquest programa, podem afegir algun comentari durant la programació en Pascal. Per afegir aquest comentari, haurem de fer alguna modificació i la podem fer de tres maneres diferents.
Les tres maneres de comentar són: 1.Afegint 2 barres a l'inici de línia per indicar que el que hi ha a continuació és un comentari.
2. Ficant el comentari entre “corxetes” 3. Ficant parèntesis seguit d'asterisc per indicar inici del comentari i asterisc i parèntesi per indicar final del comentari.
Com hem vist, podem introduir instruccions i comentaris. Ara acabem d'explicar com es simbolitzen els comentaris, però com es simbolitzen les instruccions? Doncs les instruccions s'han de separar perquè la màquina sàpiga distingir-les. El símbol que s'utilitza per separar les instruccions és “;” tan fa que canviem de línia o no ja que això no tindrà cap influència sobre les instruccions.
Ex: Readln ; Write ; Expressions Les dades que tractem en aquest programa, són per a fer càlculs, transoformacions, etc. Per tal d'obtenir un resultat.
Per tal de tenir un bon resultat, els llenguatges ens ajuden donant-nos dos estris vitals, que són, les operacions dels tipus de dades o operadors i les funcions predefinides.
Els operadors són els símbols que indiquen la realització d'una operació sobre un o més operands.
Els operands són els components d'una operació. Si x+y+z és una operació, x,y i z són els operands i + és l'operador.
Els operadors els podem classificar segons: – El nombre d'operands Unaris Binaris – Tipus de dades del resultat Interns Externs – Funcionalitat Aritmètics Lògics Relacionals Les combinacions que formen els operadors amb un o més operands corresponents s'anomenen expressions.
Per tant, les expressions les podrem definir com una seqüència de variables, constants i operadors que correctament escrits donen un resultat que serà d'un tipus de dades o un altre en funció dels operadors i el tipus de dades dels operands.
Aquí tanim uns exemples que hens vàren explicar a classe d'expressions: Variables Les variables són elements que permeten guardar informació i a més tenen la capacitat de canviar aquest valor durant l'execució del programa.
Segons el llenguatge que utilitzem, però, haurem de declarar la variable, així assignarem un nom a la variable i indicarem quin tipus de dades emmagatzemarà. Nosaltres utilitzarem el lluenguatge Pascal.
Les variables han de tenir nom, que tècnicament és diu identificador, i ha de complir una série de normes del llenguatge per tal de poder crear correctament els identificadors.
Si l'identificador està en llenguatge pseudocodi no trobarem moltes normes a seguir, però si està en llenguatge Pascal, seguirem unes normes bàsiques.
Algunes d'aquestes normes són: – Lletres de l'alfabet anglès són vàlides.
– No es pot utilitzar paraules reservades.
– Dígits i caràcters subrallats són vàlids.
Un tipus de dada és una manera de representar la informació en un ordinador, dit d'altre manera, un tipus de dades és un marge de valors possibles, un conjunt d'operacions, i la forma de representar a memòria la dada.
De tipus de dades trobem les reals i l'integer.
En el tipus de dades integer es fan servir dos bytes consecutius de memòria i s'emmagatzema el número en binari en complement a dos, per tal d'aconseguir representar nombres negatius. El tipus de dades integer també fa operacion com +,-,/,*,DIV etc. Per últim, dir que el seu marge de valor va des del -32768 fins al 32767.
Explicació programa pascal “intersecció de rectes” Hem creat una fórmula a través del programa Pascal, seguint instruccions, donant valors i fent operacions.
Primer de tot hem ficat la paraula reservada program i seguidament del nom que escollim. Per finalitzar aquesta primera instrucció hem ficat ;.
com a segona instrucció hem ficat : uses crt;, on uses és la instrucció de llibreria i crt és la llibreria en que busquem la informació.
Després fiquem les variables, i per tant escribim var (x,y:real, r1,r2:extended).
Un cop hem introduit la informació que utilitzarem i l'hem organitzat, començem a dir les funcions que volem que faci.
Escriurem Begin per indicar que començem les instruccions del procés i End per indicar que el procés ja s'ha finalaitzat.
Entre Begin i End ficarem les instruccions per tal de construir la funció demanada, per tant farem operacions amb les variables que hem declarat a var, per tal d'arrivar a la mateixa fórmula matemàtica demanada.
Programació en llenguatge Pascal Farem una programació sobre el doscument P_string.pas, aquesta sessió de laboratori hem practicat llenguatge pascal i fórmules. A més hem pogut veure strings.
Primer de tot obrirem el document i el guardarem per després poder-lo compilar.
Després definirem les variables, que en aquest cas seràn strings, o dit d'altre manera, una cadena de textos.
Perquè una instrucció s'interpreti com a string el que farem serà ficar la instrucció entre cometes.
Per exemple, si en una instrucció fiquem s1:= Hola, aquesta serà interpretada com a una variable qualsavol, mentre que si aquesta mateixa instrucció la fiquem s1:=('Hola') ja serà interpretada com string.
Un cop feta la instrucció, compilem, i seguidament executem el programa per probar el string.
Afegirem una altre instrucció.
Aquest cop, la instrucció tindrà la finalitat de que ens detecti quin és el primer carácter de s1. Per tant, escriurem: Writeln ( primer caracter s1[1] ) També podem fer que hens detecti l'últim carácter de s1.
Writeln ( últim carácter s1[length(s2)] Una altre instrucció relacionada amb aquestes dos, és : S1[length(s2)],length(s2):10, que serveix per a saber la longitud de la cadena.
Altres instruccions que també ens van ensenyar divendres, van ser la de transformar una cadena en majúscules o en minúscules.
Per fer que les cadenes surtin en majúscules farem: writeln(,'s2', en majusculas es: ',upcase(s2),') i per al contrari, si volem que una cadena ens surti en lletres minuscules ficarem: writeln(',s2,' en minuscules es: ',lowercase(s2)',); Per remanar en la cadena s1, tenim també instruccions com: writeln(la primera I); , ens busca la primera I que hi ha en la cadena.
writeln(copy(si,8,2)); aquesta instrucció ens diu que cada 8 caracters n'agafa 2. És a dir, si fiquessim per exemple: "cucurutxo" agafaria "xo".
writeln(si,pos('d',s1),6); aquesta instrucció ens diu que a partir de la lletra D agafi 6 caràcters. Per exemple, si fiquem: "aquest és de la meva àvia" agafaria els caracters: de la meva.
...