C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos...
-
Upload
alejo-casados -
Category
Documents
-
view
5 -
download
0
Transcript of C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos...
![Page 1: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/1.jpg)
Clase 10
COMPUTACION2009
![Page 2: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/2.jpg)
04/10/23Computacion - Fac.
Ingeniería 2
Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables de tipos definidos por el usuario: string, enumerados, subrangos y estructurados.
Ejemplo: leer una matriz de NxN elementos enteros. Construir un vector con los elementos de la matriz que se encuentran debajo de la diagonal principal
Primero se ingresará la matriz, luego se construirá el vector para finalizar con la impresión del vector.
Estructuras de datos como parámetros
![Page 3: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/3.jpg)
Program ejemplo;type mat=array[1..10,1..10] of integer; vec=array[1..10] of integer;var a:mat; b:vec; m,t:byte;Procedure leer(var matriz:mat; var fi:byte);var i,j:integer; Begin writeln('Ingrese la cantidad de filas y de columnas'); readln(fi); for i:=1 to fi do for j:=1 to fi do begin writeln('Ingrese el elemento ',i,' ',j); readln(matriz[i,j]); end; End;
En general, cuando se trabaja con estructuras de datos, conviene el pasaje de parámetros por variable a fin de no hacer copias de la estructura.
![Page 4: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/4.jpg)
Procedure constru(var m1:mat;fi:byte;var be:vec;var con: byte); var i,j:integer; begin con:=0; for i:=2 to fi do for j:=1 to i-1 do begin con:=con+1; be[con]:=m1[i,j]; end; end;
Este procedimiento necesita el ingreso
de una matriz y la cantidad de sus filas;
devuelve un vector y su longitud
![Page 5: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/5.jpg)
Procedure muestra(var be:vec;con:byte); var i:integer; begin for i:=1 to con do writeln (be[i]); end;
Begin {PP} leer(a,m);{los dos parametros son pasados por variable, el prog. princ. ‘conoce’ los dos datos} constru(a,m,b,t);{p.p. envia al proc. una matriz y la cantidad de filas; recupera un vector y su longitud} muestra(b,t); End.
Procedimiento que imprime
un vector
Sección ejecutable: contiene llamados a procedimientos (además puede contener otras sentencias )
![Page 6: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/6.jpg)
04/10/23Computacion - Fac.
Ingeniería 6
Anidamiento de procedimientosEl bloque del programa es el menor nivel del programa: es la base sobre la que se pueden construir mas niveles. Es el nivel 1.
Cuando se agregan procedimientos (y funciones) al programa creamos un nivel 2. En este caso los procedimientos están anidados en el programa.
El anidamiento de procedimientos dentro de otros procedimientos permite añadir mas niveles al programa
El anidamiento de procedimientos crea “privacidad” entre los procedimientos
![Page 7: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/7.jpg)
04/10/23Computacion - Fac.
Ingeniería 7
Anidamiento de procedimientos
Un procedimiento que está anidado dentro de otro es privado de ese procedimiento.
El mantenimiento de procedimientos privados puede disminuir los errores de programación al limitar el uso de procedimientos a secciones específicas del programa
![Page 8: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/8.jpg)
Program Ejemplo: procedure Externo1: begin end; procedure Externo2; procedure Interno1; begin end; begin end; procedure Externo3; procedure Interno2; begin end; begin end; beginend.
NIV
EL
1
NIV
EL
2
NIV
EL
2
NIV
EL
2
NIV
EL
3
NIV
EL
3
![Page 9: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/9.jpg)
04/10/23Computacion - Fac.
Ingeniería 9
Program anidamiento;Var A,b,c:integer; {variables globales}Procedure Primer(VAR pe,ju:integer); Var D:integer; e:real;{var. Locales a primer y globales a Segundo} Procedure Segundo(Pi:integer;VAR jo:real); Var F:real; Begin{seccion ejecutable de segundo} F:=Pi+0.28; Jo:= F/23.7+345.6 End; Begin {sección ejecutable de procedimiento Primer} Readln(D); Segundo(D+2,e); Writeln(e); End;
![Page 10: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/10.jpg)
04/10/23Computacion - Fac.
Ingeniería 10
Procedure ter(VAR lu:integer); Var H:real;k:integer; Procedure cuarto(ne:integer); Var I:real; Begin {sección ejecutable de cuarto} I:=sqrt(ne)*(ne-2.34); Writeln(i) End; Begin {sección ejecutable de ter} Readln(h,k); If h<lu then
cuarto(k) elsecuarto(2*k);
End;Begin {seccion ejecutable del p.p.}Primer(a,b);Readln(c);Ter( c)End.
![Page 11: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/11.jpg)
04/10/23Computacion - Fac.
Ingeniería 11
Precedencia de procedimientos
No se puede llamar a los procedimientos antes de haberlos declarado.
La regla de precedencia se basa en el principio de que una idea compleja se construye mejor en base a ideas simples. I.e., un programa se construye a partir de pequeños y sencillos procedimientos que se combinan para formar procedimientos que se hacen cada vez mas complejos.
La única excepción se produce cuando se utilizan declaraciones forward.
![Page 12: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/12.jpg)
04/10/23Computacion - Fac.
Ingeniería 12
Procedimientos forwardUna declaración forward informa al compilador de la existencia de un procedimiento antes de especificar de que procedimiento se trata.
Esta declaración consiste de una cabecera normal de procedimiento seguida de la palabra forward y un punto y coma.
El cuerpo del procedimiento se declara después, donde sólo se incluye el nombre del procedimiento, no la cabecera completa.
![Page 13: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/13.jpg)
Ejemplo:
program xx;
procedure Adelante(a:real);forward;
procedure nuevo(t:integer,var x:real);
begin
Adelante(x);
.........
End;
procedure Adelante;
var ....
Begin
.........
End;
..................;
![Page 14: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/14.jpg)
04/10/23Computacion - Fac.
Ingeniería 14
FUNCIONES
Las funciones son subprogramas (en el mismo sentido que los procedimientos) que calculan un único valor, para su uso en la evaluación de una expresión
![Page 15: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/15.jpg)
PROGRAM identificador USES identificadorCONST
Definición de constantesTYPE
Declaración de tiposVAR
Declaración de variables
PROCEDURE identificador Definición de procedimientos
FUNCTION IdentificadorDefinición de funciones
BEGIN
Sentencias ejecutableEND.
![Page 16: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/16.jpg)
04/10/23Computacion - Fac.
Ingeniería 16
FUNCIONES: declaraciónFUNCIONES: declaración
La declaración de la función (no recursiva) tiene la misma forma que un procedimiento, a excepción del encabezamiento, que tiene la forma:
FUNCTION nombre_función(par1,par2,.....): tipo_de_dato;
Se debe declarar el tipo de la función
![Page 17: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/17.jpg)
FUNCTION identifi_fun (P1, ....Pn):Tipo_de_dato ; {Declaraciones locales}Begin...........
.......
.......
....... identifi_fun := valor_de_la_función;end;
Encabezamiento
Lista de parámetros formales
Declaración de la función
La última sentencia debe ser una asignación a la variable que coincide con el identificador de la función (a fin de evitar la recursividad)
![Page 18: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/18.jpg)
PROGRAM XX;Var a:real; b1,b2:integer;FUNCTION Ejemplo(x,y:integer):real ; Begin ........... Ejemplo:= .........;End;
Begin ....... a:=Ejemplo(b1,b2)+12.04; ........
End.
Invocación a la función
La invocación (en una expresión) activa la función; esta es ejecutada, luego el valor guardado en Ejemplo es devuelto al p.p.
![Page 19: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/19.jpg)
Ejemplo de declaración
function EsEntero(x : real):Boolean;
begin
If trunc(x)=x Then
EsEntero := TRUE
Else
EsEntero := FALSE
end;
04/10/23Computacion - Fac.
Ingeniería 19
![Page 20: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/20.jpg)
04/10/23Computacion - Fac.
Ingeniería 20
Características de las funciones
Las funciones reciben información a través de sus parámetros y solo devuelve un valor simple.
Si bien los parámetros tienen la misma características que los procedimientos, se recomienda usar sólo el pasaje de parámetros por valor.
![Page 21: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/21.jpg)
04/10/23Computacion - Fac.
Ingeniería 21
Características de las funciones
Si alguno de los parámetros fuera pasado por variable, sería otra forma de intercambiar información.
El llamado a la función no genera una sentencia. Se debe hacer como parte de una expresión, es decir, debe figurar a la derecha del signo de asignación, en sentencias write y en comparaciones.
![Page 22: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/22.jpg)
04/10/23Computacion - Fac.
Ingeniería 22
Ejemplos
1. Escribir una función que sume los enteros entre 1 y un valor límite.
2. Calcular el Máximo Común Divisor entre dos números enteros positivos
3. Números combinatorios
![Page 23: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/23.jpg)
Program func3; Var N1,n2,res1,res2:integer;
Function suma(limite:integer):integer; Var Numero,acumula:integer; Begin Acumula:=0; For numero:=1 to limite do Acumula:=acumula+numero; Suma:=acumula End;
Begin Readln(n1,n2); Res1:=suma(n1); Res2:=suma(n2) div 4+res1;End.
![Page 24: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/24.jpg)
program func2;var x,y,r:integer;
function mcd(a,b:integer):integer; begin while a<>b do begin if a>b then a:=a-b else b:=b-a; end; mcd:=a; end;{Fin de la función}
begin{P.P} writeln('Ingrese dos numeros'); readln(x,y); r:=mcd(x,y); writeln('El mcd es :',r);end.
![Page 25: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/25.jpg)
04/10/23Computacion - Fac.
Ingeniería 25
program combinaciones; var m,n,mCn : integer; mf, nf, mnf : longint; procedure factorial(x:integer; var xf:longint); var i : integer; begin xf := 1; for i:=1 to x do xf := xf*i end;
Ejemplo del numero combinatorio con proced.
!)!(
!
nnm
m
n
m
![Page 26: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/26.jpg)
04/10/23Computacion - Fac.
Ingeniería 26
begin write(‘Ingrese m : '); readln(m); write(‘Ingrese n : '); readln(n); factorial(m,fm); factorial(n,fn); factorial(m-n,mnf); mCn := fm div fn div mnf; writeln(m,'C',n,' = ',mCn) end.
Ejemplo del numero combinatorio con proced.
![Page 27: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/27.jpg)
04/10/23Computacion - Fac.
Ingeniería 27
program combinatoria; var m,n: integer; mCn:longint;function factorial( x : integer ): longint; var i, xf : integer; begin xf := 1; for i:=1 to x do xf := xf*i; factorial:=xf end;
Ejemplo del numero combinatorio con funciones
![Page 28: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/28.jpg)
04/10/23Computacion - Fac.
Ingeniería 28
Begin write(‘Ingrese m : '); readln(m); write(‘Ingrese n : '); readln(n); mCn:= factorial(m) div factorial(n) div factorial(m-n); writeln(m,'C',n,' = ',mCn)end.
Ejemplo del numero combinatorio con funciones
![Page 29: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/29.jpg)
04/10/23Computacion - Fac.
Ingeniería 29
Procedimientos versus funciones
Tanto los procedimientos como las funciones proporcionan modularidad a los programas. Ambos son bloques de código independientes y ambos pueden aceptar datos a través de parámetros.
Una de las diferencias la encontramos en la forma que devuelven los valores: la función no devuelve resultados en uno o varios de sus parámetros (eventualmente no devuelve datos) como los procedimientos, sino que devuelve un valor simple a través de su propio nombre.
![Page 30: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/30.jpg)
04/10/23Computacion - Fac.
Ingeniería 30
Procedimientos versus funciones
Otra de las diferencias la encontramos en la forma que se invocan: una llamada a un procedimiento crea una sentencia propia mientras una llamada a una función debe ser parte de una expresión.
![Page 31: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/31.jpg)
Ejemplo
Verificar si cada fila de una matriz está ordenada en forma ascendente
Se presentan los subprogramas por separado y luego se unen todos en un programa.
04/10/23Computacion - Fac.
Ingeniería 31
![Page 32: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/32.jpg)
04/10/23Computacion - Fac.
Ingeniería 32
function estaOrdenadoA(v: vector; n:integer): boolean;Var i: integer;begin i:= 1; while(v[i] <= v[i+1]) and (i < n) do i:= i + 1; if (i = n ) then estaOrdenadoA:= true else estaOrdenadoA:= falseEnd;
![Page 33: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/33.jpg)
04/10/23Computacion - Fac.
Ingeniería 33
procedure copiaFilaEnVector(fila: integer; col:integer; var A: matriz; var v:vector);Var j:integer;Begin for j:=1 to col do v[j]:=A[fila,j]End;
![Page 34: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/34.jpg)
04/10/23Computacion - Fac.
Ingeniería 34
function filasEstanOrden(A:matriz;m,n:integer): boolean; varorden: boolean;k,j: integer;v: vector;begin orden:= true; k:= 0; while (orden) and (k < m) do begin k:= k + 1; copiaFilaEnVector(k, n, A, v); IF NOT(estaOrdenadoA(v, n)) THEN orden:=false end; filasEstanOrden:= ordenend;
![Page 35: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/35.jpg)
Programa completo
04/10/23Computacion - Fac.
Ingeniería 35
![Page 36: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/36.jpg)
04/10/23Computacion - Fac.
Ingeniería 36
program ordenado;Type Vector =array [1..30] of real; Matriz=array[1..30,1..30] of real;Var mat:matriz; fil,col:integer;
Procedure leer(var mat:matriz; var fil,col:integer);var i,j:integer; Begin writeln('Ingrese la cantidad de filas y de columnas'); readln(fil,col); for i:=1 to fil do for j:=1 to col do begin writeln('Ingrese el elemento ',i,' ',j); readln(mat[i,j]); end; End;
![Page 37: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/37.jpg)
04/10/23Computacion - Fac.
Ingeniería 37
function estaOrdenadoA(v: vector; n: integer): boolean;Var i: integer;begin i:= 1; while(v[i] <= v[i+1]) and (i < n) do i:= i + 1; if (i = n ) then estaOrdenadoA:= true else estaOrdenadoA:= falseEnd;
procedure copiaFilaEnVector(fila: integer;col:integer;var A: matriz; var v:vector);Var j:integer;Begin for j:=1 to col do v[j]:=A[fila,j]End;
![Page 38: C lase 10 COMPUTACION 2009 9/17/2014Computacion - Fac. Ingeniería2 Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.](https://reader035.fdocuments.ec/reader035/viewer/2022070304/54dd1750497959e81b8b476b/html5/thumbnails/38.jpg)
04/10/23Computacion - Fac.
Ingeniería 38
function filasEstanOrden(A:matriz;m,n:integer): boolean; varorden: boolean;k,j: integer;v: vector;begin orden:= true; k:= 0; while (orden) and (k < m) do begin k:= k + 1; copiaFilaEnVector(k, n,A, v); IF NOT(estaOrdenadoA(v, n)) THEN orden:=false end; filasEstanOrden:= ordenend;
BEGIN leer(mat,fil,col); IF filasEstanOrden(mat,fil,col) THEN writeln('Todas las filas est n ordenadas') ELSE writeln('No todas las filas est n ordenadas'); readlnEND.