Pages

lunes, 31 de diciembre de 2012

Insertar números en una posición indicada de un arreglo – Diagrama de flujo

Problema
Hacer un programa o algoritmo que permita ingresar un elemento en una posición indicada en un arreglo de n elementos (números), hasta que el usuario desee salir.

Solución

Inicializamos la variable “num” en cualquier número diferente  a cero para poder acceder en el bucle, se solicita ingresar la longitud del arreglo, se guarda este valor en la variable “N”, se llama a  la subrutina InicializarArreglo, se llena la matriz con ceros , se llama a la subrutina IngresarNumeros  el usuario ingresa los números de acuerdo a las posisiciones que elija,se llama a la subrutina Mostrar para visualizar los datos ingresados.


Diagrama de flujo -  Insertar numero en la posicion indicada

En la subrutina InicializarArreglo, se crea un bucle For para llenar el arreglo de ceros, se finaliza el bucle. 


Diagrama de flujo - InicializarArreglo

En la Subrutina IngresarNumero, se crea un bucle While el cual nos permitirá ingresar números hasta que se ingrese un cero, se solicita ingresar un número, el cual se captura en la variable “num”, luego
Se compara si el número es igual a cero
Si es Verdadero (Si)
    No se hace nada y retorna
Si es Falso (No)
    Se solicita el ingreso de la posición en donde se desea ingresar el numero.
    Se compara si la posición es menor a 1 o mayor a la longitud del arreglo (pos<1 OR pos>N)
    Si es Verdadero (Si)
        Nos muestra que esta fuera de rango
    Si es Falso (No)
Se le asigna el número a la posición indicada. Finaliza el bucle.


Diagrama de flujo - Subrutina IngresarNumero

En la Subrutina Mostrar, Se crea un For para visualizar los elementos ingresados en el arreglo A.


 Diagrama de flujo - Subrutina Mostrar

 Diagrama Fuente en FreeDFD 
 Código fuente en Java
 Código fuente en C++
 Código fuente en C
 Código fuente en C#
 Código fuente en Python
 Código fuente en Visual Basic

Insertar n números en un arreglo ordenado – Diagrama de flujo

Problema
Hacer un programa o algoritmo. Se tiene un arreglo "A" donde se encuentra 10 números ordenados en forma ascendente, y se pide que el algoritmo  permita el ingreso de un número y lo coloque en la posición donde debería de estar con respecto al orden del arreglo.


Solución
Inicializamos la variable “q” en cero, se llama a la subrutina Cargar10Numeros para inicializar el arreglo ordenado ascendentemente, se solicita ingrese la cantidad de números que desea insertar, se captura el valor en la variable “C”, Se asigna a la variable “T” el total del longitud del arreglo, se llama a la subrutina CapturaNumeros, donde se ingresara los números que se desean insertar en el arreglo, luego se llama a la subrutina OrdenarAsc en la cual se ordenara los nuevos números ingresados y finalmente se llama a la subrutina MostrarNumeros, que nos mostrara la lista ordenada con los números insertados.Finaliza.


Diagrama de flujo - Insertar n numeros en una lista ordenada

En la subrutina Cargar10Numeros, se crea un arreglo Lista en donde se cargaran diez números ordenados ascendentemente en este arreglo se cargaran los números ingresados.


Diagrama de flujo - Subrutina Cargar10Numeros

En la Subrutina CapturaNumero, se crea un bucle For para agregar los números ingresados por el usuario estos números se asignan al final del arreglo Lista a partir de la posición 11, finaliza el ciclo.


Diagrama de flujo - Subrutina CapturaNumero

En la Subrutina OrdenaAsc , usamos el ordenamiento usando el algoritmo de la burbuja para lo cual se crea dos bucles, un bucle exterior While con condición q != (T-1)  se encargara de revisar si el arreglo ya esta ordenado, se inicializa el valor de “q” en cero, se crea un bucle For que recorrerá el arreglo y luego se
Se Compara si el primer elemento es menor  al segundo (Lista(k) <= Lista(k+1))
Si es Verdadero (Si)
    Actualizamos el valor de “q” agregándole 1.
Si es Falso (No)
    Se realiza un intercambio entre el primer y segundo elemento del arreglo
Se finalizan los bucles.

Diagrama de flujo -  Subrutina OrdenaAsc

 En la Subrutina MostrarNumeros, se crea un bucle For para mostrar los elementos ordenados ascendentemente del arreglo Lista, finaliza el bucle.


