program el_meu_primer_programa write(*,*) 'Hello, cruel world!' end --------------------------------------------------------------------



Documentos relacionados
E0. Exercicis comentats.

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD

TEMA 4 : Matrius i Determinants

Subprogramas en Fortran 90. Seminario de Computación 2009

Nom i Cognoms: Grup: Data:

Àlgebra lineal i equacions diferencials. Curs 2001/02 Exemple de diagonalització.

ACTIVITATS. a) b) c) d) INS JÚLIA MINGUELL 2n Batxillerat. dv, 18 de març Alumne:

ETSAV-UPC Matemàtiques I 5

c) C = (c ij ) de tres files i tres columnes per a) u r = (1, 2, 3, 4), c) u r = (1, 1, 1), v r = (2, 4, 8) i w r = (3, 9, 27)

Salvador Macías Hernández Rodolfo Gómez Vega Factorización LU. Programa 7/9/2003 Tarea No.4

- Vectors y Matrius: Tots els elements són del mateix tipus i estan consecutius a memòria. Accés a l element de la 5ª fila i 6ª columna.

Aproximación discreta de mínimos cuadrados con lapack

Apèndix Àlgebra lineal amb wxmaxima

Matemàtiques 1 - FIB

1. SISTEMA D EQUACIONS LINEALS

