SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Diagramas Nassi-Schneiderman
Los diagramas Nassi-Schneiderman son una técnica para la especificación de
algoritmos que combina la descripción textual del pseudocódigo con la
representación gráfica del diagrama de flujo.

Todo algoritmo se representa de la siguiente forma:




Existe una representación para cada una de las 3 instrucciones permitidas en
la programación estructurada.

•   Secuenciales. Recordemos que aquí tenemos: declaración de variables
    (tipo:    nombre_variable), asignación (nombre_variable           =
    valor), lectura (Leer <lista de variables>) y escritura de datos
    (Escribir <lista de constantes y variables>).




•   Alternativas.
        o Alternativa simple.




                                                                          1
o Alternativa doble




       o Alternativa múltiple




•   Iterativas.
        o Ciclo Mientras




       o Ciclo Repetir




                                2
o Ciclo Desde / Para




•   Alternativas anidadas. Consta de una serie de estructuras si, unas interiores
    a otras; a su vez, dentro de cada estructura pueden existir diferentes
    acciones. Se utiliza para diseñar estructuras que contengan más de dos
    alternativas.




•   Iterativas anidadas. Consta en anidar un ciclo dentro de otro. En este caso
    la estructura interna debe estar incluida totalmente dentro de la externa y no
    puede existir solapamiento.




                                                                                3
Ejemplos:

Elabora una solución, la más conveniente, para calcular el valor de la suma 1 +
2 + 3 + … + 100, utilizando la estructura mientras (algoritmo visto en clase).

algoritmo suma_1_a_100
var
     entero: contador, SUMA
inicio
     contador ← 1
     SUMA ← 0
     mientras contador <= 100 hacer
          SUMA ← SUMA + contador
          contador ← contador + 1
     fin_mientras
     escribir (‘La suma es:’, SUMA)
fin
algoritmo suma_1_a_100
var
     entero: contador, SUMA
begin
     contador ← 1
     SUMA ← 0
     while contador <= 100 do
          SUMA ← SUMA + contador
          contador ← contador + 1
     endwhile
     write (‘La suma es:’, SUMA)
end




                                                                             4
Elabora una solución, la más conveniente, para calcular la suma de todos los
números pares entre 2 y 1000, utilizando la estructura desde.

algoritmo pares_2_a_1000
var
     entero: i, SUMA
inicio
     SUMA ← 0
     desde i ← 2 hasta 1000 incremento 2 hacer
          SUMA ← SUMA + i
     fin_desde
     escribir (‘La suma es:’, SUMA)
fin
algoritmo pares_2_a_1000
var
     entero: i, SUMA
begin
     SUMA ← 0
     for i ← 2 to 1000 increase 2 do
          SUMA ← SUMA + i
     endfor
     write (‘La suma es:’, SUMA)
end




Elabora una solución, la más conveniente, para calcular la suma de los
números impares hasta N (inclusive), utilizando la estructura repetir.

algoritmo impares_1_a_N
var

                                                                          5
entero: N, contador, SUMA
inicio
     SUMA ← 0
     contador ← 1
     Leer (N)
     repetir
          SUMA ← SUMA + contador
          contador ← contador + 2
     hasta_que contador > N
     escribir (‘La suma es:’, SUMA)
fin
algoritmo impares_1_a_N
var
     entero: N, contador, SUMA
begin
     SUMA ← 0
     contador ← 1
     read (N)
     repeat
          SUMA ← SUMA + contador
          contador ← contador + 2
     until contador > N
     write (‘La suma es:’, SUMA)
end




                                      6
Elabora una solución, la más conveniente, para calcular el factorial de un
número N (N! = N * (N – 1) * (N – 2) * … * 3 * 2 * 1).

algoritmo factorial
var
     entero: i, N, FACTORIAL
