- 14-001:
Escribe una función SumaStrs
que reciba dos
números enteros expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor TOPE
y calcule la suma
en otra cadena de caracteres cuyo número
máximo de dígitos será también TOPE
.
Habrá que prever un carácter adicional para el terminador
de la cadena.
La función devolverá un booleano que indique si ha habido
sobrepasamiento en el resultado.
Escribe un programa que demuestre su utilización. Por ejemplo:
...
char res[TOPE+1]; /* TOPE + Terminador */
int sob; /* Sobrepasamiento */
...
sob = SumaStrs(res, "908234823", "35210382"); /* res = 908234823 + 35210382; */
Análisis y resolución
- 14-002:
Escribir una función SubsStrs
que reciba dos
números enteros expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor
TOPE
y calcule la resta en otra cadena de caracteres cuyo número
máximo de dígitos será también TOPE
.
Se considera que ambos operandos son positivos, es decir, no se considera
la posibilidad de que se utilice signo.
La función devolverá un booleano que indique si el resultado
es negativo.
Escribe un programa que demuestre su utilización. Por ejemplo:
...
char res[TOPE+1]; /* TOPE + Terminador */
int sig; /* Signo */
...
sig = SubsStrs(res, "234823", "95210382"); /* res = 234823 - 95210382; */
Análisis y resolución
- 14-003:
Escribe una función SumaConSigno
que reciba dos
números enteros expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor
TOPE
y calcule la resta en otra cadena de caracteres cuyo número
máximo de dígitos será también TOPE
.
Se considera la utilización de un signo
(carácter '-'
) para el
que habrá que reservar espacio, junto al terminador.
La función devolverá un booleano que indique ha habido
sobrepasamiento.
Si el resultado es negativo la cadena resultante empezará
por el signo.
Similarmente escribir una función SubsConSigno
que realice la resta con signo.
Escribe un programa que demuestre la utilización de ambas. Por ejemplo:
...
char res[TOPE+2]; /* TOPE + Signo + Terminador */
...
SumaConSigno(res, "234823", "-95210382"); /* res = 234823 + -95210382; */
...
SubsConSigno(res, "234823", "-95210382"); /* res = 234823 - -95210382; */
Análisis y resolución
- 14-004:
Escribe una función MultConSigno
que reciba dos
números enteros con signo expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor
TOPE
y calcule la multiplicación en otra cadena de caracteres
cuyo número máximo de dígitos será
también TOPE
.
Escribe un programa que demuestre su utilización. Por ejemplo:
...
char res[TOPE+TOPE+2]; /* TOPE + TOPE + Signo + Terminador */
...
MultConSigno(res, "234823", "-95210382"); /* res = 234823 * -95210382; */
- 14-005:
Escribe una función DiviConSigno
que reciba dos
números enteros con signo expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor TOPE
y calcule la
división entera en otra cadena de caracteres cuyo número
máximo de dígitos será también TOPE
.
Escribe un programa que demuestre su utilización. Por ejemplo:
...
char res[TOPE+2]; /* TOPE + Signo + Terminador */
...
DiviConSigno(res, "-48234823", "210382"); /* res = -48234823 / -210382; */
- 14-006:
Escribe una función RestConSigno
que reciba dos
números enteros con signo expresados como cadenas de caracteres de
tamaño arbitrario limitadas por un valor TOPE
y calcule el resto
de la división entera en otra cadena de caracteres cuyo número
máximo de dígitos será también TOPE
.
Escribe un programa que demuestre su utilización. Por ejemplo:
...
char res[TOPE+2]; /* TOPE + Signo + Terminador */
...
RestConSigno(res, "23234823", "-210382"); /* res = 234823 % -95210382; */