Pasar a c
(1/1)
Dumy:
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
Código:
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?
.xAk.:
Cita de: Dumy en 27 Octubre 2023, 20:31 pm
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.
Cita de: Dumy en 27 Octubre 2023, 20:31 pm
, ¿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.
Cita de: Dumy en 27 Octubre 2023, 20:31 pm
¿Por otro lado alguien sabe de algun codificador a C?
¿perdón? puedes explicarlo un poco mejor.
Muestranos tus progresos.
Atika:
Creo que esto es lo más parecido a lo que tu quieres en C:
Código
#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): ");
scanf("%d", &num);
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): ");
scanf("%d", &num);
}
return 0;
}
MOD: Etiqueta GeSHi
Eternal Idol:
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
Navegación