You are on page 1of 12

PROBLEMA 3

Proceso

// leer el número

Escribir "Ingrese un número entre 1 y 4000"

Leer Numero

// controlar que sea válido para convertir

SePuedeConvertir<-Verdadero

Si Numero=0 Entonces

Escribir "No existe ningún símbolo para representar el 0"

SePuedeConvertir<-Falso

FinSi

Si Numero<>trunc(numero) Entonces

Escribir "El número debe ser entero"

SePuedeConvertir<-Falso

FinSi

Si Numero>4000 Entonces

Escribir "Muy alto"

SePuedeConvertir<-Falso

FinSi

Si Numero<0 Entonces

Escribir "Debe ser positivo"

SePuedeConvertir<-Falso

FinSi

// realizar la conversión

Si SePuedeConvertir Entonces

Si Numero=1000 Entonces

Escribir "M"

Sino

Dimension nu[10], nd[10], nc[10] // notación para unidades, decenas y centenas

nu[1]<-''; nu[2]<-'I'; nu[3]<-'II'; nu[4]<-'III'; nu[5]<-'IV'; nu[6]<-'V'; nu[7]<-'VI'; nu[8]<-'VII'; nu[9]<-'VIII';


nu[10]<-'IX'

nd[1]<-''; nd[2]<-'X'; nd[3]<-'XX'; nd[4]<-'XXX'; nd[5]<-'XL'; nd[6]<-'L'; nd[7]<-'LX'; nd[8]<-'LXX'; nd[9]<-'LXXX';


nd[10]<-'XC'
nc[1]<-''; nc[2]<-'C'; nc[3]<-'CC'; nc[4]<-'CCC'; nc[5]<-'CD'; nc[6]<-'D'; nc[7]<-'DC'; nc[8]<-'DCC'; nc[9]<-'DCCC';
nc[10]<-'CM'

centenas<-trunc(Numero/100) MOD 10

decenas<-trunc(Numero/10) MOD 10

unidades<-Numero MOD 10

Escribir nc[centenas+1],nd[decenas+1],nu[unidades+1]

FinSi

FinSi

FinProceso
PROBLEMA 2

Proceso InversionCifras

Definir n como entero;

Definir retorno como entero;

Definir digito como entero;

Escribir "Ingrese un numero sin ceros no significativos";

Leer n;

retorno <- 0;

Si n = 0 Entonces

Escribir "El numero invertido sin ceros no significativos es 0";

FinSi

Si n < 10 Entonces

Escribir "El numero invertido sin ceros no significativos es",n;

FinSi

Mientras n > 0 Hacer

digito <- n%10;

n <- n - digito;

n <- n / 10;

retorno <- retorno*10 + digito;

FinMientras

Escribir "El numero invertido sin ceros no significativos es: ",retorno;

FinProceso
PROBLEMA 6

Proceso serie

Definir x,a,b,c,res,fac Como Real

Escribir "ingrese cantidad de terminos"

leer a

Escribir "ingrese el valor de x"

leer x

res <- 0

c <- 1

fac <- 1

b <- 1

Mientras m<=n Hacer

Mientras c<=(2*c-1) Hacer

fac <- fac*b

b <- b+1

Fin Mientras

res <- res+ ((x^(2*c-1))/fac)*((-1)^(c+1))

c <- m+1

Fin Mientras

Escribir "el factorial es :", res

FinProceso
PROBLEMA 9

Proceso MCD

Definir a,b,c,r,mcd Como Real

Definir m,n,p Como Real

Escribir "ingrese 3 numeros ,en cada linea solo se puede escribir un numero"

Leer a,b,c

n <- 2

mcd <- 1

Mientras (r<=a) Y (r<=c) Hacer

m <- (a MOD r)

n <- (b MOD r)

p <- (c MOD r)

Mientras (m=0) Y (n=0) Y (P=0) Hacer

mcd <- mcd*r

a <- (a/r)

b <- (b/r)

c <- (c/r)

m <- (a MOD r)

n <- (b MOD r)

p <- (c MOD r)

Fin Mientras

r <- (r+1)

Fin Mientras

Escribir "el MCD es :",mcd

FinProceso
PROBLEMA 3)

Lea un número menor que 4000 conviértalo a un número romano .

//Programa Java que lee un número y lo convierte a números romanos

import java.util.Scanner;

public class NumerosRomanos {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int N;

do {

System.out.print("Introduce un número entre 1 y 3999: ");

N = sc.nextInt();

} while (N < 1 || N > 3999);

System.out.println(N + " en numeros romanos -> " + convertirANumerosRomanos(N));

//método para pasar a números romanos

public static String convertirANumerosRomanos(int numero) {

int i, miles, centenas, decenas, unidades;

String romano = "";

//obtenemos cada cifra del número

miles = numero / 1000;

centenas = numero / 100 % 10;

decenas = numero / 10 % 10;

unidades = numero % 10;

//millar

for (i = 1; i <= miles; i++) {

romano = romano + "M";

//centenas

if (centenas == 9) {

romano = romano + "CM";

} else if (centenas >= 5) {

romano = romano + "D";

for (i = 6; i <= centenas; i++) {

romano = romano + "C";


}

} else if (centenas == 4) {

romano = romano + "CD";

} else {

for (i = 1; i <= centenas; i++) {

romano = romano + "C";

//decenas

if (decenas == 9) {

romano = romano + "XC";

} else if (decenas >= 5) {

romano = romano + "L";

for (i = 6; i <= decenas; i++) {

romano = romano + "X";

} else if (decenas == 4) {

romano = romano + "XL";

} else {

for (i = 1; i <= decenas; i++) {

romano = romano + "X";

//unidades

if (unidades == 9) {

romano = romano + "IX";

} else if (unidades >= 5) {

romano = romano + "V";

for (i = 6; i <= unidades; i++) {

romano = romano + "I";

} else if (unidades == 4) {

romano = romano + "IV";

} else {
for (i = 1; i <= unidades; i++) {

romano = romano + "I";

return romano;

Problema 2)

Lea un número y forme otro número con las cifras en forma inverso 12345 y 54321

import java.util.Scanner ;
public class invertir_numero {
public static void main (String[]args) {
Scanner entrada = new Scanner (System.in);
int num , numero_invertido , division , resto_division;

System.out.println ("Ingrese un Numero [Min De Dos Cifras] " ) ;


num = entrada.nextInt();

numero_invertido = 0 ;
division = num ;
resto_division = 0;
while (division != 0) {
resto_division = division % 10 ;
division = division / 10 ;
numero_invertido = numero_invertido * 10 + resto_division;
}
System.out.println("El numero " + num + " invertido es " + numero_invertido);
}
}

You might also like