Título: Pasar a c
Publicado por: Dumy en 27 Octubre 2023, 20:31 pm
Hola Estoy intentando codifixar a a C este pseudocodigo, ¿Alguien puede indicarme algunos conceptos como cadena?, no estoy seguro a si se refiere a array var num, divisor1, divisor2, divisor3: entero; fvar
num := leerEntero( );
mientras (num ≠ -1) hacer buscadivisor1(num, divisor1, divisor2,divisor3);
si loEs(num, divisor1, divisor2,divisor3) entonces printaExito(num, divisor1, divisor2,divisor3
sino printaFracaso(num);
fsi
num := leerEntero( );
fmientras
falgoritmo
accion printaExito( ent a: entero, ent b: entero, ent c: entero, ent d: entero )
escribirCadena(‘El número: ‘); escribirEntero(a);
escribirCadena(‘ es igual a ‘);
escribirEntero(b);
escribirCadena(‘ multiplicado por ‘);
escribirEntero(c);
escribirCadena(‘ y por ‘);
escribirEntero(d);
fsi
faccion
accion printaFracaso(ent a: entero) escribirCadena(‘El número: ‘); escribirEntero(a); escribirCadena(‘ no tiene divisores diferentes de 1 que multiplicados sean igual a el. ‘); faccion
funcion loEs(ent x: entero,ent y:entero,ent z: entero, ent w: entero): booleano;
retorna x = (y * z * w); ffuncion
accion buscadivisor1(ent n: entero, sal d1: entero, sal d2: entero, sal d3: entero ) var
encontrado: booleano; fvar
encontrado:=falso;
d1:=2;
d2:=2;
d3:=2;
mientras d1<=(n div 2) y no encontrado hacer buscadivisor2 (n,d1,d2,d3); encontrado:= loEs (n,d1,d2,d3);
si no encontrado entonces
d1:=d1+1;
fsi fmientras faccion accion buscadivisor2( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero )
var
encontrado: booleano; fvar
encontrado:=falso;
d2:=2;
d3:=2;
mientras d2 <= (num div 2) y no encontrado hacer buscadivisor3(num,d1,d2,d3);
encontrado:= loEs (num,d1,d2,d3); si no encontrado entonces d2:=d2+1; fsi fmientras faccion
accion buscadivisor3( ent num: entero, ent d1: entero, sal d2: entero, sal d3: entero )
var
encontrado: booleano; fvar
encontrado:=falso;
d3:=2;
mientras d3 <= (num div 2) y no encontrado hacer
encontrado:= loEs (num,d1,d2,d3); si no encontrado entonces d3:=d3+1; fsi fmientras faccion
¿Por otro lado alguien sabe de algun codificador a C?
Título: Re: Pasar a c
Publicado por: .xAk. en 10 Diciembre 2023, 00:58 am
Estoy intentando codifixar a a C este pseudocodigo bien, estoy seguro que ya tienes el nombre de archivo y me gustaría ver cómo lo inicias. , ¿Alguien puede indicarme algunos conceptos como cadena?, no estoy seguro a si se refiere a array puedes verlo así, se trata de un carácter (8 bits), y uno al lado de otro hacen la cadena que llamas array. ¿Por otro lado alguien sabe de algun codificador a C? ¿perdón? puedes explicarlo un poco mejor. Muestranos tus progresos.
Título: Re: Pasar a c
Publicado por: Atika en 11 Diciembre 2023, 23:04 pm
Creo que esto es lo más parecido a lo que tu quieres en C: #include <stdio.h> #include <stdbool.h> void printaExito(int a, int b, int c, int d) { printf("El número: %d es igual a %d multiplicado por %d y por %d\n", a , b , c , d ); } void printaFracaso(int a) { printf("El número: %d no tiene divisores diferentes de 1 que multiplicados sean igual a él.\n", a ); } bool loEs(int x, int y, int z, int w) { return x == (y * z * w); } void buscadivisor1(int n, int *d1, int *d2, int *d3) { bool encontrado = false; *d1 = 2; *d2 = 2; *d3 = 2; while (*d1 <= (n / 2) && !encontrado) { // Lógica para buscadivisor2 encontrado = loEs(n, *d1, *d2, *d3); if (!encontrado) { (*d1)++; } } } void buscadivisor2(int num, int d1, int *d2, int *d3) { bool encontrado = false; *d2 = 2; *d3 = 2; while (*d2 <= (num / 2) && !encontrado) { // Lógica para buscadivisor3 encontrado = loEs(num, d1, *d2, *d3); if (!encontrado) { (*d2)++; } } } void buscadivisor3(int num, int d1, int d2, int *d3) { bool encontrado = false; *d3 = 2; while (*d3 <= (num / 2) && !encontrado) { encontrado = loEs(num, d1, d2, *d3); if (!encontrado) { (*d3)++; } } } int main() { int num, divisor1, divisor2, divisor3; printf("Ingrese un número (-1 para salir): "); while (num != -1) { buscadivisor1(num, &divisor1, &divisor2, &divisor3); if (loEs(num, divisor1, divisor2, divisor3)) { printaExito(num, divisor1, divisor2, divisor3); } else { printaFracaso(num); } printf("Ingrese un número (-1 para salir): "); } return 0; }
MOD: Etiqueta GeSHi
Título: Re: Pasar a c
Publicado por: Eternal Idol en 12 Diciembre 2023, 13:34 pm
Atika: por favor no hagas tareas ajenas, maxime cuando el usuario no lo pide ("¿Alguien puede indicarme algunos conceptos como cadena?").
Dumy: https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Cadenas_de_caracteres
|