Enunciado
Escribir un procedimiento que, dada una matriz de nxn de caracteres blancos, remplace por asteriscos las posiciones de la diagonal principal y la triangular inferior correspondiente, siguiendo el recorrido que comienza en la posición 1, 1 y luego recorre las diagonales paralelas a la principal. Escribir un pequeño programa de prueba.
Código
Python
def TRIANGULAR ( m, n ):
for k in range( n ):
i = k
for j in range( n-k ):
m [i][j] = '*'
i += 1
return m
def main():
while True:
n = int( input( "Ingresar/Enter dimension: " ) ) ;
m = []
for i in range( n ):
m.append( [""] * n )
TRIANGULAR ( m , n )
print( "\n" )
for i in range ( n ):
for j in range ( n ):
print(str(m[i][j]).rjust(3), end="")
print("\n")
resp = input("Presionar S para salir/Press S to exit ").upper()
if resp == "S": break
main()
C++
#include <iostream>
#include <iomanip>
using namespace std ;
#include <conio.h>
void TRIANGULAR ( char m [][10], int n )
{
int k , i , j ;
for( k=0 ; k<n ; k++ )
{
i = k ;
for( j=0 ; j<n+1-k ; j++ )
{
m [i][j] = '*' ;
i++ ;
}
}
}
int main()
{
char m[10][10] ;
int n , i , j ;
do
{
cout << "Ingresar/Enter dimension: " ;
cin >> n ;
for( i=0 ; i<n ; i++ )
for( j=0 ; j<n ; j++ )
m [i][j] = ' ' ;
TRIANGULAR ( m , n ) ;
for( i=0 ; i<n ; i++ )
{
for( j=0 ; j<n ; j++ )
cout << setw(5) << m [i][j] ;
cout << endl ;
}
cout << endl << "Presionar ESC para salir/" ;
cout << "Press ESC to exit" << endl << endl ;
}
while (getch() != char (27) ) ;
return 0 ;
}
Pascal
Program Problema15_15 ;
uses CRT , PRINTER ;
type
dim = 1..50 ;
matriz = array[ dim , dim ] of char ;
var
m : matriz ;
n , i , j : dim ;
Procedure TRIANGULAR( var m : matriz ; n : dim ) ;
var k , i , j : dim ;
begin
for k := 1 to n do
begin
i := k ;
for j := 1 to n + 1 - k do
begin
m [ i , j ] := '*' ;
i := i + 1
end
end
end;
begin
repeat
ClrScr ;
write( 'Ingresar/Enter dimension: ' ) ;
readln ( n ) ;
for i := 1 to n do
for j := 1 to n do
m [ i , j ] := ' ' ;
TRIANGULAR ( m , n ) ;
for i := 1 to n do
begin
for j := 1 to n do
write ( m [ i , j ] ) ;
writeln
end ;
writeln ;
write( 'Presionar ESC para salir/' ) ;
writeln( 'Press ESC to exit ' ) ;
until ReadKey = #27
end.
Diagramas
Subprograma



Programa Principal


