Está en la página 1de 5

SENTENCIA FOR – DO

3.1 REPRESENTACIÓN GRÁFICA

A= VI --- VF

3.2 SINTAXIS GENERAL.


La sintaxis de un ciclo ascendente o descendente FOR es:

FOR Nombre := Val. Inicial TO Val. Final DO


DOWNTO
Begin
Sentencia 1;
Sentencia 2;
:
Sentencia n;
End;

3.3 EJEMPLOS DE CODIFICACIÓN


EJEMPLO 1. Codificado de una sentencia repetitiva simple.
CODIFICADO
F = 1--10

B = 5*A FOR F:= 1 TO 10 DO


Begin
B B:= 5*A;
WriteLn (B);
F End;

EJEMPLO 2. Codificación de un diagrama que presenta sentencias repetitivas anidadas.


CODIFICADO
F = 10--1

C = 1--10
FOR F := 10 DOWNTO 1 DO
Begin
A = F*C
FOR C := 1 TO 10 DO
Begin
F,'*',C,=,A A := F*C;
WriteLn (F,’ * ‘,C,’=’,A);
C End ;
End;
F
PROBLEMA A RESOLVER.
Diseñar un programa para determinar la inversa de una matriz de orden NxN, utilizando el método
numérico de Jordan. Utilice el respectivo programa para determinar la inversa de la siguiente matriz:

 4 − 9 2
 
 2 − 4 6 
 1 −1 3
 
Con la finalidad de proporcionar una adecuada plataforma en la manipulación de la información, el
programa debe presentar las siguientes pantallas de presentación:
PANTALLA DE ENTRADA PANTALLA DE SALIDA

SOLUCION DEL PROBLEMA


El programa codificado solo puede utilizarse para una matriz cuyas dimensiones como máximo son de
10x10. En caso de necesitar un orden mayor debe modificarse las dimensiones señaladas en el sector
type.

VARIABLES A UTILIZAR.
Las variables empleadas en el presente diagrama, desarrollan las siguientes tareas:
VARIABLES TAREA A REALIZAR

A Variable donde se almacena los elementos de la matriz problema.


B Variable auxiliar que permite diagonalizar la matriz coeficiente
N Variable que almacena el orden de la matriz.
F, C, D Variable que permiten inicializar los respectivos contadores de trabajo.
DISEÑO DEL DIAGRAMA DE FLUJO

INICIO @

PANTALLA NO SI
DE ENTRADA F=D
C = D -- 2*N C = 1 -- 2*N

N
B(F,C)= - A(F,D)*A(D,C)/A(D,D)+A(F,C) B(F,C)= A(F,C)
F =1 -- N
C C
C =1 -- 2*N
F
SI NO
C>N
A=B
NO SI
C=N+F
A(F,C) D
A(F,C) = 0 A(F,C) = 1

PANTALLA
DE SALIDA
C

F =1 -- N
F
C = N+1 - 2*N
D = 1 -- N

A(F,C) / A(F,F)
F = 1-- N

@ C

FIN

CORRIDO DEL PROGRAMA

PANTALLA DE ENTRADA PANTALLA DE SALIDA


CODIFICADO DEL DIAGRAMA DE FLUJO.

PROGRAM LAB_31;
USES
CRT;
TYPE
MATRIZ=ARRAY[1..10,1..10] OF REAL;
VECTOR=ARRAY[1..10] OF REAL;
VAR
N,F,C,D : Integer;
A,B : Matriz;
BEGIN
CLRSCR;
WriteLn(' Universidad Técnica de Oruro');
WriteLn(' Facultad Nacional de Ingeniería');
WriteLn(' Departamento de Matemáticas');
WriteLn;
WriteLn(' DIAGRAMA No 31');
WriteLn(' -----------------------');
WriteLn(' Orden de la matriz ? ');
WriteLn;
WriteLn(' MATRIZ PROBLEMA');
GotoXy(45,7);ReadLn(N);
FOR F:=1 TO N DO
BEGIN
FOR C:=1 TO 2*N DO
BEGIN
IF C>N THEN BEGIN
IF C=N+F THEN BEGIN
A[F,C]:=1;
END
ELSE BEGIN
A[F,C]:=0;
END;
END
ELSE BEGIN
GOTOXY(C*8,F+10);READLN(A[F,C]);
END;
END;
END;
FOR D:=1 TO N DO
BEGIN
FOR F:=1 TO N DO
BEGIN
IF F=D THEN BEGIN
FOR C:=1 TO 2*N DO
BEGIN
B[F,C]:=A[F,C];
END;
END
ELSE BEGIN
FOR C:=D TO 2*N DO
BEGIN
B[F,C]:=-A[F,D]*A[D,C]/A[D,D]+A[F,C];
END;
END;
END;
A:=B;
END;
CLRSCR;
WriteLn(' Universidad Técnica de Oruro');
WriteLn(' Facultad Nacional de Ingeniería');
WriteLn(' Departamento de Matemáticas');
WriteLn;
WriteLn(' DIAGRAMA No 31');
WriteLn;
WriteLn(' INVERSA DE LA MATRIZ');
WriteLn(' -------------------------');
WRITELN;
FOR F:=1 TO N DO
BEGIN
FOR C:=N+1 TO 2*N DO
BEGIN
WRITE(A[F,C]/A[F,F]:8:3);
END;
WRITELN;
END;
GOTOXY(3,24);WRITE('Presione ENTER para terminar');READLN;
END.

También podría gustarte