inicio
     leer (N)
     si N < 0 entonces
          escribir (‘El número dado debe ser positivo.’)
     si_no
          FACTORIAL ← 1
          Si N > 1 entonces
               desde i ← 2 hasta N incremento 1 hacer
                    FACTORIAL ← FACTORIAL * i
               fin_desde
          fin_si
          escribir (‘El factorial de’, N, ‘es:’, FACTORIAL)
     fin_si
fin
algoritmo factorial
var
     entero: i, N, FACTORIAL
begin
     read (N)
     if N < 0 then
          escribir (‘El número dado debe ser positivo.’)
     else
          FACTORIAL ← 1
          if N > 1 then
               for i ← 2 to N increase 1 do
                    FACTORIAL ← FACTORIAL * i
               endfor
          endif
          escribir (‘El factorial de’, N, ‘es:’, FACTORIAL)
     endif
end




                                                                        7
Elabora una solución, la más conveniente, para leer tres números A, B, C e
indicar cual es el valor más grande. Suponga que los tres valores son
diferentes.

algoritmo mayor_de_3
var
     real: A, B, C, MAYOR
inicio
     leer (A, B, C)
     si A > B entonces
          si A > C entonces
               MAYOR ← A
          si_no
               MAYOR ← C
          fin_si
     si_no
          si B > C entonces
               Mayor ← B
          si_no
               MAYOR ← C
          fin_si
     fin_si

                                                                        8
escribir (‘El número mayor es:’, MAYOR);
fin
-----------------------------------------------------------
algoritmo mayor_de_3
var
     real: A, B, C, MAYOR
begin
     read (A, B, C)
     if A > B then
          if A > C then
               MAYOR ← A
          else
               MAYOR ← C
          endif
     else
          if B > C then
               Mayor ← B
          else
               MAYOR ← C
          endif
     endif
     write (‘El número mayor es:’, MAYOR);
end

Elabora una solución, la más conveniente, para determinar simultáneamente
los valores máximo y mínimo de una lista de 100 números.

algoritmo max_y_min
var
     entero: i
     real: MAXIMO, MINIMO, NUMERO
inicio
     leer (NUMERO)
     MAXIMO ← NUMERO
     MINIMO ← NUMERO
     desde i ← 2 hasta 100 incremento 1 hacer
          leer (NUMERO)
          si NUMERO > MAXIMO entonces
               MAXIMO ← NUMERO
          si_no
               si NUMERO < MINIMO entonces
                    MINIMO ← NUMERO
               fin_si
          fin_si
     fin_desde
     escribir (‘Máximo=’, MAXIMO, ‘Mínimo=’, MINIMO)
fin


algoritmo max_y_min
var

                                                                       9
entero: i
     real: MAXIMO, MINIMO, NUMERO
begin
     read (NUMERO)
     MAXIMO ← NUMERO
     MINIMO ← NUMERO
     for i ← 2 to 100 increase 1 do
          read (NUMERO)
          if NUMERO > MAXIMO then
               MAXIMO ← NUMERO
          else
               if NUMERO < MINIMO else
                    MINIMO ← NUMERO
               endif
          endif
     endfor
     write (‘Máximo=’, MAXIMO, ‘Mínimo=’, MINIMO)
fin




                                                    10

Weitere ähnliche Inhalte

Was ist angesagt?

Ejercicios de algoritmos de decisión ok
Ejercicios de algoritmos de decisión okEjercicios de algoritmos de decisión ok
Ejercicios de algoritmos de decisión okrcarrerah
 
Unidad 5 Estructuras algoritmicas
Unidad 5 Estructuras algoritmicasUnidad 5 Estructuras algoritmicas
Unidad 5 Estructuras algoritmicasCarlos M. Sandoval
 
1 introduccion a la programacion 1
1 introduccion  a la programacion 11 introduccion  a la programacion 1
1 introduccion a la programacion 1Evelin Claudia
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
 
