Duvida Programacao [RESOLVIDO]

1. Duvida Programacao [RESOLVIDO]

Lucca de Freitas Vargas
luccavargas1995

(usa Outra)

Enviado em 03/10/2015 - 22:12h


Ola, tenho uma duvida na seguinte programaçao em pascal utilizando o Pascal.zim.
Eu consigo programar para realizar a multiplicacao, porem nao do jeito que é pedido, que é a melhor performance:

Modelo numérico
Seja a operação
5 * 4 = 20
O produto se faz somando 5 vezes (multiplicando) o número 4
(multiplicador).
4 + 4 + 4 + 4 + 4 = 20 (pior performance)
Seja a mesma operação
4 * 5 = 20
O produto se faz somando 4 vezes (multiplicando) o número 5
(multiplicador).
5 + 5 + 5 + 5 = 20 (melhor performance)

Segue a minha programacao ate agora:

Program Trab1 ;
var n1,n2: integer;

Begin
writeln ( 'Digite o valor de n1 e presione ENTER' );
read(n1);
writeln ( 'Digite o valor de n2 e presione ENTER' );
read(n2);
writeln( 'A Multiplicação dos dois números é: ',n1*n2);
readkey;
End.

Se alguem souber como fazer, fico agradecido

ATT



  


2. MELHOR RESPOSTA

Gabriel Oliveira da Silva
Gabrielz

(usa Arch Linux)

Enviado em 03/10/2015 - 23:04h

Código consertado:
#include <stdio.h>

int main(int argc, char *argv[]){
int num1, num2, resultado = 0;
printf("Numero 1: ");
scanf("%d", &num1);

printf("Numero 2: ");
scanf("%d", &num2);

if(num1 > num2){ // Este if checa se num1 é maior que num2
for(int i = 1; i <= num2; i++){
resultado += num1;
}
printf("%d\n", resultado); // Exibe o resultado do produto
}

else{ // Este else é executado quando num2 é maior que num1
for(int i = 1; i <= num1; i++){
resultado += num2;
}
printf("%d\n", resultado); // Exibe o resultado do produto
}


return 0;
}


Espero que tenha pelo menos compreendido a lógica, uma vez que não programo em Pascal...

3. Re: Duvida Programacao [RESOLVIDO]

Gabriel Oliveira da Silva
Gabrielz

(usa Arch Linux)

Enviado em 03/10/2015 - 22:23h


Hummm... deixe-me ver se eu entendi: você deseja obter o resultado de uma multiplicação sem multiplicar, apenas fazendo adição, certo? No entanto, deseja fazer o mínimo de cálculo possível? Exemplo: 2 * x, com x > 2 em Z (conjunto dos inteiros). Mais viável fazer x + x, do que 2 + ele mesmo não sei quantas vezes.


4. Re: Duvida Programacao [RESOLVIDO]

Lucca de Freitas Vargas
luccavargas1995

(usa Outra)

Enviado em 03/10/2015 - 22:34h

Exatamente. Ja tenho ate o fluxograma, porem n consigo desvendar esse "misterio" kkkk

Segue o link do fluxograma:
https://matheuslin.files.wordpress.com/2010/03/02_multiplicacao1.png



5. Re: Duvida Programacao [RESOLVIDO]

Gabriel Oliveira da Silva
Gabrielz

(usa Arch Linux)

Enviado em 03/10/2015 - 22:48h


Moço, fiz agora um programa em C que faz "meio" que isso:

#include <stdio.h>

int main(int argc, char *argv[]){
int num1, num2;
printf("Numero 1: ");
scanf("%d", &num1);

printf("Numero 2: ");
scanf("%d", &num2);

if(num1 > num2){ // Este if checa se num1 é maior que num2
for(int i = 1; i < num2; i++){
num1 += num1;
}
printf("%d\n", num1); // Exibe o resultado do produto
}

else{ // Este else é executado quando num2 é maior que num1
for(int i = 1; i < num1; i++){
num2 += num2;
}
printf("%d\n", num2); // Exibe o resultado do produto
}


return 0;
}


Fiz na correria, logo, não testei corretamente ainda como ficou... mas ele é a base para seu problema
Dei como resultado de num1 o valor 3 e num2 o valor 2 e saiu na telinha o valor 6.
*Não sei Pascal, hehehe



6. Re: Duvida Programacao [RESOLVIDO]

Gabriel Oliveira da Silva
Gabrielz

(usa Arch Linux)

Enviado em 03/10/2015 - 22:50h


Ah, tinha um erro ali no numx += numx... um dos números necessariamente precisa ser 2... logo, acho que precisamos de uma variável com o valor da cópia da variável caso num1 e num2 sejam maiores que 2. Vou ter que sair, já já volto. Enquanto isso, os colegas consertam o que eu fiz, e talvez traduzam o código pro Pascal.


7. Re: Duvida Programacao [RESOLVIDO]

Lucca de Freitas Vargas
luccavargas1995

(usa Outra)

Enviado em 03/10/2015 - 23:14h


Valeu mano


8. Re: Duvida Programacao [RESOLVIDO]

Gabriel Oliveira da Silva
Gabrielz

(usa Arch Linux)

Enviado em 03/10/2015 - 23:19h

luccavargas1995 escreveu:


Valeu mano


Não se esqueça de marcar o tópico como resolvido e premiar melhor resposta.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts