Ir para conteúdo
Fórum Script Brasil

leigan

Membros
  • Total de itens

    12
  • Registro em

  • Última visita

Tudo que leigan postou

  1. pessoal preciso saber qual o problema dessa expressão: if(i->y – inf->y / i->x – inf->x < j->y – inf->y / j->x – inf->x) está retornando o erro: stray '\150' in program alguém sabe o que significa? obrigado
  2. Bom, consegui achar de forma recursiva, achei que seria interessante postar a solução void multi(int a[2][2], int c[2][2]){ int b[2][2]; b[0][0] = (a[0][0]*c[0][0]) + (a[0][1]*c[1][0]); b[0][1] = (a[0][0]*c[0][1]) + (a[0][1]*c[1][1]); b[1][0] = (a[1][0]*c[0][0]) + (a[1][1]*c[1][0]); b[1][1] = (a[1][0]*c[1][0]) + (a[1][1]*c[1][1]); a[0][0] = b[0][0]; a[0][1] = b[0][1]; a[1][0] = b[1][0]; a[1][1] = b[1][1]; } int fibonacci(int n){ if(n == 1){ a[0][0] = 1; a[0][1] = 1; a[1][0] = 1; a[1][1] = 0; } c[0][0] = 1; c[0][1] = 1; c[1][0] = 1; c[1][1] = 0; if(n != 1){ fibonacci (n / 2); if(n %2 == 1){ multi(a, a); multi(a, c); }else{ multi(a, a); } } return a[0][0]; }
  3. exemplo de codigo usando switch case: #include <iostream> #include <cstdlib> using namespace std; int main (void){ int a, b, c, operacao; cout <<"Digite o 1o valor: "; cin >> a; cin ignore (); cout <<"Digite o 2o valor: "; cin >> b; cin ignore (); cout <<"Que operacao deseja realizar?\n\1 Adicao\t2 Subtracao\t3 Multiplicacao\t4 Divisao\n\n=>"; cin >> operacao; cin ignore (); system ("cls"); switch (operacao){ case 1: c=a+b; cout <<a<<" + "<<b<<" = "<<c<<"\n\n"; break; case 2: c=a-b; cout <<a<<" - "<<b<<" = "<<c<<"\n\n"; break; case 3: c=a*b; cout <<a<<" * "<<b<<" = "<<c<<"\n\n"; break; case 4: c=a/b; cout <<a<<" / "<<b<<" = "<<c<<"\n\n"; break; } system ("pause"); return EXIT_SUCCESS; } Fonte: http://www.tiexpert.net/programacao/c/swit...ase-default.php
  4. Boa tarde galera, consegui achar um codigo que resolve o problema, mas esta em java, alguém pode me ajudar a converter para c, já que não entendo de java import java.math.BigInteger; /** * * @author Halaby */ public class Power { // multiply 2x2 matrices public static BigInteger[][] multiply(BigInteger a[][], BigInteger b[][]) { BigInteger c[][] = new BigInteger[2][2]; c[0][0] = a[0][0].multiply(b[0][0]).add(a[0][1].multiply(b[1][0])); c[0][1] = a[0][0].multiply(b[0][1]).add(a[0][1].multiply(b[1][1])); c[1][0] = a[1][0].multiply(b[0][0]).add(a[1][1].multiply(b[1][0])); c[1][1] = a[1][0].multiply(b[0][1]).add(a[1][1].multiply(b[1][1])); return c; } // raise a 2x2 matrix a to the nth public static BigInteger[][] power(BigInteger a[][], long n) { BigInteger res[][] = new BigInteger[2][2]; res[0][0] = BigInteger.ONE; res[1][1] = BigInteger.ONE; res[0][1] = BigInteger.ZERO; res[1][0] = BigInteger.ZERO; if (n == 0) { return res; } while (true) { if (n % 2 == 1) { res = multiply(res, a); } n = n / 2; if (n == 0) { break; } a = multiply(a, a); } return res; } // compute the nth Fibonacci public static BigInteger fib(long n) { if (n == 0) { return BigInteger.ZERO; } BigInteger a[][] = new BigInteger[2][2]; a[0][0] = BigInteger.ONE; a[1][1] = BigInteger.ZERO; a[0][1] = BigInteger.ONE; a[1][0] = BigInteger.ONE; BigInteger res[][] = power(a, n - 1); return res[0][0]; } }
  5. então, já tinha visto "A potência de n é calculada elevando-se a matriz ao quadrado repetidas vezes." foi o que eu fiz, como entrada n = 10 a saida deveria ser 55 mas tive a seguinte saida: 1 1 1 0 2 1 1 1 5 3 3 2 34 21 21 13 1597 987 987 610 o programa bate com a sequencia de fibonacci: F(0) = 0...... F(1) = 1 ..... F(2) = 1 ..... F(3) = 2 F(4) = 3..... F(5) = 5 ..... F(6) = 8 ..... F(7) = 13 F(8) = 21 ..... F(9) = 34 ..... F(10) = 55 ..... F(11) = 89 F(12) = 144 ..... F(13) = 233 ..... F(14) = 377 ..... F(15) = 610 F(16) = 987 ..... F(17) = 1597
  6. tem um muito bom: Algoritmos em C Autor: Paulo Feofiloff Editora: Campus/Elsevier Ano: 2008-2009
  7. talvez usar um switch case para acessar o menu fique melhor
  8. não não, minha duvida é como usar a matriz para achar o n-ésimo numero de fibonacci bom consegui chegar até esse codigo, mas ele ainda não devolve o n-esimo, a ideia é fazer elevar a matriz² log n vezes, Então a pergunta é, o que falta nesse codigo para ele dar o resultado do n-esimo? #include <stdlib.h> #include <stdio.h> void imprime(int mz[2][2]){ for(int j = 0; j < 2; j++){ for(int k = 0; k < 2; k++){ printf("%d ",mz[j][k]); } printf("\n"); } printf("\n\n"); } int main(){ int mz[2][2]; mz[0][0] = 1; mz[0][1] = 1; mz[1][0] = 1; mz[1][1] = 0; int mzt[2][2]; int n = 10; imprime(mz); for(int i = n; i >= 1; i = i/2){ mzt[0][0] = mz[0][0]*mz[0][0] + mz[0][1]*mz[1][0]; mzt[0][1] = mz[0][1]*(mz[0][0] + mz[1][1]); mzt[1][0] = mz[1][0]*(mz[0][0] + mz[1][1]); mzt[1][1] = mz[1][1]*mz[1][1] + mz[0][1]*mz[1][0]; mz[0][0] = mzt[0][0]; mz[0][1] = mzt[0][1]; mz[1][0] = mzt[1][0]; mz[1][1] = mzt[1][1]; imprime(mz); } system("pause"); return 0; }
  9. Boa noite, o que quero saber é o seguinte, preciso calcular o n-ésimo fibonacci em log n, tem a dica de usar uma matriz, mas não sei como usa-la, quem souber e puder ajudar agradeço. a matriz 2x2: 1 1 1 0 abraço
  10. Essa estrutura de codigo ainda era desconhecida para mim Muito obrigado Abraços
  11. As tabelas são: mysql> desc materiais; +-----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+----------------+ | preço | float | YES | | NULL | | | nome | text | YES | | NULL | | | codigo | int(11) | NO | PRI | NULL | auto_increment | | tipo | varchar(20)| YES | | NULL | | +-----------+-------------+------+-----+---------+----------------+ 4 rows in set (0.01 sec) mysql> desc materiais_utilizados; +-------------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------+------+-----+---------+-------+ | codigo | int(11) | YES | | NULL | | | id_consulta| int(11) | YES | | NULL | | | qtd | int(11) | YES | | NULL | | +-------------+---------+------+-----+---------+-------+ 3 rows in set (0.01 sec) mysql> desc materiais consultas; Empty set (0.01 sec) mysql> desc consultas; +------------------------+-------------+------+-----+---------+------------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-------------+------+-----+---------+------------------+ | id_consulta | int(11) | NO | PRI | NULL | auto_increment| | nome_responsavel | varchar(25)| YES | | NULL | | | rg_responsavel | int(11) | YES | | NULL | | | data_hora | date | YES | | NULL | | | cod_paciente | int(11) | YES | | NULL | | | cro | int(11) | YES | | NULL | | | telefone_responsavel| int(11) | YES | | NULL | | | valor | int(11) | YES | | NULL | | +------------------------+-------------+------+-----+---------+------------------+ 8 rows in set (0.01 sec)
  12. Boa tarde pessoal, minha duvida é um seguinte, como listar o nome e código de todo os materiais utilizados na consulta mais cara da clinica; select nome, materiais.codigo, consultas.id_consulta,preço*qtd + valor from consultas, materiais_utilizados, materiais where consultas.id_consulta = materiais_utilizados.id_consulta and materiais_utilizados.codigo = materiais.codigo group by materiais_utilizados.id_consulta; Abraços
×
×
  • Criar Novo...