Método de mapa de karnaugh
Método de mapa de karnaughMétodo de mapa de karnaugh
Método de mapa de karnaughwrithe
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busquedaGonzalo Retamal
 
introduccion a c# y ejercicios solucionados
introduccion a c# y ejercicios solucionadosintroduccion a c# y ejercicios solucionados
introduccion a c# y ejercicios solucionadosAndersson Marrtinez
 
curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)Luis Ancel
 
Ejercicio 2 diagrama de flujo
Ejercicio 2 diagrama de flujoEjercicio 2 diagrama de flujo
Ejercicio 2 diagrama de flujolisvancelis
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Ejercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasEjercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasAlejandro Pacheco
 
Trabajo de series infinitas
Trabajo de series infinitasTrabajo de series infinitas
Trabajo de series infinitasreisermendoza
 

Was ist angesagt? (20)

Tema02 ejercicios
Tema02 ejerciciosTema02 ejercicios
Tema02 ejercicios
 
Algoritmo De Dijkstra
Algoritmo De DijkstraAlgoritmo De Dijkstra
Algoritmo De Dijkstra
 
Lógica Computacional
Lógica Computacional Lógica Computacional
Lógica Computacional
 
Ejercicios de algoritmos de decisión ok
Ejercicios de algoritmos de decisión okEjercicios de algoritmos de decisión ok
Ejercicios de algoritmos de decisión ok
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Unidad 5 Estructuras algoritmicas
Unidad 5 Estructuras algoritmicasUnidad 5 Estructuras algoritmicas
Unidad 5 Estructuras algoritmicas
 
1 introduccion a la programacion 1
1 introduccion  a la programacion 11 introduccion  a la programacion 1
1 introduccion a la programacion 1
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Método de mapa de karnaugh
Método de mapa de karnaughMétodo de mapa de karnaugh
Método de mapa de karnaugh
 
Informe algoritmos de busqueda
Informe algoritmos de busquedaInforme algoritmos de busqueda
Informe algoritmos de busqueda
 
introduccion a c# y ejercicios solucionados
introduccion a c# y ejercicios solucionadosintroduccion a c# y ejercicios solucionados
introduccion a c# y ejercicios solucionados
 
curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)curso Pseint 1 (16 ejercicios basicos)
curso Pseint 1 (16 ejercicios basicos)
 
Algoritmos ejemplos
Algoritmos ejemplosAlgoritmos ejemplos
Algoritmos ejemplos
 
Ejercicio 2 diagrama de flujo
Ejercicio 2 diagrama de flujoEjercicio 2 diagrama de flujo
Ejercicio 2 diagrama de flujo
 
ESTRUCTURA DE UN PROGRAMA
ESTRUCTURA DE UN PROGRAMA ESTRUCTURA DE UN PROGRAMA
ESTRUCTURA DE UN PROGRAMA
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Ejercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadasEjercicios de estructura selectiva anidadas
Ejercicios de estructura selectiva anidadas
 
Redes bayesianas
Redes bayesianasRedes bayesianas
Redes bayesianas
 
Algoritmos, tablas de multiplicar
Algoritmos, tablas de multiplicarAlgoritmos, tablas de multiplicar
Algoritmos, tablas de multiplicar
 
Trabajo de series infinitas
Trabajo de series infinitasTrabajo de series infinitas
Trabajo de series infinitas
 

Andere mochten auch

Nassi shneiderman diagrams
Nassi shneiderman diagramsNassi shneiderman diagrams
Nassi shneiderman diagramshccit
 
Psd - Programma Structuur Diagram
Psd - Programma Structuur DiagramPsd - Programma Structuur Diagram
Psd - Programma Structuur Diagramiahpostmes
 
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)Richard Schwarz
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigoepetekaun
 
Curso de Algoritmos - Presentación 1
Curso de Algoritmos - Presentación 1Curso de Algoritmos - Presentación 1
Curso de Algoritmos - Presentación 1Joemmanuel Ponce
 
