Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida em programa C


ramon basilio

Pergunta

Bom dia a todos

Preciso fazer um programa que faça o seguinte:

É uma calculadora

Primeiro eu ponho um numero real que indicará quantos operadores vai ter na minha operação, por exemplo:

3 > NUMERO QUE INDICA QUANTOS OPERADORES POSSUI MINHA OPERAÇÃO

3+2+1

4

4-1-3+9

2

2+9

Se eu fizer numa string a operação (ex: 4-1-3+9) , existe alguma meio de separar os sinais de operação (+ e -) dos numeros, e depois contas os numeros?

Desde já agradeço a todos!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Então, existe um função na biblioteca ctype.h chamada isdigit(), onde você passa um char¹ e recebe um inteiro indicando se é ou não. Caso tenha dúvida de quantos elementos você terá basta observar que a expressão terá 2*(n-1) + 1 elementos

2(i-1) + 1
2 1+1 3 2*1 + 1 = 3
3 1+1+1 5 2*2 + 1 = 5
4 1+1+1+1 7 2*3 + 1 = 7
onde i é o numero de digitos passados. Deste modo você pode verificar se o numero passado é um digito e armazená-lo e verificar se os operadores passados são de adição ou subtração e realizar as devidas operações.
Espero ter ajudado.
Referencia para função isdigit
Nota (1) - o parâmetro passado é um inteiro, se for passado um char, ele será convertido para um inteiro que o representa na tabela ASCII
Editado por Septimus C
Link para o comentário
Compartilhar em outros sites

  • 0

Oi, pessoal. So novo em programação e to tendo problemas em construir esse programa sem ele se tornar complicado demais e sem nenhum problema. O programa e uma agenda de contatos e numero de telefone:

"O projeto consiste no desenvolvimento de uma mini-agenda telefônica usando tabelas
de dispersão (tabelas hash). Dessa maneira, o escopo do projeto é o seguinte:
1. Implementar uma tabela de dispersão que armazene apenas 2 dados: nome por
extenso de uma pessoa e o número de telefone. Assim, a mini-agenda a ser
desenvolvida deverá ser capaz de armazenar (mediante o uso da operação inserir)
uma lista de nomes e telefones (separados por vírgula) lidos de um arquivo. O
formato da lista de nomes e telefones é:
Allan da Silva,990240785
Luana Munhoz,989241258
Yuri Rodella, 999241257
Maria Blanco, 979246138
Bruno Holtz, 999231255
2. A inserção na tabela de dispersão deve ser feita considerando apenas os nomes das
pessoas e a função de espalhamento abaixo.
h(k, i) = (k+i)%m , com i=0...m -1
Onde k é o valor obtido a partir de uma função numérica aplicada sobre a cadeia de
caracteres (nome da pessoa) e m é um número primo. A função numérica a ser
usada deve retornar a média aritmética da soma do código ASCII dos sete primeiros
caracteres do nome da pessoa (sem incluir espaços em branco). O número primo m
a ser usado é 347 (m = 347).
3. A agenda telefônica implementada deve responder a consultas de busca. Assim, a
agenda deve ser capaz de ler um arquivo de nomes de pessoas e, para cada nome,
deve devolver o número do telefone da pessoa procurada, caso ela exista na agenda,
ou uma mensagem dizendo “usuário não existente”, caso o nome da pessoa
procurada não exista na agenda.
4. A agenda telefônica também deve responder à operação de remoção. Assim, a
agenda deve ser capaz de ler um arquivo de nomes de pessoas e, para cada nome,
caso exista na lista, deve-se remover tal pessoa da tabela de dispersão e devolver
uma mensagem dizendo “usuário removido”. Caso o nome da pessoa a ser
removida não exista na agenda deve-se mostrar a mensagem dizendo “operação
falhou, usuário não existente”.
5. Testar o funcionamento da agenda implementada da seguinte maneira:
• Para a operação de inserção (itens 1 e 2) usar o arquivo insercaoAgenda.txt.
• Para a operação de busca (item 3) usar o arquivo buscaAgenda.txt.
• Para a operação de remoção (item 4) usar o arquivo remocaoAgenda.txt. "

Minha maior dificuldade é em mexer com funções que envolvem os arquivos, além de não saber armazenar algo neles.

Esse exercício tá se tornando muito complicado, se utilizamos recursos menos sofisticados. alguém pode construir um exemplo ou ao menos a ideia?

vlw.

Editado por Katsumi
Link para o comentário
Compartilhar em outros sites

  • 0

tenho o mesmo exercicio e duvida neles ... vo mandar o q eufiz ate agra so o busca não ta funcionando ia postar ele aqui pra ver se alguém ajuda, so que a minha tem deletar e ediatar a mais

#include <stdio.h>
#include <string.h>

int cont=0;
char nome[9][59],numero[9][9];

int inseri ();
int deletau ();
int lista ();
int busca ();
int editar ();

