Resolución de problemas y algoritmos

Slides:



Advertisements
Presentaciones similares
Análisis Sintáctico Capítulo 4.
Advertisements

Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
Programación de Computadores
Programación de Computadores
SENTENCIAS SECUENCIALES
LENGUAJES DE DESCRIPCION DE HARDWARE (HDL)
Estructura selectiva anidada
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Type tipo_bf = ; tipo_dato = word; tipo_puntero = ^tipo_nodo; tipo_nodo = record dato: tipo_dato; izquierdo, derecho: tipo_puntero; bf: tipo_bf;
Ingresar dos valores correspondientes a la edad de una persona. Informar "La primera persona es mayor", "La segunda persona es mayor". C E1 E2 E1>E2 Si.
Juana Barbero 1 año B - VDS. Ingresar un número cualquiera e informar si es positivo, negativo o nulo.
TRABAJO PRÁCTICO 2 Florencia Glasbauer y Luciana Pierangeli 1ºB.
Seminario de Actualización - Excel Avanzado y Macros
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
1. Asistentes de Pruebas para Lógicos y Matemáticos I
Bloque 2: Divide y Vencerás
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 1: Consideraciones acerca de la eficiencia.
ESTRUCTURA DEL LENGUAJE C
Principios y Herramientas de Programación
Trabajo practico Nº2 Rodrigo Diaz. EJERCICIO Nº1 Ingresar un número cualquiera e informar si es Positivo. Negativo o nulo C NUMER O Numero =0 NULO Numero>o.
Franco Caviglia Catenazzi. Ejercicio nº1  Ingresar un número cualquiera e informar si es positivo, negativo o nulo. C Negativo Positivo Nulo A A>0 0
Programación Visual Basic
Programación Visual Basic Pedro Boualy y Fran B 2ºB PC:28.
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.
Trabajo práctico Programación y Análisis de datos. Alumnas: María Agustina Macchi y María Sol Pérez Fernández. Año: 1B Fecha de entrega: 14 de Noviembre.
 Ingresar dos valores correspondientes a la edad de una persona. Informar "La primera persona es mayor", "La segunda persona es mayor". C E 1 E 2 E1>E2.
