Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Semestre/Año: 1/2016
2.-) Dado un arreglo A de enteros positivos de dimensión N, (al definir un arreglo se debe
indicar el total de elementos N que lo formaran, a este total N se le conoce como
Dimensión del Arreglo), calcular la “suma” de los elementos del mismo y almacenar el
resultado en memoria en una variable llamada “suma”.
5.-) Contar el número de elementos que sean “pares” y de los “impares” de un arreglo A
de enteros positivos de dimensión N y almacenar el resultado en las variables de memoria
llamadas respectivamente “pares” e “impares”.
7.-) Dado un arreglo A de enteros positivos de dimensión N, crear un nuevo arreglo que
contenga los números de dicho arreglo que sean múltiplos de 3.
14.-) Dado un arreglo A de enteros con signo de dimensión N. El programa debe “duplicar”
el contenido de cada elemento del arreglo, almacenando el resultado en la misma posición
del arreglo original A.
15.-) Dado dos arreglos A y B de enteros con signo de la misma dimensión N, crear un
nuevo arreglo llamado C donde C[i] = A[i] + B[i]
16.-) Dado dos arreglos A y B de enteros con signo de la misma dimensión N, crear un
nuevo arreglo C donde C[i] = A[i] / 2 + 2*B[i]
20.-) Definir las variables inicializadas: 0x80, 0x40 a nivel de “byte” y las siguientes
variables 0x2000, 0x8000 a nivel de “word” y realizar un programa que realice las
siguientes multiplicaciones sea considerando en un caso como números sin signo (SS) y en
otro como números con signo (CS):
a) 0x80 * 0x40
b) 0x8000 * 0x2000
c) 0x80 * 0x8000
21.-) Definir las variables inicializadas: 0x80, 0x16 a nivel de “byte” y las siguientes
variables 0x2000, 0x10, 0x1000 a nivel de “word” y realizar un programa que realice las
siguientes divisiones, sea considerando en un caso como números sin signo (SS) y en otro
como números con signo (CS):
a) 0x2000 / 0x40
b) 0x80 / 0x16
c) 0x100000 / 0x2000
d) 0x2000 / 0x1000
1-)
// código en lenguaje C
#include <stdio.h>
int a, b, c;
a=27;
b=541;
main()
{
c= a+b;
b=a;
}
2-)
#include <stdio.h>
// código en lenguaje C
int a, b, c;
a= 27;
b= 541;
c= 32;
main()
{
c= (a+b)/c;
}
3-)
#include <stdio.h>
//código en lenguaje C
unsigned a = 1;
unsigned b = 2;
unsigned c = 3;
main() {
a = b + c;
if (a == 4)
b = 3;
else
c = a & b;
while (a > 0) a--;
}
4-)
#include <stdio.h>
// código en lenguaje C
int a, i;
a = 0;
main()
{
for(i=0; i<10; i++);
a = a + 1;
}
5-)
#include <stdio.h>
// código en lenguaje C
//-------funcion---------
int funcion(int a, int b, int c)
{
return a*b + c;
}
//-------main------------
int main()
{
funcion(1, 2, 3);
return 0;
}
6-)
// código en lenguaje C
#include <stdio.h>
void main()
{
f(5, 10, &suma, &producto);
};
gcc –o P1 P1.c
Una vez que el compilador creo el programa ejecutable “P1.exe”, cargar dicho programa
ejecutable en el “OllyDbg” y comparar el programa ensamblador creado por el compilador
de lenguaje C “gcc”, con el programa escrito en forma manual del primer punto.