Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Conte

problema

Recommended Posts

galera tenho um trabalho de facul para fazer.

sao 7 atividades, as outras 6 ja fiz, so que essa nao tenho nem ideia de como fazer.

 

Desenvolva um programa que receba dois numeros inteiros. Calcule e mostre:

a- A soma dos numeros pares desse intervalo de numeros, incluindo os numeros digitados;

b- A multiplicação dos numeros impares desse intervalo de numeros, incluindo os numeros digitados;

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include <stdio.h>


int main()
{
	const char* decformat = "%d";
	int somapares;
	int prodimpares;
	const char* ask = "Entre com dois inteiros:\n";
	const char* out = "Soma dos pares: %d\nProduto dos impares: %d";

	__asm
	{
		mov edi,printf;
		mov ebx,ask;
		push ask;
		call edi;
		add esp,4;
	}

	__asm
	{
		mov edi,scanf;
		lea ebx,somapares;
		push ebx;
		mov ebx,decformat;
		push ebx;
		call edi;
		mov eax,somapares;
		mov [esp+32],eax;
		call edi;
		mov eax,[esp+32];
		mov edx,somapares;
		add esp,8;
		xor ebx,ebx;
		mov ecx,1;
		push eax;
		push edx;
		cmp eax,edx;
		jb loopsomapares;
		mov ecx,-1;
	loopsomapares:
		push eax;
		and eax,0x80000001;
		jns ptis;
		dec eax;
		or eax,0xFFFFFFFE;
		inc eax;
		ptis:
		test eax,eax;
		pop eax;
		jnz notpar;
		add ebx,eax;
		notpar:
		add eax,ecx;
		cmp eax,edx;
		jbe loopsomapares;
		mov somapares,ebx;
		pop edx;
		pop ebx;
		mov eax,1;
	loopprodimpares:
		push ebx;
		and ebx,0x80000001;
		jns ptis2;
		dec ebx;
		or ebx,0xFFFFFFFE;
		inc ebx;
		ptis2:
		test ebx,ebx;
		pop ebx;
		jz noteven;
		push edx;
		imul ebx;
		pop edx;
		noteven:
		add ebx,ecx;
		cmp ebx,edx;
		jbe loopprodimpares;
		mov prodimpares,eax;
	}

	__asm
	{
		mov edi,printf;
		mov ebx,prodimpares;
		push ebx;
		mov ebx,somapares;
		push ebx;
		mov ebx,out;
		push ebx;
		call edi;
		add esp,12;
		mov edi,getchar;
		call edi;
		call edi;
	}

	return 0;
}

 

Lógica básica de como fazer, espero que tenha ajudado. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.