roccoC/C++ Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 (editado) DOMINGO, 17 DE FEVEREIRO DE 2013Qualquer número multiplicado pela sequência dos números naturais, obtem - se os seus Múltiplos,Veja abaixo a sequência dos Números Múltiplos de 2 até 5:2 x 0 = 02 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 10E assim vai, até onde você quizer.Portanto 2, 4, 6, 8 e 10 são Múltiplos de { 2 }, Partindo desta lógica ficou fácil criar este programa em linguagem C.Breve resumo do funcionamento:Na primeira tela O Programa começa pedindo um intervalo ao usuário para estabelecer os limites mínimos e máximos dos Múltiplos.Na segunda tela ele pede que se digite o número para verificação dos Múltiplosdentro dos limites estabelecidos previamente.Coloquei limites no programa para que não se use números muito longo, e ficou limitado até 10,se for digitado um número acima disto um beep é acionado junto com uma mensagem para o usuárioadvertindo para os limites do programa e volta para o início da função main fazendo o bom uso da recursividade ,e isto dentro de uma chave while bem imprementada.Más se for digitado um número dentro dos parâmetros estabelecidos o programa segue o seu curso entrando num blococomandado por um for que recebe auxílio de um if e uma variável que termina todoo processo, recebendo a carga nas costas de todos os Múltiplos do número solicitado.Eis as saídas deste Programa no cmd:http://1.bp.blogspot.com/-GNULpvOr5gc/USH-...1600/Img+05.JPGhttp://1.bp.blogspot.com/-EPKidgPjbMc/USEz...1600/Img+02.JPGhttp://4.bp.blogspot.com/-cvHlZ9omU-w/USH-...1600/Img+06.JPGhttp://1.bp.blogspot.com/-61DLjSRkHvQ/USH-...1600/Img+07.JPG Editado Fevereiro 18, 2013 por roccoC/C++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vega Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 (editado) ficou assim.#include <stdio.h> int main(void){ int d, a, m, numero, i, continua = 1; do{ numero = i = d = a = m = 0; printf("\nPROGRAMA MULTIPLOS\n\n"); printf("De: "); scanf("%d", &d); printf("Ate: "); scanf("%d", &a); printf("Entre com o numero de elementos entre 1 e 10: "); scanf("%d", &numero); if (numero >= 1 && numero <= 10) continua = 0; else printf("Numero inválido\n"); }while(continua); for (i = d; i <= a; i++) if (!(i % numero)){ printf("%d ", i); m++; } printf("\nEntre %d e %d temos %d multiplos\n", d, a, m); return 0; } Editado Fevereiro 18, 2013 por vega Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 roccoC/C++ Postado Fevereiro 18, 2013 Autor Denunciar Share Postado Fevereiro 18, 2013 Gostei!Então vou te passar um exercício que me deu um bom trabalho, más fiz:Crie um programa que leia uma sequência numérica do teclado, finalizando em -1, e que esta sequêncianão ultrapasse 10 algarismo, e mostre o fatorial de cada algarismo da sequência digitada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vega Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 Veja se é algo assim.No programa abaixo limitei o número para o cálculo fatorial em 12, para não ultrapassar os 4 bytes de unsigned long int.#include <stdio.h> unsigned long int fatorial(int); int main(void){ int i = 0, n = 0, v[12] = {}; printf("Entre com os digitos até 12 (-1 para sair)\n\n"); for(;;){ printf("#%d ", i + 1); scanf("%d", &v[i]); if (v[i] == -1) break; if (v[i] > 12) printf("Digito invalido, tente novamente\n"); else i++; if (i >= 12) break; } printf("\n"); for (n = 0; n < i; n++) printf("#%d Fatorial de %d = %lu\n", n + 1, v[n], fatorial(v[n])); printf("\n"); return 0; } unsigned long int fatorial(int valor){ if (!valor) return 1; else return valor * fatorial(valor - 1); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 roccoC/C++ Postado Fevereiro 18, 2013 Autor Denunciar Share Postado Fevereiro 18, 2013 Acho que eu não expliquei direito, a sequência é única finalizada por -1.você digita alguns números e finaliza com -1. Não pode dá enter em cada algarismo digitado.Depois o programa tem que mostrar o fatorial de cada algarismo da sequência digitada.Tenta aih, quando você conseguir te mostro o meu código.ABRAÇOS Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vega Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 Fiz algumas alterações no programa.Mas não ficou exatamente como sua descrição.Limitei a quantidade de dígitos para 10 e caso o usuário passe esse limite, o programa simplesmente ignora os digitos restantes.#include <stdio.h> #define MAX 10 unsigned long int fatorial(int); int main(void){ int i = 0; char v[MAX]={}; printf("Entre com a sequencia numerica (maximo de 10 digidos): "); gets(v); for (i = 0; i < MAX; i++) if (v[i] != 0) printf("#%d Fatorial de %d = %lu\n", i + 1, v[i] - '0', fatorial(v[i] - '0')); return 0; } unsigned long int fatorial(int valor){ if (!valor) return 1; else return valor * fatorial(valor - 1); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 roccoC/C++ Postado Fevereiro 18, 2013 Autor Denunciar Share Postado Fevereiro 18, 2013 (editado) Seu código ficou bom, más quando pressiona -1, o programa imprime os resultados e fecha imediatamente.só funciona bem se der enter.não está pegando o fatorial de 10, más o meu também não pega.meu código funciona muito bem com 9 algarismo não importando a ordem.Veja a diferença entre os dois códigos; A linguagem C é impressionante, se outrapessoa resolvesse este exercício usaria um outro método, más o importante mesmosão os resultados. Postei em novo um tópico, confere lá. Editado Fevereiro 18, 2013 por roccoC/C++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vega Postado Fevereiro 18, 2013 Denunciar Share Postado Fevereiro 18, 2013 (editado) Fiz algumas alterações no código.No caso do usuario digitar 0, o programa substitui para 10. Fiz uma pequena modificação na função fatorial também, para ficar com apenas uma linha.Em relação ao -1, o programa não verifica mesmo. Já espera que o usuário entre apenas com dígitos numéricos entre 0 e 9.#include <stdio.h> unsigned long int fatorial(int); int main(void){ int i = 0, num = 0; char v[10]={}; printf("\nPROGRAMA FATORIAL: ENTRE COM OS DIGITOS\n\n"); printf(" 1| 2| 3| 4| 5| 6| 7| 8| 9| 0\n"); printf("\n(0 = 10)\n\n: "); gets(v); for (i = 0; i < 10; i++){ num = !(v[i] - '0') ? 10 : v[i] - '0'; printf("#%d Fatorial de %d = %lu\n", i + 1, num, fatorial(num)); } return 0; } unsigned long int fatorial(int valor){ return !valor ? 1 : valor * fatorial(valor - 1); } Editado Fevereiro 18, 2013 por vega Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 roccoC/C++ Postado Fevereiro 19, 2013 Autor Denunciar Share Postado Fevereiro 19, 2013 (editado) Conferido, valeu! Editado Fevereiro 19, 2013 por roccoC/C++ Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
roccoC/C++
DOMINGO, 17 DE FEVEREIRO DE 2013
Qualquer número multiplicado pela sequência dos números naturais, obtem - se os seus Múltiplos,
Veja abaixo a sequência dos Números Múltiplos de 2 até 5:
2 x 0 = 0
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
E assim vai, até onde você quizer.
Portanto 2, 4, 6, 8 e 10 são Múltiplos de { 2 }, Partindo desta lógica ficou fácil criar este programa em linguagem C.
Breve resumo do funcionamento:
Na primeira tela O Programa começa pedindo um intervalo ao usuário para estabelecer os limites mínimos e máximos dos Múltiplos.
Na segunda tela ele pede que se digite o número para verificação dos Múltiplos
dentro dos limites estabelecidos previamente.
Coloquei limites no programa para que não se use números muito longo, e ficou limitado até 10,
se for digitado um número acima disto um beep é acionado junto com uma mensagem para o usuário
advertindo para os limites do programa e volta para o início da função main fazendo o bom uso da recursividade ,
e isto dentro de uma chave while bem imprementada.
Más se for digitado um número dentro dos parâmetros estabelecidos o programa segue o seu curso entrando num bloco
comandado por um for que recebe auxílio de um if e uma variável que termina todo
o processo, recebendo a carga nas costas de todos os Múltiplos do número solicitado.
Eis as saídas deste Programa no cmd:
http://1.bp.blogspot.com/-GNULpvOr5gc/USH-...1600/Img+05.JPG
http://1.bp.blogspot.com/-EPKidgPjbMc/USEz...1600/Img+02.JPG
http://4.bp.blogspot.com/-cvHlZ9omU-w/USH-...1600/Img+06.JPG
http://1.bp.blogspot.com/-61DLjSRkHvQ/USH-...1600/Img+07.JPG
Editado por roccoC/C++Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.