Reglas Para Diagramas
Reglas Para DiagramasReglas Para Diagramas
Reglas Para Diagramasfrancisco3011
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujoKvinzuco
 
Cfakepathcase001easycase 100226175922-phpapp02
Cfakepathcase001easycase 100226175922-phpapp02Cfakepathcase001easycase 100226175922-phpapp02
Cfakepathcase001easycase 100226175922-phpapp02PUCESA
 
Algoritmica básica
Algoritmica básicaAlgoritmica básica
Algoritmica básicaMartrusita
 
herramientas case
herramientas caseherramientas case
herramientas casetomaspetto
 
Clase 7 Decisiones Compuestas Y Multiples
Clase 7 Decisiones Compuestas Y MultiplesClase 7 Decisiones Compuestas Y Multiples
Clase 7 Decisiones Compuestas Y Multiplessalomonaquino
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developersMichael Marotta
 
Caracteristicas de la estrategia de flujo de datos
Caracteristicas de la  estrategia de flujo de datosCaracteristicas de la  estrategia de flujo de datos
Caracteristicas de la estrategia de flujo de datosLaura Teresita Aguado
 

Andere mochten auch (20)

Diagrama nassi sherman
Diagrama nassi shermanDiagrama nassi sherman
Diagrama nassi sherman
 
Nassi shneiderman diagrams
Nassi shneiderman diagramsNassi shneiderman diagrams
Nassi shneiderman diagrams
 
Diagramas de Nassi-Shneiderman
Diagramas de Nassi-ShneidermanDiagramas de Nassi-Shneiderman
Diagramas de Nassi-Shneiderman
 
Psd - Programma Structuur Diagram
Psd - Programma Structuur DiagramPsd - Programma Structuur Diagram
Psd - Programma Structuur Diagram
 
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)
Nassi Shneiderman Diagrams: Algorithms Made Easier (at least a little bit)
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Curso de Algoritmos - Presentación 1
Curso de Algoritmos - Presentación 1Curso de Algoritmos - Presentación 1
Curso de Algoritmos - Presentación 1
 
Reglas Para Diagramas
Reglas Para DiagramasReglas Para Diagramas
Reglas Para Diagramas
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujo
 
Diagrama nassi sherman
Diagrama nassi shermanDiagrama nassi sherman
Diagrama nassi sherman
 
Cfakepathcase001easycase 100226175922-phpapp02
Cfakepathcase001easycase 100226175922-phpapp02Cfakepathcase001easycase 100226175922-phpapp02
Cfakepathcase001easycase 100226175922-phpapp02
 
Unidad i
Unidad iUnidad i
Unidad i
 
Algoritmica básica
Algoritmica básicaAlgoritmica básica
Algoritmica básica
 
herramientas case
herramientas caseherramientas case
herramientas case
 
Herranientas case
Herranientas caseHerranientas case
Herranientas case
 
Clase 7 Decisiones Compuestas Y Multiples
Clase 7 Decisiones Compuestas Y MultiplesClase 7 Decisiones Compuestas Y Multiples
Clase 7 Decisiones Compuestas Y Multiples
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Metodologías para el desarrollo de sioo
Metodologías para el desarrollo de siooMetodologías para el desarrollo de sioo
Metodologías para el desarrollo de sioo
 
Unmsm01 2008
Unmsm01 2008Unmsm01 2008
Unmsm01 2008
 
Caracteristicas de la estrategia de flujo de datos
Caracteristicas de la  estrategia de flujo de datosCaracteristicas de la  estrategia de flujo de datos
Caracteristicas de la estrategia de flujo de datos
 

Ähnlich wie 01 diagramas nassi-schneiderman

Ejercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesEjercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesRenzo Bernabe Aguilar
 
Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de RepeticionKenyi Figueroa
 
Trabajo de algoritmo
Trabajo de algoritmoTrabajo de algoritmo
Trabajo de algoritmo1002pc2
 
