





Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Fonaments dInformàtica, Profesor: Jordi Cuadros, Carrera: Enginyeria en Tecnologies Industrials, Universidad: URL
Tipo: Apuntes
1 / 9
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!






Hi ha dos tipus de rutines que podem fer a visual: subrutines (“programes”) i funcions. La diferencia entre unes i altres es que les funcions les podem fer servir a Excel com les funcions tipus SENO, MMULT, etc. Les subrutines les podem executar sense necessitat d’obrir Excel.
S’ha de saber per programar bé què són els següents conceptes:
Depurar vol dir trobar els error. Normalment no et surtira tot a la primera. En aquests casos lo millor es agregar inspeccions a cada una de les variables i apretar f8 per executar pas a pas la subrutina. Podem agregar inspeccions fent clik amb el boto de la dreta sobre les variables que volem inspeccionar. Apareixeran a sota, en el cuadre inspeccio. D’aquesta manera arribarem a un lloc on veurem que el programa no fa lo que voliem. Es la manera més util de depurar.
Si hem fet una estructura de repeticio infinita (per què ens hem equivocat o no ens n’hem adonat) podem parar el procediment fent ctrl+pausa.
InputBox permet a l’usuari entrar una dada que s’emmagatzemara en una variable. MsgBox serveix per retornar un missatge amb el contingut d’alguna variable.
Per començar, crearem un programa que ens permeti introduir el nom i ens saludi, es a dir, k posem el noestre nom i ens digui: “Hola, NOM”. Serà útil inputbox, msgBox i la funcio concatenar, que a visual es fa simbolitzada amb &.
La funcio condicional a visual es representa de la següent manera: If...CONDICIO...then....QUE_FER_SI_CONDICIO=VERTADER...else... QUE_FER_SI_CONDICIO=FALS. També podem posarli un elseif. Elseif indria a ser
un “si no, si...condicio...then...” Quan el condicional s’acaba s’ha de tancar amb “end if”
Exemple. Fes una subrutina que et digui si un numero es par o es impar. Sera par si la conversio a enter (funcio cint(numero)) del numero entre 2 es igual a el numero entre 2. Si no, si es 0, dira que es el 0, si no es par i no es 0 aleshores sera impar. Pot ser util crear una variable per guardar el numero que introdueixi l’usuari i una altra (que sigui boleana) que ens dira si es par o no es par (amb verdadero o falso)
La funcio mid és molt util, ja que permet extreure d’una cadena de text un caracter o varis, i emmagatzemarlos en una funcio.
La funcio mid te tres arguments: Mid(text on extreure, posició inicial on extreure, numero de caracters a extreure)
La funcio len retorna un numero, que és el numero de caràcters que té una cadena de text. Si volem saber cuantes xifres te un numero o un decimal haurem de fer la conversio a cadena mitjançant cstr(cosa que vull passar a cadena)
Exercici. Amb les funcions fins ara explicades, crea una subrutina que, un cop l’usuari hagi introduït una cadena de text, el rograma retorni concatenades la primera i la ultima lletra del text. Podem dimensionar la variable primeraLletra as string, ultimaLletra as string i concatenacio as string, sent concatenacio la primera lletra i la ultima lletra concatenades.
Exercici. Crea una subrutina que digui si la primera lletra d’una paraula es igual a la ultima. Pensa que A=a, per tant, et fara falta la funcio lcase(convertir a minuscules) o ucase(convertir a majuscules).
No te res a veure amb les funcions de text, pero ho poso ara perquè m’és més útil ara. L’estructura del FOR es molt simple.
For VARIABLE=NUMERO to NUMERO COSES A FER EN AQUEST INTERVAL PER A CADA VALOR DE LA VARIABLE DESDE NUMERO FINS A NUMERO Next (per tancar el for i que passi al següent valor)
En un alt porcentatge de casos la variable serà un enter (integer) i li direm posicion (no sepmre, nomes quan ens moguem per dintre de text o matrius)
Exemple. Crea una subrutina que conti el nombre de vegades que apareix una lletra introduïda per l’usuari en un text introduït per l’usuari. Diferenciarem majuscules i minuscules (a<>A). Haurem de crear una variable lletra as string, una variable text as
a) Crea una subrutina que elimini les “a” d’un text introduït er l’usuari. b) Crea una subrutina que elimini una lletra introduïda per l’usuari d’un text introduït per l’usuari. c) Crea un programa que retorni un text invertit. d) Passa el programa de c) a una funció executable a excel (de sub a function, vamos XD) e) Crea un programa que donades tres paraules separades per un punt (exemple: dog.gos.gatets) retorni la paraula del mig sense cap dels punts.
Una matriu a visual es la manera que tenim d’ordenar una serie d’elements. Per exemple, son molt utils quan es tracta d’extreure una serie de coses que volem per separat d’un text. Ho podem emmagatzemar en una matriu. Excel no pot enviar matrius, pero sí que pot rebren. (preguntamu kuan arribis i em tinguis al davant, k tu mostrare)
Per declarar una matriu es fa igual que per declarar una variable, però posant uns parentesis al final del nom. Fem dim matriu() as string. Això vol dir que matriu sera una matriu de cadenes de text. Si nomes li diem això, matriu() as string i prou, no passa res. L’hem de redimensionar. Els elements de la matriu podran ser cridats a l’estil matriu(0), matriu(1), etc. Per exemple, en la matriu redimensionada (0 to 2): (1,2,3), matriu(0)=1, matriu(1)=2 i matriu(2)=3.
Si volem una matriu de dos, tres, quatre dimensions o mes, hem de redimensionar. Per redimensionar fem redim matriu(0 to 2, 0 to 2). Això sera una matriu 3x3 (de dos dimensions). Una matriu redim(0 to 3, 0 to 2, 0 to 1) sera una matriu cubica 4x3x2, tot i k aquesta ultima no s’acostuma a fer servir. Podem tenir matrius de 4, 5, 9... dimensions.
En una matriu redimensionada, el primer numero es la fila, el segon la columna, etc. Per cridar un element d’una matriu bi o tridimensional fem matriu(0,0) o, en el cas de les 3 dimensions, matriu(0,0,0), i aixi amb n dimensions.
A diferencia de les matrius, Excel si que pot entrar rangs a visual. Un rang es com una matriu, però està organitzat en celes. El rang el podem entrar a visual o bé com a argument d’una funcio creada o bé com a inputbox en una subrutina.
Per referirnos a les caselles d’un rang fem servir NOMDELRANG.cells (indicador fila, indicador columna). Els rangs, com que provenen de excel, nomes poden ser de dos dimensions.
Exemple. Crea una funcio que passi un rang nxn introduït per l’usuari desde excel a una matriu nxn, i comprova que funciona.
Exemple. Donats dos vectors en forma de rang de n dimensions, feu una funcio que faci el producte escalar d’aquests vectors (recorda que en aquest cas no cal redimensionar res)
a) Donada una cadena de text del tipus A+B, o A-B, on A i B poden ser qualsevol nombre real (pensa el tipus que hauràs de dimensionar), crea una funció que, a partir de la cadena de text, retorni un vector on la component 1 del vector sigui A i la 2 sigui B. Es a dir, si li poso 23+4 em tornarà el vector (23, 4), i si li poso 12-5 em tornarà el vector (12, -5) b) (^) Utilitzant la funcio anterior (preguntam com cridar funcions), crea una funcio que realitzi la suma o la resta de una cadena de text del tipus A+B o A-B. c) Crea una funcio que retorni vertader o fals segons si dos matrius es poden multiplicar o no (es podran multiplicar si les “n” de mx n i n xp son iguals) d) Crea una funcio que donades 4 matrius les multipliqui, i si no son compatibles, ens ho faci saber. Primer multiplica les dos primeres si es pot, despres el resultat per la tercera si es pot, i el resultat nou per la quarta si es pot.
Crea una funcio que, donada una paraula com a argument, retorni el numero de lletres minuscules de cada tipus que hi ha. Per exemple, si li introduïm carretó, retornara com a text “Hi ha 1a, 1c, 1e, 1o, 2r, 1t”. Pensa que no cal posar accents i que l’usuari pot introduir majuscules i minuscules.
Equival a la funció residu de Excel. Aquesta funció ens retorna el quocient d’una divisió. La forma que agafa a visual es: DIVIDENDUmodDIVISOR. Si la divisió es exacte, mod retorna el valor 0, ja que el quocient és 0.
Exemple. Crea una subrutina que retorni el quocient d’una divisió, on el numerador i el denominador seran introduïts per l’usuari.
Exemple. Crea una funció que permeti saber si un numero introduït com a argument es múltiple de un altre numero introduït com a 2n argument.
Bàsicament son les funcions and (y) i or (o). Visual es tonto, i no entén res si li dius a=(b and c), i li has de dir a=b and a=c.
Exemple. Crea una funció tal que doni verdader si un numero es múltiple de 2 o de 3, i que doni fals si no ho és.
Exemple. Crea una funció que tingui per arguments dos números i que miri si el primer numero es potencia del segon (si el primer numero es el segon elevat a quelcom, vamos...)