( 2 3, utilitzeu la matriu inversa B 1 ( 1 4 ( 2 1. Matrius i determinants Sèrie 3 - Qüestió 4. Donada la matriu B =

10 Àlgebra vectorial. on 3, -2 i 4 són les projeccions en els eixos x, y, y z respectivament.

Algorítmica y Lenguajes de Programación. Ordenación (i)

Proves d accés a la Universitat per a més grans de 25 anys Convocatòria 2013

CÁLCULO DEL ÍNDICE INTERNACIONAL DE RUGOSIDAD DE CARRETERAS (IRI) UTILIZANDO MEDIDAS DEL PERFIL LONGITUDINAL I.N.V. E

MATRICES, DETERMINANTES Y SISTEMAS DE ECUACIONES LINEALES

Sèrie 5. Resolució: 1. Siguin i les rectes de d equacions. a) Estudieu el paral lelisme i la perpendicularitat entre les rectes i.

Curso cero Matemáticas en informática :

Convirtiendo números del sistema decimal al sistema binario.


VECTORS I RECTES AL PLA. Exercici 1 Tenint en compte quin és l'origen i quin és l'extrem, anomena els següents vectors: D

UIB 2 + f (x) + f(x) ց ց ր ր Per tant, el punt ( 3. Una altra forma de veure-ho és calcular la derivada segona i mirar el signe en x = 3: 2 f (x) =

Geometria / GE 2. Perpendicularitat S. Xambó

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Apéndice A. Apéndice A

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Resolucions de l autoavaluació del llibre de text

El FORTRAN da la posibilidad de subdividir las tareas de un programa complejo en partes simples y claras. Procedimientos Externos SUBRUTINAS

Oficina d Organització de Proves d Accés a la Universitat Pàgina 1 de 6 PAU 2012

TEMA 8. Arrays. Array. Contenidos. 8.1 El concepto de array. Los datos pueden ser:

Typeset by GMNI & FoilTEX

Apéndice A. Repaso de Matrices

#include <stdio.h> /* Factorial de un número - versión 1- */

Oficina d Organització de Proves d Accés a la Universitat Pàgina 1 de 10 PAU 2010

Ejemplos de conversión de reales a enteros

Introducción a Fortran

XXVII OLIMPÍADA MATEMÀTICA - FASE AUTONÒMICA. Alacant. 28 i 29 DE MAIG DE 2016 PROVA VELOCITAT NIVELL C (3r cicle PRIMÀRIA)

Estructura de datos (arreglos) Vectores y Matrices

Pequeñas actividades numéricas

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas.

Typeset by GMNI & FoilTEX

Tema 1: TRIGONOMETRIA

Els fulls de càlcul. Tabla 1 : Calculadora

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

x + 2 y = 3 2 x y = 1 4 x + 3 y = k a) Afegiu-hi una equació lineal de manera que el sistema resultant sigui incompatible.

Oficina d Organització de Proves d Accés a la Universitat Pàgina 1 de 6 PAU 2009

Esquemas repetitivos en Fortran 90

La creació de qualsevol llista es fa amb l operador list. En el cas de crear una llista buida la sintaxi és

Districte Universitari de Catalunya

Universitat Pompeu Fabra Anàlisi Multivariant, curs Prof. Albert Satorra Prof. Ajudant. Ferran Carrascosa. Deure 4

Anàlisis de la cadena de subministre d una cadena de franquícies basada en la teoria de jocs

Electromagnetismo I. Semestre: Prof. Alejandro Reyes Coronado Ayud. Carlos Alberto Maciel Escudero Ayud. Christian Esparza López

Enigmes matemàtics. Títol: Josep Serentill. Autor: Nivell: Cicle superior de primària. Competències: Què treballarem?: El càlcul.

Sobre la lectura y escritura de datos en FORTRAN.

Simulación avanzada con TestBench en HDL. Ing. Andrés Miguel Airabella. Ing. Facundo Aguilera.

Unitat 2 TEOREMA DE TALES. TEOREMA DE PITÀGORES. RAONS TRIGONOMÈTRIQUES UNITAT 2 TEOREMA DE TALES.

Comenzaremos recordando algunas definiciones y propiedades estudiadas en el capítulo anterior.

Estructura de computadors I

Oficina d Organització de Proves d Accés a la Universitat Pàgina 1 de 7 PAU 2007

Matemàtiques 1 - FIB

Cognoms i Nom: Examen parcial de Física - CORRENT CONTINU 17 de Març del 2014

Resolver triángulos en Visual Basic. Parte 3/3

typedef struct { tipus_1 camp_1; tipus_n camp_n; } nom_tipus; typedef struct { float x; float y; } t_punt; t_punt p = {1,1}; p.x = 2; p.

MEF1-dim. (Mètode dels Elements Finits 1-dim) Mètodes Numèrics-Dept. MA1-ETSEIB. Toni Susin

FONAMENTS D'ORDINADORS

Recursivitat. Tecnologia de la Programació. Sebastià Vila-Marta. Enginyeria de Sistemes TIC Universitat Politècnica de Catalunya

Introducción a la Programación Ingenieria en Informática Junio 2008

Estructures de dades lineals II

Apunts de Matemàtica Discreta i Àlgebra Segona part: Àlgebra Lineal Tema 8: Espais vectorials

AVALUACIÓ DE QUART D ESO

Apunts de Matemàtica Discreta i Àlgebra Segona part: Àlgebra Lineal Tema 7: Matrius elementals i matrius inverses. Determinants

GEOMETRIA PLANA 1. ELS ANGLES 1.1. DEFINICIÓ 1.2. CLASSIFICACIÓ

5. Subprogramas Fundamentos de Informática

strings i estructures de dades

CURSO CERO. Departamento de Matemáticas. Profesor: Raúl Martín Martín Sesiones 18 y 19 de Septiembre

Unidad 3 Generación de números aleatorios.

DERIVADES. TÈCNIQUES DE DERIVACIÓ

Nom i Cognoms: Grup: Data:

Exercicis de rectes en el pla

Clase 8 Matrices Álgebra Lineal

MÚLTIPLES I DIVISORS

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Septiembre 2015

ÍNDICE 1. Introducción a las computadores 2. Programación y diagramas de flujo 3. Solución numérica de ecuaciones

Paralelización de la factorización LDL T usando el lenguaje de programación paralela ZPL

Sector circular i Segment circular.

Problema 1 (3 puntos)

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones

Tema 2: GEOMETRIA ANALÍTICA AL PLA

avaluació diagnòstica educació secundària obligatòria

UNIVERSIDAD DE ATACAMA

Transcripción:

program el_meu_primer_programa write(,) 'Hello, cruel world!' end -------------------------------------------------------------------- program segon_programa read(,) a write(,) 'Has entrat el numero ',a end -------------------------------------------------------------------- program jaja read(,) a read(,) b read(,) c write(,) 'Has entrat els numeros ',a,b,c end -------------------------------------------------------------------- program dim dimension a(9) read(,) a(1) read(,) a(2) read(,) a(3) write(,) 'Has entrat els numeros ',a(1),a(2),a(3) end -------------------------------------------------------------------- program dim_and_do dimension a(9) Entrada de dades do i=1,3 read(,) a(i) enddo Ara les ensenya write(,) 'Has entrat els numeros :' do i=1,3 write(,) a(i) end

program modul parameter (maxdim=9) dimension v(maxdim) Entrada de dades 1 write(,) ' Entra la dimensio del vector : ' read(,) n if (n.gt.maxdim.or.n.lt.1) then write(,) ' Entra la dimensio correctament! c...' goto 1 write(,) 'Entra el component numero ',i,' : ' read(,) v(i) Calcula el modul xmodul=0.0e0 xmodul=xmodul+v(i)2 xmodul=sqrt(xmodul) Ensenya el resultat write(,) 'El modul del vector ' write(,) (v(i),i=1,n) write(,) 'val ',xmodul Entra la dimensio del vector : 3 Entra el component numero 1 : 0.5 Entra el component numero 2 : 0.5 Entra el component numero 3 : 0.5 El modul del vector 0.500000 0.500000 1.00000 val 1.22474 -------------------------------------------------------------------- program modul parameter (maxdim=9) dimension v(maxdim) Entrada de dades 1 write(,) ' Entra la dimensio del vector : ' read(,) n if (n.gt.maxdim.or.n.lt.1) then write(,) ' Entra la dimensio correctament! c...' goto 1 write(,) 'Entra el component numero ',i,' : ' read(,) v(i) Calcula el modul xmodul=0.0d0 xmodul=xmodul+v(i)2 xmodul=sqrt(xmodul) Ensenya el resultat write(,) 'El modul del vector ' write(,) (v(i),i=1,n) write(,) 'val ',xmodul Entra la dimensio del vector : 3 Entra el component numero 1 : 0.5 Entra el component numero 2 : 0.5 Entra el component numero 3 : 0.5 El modul del vector

0.500000000000000 0.500000000000000 1.00000000000000 val 1.22474487139159

program que_carai_fa parameter (maxdim=9) dimension v(maxdim) dimension w(maxdim) Entrada de dades 1 write(,) ' Entra la dimensio dels vectors V i W: ' read(,) n if (n.gt.maxdim.or.n.lt.1) then write(,) ' Entra la dimensio correctament! c...' goto 1 write(,) ' Definicio del vector V:' write(,) 'Entra el component numero ',i,' : ' read(,) v(i) write(,) ' Definicio del vector W:' write(,) 'Entra el component numero ',i,' : ' read(,) w(i) Calcula x=0.0e0 x=x+v(i)w(i) Ensenya el resultat write(,) 'El resultat es : ',x Entra la dimensio dels vectors V i W: 3 Definicio del vector V: Entra el component numero 1 : 0.5 Entra el component numero 2 : 0.5 Entra el component numero 3 : 0.5 Definicio del vector W: Entra el component numero 1 : 1.0 Entra el component numero 2 : 2.0 Entra el component numero 3 : 0.33333333333 El resultat es : 1.66666666666650

program traça parameter (maxdim=9) dimension A(maxdim,maxdim) Entrada de dades 1 write(,) ' Entra la dimensio de la matriu QUADRADA A : ' read(,) n if (n.gt.maxdim.or.n.lt.1) then write(,) ' Entra la dimensio correctament!' goto 1 do j=1,n write(,) 'Entra el component de la fila ',i write(,) ' read(,) A(i,j) Calcula la traça tra=0.0e0 tra=tra+a(i,i) Ensenya el resultat write(,) ' La traça de la matriu ' write(,) (A(i,j),j=1,n) write(,) 'val ',tra i de la columna ',j,' : ' Entra la dimensio de la matriu QUADRADA A : 3 i de la columna 1 : 1 i de la columna 2 : 2 i de la columna 3 : 3 i de la columna 1 : 4 i de la columna 2 : 5 i de la columna 3 : 6 i de la columna 1 : 7 i de la columna 2 : 8 i de la columna 3 : 9 La traça de la matriu 1.00000000000000 2.00000000000000 3.00000000000000 4.00000000000000 5.00000000000000 6.00000000000000 7.00000000000000 8.00000000000000 9.00000000000000 val 15.0000000000000

program transposicio parameter (maxdim=9) dimension A(maxdim,maxdim) dimension At(maxdim,maxdim) Entrada de dades 1 write(,) ' Entra la dimensio de la matriu QUADRADA A : ' read(,) n if (n.gt.maxdim.or.n.lt.1) then write(,) ' Entra la dimensio correctament!' goto 1 do j=1,n write(,) 'Entra el component de la fila ',i write(,) ' read(,) A(i,j) Defineix la matriu At() com la transposta d'a do j=1,n At(i,j)=A(j,i) Ensenya el resultat write(,) ' La matriu transposta de ' write(,) (A(i,j),j=1,n) write(,) 'es ' write(,) (At(i,j),j=1,n) i de la columna ',j,' : ' Entra la dimensio de la matriu QUADRADA A : 3 i de la columna 1 : 1 i de la columna 2 : 2 i de la columna 3 : 3 i de la columna 1 : 4 i de la columna 2 : 5 i de la columna 3 : 6 i de la columna 1 : 7 i de la columna 2 : 8 i de la columna 3 : 9 La matriu transposta de 1.00000000000000 2.00000000000000 3.00000000000000 4.00000000000000 5.00000000000000 6.00000000000000 7.00000000000000 8.00000000000000 9.00000000000000 es 1.00000000000000 4.00000000000000 7.00000000000000 2.00000000000000 5.00000000000000 8.00000000000000 3.00000000000000 6.00000000000000 9.00000000000000

program matrix product! Programa que calcula C=AB parameter (maxdim=50) dimension A(maxdim,maxdim),B(maxdim,maxdim),C(maxdim,maxdim) Entrada de les dimensions de les matrius 1 write(,) ' Entra la dimensio de la matriu A : ' read(,) na,ma write(,) ' Entra la dimensio de la matriu B : ' read(,) nb,mb if (ma.ne.nb) then write(,) ' Les dues matriu han de ser conformes.' write(,) ' Entra de nou les seves dimensions.' go to 1 else write(,) ' Les dimensions son correctes.' write(,) ' La dimensio de la matriu producte es:' write(,) na,mb Entra les matrius write(,) ' Entra la matriu A :' a do j=1,ma write(,) 'Entra el component de la fila ',i write(,) ' i de la columna ',j,' : ' read(,) A(i,j) write (,) write(,) ' Entra la matriu B :' b do j=1,mb write(,) 'Entra el component de la fila ',i write(,) ' read(,) B(i,j) Ara calcula el producte a do j=1,mb C(i,j)=0.0d0 do k=1,ma C(i,j)=C(i,j)+A(i,k)B(k,j) Ensenya el resultat write(,) ' El producte de la matriu : ' a write(,) (A(i,j),j=1,ma) write(,) 'per ' b write(,) (B(i,j),j=1,mb) write(,) 'es ' a write(,) (C(i,j),j=1,mb) i de la columna ',j,' : '

Entra la dimensio de la matriu A : 2 3 Entra la dimensio de la matriu B : 3 3 Les dimensions son correctes. La dimensio de la matriu producte es: 2 3 Entra la matriu A : i de la columna 1 : 1 i de la columna 2 : 2 i de la columna 3 : 3 i de la columna 1 : 4 i de la columna 2 : 5 i de la columna 3 : 6 Entra la matriu B : i de la columna 1 : 1 i de la columna 2 : 2 i de la columna 3 : 3 i de la columna 1 : 4 i de la columna 2 : 5 i de la columna 3 : 6 i de la columna 1 : 7 i de la columna 2 : 8 i de la columna 3 : 9 El producte de la matriu : 1.00000000000000 2.00000000000000 3.00000000000000 4.00000000000000 5.00000000000000 6.00000000000000 per 1.00000000000000 2.00000000000000 3.00000000000000 4.00000000000000 5.00000000000000 6.00000000000000 7.00000000000000 8.00000000000000 9.00000000000000 es 30.0000000000000 36.0000000000000 42.0000000000000 66.0000000000000 81.0000000000000 96.0000000000000

program descomposicio_de_txolesky_2x2 dimension S(2,2),T(2,2) Entrada de la matriu S write(,) 'Entra la matriu S (2x2).' write(,) 'Nomes cal donar el triangle inferior.' do i=1,2 do j=1,i write(,) 'Entra el component de la fila ',i write(,) ' read(,) S(i,j) S(j,i)=S(i,j) i de la columna ',j,' : ' Ara calcula els elements de la matriu T T(2,1)=0.0d0 t(1,1)=sqrt(s(1,1)) t(1,2)=s(1,2)/t(1,1) x=s(2,2)-t(1,2)2 if (x.lt.0.0d0) stop ' La matriu S no es definida positiva.' t(2,2)=sqrt(x) Ensenya el resultat write(,) ' La matriu simetrica S: ' do i=1,2 write(,) (S(i,j),j=1,2) write(,) ' admet la descomposicio de Txolesky.' write(,) ' La matriu triangular superior T es : ' do i=1,2 write(,) (T(i,j),j=1,2) Entra la matriu S (2x2). Nomes cal donar el triangle inferior. i de la columna 1 : 1.00 i de la columna 1 : 0.50 i de la columna 2 : 1.00 La matriu simetrica S: 1.00000000000000 0.500000000000000 0.500000000000000 1.00000000000000 admet la descomposicio de Txolesky. La matriu triangular superior T es : 1.00000000000000 0.500000000000000 0.000000000000000 0.866025403784439 ( Utilitzant el programa del producte de matrius es pot comprobar que S=T t T)

program matrix product! Programa que calcula C=AB parameter (maxdim=50) dimension A(maxdim,maxdim),B(maxdim,maxdim),C(maxdim,maxdim) Entrada de les dimensions de les matrius 1 write(,) ' Entra la dimensio de la matriu A : ' read(,) na,ma write(,) ' Entra la dimensio de la matriu B : ' read(,) nb,mb if (ma.ne.nb) then write(,) ' Les dues matriu han de ser conformes.' write(,) ' Entra de nou les seves dimensions.' go to 1 else write(,) ' Les dimensions son correctes.' write(,) ' La dimensio de la matriu producte es:' write(,) na,mb Entra les matrius write(,) ' Entra la matriu A :' a do j=1,ma write(,) 'Entra el component de la fila ',i write(,) ' i de la columna ',j,' : ' read(,) A(i,j) write (,) write(,) ' Entra la matriu B :' b do j=1,mb write(,) 'Entra el component de la fila ',i write(,) ' read(,) B(i,j) i de la columna ',j,' : ' Ara calcula el producte call producte_de_matrius(a,b,c,na,ma,mb) Ensenya el resultat write(,) ' El producte de la matriu : ' a write(,) (A(i,j),j=1,ma) write(,) 'per ' b write(,) (B(i,j),j=1,mb) write(,) 'es ' a write(,) (C(i,j),j=1,mb) ----------------------------------------------------------------------- subroutine producte_de_matrius(a,b,c,na,ma,mb) ----------------------------------------------------------------------- Subrutina que calcula el producte de matrius C=AB Les dimensions de les matrius A i B son naxma i maxmb. respectivament ----------------------------------------------------------------------- parameter (maxdim=50) dimension A(maxdim,maxdim),B(maxdim,maxdim),C(maxdim,maxdim) a do j=1,mb C(i,j)=0.0d0 do k=1,ma C(i,j)=C(i,j)+A(i,k)B(k,j)

( La sortida es identica a la del programa del producte de matrius de mes amunt )

----------------------------------------------------------------------- Resolucio per Bolzano de l'equacio exp(-x)=x en [0,1] ----------------------------------------------------------------------- solucio=bolzano(0.0d0,1.0d0) write(,'('' La solucio es : X='',g14.6)') solucio ----------------------------------------------------------------------- DOUBLE PRECISION FUNCTION bolzano(a,b) fa=valor_funcio(a) fb=valor_funcio(b) if (fafb.gt.0.0d0) STOP ' Potser no hi ha solucio en aquest inter +val' do while (.true.) c=(a+b)/2 fc=valor_funcio(c) if (abs(fc).lt.1.0d-10) then bolzano=c return else if (fafc.lt.0.0d0) then b=c fb=fc else if (fbfc.lt.0.0d0) then a=c fa=fc ----------------------------------------------------------------------- DOUBLE PRECISION FUNCTION valor_funcio(x) valor_funcio=dexp(-x)-x ----------------------------------------------------------------------- SORTIDA DEL PROGRAMA: La solucio es : X= 0.567143

----------------------------------------------------------------------- Integracio per la formula de simpson I = h/3 ( f(xo)+4f(x1)+2f(x2)+4f(x3)+2f(x4)+...+4f(xn-1)+f(xn)) ----------------------------------------------------------------------- real8 integral integral=simpson(-1.0d0,1.0d0,1000) write(,'('' La integral val : I='',g14.6)') integral ----------------------------------------------------------------------- - ----------------------------------------------------------------------- real8 function simpson(x0,xn,n) implicit double precision (a-h,o-z) if (n/22.ne.n) n=n+1! Cal nombre de punts parell h=(x0-xn)/n f=valor_funcio(x0)+valor_funcio(xn),2 xi=x0+hi f=f+4valor_funcio(x) do i=2,npunts-2,2 xi=x0+hi f=f+2valor_funcio(x) simpson=fh/3 end ----------------------------------------------------------------------- - ----------------------------------------------------------------------- DOUBLE PRECISION FUNCTION valor_funcio(x) valor_funcio=dexp(-x2/2)0.3989422 ----------------------------------------------------------------------- SORTIDA DEL PROGRAMA: La integral val : I= 0.682689

----------------------------------------------------------------------- Calcul del factorial d'un numero ----------------------------------------------------------------------- write(,) ' Entra el numero : ' read(,) n nfac_tipic=ntipic(n) nfac_recur=nrecur(n) write(,'('' El factorial iteratiu val '',i12)') nfac_tipic write(,'('' El factorial recursiu val '',i12)') nfac_recur ----------------------------------------------------------------------- - ----------------------------------------------------------------------- integer function ntipic(n) ntipic=1 if (n.eq.1.or.n.eq.0) return! Casos especials do i=2,n ntipic=ntipici ----------------------------------------------------------------------- - ----------------------------------------------------------------------- integer function nrecur(n) if (n.eq.1.or.n.eq.0) then nrecur=1 return else nrecur=nnrecur(n-1)! Aixi: n! = n (n-1)! ----------------------------------------------------------------------- SORTIDA DEL PROGRAMA: Entra el numero : 5 El factorial iteratiu val 120 El factorial recursiu val 120

DETERMINANT of a matrix. GAUSS method. N = Matrix dimension W = Matrix A = Auxiliary matrix program gauss implicit double precision (a-h,o-z) integer fil,col parameter (zero=0.0d0,one=1.0d0,maxd=99) dimension a(maxd,maxd) if (n.gt.maxd) stop 'Dimension exceeded in function DETERMINANT.' Defines matrix read(,) n do j=1,n write(,) i,j,' : ' read(,) A(i,j) is=1 ----------------------- DIAGONALIZATION ----------------------- do col=1,n if (a(col,col).eq.zero) then ind=col iv=0 do while (iv.eq.0) ind=ind+1 if (ind.gt.n) THEN determinant=zero goto 88 if (a(ind,col).ne.zero) then iv=1 do j=col,n aux=a(col,j) a(col,j)=a(ind,j) a(ind,j)=aux is=-is do fil=col+1,n if (a(fil,col).ne.zero) then z=a(fil,col)/a(col,col) do icol=col+1,n a(fil,icol)=a(fil,icol)-a(col,icol)z ------------------ Determinant ------------------ determinant=is determinant=determinanta(i,i) 88 write(,) determinant end