Preudocodigos & algoritmos (ciclos sino)
Preudocodigos & algoritmos (ciclos sino)Preudocodigos & algoritmos (ciclos sino)
Preudocodigos & algoritmos (ciclos sino)Eli Diaz
 
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLuLopez7
 
15diagramas de flujo
15diagramas de flujo15diagramas de flujo
15diagramas de flujoSilver John
 
DOC-20230722-WA0059.pdf
DOC-20230722-WA0059.pdfDOC-20230722-WA0059.pdf
DOC-20230722-WA0059.pdfadrianburi
 
Algoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioAlgoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioJulio Pari
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmodayanib
 
Algoejemplos
AlgoejemplosAlgoejemplos
Algoejemplosraal1
 
Ejemplos de pseudocodigos
Ejemplos de pseudocodigosEjemplos de pseudocodigos
Ejemplos de pseudocodigosTania Tellez
 

Ähnlich wie 01 diagramas nassi-schneiderman (20)

Ejercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesEjercicio de estructuras_condicionales
Ejercicio de estructuras_condicionales
 
Algunos algoritmos1
Algunos algoritmos1Algunos algoritmos1
Algunos algoritmos1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Exposicion
ExposicionExposicion
Exposicion
 
Exposicion
ExposicionExposicion
Exposicion
 
Sentencias de Repeticion
Sentencias de RepeticionSentencias de Repeticion
Sentencias de Repeticion
 
Trabajo de algoritmo
Trabajo de algoritmoTrabajo de algoritmo
Trabajo de algoritmo
 
Guia de trabajo
Guia de trabajoGuia de trabajo
Guia de trabajo
 
Preudocodigos & algoritmos (ciclos sino)
Preudocodigos & algoritmos (ciclos sino)Preudocodigos & algoritmos (ciclos sino)
Preudocodigos & algoritmos (ciclos sino)
 
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
bhguhffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
 
15diagramas de flujo
15diagramas de flujo15diagramas de flujo
15diagramas de flujo
 
DOC-20230722-WA0059.pdf
DOC-20230722-WA0059.pdfDOC-20230722-WA0059.pdf
DOC-20230722-WA0059.pdf
 
Algoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioAlgoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionario
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoejemplos
AlgoejemplosAlgoejemplos
Algoejemplos
 
Ejemplos de pseudocodigos
Ejemplos de pseudocodigosEjemplos de pseudocodigos
Ejemplos de pseudocodigos
 

Mehr von Asociación de Ingenieros y Arquitectos de Panamá

Mehr von Asociación de Ingenieros y Arquitectos de Panamá (17)

Ambiente windows manuales
Ambiente windows manualesAmbiente windows manuales
Ambiente windows manuales
 
Universidad de panama
Universidad de panamaUniversidad de panama
Universidad de panama
 
Libro1
Libro1Libro1
Libro1
 
14 examen parcial n°2 - informática ii -jueves 14 de oct 2010
14 examen parcial n°2 - informática ii -jueves 14 de oct 201014 examen parcial n°2 - informática ii -jueves 14 de oct 2010
14 examen parcial n°2 - informática ii -jueves 14 de oct 2010
 
04 estracto del estatuto
04 estracto del estatuto04 estracto del estatuto
04 estracto del estatuto
 
02 laboratorio n°4 • guía de ejercicios de operación avanzada en excel
02 laboratorio n°4 • guía de ejercicios de operación avanzada en excel02 laboratorio n°4 • guía de ejercicios de operación avanzada en excel
02 laboratorio n°4 • guía de ejercicios de operación avanzada en excel
 
02 examen parcial n°1-informática ii-vacio
02 examen parcial n°1-informática ii-vacio02 examen parcial n°1-informática ii-vacio
02 examen parcial n°1-informática ii-vacio
 
