Ir para conteúdo
Fórum Script Brasil

Justiceira

Membros
  • Total de itens

    44
  • Registro em

  • Última visita

Posts postados por Justiceira

  1. Eu fiz algo meio maluco aqui pra tentar resolver este meu problema

    inicialmente eu pegaria as resistencias,e voltagens.

    #include<stdio.h>
    #include<math.h>

    int i, j, k, r[7], c[3], v[3];
    int linha1, linha2, linha3, i1, i2, i3;

    main(){
    kirchoff1();
    kirchoff2();
    kirchoff3();
    lin1();
    system("pause");
    return 0;
    }

    int kirchoff1(int x[i]){

    printf("Primeiro Circuito\n");
    for(i=1; i<=3;i++){
    printf("Informe R[%d]:",i);
    scanf("%d", &r[i]);
    }
    printf("V[1]:");
    scanf("%d", &v[i]);

    }

    int kirchoff2(int x[i]){
    printf("\nSegundo Circuito\n");
    for(j=1; j<=3;j++){
    printf("Informe R[%d]:",j);
    scanf("%d", &r[j]);
    }
    printf("V[2]:");
    scanf("%d", &v[j]);

    }

    int kirchoff3(int x[i]){
    printf("\nTerceiro Circuito\n");
    for(k=1; k<=3;k++){
    printf("Informe R[%d]:",k);
    scanf("%d", &r[k]);
    }
    printf("V[3]:");
    scanf("%d", &v[k]);

    }

    lin1(){
    linha1 = ((r[1]*i1)+((r[2]*i1)-(r[2]*i2))+((r[3]*i1)-(r[3]*i3))- v[1]);
    printf("Linha1: %d",linha1);
    return(linha1);
    }
    lin2(){
    linha2 = ((r[1]*i2)+(r[2]*i2)+((r[3]*i2)-(r[3]*i3))+((r[4]*i2)-(r[4]*i1))-v[2]);
    return(linha2);
    }

    lin3(){
    linha3 = ((r[1]*i3)+((r[2]*i3)-(r[2]*i1))+((r[3]*i3)-(r[3]*i2)) - v[3]);
    return(linha3);
    }
    [/codebox]

    So que no final eu queria que linha 1 por ex:

    linha1 = ((r[1]*i1)+((r[2]*i1)-(r[2]*i2))+((r[3]*i1)-(r[3]*i3))- v[1]);

    linha1 = ((6*i1)+((10*i1)-(10*i2))+((4*i1)-(4*i3))- 26);

    estivesse assim

    linha1 = ((20*i1)-(10*i2)-(4*i3)) =- 26;

    pois eu informaria de outra função o restante que é i1,i2,i3

    ninguém pode me ajudar??

  2. Ola pessoal estou com um problema de logica para resolver

    tenho as seguintes linhas

    6i1+10(i1-i2)+4(i1-i3)-26=0

    5i2+5i2+5(i2-i3)+10(i2-i1)=0

    => 6i1 + 10i1 - 10i2 + 4i1 -4i3 -26 = 0

    => 5i2 + 5i2 + 5i2 - 5i3 + 10i2 - 10i1 = 0

    em cada linha eu possuo um I1,I2 e I3 ,ficando assim depois

    20i1-10i2-4i3=26 => 20*i1-10*i2-4*i3=26

    -10i1+25i2-5i3=0 => -10*i1+25*i2-5*i3=0

    //Ficado assim eu poderei informar os valores de i1 e i2 e i3 e resolverei os sistema

    => 20 * i1 -10 * i2 - 4 * i3 = 26

    => -10 * i1 +25 * i2 - 5 * i3 = 0

    queria saber se é possivel isso?

    queria uma dica

  3. Sim no final da execução completa do programa prtendo descobrir as correntes I1,I2 e I3.

    Primeiro a entrada vai ser digitada da seguinte maneira..

    6i1+10(i1-i2)+4(i1-i3)-26=0

    5i2+5i2+5(i2-i3)+10(i2-i1)=0

    11i3+4(i3-i1)+5(i3-i2)-7=0

    porém terei que por exemplo na linha 1:Saber Quando é O Nº antes de I1 exemplo

    6i1 + (10i1 - 10i2) + ( 4i1 - 4i3) - 26 = 0

    e no final sei que na linha 1 terei 20i1

    porque é como esse I1 fosse X1 na matematica...farei um calculo de sistema linear para encontrar I1 que multiplicara por 20 e os outros da linha pra enfim resultar alguma coisa.

    E quanto a outra função calcular: É porque isso eu irei retornar para outra função que já vai fazer esse calculo de sistema linear para mim.

    Mas de qualquer forma vou tentar fazer por aqui e posto o codigo

  4. Ola pessoal estou com umproblema para resolver

    tenho as seguintes linhas

    6i1+10(i1-i2)+4(i1-i3)-26=0

    5i2+5i2+5(i2-i3)+10(i2-i1)=0

    11i3+4(i3-i1)+5(i3-i2)-7=0

    em cada linha eu possuo um I1,I2 e I3 ,ficando assim depois

    20i1-10i2-4i3=26 => 20*i1-10*i2-4*i3=26

    -10i1+25i2-5i3=0 => -10*i1+25*i2-5*i3=0

    -4i1-5i2+20i3=7 => -4*i1-5*i2+20*i3=7

    So que isso eu resolvi a mão queria fazer em C

    pensei em criar um vetor de 3 posições que armazena como texto as 3 primeiras linhas.

    E depois diferenciar atraves da tabela ascii quem é numero e quem é texto.Pois depois disso irei informar i1,i2 e i3 para outra função calcular.

    alguém poderia me dar umas dicas de como posso construir com vetor ou matriz??

  5. Oii pessoal estou com problema para executar este programinha,alguém poderia me dar uma força??

    Bom não consigo pegar os resultados e jogar para o procedimento entrar dados o que estou a errar?


    #define MAX 100

    float x[MAX], y[MAX];
    int n;

    void entra_dados();
    void RR();
    float calcula_soma(float u[MAX], float v[MAX]);

    void entra_dados(){
    int i;

    printf("Informe o Numero de Pares: ");
    scanf("%d", &n);
    for(i = 1; i <= n; i++){
    scanf("%f %f", &x[i], &y[i]);
    printf("X = %.1f Y = %.1f\n", x[i], y[i]);
    }
    RR();
    }

    void RR(){
    float somax, somax2, somaxy, somay, aux[MAX];
    float alfa1, alfa2, num1, den1, soma;
    int i;
    for(i = 1; i <= n; i++){
    aux[i] = 1;
    somax = calcula_soma(x, aux);//
    printf("Somax %d - %1.f\n", i,soma);//coloquei esta linha so para ver o que acontece com os results
    somay = calcula_soma(y, aux);
    somax2 = calcula_soma(x, x);
    somaxy = calcula_soma(x, y);
    num1 = somaxy - (somax * somay)/n;
    den1 = somax2 - (somax * somax)/n;
    alfa1 = num1/den1;
    alfa2 = (somay - alfa1 * somax)/n;
    }
    printf("Phi(x) = ", alfa1, "x + (", alfa2, ")");
    }

    float calcula_soma(float u[MAX],float v[MAX]){

    int i;
    float soma;

    soma = 0;

    for(i = 1; i <= n; i++){
    soma = (soma + u[i] * v[i]);
    //printf("Soma %1.f\n", soma);//Esta linha foi colocada para verificar também.
    }
    return(soma);
    }

    main(){
    entra_dados();
    }
    [/codebox]

  6. Tenho os seguintes botoes em meu formulario,NOVO,EDITAR.Quando clico em novo ele habilita os campos para que eu possa

    começar a preencher,salvo normalmente,porém depois disso se eu desejo editar algo ele so me retorna Você já esta no Ultimo

    Registro! e não sai disso. Onde estou errando?


    Private Sub Cmdnovo_Click() BOTAO NOVO
    'habilita alguns botoes
    TBatividade.AddNew
    proximo
    txtcodativ.Text = txtcodativ.Text + 1
    habilitarcampos'habilita os campos
    txtcodativ.SetFocus
    End Sub
    [/CODEBOX]

    [CODEBOX]
    Private Sub proximo()
    'move para o próximo registro
    TBatividade.MoveLast
    If TBatividade.EOF = True Then
    TBatividade.MovePrevious
    End If
    txtcodativ.Text = TBatividade("Codatividade")
    End Sub


    Private Sub Cmdedit_Click() BOTÃO EDITAR
    Dim edicao As Variant
    Dim edita As String
    If TBatividade.EOF = True And TBatividade.BOF = True Then
    MsgBox "A Tabela está Vazia!", vbExclamation, "Aviso!"
    Exit Sub
    End If
    On Error GoTo Primeiro
    edicao = TBatividade.Bookmark
    TBatividade.Index = "codatividade"
    edita = InputBox("Informe o Código da Atividade : ", "Localiza")
    If edita = Empty Then
    Exit Sub
    Else
    TBatividade.Seek "=", edita
    habilitarbotao
    End If
    If Not TBatividade.NoMatch Then
    'AQUI FICAM OS TEXTs
    Else
    MsgBox "Não localizado", vbExclamation, "Localiza"
    TBatividade.Bookmark = edicao
    End If
    Exit Sub
    Primeiro:
    If Err.Number = 3021 Then
    MsgBox "Você já esta no Ultimo Registro!", vbInformation, "Aviso!!"
    Exit Sub
    End If
    End Sub
    [/CODEBOX]

  7. Estou usando VB6 e DAO com access

    Preciso que ao preencher um formulario e for salvar na tabela TBev seja subtraido o valor de um campo de outra tabela TBat.

    É o seguinte no meu formulario tenho um campo(combobox)que se for escolhido sim

    deve ser subtraido nos campos total e vagadef e

    se for escolhido não vai apenas subtrair no campo total

    é porque no banco de dados access te preenchido alguns dados já e cada registro possui uma quantidade de pessoas q podem participar de determinado atividade

    exemplo

    cinema total=13 e vagsadef=5

    se for sim ficara cinema total=12 e vagsadef=4

    alguém pode me ajudar

  8. Tenho o seguinte codigo que queria que me bloqueasse os usuarios sem permissão a certos forms,mas ele me retorna sempre acesso negado


    'função de acesso
    Function VerificarUsuario(ByVal Usua As Long) As String
    Dim varAcesso As String
    Dim TBusuario As Recordset
    Set TBusuario = bancodedados.OpenRecordset("usuario", dbOpenTable)

    TBusuario.Index = "ID"
    TBusuario.Seek "=", (Usua)

    If TBusuario.EOF = False Then
    varAcesso = TBusuario!Padrão
    MsgBox varAcesso
    Else
    varAcesso = ""
    End If
    VerificarUsuario = varAcesso

    End Function
    'Botão que chama o Form3
    Private Sub Cmdpart_Click()
    If varAcesso = "A" Or varAcesso = "F" Then
    Form3.Show
    Else
    MsgBox "Acesso Negado!"
    End If
    End Sub

    'Botão que chama o Form4
    Private Sub Cmdativ_Click()
    If varAcesso = "A" Then
    Form4.Show
    Else
    MsgBox "Acesso Negado!"
    End If
    End Sub

    'Botão que chama o Form5
    Private Sub Cmdfunc_Click()
    If varAcesso = "A" Or varAcesso = "F" Then
    Form5.Show
    Else
    MsgBox "Acesso Negado!"
    End If
    End Sub

    'Botão que chama FORM6
    Private Sub Cmdinscri_Click()
    If varAcesso = "A" Then
    FormSUE6.Show
    Else
    MsgBox "Acesso Negado!"
    End If
    End Sub
    [/codebox]

    [codebox]
    Private Sub form_Load()
    Dim varAcesso As String
    varAcesso = VerificarUsuario(1)
    End Sub

    alguém pode me ajudar nisso

  9. Queria fornecer a meu usuario a possibilidade dele dar zoom no formulario

    andei pesquisando mas achei somente de redimencionar a tela do computador

    mas acredito que isso assustaria meu usuario,e ele deixaria de mexer em meu sistema.

    Este é um projeto que estou criando na faculdade

    é possivel isso??

    alguém tem alguma rotina pronta pra isso

    com ampliar,normal e reduzir

  10. Quando eu chamo o preencher combobox

    Eu precisava que na hora do cadastro (um exemplo)tenho um campo forum ,um area do forum e um moderador.

    E quando fosse clicar na combo forum escolhesse o nome de um existente(porem existem forum que tem moderador em mais areas ou seja esse campo tem repetição no access mas não pode ter no formulario vb.

    Bom cliquei no primeiro e vamos supor no proximo não filtrou apareceu tudo da coluna area,então escolho hardware e depois clico no combo moderador e escolho um que nem é do forum nem é da area selecionada.

    Estaria tudo errado,porem disponivel pra eu fazer(ate fiz pra testar).

    Como posso resolver isso???

  11. Resolveu o erro.

    Só que continuou do mesmo jeito

    Eu tenho um outro formulario que cadastra atividades e areas dela entre outras coisas.

    E pra não ter a tabela vazia eu cadastrei tres instituições só pra não ficar em branco

    BRADESCO

    CENTRAL DE TV

    SBT

    só essas

    mas quando clico no comboativ que recupera ela do banco de dados access aparecem assim e as vezes não.

    BRADESCO

    BRADESCO

    CENTRAL DE TV

    CENTRAL DE TV

    SBT

    SBT

    Não entendo,será sujeira isso??

  12. Tenho tres combobox,que recebem dados de um banco de dados access. Estou usando DAO

    Gostaria que quando fosse escolhida determinada opção numa combobox a outra fosse ativada/habilitada com os campos correspondentes a essa opção.

    igual em alguns cadastros que voce seleciona o estado tipo são PAULO e na proxima carrega as cidades de são paulo

    Coloquei o seguinte codigo


    Private Sub preencher_combo()
    TBatividade.MoveFirst
    Do While Not TBatividade.EOF
    Comboativ.AddItem TBatividade!InstitucaodaAtividade
    Comboarea.AddItem TBatividade!AreadoEntretenimento
    Comboloc.AddItem TBatividade!Local
    txtdata.AddItem TBatividade!Data
    txthorini.AddItem TBatividade!Horarioinicial
    txthorfim.AddItem TBatividade!HorarioFinal
    TBatividade.MoveNext
    Loop
    Erro:
    If Err.Number <> 0 Then
    MsgBox ("Erro #: " & Str(Err.Number) & Err.Description)
    Exit Sub
    End If
    End Sub
    [/codebox]

    [codebox]
    Public Sub CarregarCombo()
    Dim TBatividade As Recordset
    Set TBatividade = BancoDeDados.OpenRecordset("cadastro de atividades", dbOpenDynaset)
    Comboativ.Clear
    Do While TBatividade.EOF = False
    Comboativ.AddItem Trim(TBatividade("InstitucaodaAtividade"))
    Comboativ.ItemData(Comboativ.NewIndex) = TBatividade("codatividade")
    TBatividade.MoveNext
    Loop
    TBatividade.Close
    Set TBatividade = Nothing
    End Sub


    Private Sub Comboativ_Click()
    Comboarea.Enabled = True
    CarregarCombo
    End Sub
    [/codebox]

    Mas este me retorna TODAS as linhas do access de determinado campo,e as vezes aparece duas vezes(duplicado)

    Eu queria que fosse filtrado pra aparecer somente os diferentes no primeiro combobox e nos outros que aparecesse somente as opções q tem haver com a selecionada.

    alguém poderia me ajudar??

  13. tenho as tabelas, as colunas em negrito são as chaves primárias e as sublinhadas as estrangeiras.

    FUNCIONARIO (matricula, nome_func, anos_servico, salario, cod_orgao)

    ORGAO (cod_orgao, nome_orgao)

    DEPARTAMENTO (cod_depto, localizacao)

    DIVISAO (cod_div, nome_div)

    SUBORDINADO (cod_depto, cod_div)

    GERENCIA (mat_ger, cod_orgao) >> mat_ger está ligado a funcionário

    FUNC_COMUM (mat_func, cargo)

    PROJETO (cod_proj, nome_proj, inicio, fim)

    ALOCA (cod_proj, mat_func, data_alocacao)

    COORDENA (cod_projeto, mat_coord, data_alocacao) >> mat_coord está ligado a funcionário.

    SUPERVISIONA (mat_superior, mat_func)

    PROJ_TECNICO (cod_proj, area_pesquisa)

    Liste os nomes dos gerentes de divisão e o número e o nome da respectiva divisão.

    resolvi assim porem não sei se esta certo

    SQL>select nome_func, mat_ger, nome_div

    from funcionario,gerencia,divisao

    where funcionario.nome_func=gerencia.mat_ger and

    gerencia.mat_ger = divisao.nome_div;

    Liste matrícula, nome, anos de serviço de todos os gerentes de departamentos que recebem salários maiores que R$ 2.000,00 ou que possuam matrículas maiores que 30, e que tenham mais de 6 anos de serviço.

    SQL>select mat_ger,nome_func,anos serv, salario

    from gerencia, funcionario

    where gerencia.mat_ger=funcionario.nome_func and

    (salario>'2000,00')or (mat_ger>30)and(anos_serv>6);

    alguém pode me ajudar

  14. alguém poderia me explicar qual a função dessa linha(pensando numa matriz esparsa)

    aux.direita.valor=valor

    tipo temos varios zeros que não seriam inseridos porem o q essa linha acima faz??

    tipo estou no 1° zero ele é a vaiavel aux??

    0 6 0 0

    0 0 0 5

    1 0 0 8

    0 0 1 0

    seria uma por exemplo struct celula{

    float valor;

    struct celula *direita;

    };

  15. Tenho que fazer um algoritmo de inserção em matriz esparsa....Este abaixo

    Porem gostaria muito que olhassem porque preciso saber se esta logica é "entendida" por outras pessoas também...

    E se puderem dar dicas agradeço

    valeu!!

    Algoritmo insere

    Declara i,para,item.. // item e aux seriam ponteiros
    Recebe linha,coluna,valor //Recebe tem as variaveis que vêm de outra função.

    com valor nelas.
    INICIO
    item <- Celula() //Alocando celula
    item.valor <- valor
    item.linha <- linha
    item.coluna <- coluna
    Ponteiro_aux <- cabeca
    enquanto (i <= coluna) faça //Aqui a coluna tem valor 10
    INICIO
    | aux <- aux.direita
    FIM
    enquanto(para == 0)faça
    INICIO
    | SE(PARA == 0)E(aux.abaixo.coluna == -1)OU(aux.abaixo.linha>=linha)
    | INICIO
    | item.abaixo <- aux.abaixo
    | aux.abaixo <- item
    | para <- 1
    | FIM
    | ELSE
    | aux <- aux.abaixo
    | FIM_se
    FIM_enquanto
    aux <-cabeca
    i <- 1
    enquanto (i <= linha) faça //Aqui a linha tem valor 10
    INICIO
    | aux <- aux.abaixo
    FIM
    enquanto(para == 0)faça
    INICIO
    | SE(PARA == 0)E(aux.direita.linha == -1)OU(aux.direita.coluna>=coluna)
    | INICIO
    | item.direita <- aux.direita
    | aux.direita <- item
    | para <- 1
    | FIM
    | ELSE
    | aux <- aux.direita
    | FIM_se
    FIM_enquanto
    FIM
    [/codebox]

  16. Na verdade já tem isso da definição de NLINHAS e NCOLUNAS

    #define NLINHAS 10

    #define NCOLUNAS 10

    E quanto a erros não quer compilar diz que não esta declarado paux,prem,pnovo...entre outros

    Esse é o problema maior não sei se seria isso

    struct MATRIZ *paux;

    não entendi mesmo isso

    E só não troco de programa porque preciso entregar um trabalho com a função de inserção somente,porem tenho q fazer ele todo pra rodar e estar certo

  17. É que estou começando a aprender linguagem C,e num livro encontrei este codigo,já sei umas coisas e entendi por parte...so q o Dev C++ não esta compilando isso...

    E queria entender porque faz parte de eu criar um trabalho também

    Por isso postei o codigo todo mas só tem partes q não consegui entender para corrigir como a citada acima


    struct DADO {
    int valor;
    };

    struct CELULA {
    int lin;
    int col;
    struct DADO dado;
    struct CELULA *direita;
    struct CELULA *abaixo;
    };
    struct MATRIZ {
    struct CELULA linha[NLINHAS];
    struct CELULA coluna[NCOLUNAS];
    };

    void criar(struct MATRIZ matriz) {
    int i;
    for (i=0; i < NLINHAS; i++) {
    matriz.linha[i].direita = NULL;
    matriz.linha[i].abaixo = NULL;
    matriz.linha[i].lin = -1;
    matriz.linha[i].col = -1;
    }
    for (i=0; i < NCOLUNAS; i++) {
    matriz.coluna[i].direita = NULL;
    matriz.coluna[i].abaixo = NULL;
    matriz.coluna[i].lin = -1;
    matriz.coluna[i].col = -1;
    }
    }

    void limparMatriz(struct MATRIZ matriz) {
    int i;
    struct MATRIZ CELULA;
    for (i=0; i < NLINHAS; i++) {
    CELULA *paux = matriz.linha[i].direita;
    while (paux != NULL) {
    CELULA *prem = paux;
    paux = paux->direita;
    free(prem);
    }
    }
    }

    inserir(struct MATRIZ matriz, int lin, int col,struct DADO dado) {
    struct MATRIZ CELULA;
    if (lin < NLINHAS && col < NCOLUNAS) {
    ///////////inserir na linha
    //aponta para a posição anterior de inserção
    CELULA *paux = &matriz.linha[lin];
    //procurar posição de inserção
    while (paux->direita != NULL && paux->direita->col < col) {
    paux = paux->direita;
    }
    //célula já preenchida na martiz
    if (paux->direita != NULL && paux->direita->col == col)
    paux->direita->dado = dado;
    else {
    //cria nova célula
    CELULA *pnovo = (CELULA *) malloc (sizeof(CELULA));
    pnovo->dado = dado;
    pnovo->lin = lin;
    pnovo->col = col;
    //insere na linha
    pnovo->direita = paux->direita;
    paux->direita = pnovo;
    ///////////inserir na coluna
    paux = &matriz.coluna[col];
    //procurar posição de inserção
    while (paux->abaixo != NULL && paux->abaixo->lin < lin) {
    paux = paux->abaixo;
    }
    //insere na coluna
    pnovo->abaixo = paux->abaixo;
    paux->abaixo = pnovo;
    }
    return true;
    }
    return false;
    }

    remover(struct MATRIZ matriz, int lin, int col) {
    struct MATRIZ CELULA;
    if (lin < NLINHAS && col < NCOLUNAS) {
    //aponta para a posição anterior de remoção
    CELULA *paux = &matriz.linha[lin];
    //procurar posição de remoção
    while (paux->direita != NULL && paux->direita->col < col) {
    paux = paux->direita;
    }
    //se o elemento a direita é o procurado, remover
    if (paux->direita->col == col) {
    CELULA *prem = paux->direita;
    paux->direita = paux->direita->direita;
    free(prem);
    }
    return true;
    }
    return false;
    }

    consultar(struct MATRIZ matriz, int lin, int col,struct DADO dado) {
    struct MATRIZ CELULA;
    if (lin < NLINHAS && col < NCOLUNAS) {
    CELULA *paux = matriz.linha[lin].direita;
    while (paux != NULL) {
    if (paux->col == col) {
    dado = paux->dado;
    return true;
    }
    paux = paux->direita;
    }
    dado.valor = 0;
    return true;
    }
    return false;
    }
    [/codebox]

×
×
  • Criar Novo...