Trabajo Practico 2 Nombre: Indira Diana. Ejercicio numero 1 C C Numero = 0 Numero > 0 numero positivo nulo negativo F F Verdadero Ingresar un número cualquiera.
Ejercicio N°4 Ingresar dos números enteros cualesquiera. Informar "el primero es mayor que el segundo", "el segundo es mayor que el primero" o "son iguales"
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Trabajo Práctico 2 Agustin Arias 1ºB. Ejercicio 1 Ingresar un número cualquiera e informar si es positivo, negativo o nulo.
Teoría – Alejandro Gonzalez
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Tema 8: Tipos de Datos Estructurados I
TRABAJO PRACTICO Nº2 Nombre: Ignacio D. Roca. Ejercicio Nº 1 TP 2 C numero numero= 0 Numero> 0 negativo f nulo verdadero positivo falso.
Tema 6: Estructuras de Control
Recursividad Un objeto se dice que es recursivo si él mismo forma parte de su definición. Ejemplos de objetos recursivos: Una locomotora es un tren Un.
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
Camila Rodríguez 1º B. DIAGRAMA: PANTALLA: PROGRAMACION Private Sub CommandButton1_Click() Dim NumeroA As Integer Label1 = "ingrese un numero" NumeroA.
Práctico Mercedes Alonso. Ejercicio 0 C Numero A Numero A>5 “No” F “Sí” (textbox) Salida (label) IF Verdadero Falso Ingresar un número cualquiera e informar.
Camila Rodríguez 1º B. DIAGRAMA: PANTALLA: PROGRAMACION Private Sub CommandButton1_Click() Dim NumeroA As Integer Label1 = "ingrese un numero" NumeroA.
Programación Visual Basic ‍2º año B ‍Nombre: javier vasaquez ‍Computadora Número:25.
Práctico Mercedes Alonso. Ejercicio 0 C Numero A Numero A>5 “No” F “Sí” (textbox) Salida (label) IF Verdadero Falso Ingresar un número cualquiera e informar.
Por: Sebastián Guozden. c Número Número = 0 F Nulo Positivo Negativo Número > 0 Ingrese un Número cualquiera e informar si es positivo, negativo o nulo.
Gianfranco Barbalace 1 año “B”.  Ingresar un número cualquiera e informar si es positivo, negativo o nulo. C C Número = 0 Número Número > 0 Nulo Verdadero.
GESTOR DE BASE DE DATOS CARRERA: COMPUTACIÓN E INFORMÁTICA CURSO: TALLER DE SISTEMAS I DOCENTE: ING. JOSÉ EDUARDO QUISPE TAIPE CICLO: QUINTO.
Resolución de problemas y algoritmos
Resolución de problemas y algoritmos
ESTRUCTURAS DE DECISIÓN
Universidad de las Ciencias Informáticas
SISTEMA DE CÓDIGOS DE BARRA
Diego Hernández R Pascal Variables Diego Hernández R
Estructuras de Control Ciclos
INFORMATICA DEL CBU Clase 9 Año 2016 FUNCIONES ARREGLOS.
Estructuras de Control
Análisis y resolución de problemas
Estructuras de Control 2 Ciclos
Estructuras de Control 3 Ciclos
Diego Hernández R Pascal Variables Diego Hernández R
Procedimientos y Funciones
String, arreglos y arreglos bidimensionales
Estructuras de control
Diego Hernández R. Archivos Diego Hernández R.
String, arreglos y arreglos bidimensionales
Procedimientos y Funciones
Transformada Z.
END.
Transcripción de la presentación:

Resolución de problemas y algoritmos Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Recursividad Ampliar a impares un número consiste en duplicar cada uno de sus dígitos impares. EJ. N=2134  211334, N=127  11277 Ampliar a impares N CB: Si N tiene un dígito, ampliar a impares N es duplicar el dígito N si es impar, o es N si es par. CG: Si N > 9, ampliar a impares N es ampliar a impares N’ y agregarle al final el último dígito de N duplicado solo si el mismo es impar o agregar el último digito si es par. N’ es N sin su último dígito.

Recursividad Ampliar a impares un número consiste en duplicar cada uno de sus dígitos impares. function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) Ampliar:=Ampliar(N div 10)*10+N mod 10; end;

Num 361 N 361 Ampliar N 36 Ampliar program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end;

Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar

Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar 33 Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar 33

Num 361 N 361 Ampliar N 36 Ampliar N 3 Ampliar 33 Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar N 3 Ampliar 33

seguimos evaluando la expresión Ingrese numero positivo: 361 El numero transformado es: function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:= 33 *10+N mod 10; end; Num 361 seguimos evaluando la expresión N 361 Ampliar N 36 Ampliar

seguimos evaluando la expresión program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; N 36 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:=Ampliar(N div 10)*100+(N mod 10*10+N mod 10) else Ampliar:= 33 *10+N mod 10; end; seguimos evaluando la expresión

seguimos evaluando la expresión program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, Ampliar(Num)); end. Ingrese numero positivo: 361 El numero transformado es: Num 361 N 361 Ampliar function Ampliar(N: integer): integer; begin if (N<=9) then if odd(N) then Ampliar:=N*10+N else Ampliar:=N else if odd(N mod 10) then Ampliar:= 336 *100 + (N mod 10*10+N mod 10) else Ampliar:=Ampliar(N div 10)*10+N mod 10; end; seguimos evaluando la expresión

Num 361 program transformaNumero; var Num: integer; function Ampliar(N: integer): integer; … begin writeln(‘Ingrese numero positivo: ‘); realdn(Num); writeln(‘El numero transformado es: ‘, ); end. Ingrese numero positivo: 361 El numero transformado es: Num 361