02 quiz n°1-estados financieros
02 quiz n°1-estados financieros02 quiz n°1-estados financieros
02 quiz n°1-estados financieros
 
02 laboratorio n°1 • estados financieros
02 laboratorio n°1 • estados financieros02 laboratorio n°1 • estados financieros
02 laboratorio n°1 • estados financieros
 
02 estados financieros
02  estados financieros02  estados financieros
02 estados financieros
 
02 hoja electrónica de cálculo-ms-excel
02 hoja electrónica de cálculo-ms-excel02 hoja electrónica de cálculo-ms-excel
02 hoja electrónica de cálculo-ms-excel
 
01 laboratorio n°2 • algoritmos - soluciones
01 laboratorio n°2 • algoritmos - soluciones01 laboratorio n°2 • algoritmos - soluciones
01 laboratorio n°2 • algoritmos - soluciones
 
01 laboratorio n°1 • algoritmos
01 laboratorio n°1 • algoritmos01 laboratorio n°1 • algoritmos
01 laboratorio n°1 • algoritmos
 
01 creación de wikis en wikispaces
01 creación de wikis en wikispaces01 creación de wikis en wikispaces
01 creación de wikis en wikispaces
 
01 cómo crear juntos una wiki
01 cómo crear juntos una wiki01 cómo crear juntos una wiki
01 cómo crear juntos una wiki
 
01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos
 
01 presentación - módulo n°1 • algoritmos
01 presentación - módulo n°1 • algoritmos01 presentación - módulo n°1 • algoritmos
01 presentación - módulo n°1 • algoritmos
 