int inseri(){
printf ("\nDigite o nome da pessoa a ser inserida:");
fflush(stdin);
scanf ("%s",&nome[cont][0]);
printf ("Digite agra o numero da pessoa:");
fflush(stdin);
scanf ("%s",&numero[cont][0]);
cont++;
return 0;
}

int deletau(){
cont--;
return 0;
}

int lista(){
int i;
for (i=0;i<cont;i++){
printf ("\n\nNome : %s",nome);
printf ("\nNumero : %s \n\n\n",numero);
}
return 0;
}

int busca(){
int i,j,aux2;
char aux[0][59];
printf ("\n\nDigite o nome procurado:");
scanf ("%s",&aux[0][0]);
for (i=0;i<cont;i++){
aux2=0;
for (j=0;j<60 && aux2==j;j++){
if (nome[j]==aux[0][j]){
aux2++;
}
j++;
}
if (j=aux2){
printf ("\n\nNome :%s \nNumero :%s\nCodigo :%d ",nome,numero,i);
}
}
}

int editar(){
int i;
i=busca();
printf ("\n\nDigite o numero do codigo da pessoa:");
scanf ("%d",&i);
printf ("\nNovo nome :");
fflush(stdin);
scanf ("%s",&nome[0]);
printf ("\nNovo numero :");
fflush(stdin);
scanf ("%s",&numero[0]);
return 0;
}

int main (void){
int op;
for (op=0;op!=6;){
printf ("\n\nEscolha a opçao desejada:\n1.inserir.\n2.deletar o ultimo.\n3.listagem\n4.busca\n5.editar.");
scanf ("%d",&op);
switch (op) {
case 1:
inseri();
break;
case 2:
deletau();
break;
case 3:
lista();
break;
case 4:
busca();
break;
case 5:
editar();
break;
case 6:
return 0;
}
}
return 0;
}


<script type='text/javascript'>window.mod_pagespeed_start = Number(new Date());</script>

Oi, pessoal. So novo em programação e to tendo problemas em construir esse programa sem ele se tornar complicado demais e sem nenhum problema. O programa e uma agenda de contatos e numero de telefone:

"O projeto consiste no desenvolvimento de uma mini-agenda telefônica usando tabelas
de dispersão (tabelas hash). Dessa maneira, o escopo do projeto é o seguinte:
1. Implementar uma tabela de dispersão que armazene apenas 2 dados: nome por
extenso de uma pessoa e o número de telefone. Assim, a mini-agenda a ser
desenvolvida deverá ser capaz de armazenar (mediante o uso da operação inserir)
uma lista de nomes e telefones (separados por vírgula) lidos de um arquivo. O
formato da lista de nomes e telefones é:
Allan da Silva,990240785
Luana Munhoz,989241258
Yuri Rodella, 999241257
Maria Blanco, 979246138
Bruno Holtz, 999231255
2. A inserção na tabela de dispersão deve ser feita considerando apenas os nomes das
pessoas e a função de espalhamento abaixo.
h(k, i) = (k+i)%m , com i=0...m -1
Onde k é o valor obtido a partir de uma função numérica aplicada sobre a cadeia de
caracteres (nome da pessoa) e m é um número primo. A função numérica a ser
usada deve retornar a média aritmética da soma do código ASCII dos sete primeiros
caracteres do nome da pessoa (sem incluir espaços em branco). O número primo m
a ser usado é 347 (m = 347).
3. A agenda telefônica implementada deve responder a consultas de busca. Assim, a
agenda deve ser capaz de ler um arquivo de nomes de pessoas e, para cada nome,
deve devolver o número do telefone da pessoa procurada, caso ela exista na agenda,
ou uma mensagem dizendo “usuário não existente”, caso o nome da pessoa
procurada não exista na agenda.
4. A agenda telefônica também deve responder à operação de remoção. Assim, a
agenda deve ser capaz de ler um arquivo de nomes de pessoas e, para cada nome,
caso exista na lista, deve-se remover tal pessoa da tabela de dispersão e devolver
uma mensagem dizendo “usuário removido”. Caso o nome da pessoa a ser
removida não exista na agenda deve-se mostrar a mensagem dizendo “operação
falhou, usuário não existente”.
5. Testar o funcionamento da agenda implementada da seguinte maneira:
• Para a operação de inserção (itens 1 e 2) usar o arquivo insercaoAgenda.txt.
• Para a operação de busca (item 3) usar o arquivo buscaAgenda.txt.
• Para a operação de remoção (item 4) usar o arquivo remocaoAgenda.txt. "

Minha maior dificuldade é em mexer com funções que envolvem os arquivos, além de não saber armazenar algo neles.

Esse exercício tá se tornando muito complicado, se utilizamos recursos menos sofisticados. alguém pode construir um exemplo ou ao menos a ideia?

vlw.

Editado por guilherme.c.velosso
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...