prog 2do parcialpascal-final

37
1) %cargar notas, calcular promedio, mostrar nota superior o contar notas superiores clc clear v=carganotas prom=calcularprom(v) mostrarnota(V) function v=carganotas( ); i=1; n=ingresarnota; % solo devuelve valores entre -1 y 10 while n~=-1 v(i)=n; i=i+1; n=ingresarnota; end function mta=ingresarnota( ); mta=input('ingrese nota : '); while mta<-1 | mta>10 mta=input('reitero nota: '); end function prom=calcularprom(v); suma=0; for i=1:length(v) suma=suma+v(i); end prom=suma/length(v); function mostrarnota(v); tam=lenght(v); for i=1:tam fprintf('%d',v(i)); end fprintf('/n'); 2) Vector de 10 elementos con numeros al azar entre 1 y 20 y hacer una funcion a) que devuelva un valor verdadero si lo encuentra(1) o falso si no lo encuentra(0) b) mostrar vestor c) ordenar de fomra ascendente d) mostrar vector ordenado clc clear v=cargavector(10); mostrar(v); v=ordenar(v);

Upload: mariojavierlobos

Post on 02-Oct-2015

29 views

Category:

Documents


0 download

DESCRIPTION

Exercise Pascal

TRANSCRIPT

  • 1) %cargar notas, calcular promedio, mostrar nota superior o contar notas superiores clc clear v=carganotas prom=calcularprom(v) mostrarnota(V) function v=carganotas( ); i=1; n=ingresarnota; % solo devuelve valores entre -1 y 10 while n~=-1 v(i)=n; i=i+1; n=ingresarnota; end function mta=ingresarnota( ); mta=input('ingrese nota : '); while mta10 mta=input('reitero nota: '); end function prom=calcularprom(v); suma=0; for i=1:length(v) suma=suma+v(i); end prom=suma/length(v); function mostrarnota(v); tam=lenght(v); for i=1:tam fprintf('%d',v(i)); end fprintf('/n'); 2) Vector de 10 elementos con numeros al azar entre 1 y 20 y hacer una funcion a) que devuelva un valor verdadero si lo encuentra(1) o falso si no lo encuentra(0) b) mostrar vestor c) ordenar de fomra ascendente d) mostrar vector ordenado clc clear v=cargavector(10); mostrar(v); v=ordenar(v);

  • mostrar(v); function v=cargavector(tam); for i=1:tam v(i)=fix(rand*20)+1; end function v=mostrar(v); tam=length(v); for i=1:tam fprintf('%d',v(i)); end fprintf('\n'); function v=ordenar(v); tam=length(v); for i=1:tam for j=i+1:tam if v(i)>v(j) aux=v(i); v(i)=v(j); v(j)=aux; end end end 3) cargar y mostrar una matriz de numeros al azar entre 1 y 20 clc clear m=cargamatriz(3,4); mostrarmatriz(m); function m=cargamatriz(f,c); for i=1:f for j=1:c m(i,j)=fix(rand*20)+1; end end function m=mostrarmatriz(m); [f,c]=size(m); for i=1:f for j=1:c fprintf('%d',m(i,j)); end

  • fprintf('\n'); end 4) Desarrollar un programa que permita mostrar una tabla de posiciones final de una carrera de bicicletas. - Los corredores estn identificados por un nmero entero y consecutivo. - La cantidad de corredores debe ser ingresada por teclado. - El tiempo de cada corredor se registra con un formato de horas, minutos y segundos. - Las horas estn comprendidas entre 0 y 3, los minutos entre 0 y 59, y los segundos entre 0 y 59. Estos valores sern ingresados al azar para las pruebas. - El programa deber emitir por pantalla la tabla de posiciones, en un formato equilibrado que pueda ser ledo con facilidad. Mostrar nmero de corredor, horas, minutos y segundos empleados. - Todo el desarrollo debe realizarse usando funciones propias. clc clear all e=input('Ingrese la cantidad de corredores: '); M=result(e); N=tabla(M); N=ordenoT(N); for i=1:N fprintf('Posicion %d: %d --> ',i,N(i,1)); fprintf('Con un tiempo de %d hs %d min %d seg \n',N(i,2),N(i,3),N(i,4)) end function N=ordenoT(N) [f c]=size(N); for i=1:f for j=1:c-1 if N(j,2)>N(j+1,2) for s=1:f aux=N(j,s); N(j,s)=N(j+1,s); N(j+1,s)=aux;

  • end end if N(j,2)==N(j+1,2) & N(j,3)> N(j+1,3) for s=1:f aux=N(j,s); N(j,s)=N(j+1,s); N(j+1,s)=aux; end end if N(j,2)==N(j+1,2) & N(j,3)==N(j+1,3) & N(j,4)> N(j+1,4) for s=1:f aux=N(j,s); N(j,s)=N(j+1,s); N(j+1,s)=aux; end end end end end function N=tabla(M) [f c]=size(M); for i=1:f for j=1:4

  • N(i,j)=M(i,j); end end function G=mostrarT(N) [f c]=size(N) for i=1:f for j=1:c fprintf('%d',N(i,j)); end end function M=result(e) for i=1:e for j=1:3 M(i,j)=0; end end for i=1:e M(i,1)=M(i,1)+i; end for i=1:e for j=1:3 M(i,2)=fix(rand()*4); end

  • end for i=1:e for j=1:3 M(i,3)=fix(rand()*60); end end for i=1:e for j=1:3 M(i,4)=fix(rand()*60); end end

    5) Campeonato de futbol. Campeonato N equipos que juegan todos contra todos

    Cargar una tabla de NxN con los goles realizados de todos los equipos en todas las

    fechas.

    Realizar la tabla de posiciones, ordenada por puntaje decreciente, en caso de empate

    por mayor cantidad de goles a favor, y de seguir empatados por menor cantidad de

    goles en contra.

    Cargar

    Caso A: la matriz al azar con valores entre cero y diez.

    Caso B: Ingresar por teclado

    opc=input('Para que la matriz se genere al azar oprima 0, caso contrario el 1');

    if opc==0

    M=azar;

    else opc==1

    equipos=input('Ingrese la cantidad de equipos:');

    M=porteclado(equipos);

    end

    M=diagonalcero(M);

    N=tablacero(M);

    N=puntos(M,N);

    N=golesafavor(M,N);

  • N=golesencontra(M,N);

    N=intercambiarfilas(N);

    N=difgoles(N);

    disp('_____________________________________________________________');

    printf(' Tabla de Goles \n')

    disp('_____________________________________________________________');

    disp(M);

    disp('_____________________________________________________________');

    printf(' Equipo Puntos GF GC DG\n');

    disp('_____________________________________________________________');

    disp(N);

    disp('-------------------------------------------------------------');

    printf('El equipo campeon es el equipo numero %d con %d puntos\n',N(1,1),N(1,2));

    disp('-------------------------------------------------------------');

    %funcion AZAR ejercicio 4

    function M=azar

    clear all;

    az=fix(rand()*11);

    while az

  • %funcion DIFGOLES ejercicio 4

    function N=difgoles(N)

    [f c]=size(N);

    for fila=1:f

    N(fila,5)=N(fila,3)-N(fila,4);

    end

    %funcion GOLES A FAVOR ejercicio 4

    function N=golesafavor(M,N)

    [f c]=size(M);

    for fila=1:f

    N(fila,3)=0;

    for columna=1:c

    if fila~=columna

    N(fila,3)=N(fila,3)+M(fila,columna);

    end

    end

    end

    %funcion GOLES EN CONTRA ejercicio 4

    function N=golesencontra(M,N)

    [f c]=size(M);

    for fila=1:c

    N(fila,4)=0;

    for columna=1:f

    if fila~=columna

    aux=M(columna,fila);

    N(fila,4)=N(fila,4)+aux;

    end

    end

    end

    %funcion PORTECLADO ejercicio 4

    function M=porteclado(x)

    for i=1:x

    for j=1:x

    if i~=j

    M(i,j)=valido(i,j);

    end

  • end

    end

    %funcion PUNTOS ejercicio 4

    function N=puntos(M,N)

    [f c]=size(M);

    for i=1:f

    N(i,3)=0;

    for j=1:c

    if i~=j

    if M(i,j)>M(j,i)

    printf(' %d Gano a %d : %d a %d\n',i,j,M(i,j), M(j,i));

    N(i,2)=N(i,2)+3;

    end

    if M(i,j)==M(j,i)

    printf(' %d y %d Empataron : %d a %d\n',i,j,M(i,j), M(j,i));

    N(i,2)=N(i,2)+1;

    end

    end

    end

    end

    %funcion TABLA CERO ejercicio 4

    function N=tablacero(M)

    [f c]=size(M);

    a=1;

    for i=1:f

    for j=1:5

    N(i,j)=0;

    end

    end

    for k=1:f

    N(k,1)=a;

    a=a+1;

    end

    %funcion VALIDO ejercicio 4

    function M=valido(i,j)

    printf('Ingrese cantidad de goles que le hizo el equipo %d al %d ',i,j);

  • GOL=input('=');

    while GOL10

    disp('Valor incorrecto');

    GOL=input ('Ingrese otro valor del 0 al 10 :');

    end

    M=GOL;

    %funcion INTERCAMBIAR FILAS ejercicio 4

    function N=intercambiarfilas(N)

    [f c]=size(N);

    for i=1:f

    for j=1:f-i

    if N(j,2)

  • 6) Un jugador de tiro al blanco almacena los resultados de cada tiro en un vector de 20

    elementos, cada par de posiciones en el vector representan las coordenadas x e y de un

    tiro.Se pide desarrollar un programa, cumpla con los siguientes objetivos utilizando

    funciones para cada operacin:

    1. Cargar un vector de enteros de 20 elementos, al azar, con valores reales entre -99 y 99. Los valores en posiciones impares corresponden a la coordenada x, los pares a y. El centro del blanco coincide con el centro de coordenadas.

    2. Mostrar por pantalla en que tiro se logr la mejor aproximacin al centro, si hay ms de uno mostrarlos todos.

    3. Mostrar adems los nmeros de tiro ordenados por distancia al centro decreciente, en caso de coincidencia ordenarlos por nmero de tiro.

    4. Mostrar nmeros de tiro de los cinco mejores y los tres peores. 5. Indicar por pantalla la distancia promedio. 6. Mostrar por pantalla la distancia ms lejana del centro. distancia = sqrt((x*x)+(y*y))

    clc clear all v=cargavector1(20); muestravector(v); mostrarMenorDist(v); v=ordena1(v); muestravector(v); function v=cargavector1(); for i=1:20 v(i)=fix(rand*(99-(-99+1)))+(-99); end function muestravector(v); fprintf('Nro de tiro coord x coord y distancia\n'); for i=1:2:20 fprintf('tiro %d, %d, %d, %d\n',(i+1)/2,v(i),v(i+1),distancia(v(i),v(i+1))); end function d=distancia(x,y); d=((x*x)+(y*y))^0.5;

  • function v=ordena1(v); for i=1:9 for j=i+1:10 inx=(i*2)-1; iny=(i*2); jnx=(j*2)-1; jny=(j*2); if distancia(v(inx),v(iny))distancia(v(i),v(i+1)) mdis=distancia(v(i),v(i+1)); end end fprintf('La menor distancia es %6.2f\n',mdis) disp('en los tiros') for i=1:2:20 if mdis==distancia(v(i),v(i+1)) fprintf('Tiro %2d\n',(i+1)/2) end end 7) Almacenar Una matriz con locaciones y Temp.-6 locaciones y 30 temp por locacion mostrar la temp mas alta con dia y locacion mostrar tabla de temp media mensual ordenada temperatura decreciente Mt=generaMatriz; mostrarMatriz5(Mt); [loc dia]=mayorTemperatura(Mt); mostrarMayorTemperatura(Mt,loc,dia); Tt=generaTabla(Mt);

  • Tt=ordenaTabla2(Tt) function Mt=generaMatriz() for i=1:6 Mt(i,1)=i; for j=2:31 Mt(i,j)=5+rand(1)*126; end end function mostrarMatriz5(Mt) for i=1:6 fprintf('%2d ',Mt(i,1)); for j=2:31 fprintf('%6.2f ',Mt(i,j)); end fprintf('\n'); end function [loc , dia]=mayorTemperatura(Mt) loc=1; dia=2; for i=1:6 for j=2:31 if Mt(loc,dia) < Mt(i,j) loc=i; dia=j; end end end function mostrarMayorTemperatura(Mt,loc,dia) fprintf('La temperatura maxima se produjo\n'); fprintf('El dia %d en la locacion %d\n',dia,loc); fprintf('y fue de %6.2f\n',Mt(loc,dia)); function Tt=generaTabla(Mt) for i=1:6 Tt(i,1)=i; Tt(i,2)=0;

  • for j=2:31 Tt(i,2)=Tt(i,2)+Mt(i,j); end Tt(i,2)=Tt(i,2)/30; End function Tt=ordenaTabla2(Tt) for i=1:5 for j=i+1:6 if Tt(i,2)
  • vector = cargarVector(20); %muestro el vector mostrarVector(vector); posMenor = mayorVelocidad(vector); fprintf("\n\nLa vueltas mas rapida fue la %d con un tiempo de %d cs", posMenor,

    vector(posMenor)); vPromedio = velocidadPromedio(vector); fprintf("\n\nLa velocidad promedio de la carrera fue de %d km/h", vPromedio); velocidadPromedioVuelta(vector); vecOrdenado = ordenar(vector); velocidadPromedioVuelta(vecOrdenado); function vt = cargarVector(n) for i = 1:n max = 60000; min = 12000; vt(i) = fix(rand * (max - min)) + min; end end function res = mayorVelocidad(v) min=v(1); #decimos que esta en la pos 1 pos=1; #recorramos el vector for i = 1: length(v) #si el min es mayor que el que sigue if (min > v(i)) #cambiamos min = v(i); #y cambiamos la pos del minimo pos = i;

  • elseif min == v(i) pos = i; endif endfor res = pos; endfunction function mostrarVector(vec) tam = length(vec); disp("\n"); for i = 1 : tam fprintf("%d\t", vec(i)); end end function vt = ordenar(vt) tam = length(vt); for i = 1 : tam for j = i + 1 : tam if vt(i) < vt(j) aux = vt(i); vt(i) = vt(j); vt(j) = aux; end end end end function res = posicionMenor(v) min=v(1); #decimos que esta en la pos 1 pos=1; #recorramos el vector for i = 1: length(v) #si el min es mayor que el que sigue if (min > v(i)) #cambiamos min = v(i); #y cambiamos la pos del minimo pos = i; elseif min == v(i)

  • pos = i; endif endfor res = pos; endfunction function res = velocidadPromedio(tiempo) tam = length(tiempo); vt = []; for i = 1 : tam vt(i) = (6225/1000) / ( tiempo(i)/360000); %km/h end suma = 0; tam2 = length(vt); for i = 1 : tam2 suma = suma + vt(i); end res = suma / tam; end function velocidadPromedioVuelta(vector) tam = length(vector); for i = 1 : tam velo = (6225/1000) / ( vector(i)/360000); %km/h fprintf("\n La velocidad en la vuelta %d fue de %d km/h", i, velo); end end

    9) Una empresa distribuidora de materiales para la construccin mantiene la informacin de sus existencias en una matriz de tres columnas. Primera columna: numero de articulo (entero consecutivo comenzando en 1) Segunda columna: cantidad de existencia (unidades enteras entre 0 y 1000) Tercera columna: precio unitario (valor real entre $5.00 y $299.99)

    a) Mostrar por pantalla el articulo de mayor valor unitario b) Mostrar todos los articulos sin existencia c) Sabiendo que el producto entre existencia y valor unitario se denomina stock valorizado,

    mostrar la matriz ordenada por stock Valorizado creciente. Se requiere generar la matriz con al menos 15 artculos con valores al azar. Todos los datos deben ser mostrados por pantalla correctamente formateados. No podr utilizar disp para visualizar. Debe realizar al menos 3 funciones para la resolucin.

  • clear all clc m=matrizproductos(); mayor=mayorvalorunit(m); fprintf ('El de mayor Valor Unitario es %.2f \n',mayor) fprintf ('\n') fprintf ('Articulos sin existencia: \n') sinexistencia(m) fprintf ('\n') muestraproductos (m) fprintf ('\n') m=ordenamatriz(m); fprintf ('\n') muestraproductos (m) function ma=matrizproductos() for i=1:15 ma(i,1)=i; ma(i,2)=fix((rand*1000)); ma(i,3)= ((rand*294)+5); end function may= mayorvalorunit(m) p=m(1,3); may=m(1,3); for i=2:15; if m(i,3)>p p=m(i,3); may=m(i,3); end end function sinexistencia(m) for i=1:15 if m(i,2)==0 fprintf('Art. %2d %5.f %7.2f \n',m(i,1),m(i,2),m(i,3)) end end function muestraproductos(m) fprintf('Nro Art. C/Exist P/u Stock Val\n') for i=1:15 fprintf('Art. %2d %5.f %7.2f %9.2f\n',m(i,1),m(i,2),m(i,3),stockval(m,i)) end function m=ordenamatriz(m)

  • [fila,col]=size(m); ordenado=0; while ~ordenado ordenado=1; for i=1:fila-1 if stockval(m,i) < stockval (m,i+1) m=intercambio(m,i,i+1); ordenado=0; end end fila=fila-1; end function m=intercambio(m,fi,fj) [filas,cols]=size(m); for c=1:cols aux=m(fi,c); m(fi,c)=m(fj,c); m(fj,c)=aux; end function s=stockval(m,i) s=m(i,2)*m(i,3); 10) Cargar una matriz de m x n elementos, con nmeros al azar entre -3 y 20.. m y n deben ser ingresados por teclado con m>6 y n>=3 - Informar el nmero de columna de mayor promedio, ste valor se obtiene por medio de una funcin. Informar el primer valor encontrado. -Mostrar todas las filas que tengan la mayor simetra (funcin) - Ordenar las filas de la matriz segn el valor de la segunda columna creciente- En caso de igualdad ordenar por la primera columna decreciente. clc clear all M=cargaMatriz(); disp('Matriz original') mostrarMatriz(M); col=colMayorProm(M); fprintf('La columan con mayor promedio es %d\n',col); disp('Filas con mayor sumatria') filasMayorSumatoria(M); M=ordena(M); disp('Matriz ordenada') mostrarMatriz(M)

  • function M=cargaMatriz() for fil=1:m for col=1:n M(fil,col)=-3+fix(rand(1)*24); end end function mostrarMatriz(M) [f c]=size(M); for fil=1:f for col=1:c fprintf('%4d',M(fil,col)) end fprintf('\n') end function colM=colMayorProm(M) [f c]=size(M); colM=1; for col=2:c a=promCol(M,colM); b=promCol(M,col); if a>b colM=col; end end function filasMayorSumatoria(M) [f c]=size(M); for fil=1:f v(fil)=sumaFila(M,fil); end may=1; for i=2 : f if v(may)
  • 11) Cargar 50 notas aleatorias entre 0 y 10 en forma de vector. Determinar el promedio. Determinar el promedio de las notas mayores o iguales a 7 (promedio mayor). Mostrar las notas mayores al promedio mayor. Determinar cul es la nota mayor y en que posicin se encuentra. Determinar cual es la nota mas baja y en que posicin se encuentra. clc clear all nota=cargaVector(50); mostrarVector(nota) prom=calculaPromedio(nota); fprintf('El promedio es : %.2f\n',prom) prom7=calcularPromedioMay(nota,7); fprintf('El promedio a los mayores o iguales a 7 es : %.2f\n',prom7) mostrarMay7(nota,prom7) [nAlta pos]=masAlta(nota); fprintf('La nota mas alta es %d y se encuentra en la pos %d\n',nAlta,pos) [nBaja posB]=masBaja(nota); fprintf('La nota mas baja fue %d \n',nBaja) disp('Las Posiciones') for i=1:length(posB) fprintf('%4d',posB(i)) end fprintf('\n') function v = cargaVector(cant) for i=1:cant v(i)=fix(rand(1)*11); end function mostrarVector(nota) disp('NOTAS') for i=1:length(nota) fprintf('%4d',nota(i)) end fprintf('\n') function prom = calculaPromedio(nota) suma=0; for i=1:length(nota) suma=suma+nota(i); end prom=suma/length(nota);

  • function prom=calcularPromedioMay(nota,val) suma=0; cta=0; for i=1:length(nota) if nota(i)>= val suma=suma+nota(i); cta=cta+1; end end prom=suma/cta; function mostrarMay7(nota,prom7) disp('NOTAS mayores al prom mayor') for i=1:length(nota) if nota(i) > prom7 fprintf('%4d',nota(i)) end end fprintf('\n') function mostrarMay7(nota,prom7) disp('NOTAS mayores al prom mayor') for i=1:length(nota) if nota(i) > prom7 fprintf('%4d',nota(i)) end end fprintf('\n') function [nBaja, posB]=masBaja(nota) nBaja=11; for i=1:length(nota) if nBaja>nota(i) nBaja=nota(i); end end k=1; for i=1:length(nota) if nBaja==nota(i) posB(k)=i; k=k+1; end end 12) Una fabrica automotriz tiene 5 lineas de produccin, en cada una fabrican diariamente hasta 25 vehculos. Para administrar la produccin y generar informes para la gerencia de la empresa, se registra la produccin diaria de cada linea para un mes de trabajo (30 das)Los informes producidos son:

    Las lineas que durante la mayor cantidad de das no tuvieron produccin.

  • Panilla de produccin, ordenada por mayor produccin mensual descendente (debe contener linea de produccin)

    La carga de la panilla de producciones debe realizarse mediante una funcin y los datos deben ser generados al azar.Todos los clculos deben ser implementados en funciones. Los resultados pueden no mostrase en funciones siempre que no se trate de tablas o matrices.

    clear all clc tab=tabla() sinProduccion(tab) ordenDescendente(tab) function tab=tabla() for f=1:5 tab(f,1)=f; for c=2:31 tab(f,c)=produccion(); end end function sinProduccion(tab) for f=1:5 for c=2:31 if tab(f,c)==0 fprintf("La linea %d no tuvo produccion el dia %d\n", f, c-1); end end end function tab=ordenDescendente(tab) for f=1:5 suma=0; for c=2:31 suma=suma+tab(f,c); end tab(f,32)=suma; end [fil col]=size(tab); for i=1:fil-1 max=i; for j=1+i:fil if tab(max,32)

  • end end aux=tab(i,:); tab(i,:)=tab(max,:); tab(max,:)=aux; end function prod=produccion() prod=0+fix(rand()*26); 13) Crear un programa Matlab que permita mostrar por pantalla informacin sobre consumos de un conjunto de lineas telefnicas.

    Para cada linea telefnica se ingresa el nmero de linea y la cantidad de minutos consumidos.

    Los consumos se facturan segn la siguiente tabla:

    hasta 100 min. $1.30 el minuto

    hasta 500 min. $1.03

    hasta 1000 min $0.80

    mas de 1000 min. $0.60

    Informar:

    Linea, minutos consumidos e importe de factura en orden decreciente de importe. En caso de igualdad por orden decreciente de minutos consumidos

    Importes Total de la facturacin

    Promedio de de minutos consumidos y promedio de importes facturados Deber realizar al menos

    Una funcin que permita ingresar solo valores positivos o cero.

    Una funcin que calcule importes de factura

    Una funcin que calcule el promedio El ingreso de datos concluye con un nmero de linea 0(cero)

    clear all

    clc

    linea=numeroLinea();

    tab=tabla(linea);

    tab=ordenaTabla(tab);

    imprimirTabla(tab, linea)

  • promedio(tab, linea)

    function linea=numeroLinea()

    linea=1;

    i=1;

    while linea!=0

    linea(i)=input("Ingrese numero de linea: ");

    i=i+1;

    end

    function tab=tabla(linea)

    for f=1:length(linea)-1

    tab(f,1)=linea(f);

    for c=2:3

    min=minutos();

    tab(f,2)=min;

    tab(f,3)=costos(min);

    end

    end

    function tab=ordenaTabla(tab)

    [fil col]=size(tab);

    for i=1:fil-1

    max=i;

    for j=1+i:fil

    if tab(max,3)

  • aux= tab(i,:);

    tab(i,:)=tab(max,:);

    tab(max,:)=aux;

    end

    function imprimirTabla(tab, linea)

    for f=1:length(linea)-1

    fprintf("%d\t", tab(f,1))

    for c=2

    fprintf("%.6d min\t", tab(f,2));

    end

    for c=3

    fprintf("$%.2f\t", tab(f,3));

    end

    fprintf("\n")

    end

    function promedio(tab, linea)

    minu=0;

    suma=0;

    for f=1:length(linea)-1

    for c=2

    minu=minu+tab(f,2);

    end

    for c=3

    suma=suma+tab(f,3);

    end

    end

    fprintf("El total de facturacion es $%.2f\n", suma)

  • fprintf("El promedio de facturacion es $%.2f\n",suma/(length(linea)-1))

    fprintf("El promedio de minutos es %.2f\n", minu/(length(linea)-1))

    function cost=costos(min)

    if min101 & min501 & min1001

    cost=min*0.6;

    end

    end

    end

    end

    function min=minutos()

    min=0+fix(rand()*2001);

    14) Un grupo de investigadores vulcanlogos estn registrando los parmetros trmicos de un volcn prximo a erupcionar. Con ese objetivo obtienen y registran datos de seis locaciones que circundan el volcn.

    Para cada locacin se almacena la temperatura media diaria durante un perodo de 30 das.

    Se pide :

    7. Desarrollar un programa en Matlab que permita determinar que locacin tuvo la

  • temperatura mas alta y en que da se produjo. 8. Mostrar una tabla conteniendo las locaciones y sus temperaturas medias

    ordenada por temperatura media decreciente. A fin de generar los datos necesarios para verificar el funcionamiento del cdigo realizado deber cargar la matriz de temperatura con valores entre 5 y 130 C, con valores al azar.

    Todos los clculos deben ser implementados en funciones

    Los resultados pueden no mostrase en funciones siempre que no se trate de tablas o matrices.

    clear all

    clc

    mat=matrizDatos()

    buscaMayor(mat)

    ordenaMatriz(mat)

    function mat=matrizDatos()

    for f=1:6

    mat(f,1)=f;

    for c=2:31

    mat(f,c)= temperaturaMedia();

    end

    end

    function buscaMayor(mat)

    l=1;

    m=1;

    aux=0;

    for f=1:6

    for c=2:31

    if mat(f,c)>aux

    aux=mat(f,c);

  • l=f;

    m=c-1;

    end

    end

    end

    fprintf("La temperatura mas alta fue de %d grados, se dio el dia %d en la locacion %d", aux,m,l)

    function mat=ordenaMatriz(mat)

    [fil col]=size(mat);

    for f=1:fil

    for i=2:col-1

    for j=1+i:col

    if mat(f,i)

  • Nmero de motor

    Velocidades mnima, mxima y promedio. Considerando el promedio de las velocidades extremas Deber ordenar la tabla por velocidad promedio creciente, en caso de igualdad, por mxima creciente, y si an se mantiene, por mnima decreciente.

    Informar cuales fueron los motores con la mxima velocidad Promedio

    Informar promedio general y cuantos motores lo superaron

    Deber realizar al menos

    Una funcin que permita ingresar solo valores enteros positivos o cero.

    Una funcin que genere la tabla de resultados

    Una funcin que calcule el promedio El ingreso de datos es manual y concluye con un nmero de motor 0(cero)

    clear all clc motor=numeroMotorv(); tab=tabla(motor); tab=ordenaTabla(tab); imprimirTabla(tab) promedioVM(tab) promGeneral(tab) function motor=numeroMotor() motor=1; j=1; while motor!=0 motor(j)= input("Ingrese el numero de motor: "); j=j+1; end function tab=tabla(motor) for f=1:length(motor)-1 suma=0; tab(f,1)=motor(f); for c=2 tab(f,2)=velocidadMinima(); suma=suma+tab(f,2); end for c=3 tab(f,3)=velocidadMaxima(); suma=suma+tab(f,3); end for c=4 tab(f,4)=suma/2; end end

  • function imprimirTabla(tab) [fil col]=size(tab); for f=1:fil fprintf("%d\t", tab(f,1)) for c=2 fprintf("%.2f\t",tab(f,2)) end for c=3 fprintf("%.2f\t",tab(f,3)) end for c=4 fprintf("%.2f\t",tab(f,4)) end fprintf("\n") end function vM=velocidadMaxima() vM=8.5+fix(rand()*14); function vm=velocidadMinima() vm=0.4+fix(rand()*1.7); function promedioVM(tab) [fil col]= size(tab); suma=0; for f=1:fil for c=3 suma=suma+tab(f,3); end end prom=suma/fil; fprintf("El promedio de vel maxima es: %.2f\n",prom) suma2=0; for f=1:fil for c=3 if tab(f,3)>prom suma2=suma2+1; end end end fprintf("%d motores superaron la vel max promedio\n", suma2) function promGeneral(tab) [fil col]=size(tab); suma=0; for f=1:fil for c=4 suma=suma+tab(f,4); end end

  • prom=suma/fil; fprintf("El promedio general es %.2f\n",prom) suma2=0; for f=1:fil for c=4 if tab(f,4)>prom suma2=suma2+1; end end end fprintf("%d motores superaron el promedio general\n",suma2) function tab=ordenaTabla(tab) [fil col]=size(tab); for i=1:fil-1 max=i; for j=1+i:fil if tab(max,4)>tab(j,4) max=j; end end aux=tab(i,:); tab(i,:)=tab(max,:); tab(max,:)=aux; end 16) Una industria textil produce 3 tipos de telas (numeradas del 1 al 3). Con el objeto de generar informacin para la toma de decisiones operativas y con fines impositivos se registran las ventas semanales de un ao. Los datos registrados son tipo de producto y monto de venta. Los productos de tipo 1 generan un beneficio neto (sin descontar impuestos) del 15% de la venta, los de tipo 2 un 23,5% y los del tipo 3 un 31,2%. Realizar un programa q permita:

    a) Mostrar nmero total de ventas. b) Mostrar monto total de ganancias. c) Tabla de tipo de producto y monto vendido ordenado por monto decreciente d) Siendo el impuesto el 30% de la ganancia, informar el monto del impuesto.

    Se solicita una prueba del buen funcionamiento del programa por lo que deber cargar los datos de al menos 100 ventas de forma aleatoria con un monto minimo de $ 100 y un mximo menor a $25000 clear all clc tab=tabla(); totalVentas(tab) tab=ganancias(tab); tab=ordenaTabla(tab); imprimeTabla(tab)

  • function ventas=ventas() ventas=fix(rand*(25000-(100+1))+100); function tab=tabla() for f=1:3 suma=0; tab(f,1)=f; for c=2:101 tab(f,c)=ventas(); suma=suma+tab(f,c); end tab(f,102)=suma; end function totalVentas(tab) [fil col]=size(tab); suma=0; for f=1:3 for c=102 suma=suma+tab(f,c); end end fprintf("Las ventas totales fueron $%.2f\n",suma) function tab=ganancias(tab) [fil col]=size(tab); for f=1:fil for c=2:101 tab(f,c); end for c=102:103 tab(1,103)=0.15*tab(1,102); end for c=102:103 tab(2,103)=0.235*tab(2,102); end for c=102:103 tab(3,103)=0.312*tab(3,102); end end suma=tab(1,103)+tab(2,103)+tab(3,103); fprintf("Las ganacias totales fueron $%.2f\n", suma) fprintf("El impuesto sera del $%.2f\n",suma*0.3) function tab=ordenaTabla(tab) [fil col]=size(tab); for i=1:fil-1 max=i; for j=1+i:fil

  • if tab(max,102)
  • xlabel("Eje x") ylabel("Eje y") legend('coseno', 'seno') 19) Una planta de elaboracin de aditivos para combustibles produce 3 tipos de productos enumerados del 1 al 3. Cada uno de ellos contiene un componente de alto precio que incide significativamente en los costos de fabricacin. El de tipo 1 contiene 20 gr del insumo costoso por kg de producto. El de tipo 2 contiene 7 gr/kg y el de tipo 3 100gr/Kg. Con el objeto de generar informacin para la toma de decisiones operativas, se registra la produccin horaria de cada tipo en kg. Durante un dia(24 hs) a) mostrar kg totales producidos. B) Mostrar kg totales producidos discriminados por tipo y ordenados en forma decreciente. c) mostrar cantidad del insumo costoso utilizado en la produccin de cada tipo de producto. Se solicita una prueba del buen funcionamiento del programa por lo que deber cargar datos en forma aleatoria con un minimo producido de 1.00 kg y un mximo menor a 15.00. clear all clc tab=tabla(); totalVentas(tab) tab=ordenaTabla(tab); imprimeTabla(tab); tab=ganancias(tab); function ventas=ventas() ventas=fix(rand*(15-(1+1))+1); function tab=tabla() for f=1:3 suma=0; tab(f,1)=f; for c=2:25 tab(f,c)=ventas(); suma=suma+tab(f,c); end tab(f,26)=suma; end function totalVentas(tab) [fil col]=size(tab); suma=0; for f=1:3 for c=26 suma=suma+tab(f,c); end end fprintf("Los Kilos totales producidos en 24 horas fueron %.2f\n",suma) function tab=ordenaTabla(tab)

  • [fil col]=size(tab); for i=1:fil-1 max=i; for j=1+i:fil if tab(max,26)
  • x=linspace(0,2); y1=x.^5-4 plot(x,y1) title("Funcion polinomica") xlabel("Eje x") ylabel("Eje y") function c=raiz(a,b,5) for i=1:5 c=(a+b)/2; if y1(a)*y1(c)>0 a=c; else b=c; end end