01 diagramas nassi-schneiderman

  • 1. Diagramas Nassi-Schneiderman Los diagramas Nassi-Schneiderman son una técnica para la especificación de algoritmos que combina la descripción textual del pseudocódigo con la representación gráfica del diagrama de flujo. Todo algoritmo se representa de la siguiente forma: Existe una representación para cada una de las 3 instrucciones permitidas en la programación estructurada. • Secuenciales. Recordemos que aquí tenemos: declaración de variables (tipo: nombre_variable), asignación (nombre_variable = valor), lectura (Leer <lista de variables>) y escritura de datos (Escribir <lista de constantes y variables>). • Alternativas. o Alternativa simple. 1
  • 2. o Alternativa doble o Alternativa múltiple • Iterativas. o Ciclo Mientras o Ciclo Repetir 2
  • 3. o Ciclo Desde / Para • Alternativas anidadas. Consta de una serie de estructuras si, unas interiores a otras; a su vez, dentro de cada estructura pueden existir diferentes acciones. Se utiliza para diseñar estructuras que contengan más de dos alternativas. • Iterativas anidadas. Consta en anidar un ciclo dentro de otro. En este caso la estructura interna debe estar incluida totalmente dentro de la externa y no puede existir solapamiento. 3
  • 4. Ejemplos: Elabora una solución, la más conveniente, para calcular el valor de la suma 1 + 2 + 3 + … + 100, utilizando la estructura mientras (algoritmo visto en clase). algoritmo suma_1_a_100 var entero: contador, SUMA inicio contador ← 1 SUMA ← 0 mientras contador <= 100 hacer SUMA ← SUMA + contador contador ← contador + 1 fin_mientras escribir (‘La suma es:’, SUMA) fin algoritmo suma_1_a_100 var entero: contador, SUMA begin contador ← 1 SUMA ← 0 while contador <= 100 do SUMA ← SUMA + contador contador ← contador + 1 endwhile write (‘La suma es:’, SUMA) end 4
  • 5. Elabora una solución, la más conveniente, para calcular la suma de todos los números pares entre 2 y 1000, utilizando la estructura desde. algoritmo pares_2_a_1000 var entero: i, SUMA inicio SUMA ← 0 desde i ← 2 hasta 1000 incremento 2 hacer SUMA ← SUMA + i fin_desde escribir (‘La suma es:’, SUMA) fin algoritmo pares_2_a_1000 var entero: i, SUMA begin SUMA ← 0 for i ← 2 to 1000 increase 2 do SUMA ← SUMA + i endfor write (‘La suma es:’, SUMA) end Elabora una solución, la más conveniente, para calcular la suma de los números impares hasta N (inclusive), utilizando la estructura repetir. algoritmo impares_1_a_N var 5
  • 6. entero: N, contador, SUMA inicio SUMA ← 0 contador ← 1 Leer (N) repetir SUMA ← SUMA + contador contador ← contador + 2 hasta_que contador > N escribir (‘La suma es:’, SUMA) fin algoritmo impares_1_a_N var entero: N, contador, SUMA begin SUMA ← 0 contador ← 1 read (N) repeat SUMA ← SUMA + contador contador ← contador + 2 until contador > N write (‘La suma es:’, SUMA) end 6
  • 7. Elabora una solución, la más conveniente, para calcular el factorial de un número N (N! = N * (N – 1) * (N – 2) * … * 3 * 2 * 1). algoritmo factorial var entero: i, N, FACTORIAL inicio leer (N) si N < 0 entonces escribir (‘El número dado debe ser positivo.’) si_no FACTORIAL ← 1 Si N > 1 entonces desde i ← 2 hasta N incremento 1 hacer FACTORIAL ← FACTORIAL * i fin_desde fin_si escribir (‘El factorial de’, N, ‘es:’, FACTORIAL) fin_si fin algoritmo factorial var entero: i, N, FACTORIAL begin read (N) if N < 0 then escribir (‘El número dado debe ser positivo.’) else FACTORIAL ← 1 if N > 1 then for i ← 2 to N increase 1 do FACTORIAL ← FACTORIAL * i endfor endif escribir (‘El factorial de’, N, ‘es:’, FACTORIAL) endif end 7
  • 8. Elabora una solución, la más conveniente, para leer tres números A, B, C e indicar cual es el valor más grande. Suponga que los tres valores son diferentes. algoritmo mayor_de_3 var real: A, B, C, MAYOR inicio leer (A, B, C) si A > B entonces si A > C entonces MAYOR ← A si_no MAYOR ← C fin_si si_no si B > C entonces Mayor ← B si_no MAYOR ← C fin_si fin_si 8
  • 9. escribir (‘El número mayor es:’, MAYOR); fin ----------------------------------------------------------- algoritmo mayor_de_3 var real: A, B, C, MAYOR begin read (A, B, C) if A > B then if A > C then MAYOR ← A else MAYOR ← C endif else if B > C then Mayor ← B else MAYOR ← C endif endif write (‘El número mayor es:’, MAYOR); end Elabora una solución, la más conveniente, para determinar simultáneamente los valores máximo y mínimo de una lista de 100 números. algoritmo max_y_min var entero: i real: MAXIMO, MINIMO, NUMERO inicio leer (NUMERO) MAXIMO ← NUMERO MINIMO ← NUMERO desde i ← 2 hasta 100 incremento 1 hacer leer (NUMERO) si NUMERO > MAXIMO entonces MAXIMO ← NUMERO si_no si NUMERO < MINIMO entonces MINIMO ← NUMERO fin_si fin_si fin_desde escribir (‘Máximo=’, MAXIMO, ‘Mínimo=’, MINIMO) fin algoritmo max_y_min var 9
  • 10. entero: i real: MAXIMO, MINIMO, NUMERO begin read (NUMERO) MAXIMO ← NUMERO MINIMO ← NUMERO for i ← 2 to 100 increase 1 do read (NUMERO) if NUMERO > MAXIMO then MAXIMO ← NUMERO else if NUMERO < MINIMO else MINIMO ← NUMERO endif endif endfor write (‘Máximo=’, MAXIMO, ‘Mínimo=’, MINIMO) fin 10