Diagrama de flujo - Subrutina MostrarNumeros

 Diagrama Fuente en FreeDFD 
 Código fuente en Java
 Código fuente en C++
 Código fuente en C
 Código fuente en C#
 Código fuente en Python
 Código fuente en Visual Basic

Eliminar un alumno de un salón dado su posición – Diagrama de flujo

Problema
Hacer un programa o algoritmo que permita eliminar un alumno de un  salón de clase, dada una posición indicada.

Solución
  • Entrada: 1 3 fila 1 columna 3
  • Salida: 1 1 0
Se realiza una llamada a la subrutina LlenarSalon donde se carga los valores de la matriz con 1, luego se llama a la subrutina MostrarSalon que nos muestra los elementos de la matriz, se solicita al usuario ingrese la posición del alumno que desea eliminar, esto se captura en las variables “f” y “c”, Luego se modifica la posición asignándole cero, lo cual indica que en la posición mencionada se ha eliminado al alumno, se llama a la subrutina MostrarSalon para confirmar que la modificación se ha realizado .Finaliza.


Diagrama de flujo - Eliminar un alumno dado su posicion

En la subrutina LlenarSalon se crean dos ciclos For, uno dentro de otro para poder trabajar con los valores de la matriz, luego  se asigna a cada posición el valor de 1, se finalizan los ciclos.


Diagrama de flujo - Subrutina LlenarSalon

En la subrutina MostrarSalon, se crean dos bucles For para poder recorrer la matriz, luego se muestra en pantalla el contenido de la matriz, se cierra los bucles.


Diagrama de flujo - MostrarSalon.

 Diagrama Fuente en FreeDFD 
 Código fuente en Java
 Código fuente en C++
 Código fuente en C
 Código fuente en C#
 Código fuente en Python
 Código fuente en Visual Basic

Determinar las dos peores notas de cinco – Diagrama de flujo

Problema
Hacer un programa o algoritmo que si  se ingresan 5 notas de un alumno, publicar las 2 peores notas.

Solución
  • Entrada: 15, 10, 13, 8,19 
  • Salida: 10, 8
Se Inicializa la variable “u” con cero, se solicita ingresar cinco notas, se llama a la subrutina CapturaNotas , se crea un ciclo While con condición de que “u” debe ser diferente de 4(esto nos indica que el arreglo ya está ordenado), se llama a la subrutina Ordena esta nos ordena el arreglo de forma ascendente, se finaliza el ciclo  se muestra el resultado. Finaliza


Diagrama de flujo - Determinar las dos peores notas

En la subrutina CapturaNotas, se crea un ciclo For el cual tendrá cinco iteraciones para capturar los cinco números en el arreglo Nota, finaliza el ciclo.


Diagrama de flujo - Subrutina CapturaNotas

En la subrutina Ordena, Se crea un ciclo For con cuatro iteraciones, luego
Se comprueba si el primer elemento es menor que el segundo elemento del arreglo 
Nota (Nota(k)<Nota(k+1))
Si es Verdadero (Si)
    Indica que esta en orden ascendente, se actualiza el valor de “u” adicionándole 1.
Si es Falso (No)
Se realiza un intercambio, se asigna a la variable tem el primer elemento, y se asigna el valor del segundo elemento en el primero, luego se asigna el valor de tem en el segundo elemento.
Finaliza ciclo.


Diagrama de flujo - Subrutina Ordena.

 Diagrama Fuente en FreeDFD 
 Código fuente en Java
 Código fuente en C++
 Código fuente en C
 Código fuente en C#
 Código fuente en Python
 Código fuente en Visual Basic

Determinar si forma un triangulo – Diagrama de flujo

Problema
Hacer un programa o algoritmo que dadas tres longitudes, decir mediante un mensaje si forma un triángulo o no (cada lado tiene que ser menor que de las otras dos).


Solución
  • Entrada: 3  4  5
  • Salida: Si forma un triangulo
Se solicita al usuario ingrese tres longitudes de lados, estos valores se capturan en las variables “a”, ”b” y “c”, luego
Se compara si cumple con la propiedad de la desigualdad triangular ((abs(a-c) < b)  AND (b < (a+c)))
Si es Verdadero (Si)
    Se muestra si forma un triangulo
Si es Falso (No)
    Se muestra que no forma un triangulo
Finaliza.


Diagrama de flujo - Determinar si forma un triangulo

 Diagrama Fuente en FreeDFD 
 Código fuente en Java
 Código fuente en C++
 Código fuente en C
 Código fuente en C#
 Código fuente en Python
 Código fuente en Visual Basic