-
Posts
26 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Cortella postou
-
Boa noite, Preciso desenvolver um programa que envolve resolução de sistemas lineares, porém preciso salvar as variáveis com 4 casas decimais para que no final gere um erro e atraves desse erro eu vou compara a eficiencia dos métodos. Porém eu desenvolvi todo o programa e por considerar várias casas decimais o calculo é bem mais preciso do que deveria ser. Gostaria de saber como fazer isso em c++; Resumindo: preciso que a atribuição: double x = 3.66666666; salve na variável x o valor = 3.6667; OBS: O uso do setprecision() nao resolve o problema para mim , pois dessa forma ele apenas exibe na tela o valor arredondado, preciso que ele salve na variável o valor arredondado. Obrigado!
-
Olá @arfneto , Não posso derivar adulto de Crainça simplesmente porque preciso implementar exatamente esse diagrama UML =/. E sim esse comentário é para dizer que usuário é abstrato!!
-
Ola, estou com um trabalho da faculdade para fazer e preciso implementar o seguinte diagrama UML: Meu problema é o seguinte quando implemento a Classe Crianca ela possui um atributo do tipo Adulto, e a classe Adulto possui um atributo do tipo Crianca. O que ocorre é no momento da compilacao parece que se defino antes a Classe Crianca o compilador acusa que Adulto nao esta definido( imagino que isso ocorra devido o compilador compilar linha-a-linha e como a Classe Crianca foi definida primeiro ainda não há um registro da Classe Adulto. Se inverto a ordem de inclusão o compilador da o mesmo problema acusando que crianca ainda nao está definido. Então o que fazer? Segue abaixo o cabeçalho simples do meu codigo sem funcoes da logica de vendas implementadas! namespace Entities{ //----------------------------- Classe-base usuario ----------------------------------- class Usuario{ protected: int id_; string nome_; int idade_; float saldo_; public: //Construtor padrão Usuario(); //Cria novo usuario //Pre-Condicao: Nao pode ser instanciado como Usuario Usuario(int id,string nome,int idade,float saldo); //Retorna ID do usuario int getId(); //Retorna nome do usuario string getNome(); //Retorna idade do usuario int getIdade(); //Retorna saldo do usuario float getSaldo(); //Modifica saldo do usuario void setSaldo(float valor); //Imprime dados do Usuario //Funcao virtual pura -> define Usuario como classe abstrata virtual void toString() = 0; }; //----------------------------- Classe Adulto ----------------------------------- class Adulto : public Usuario{ protected: Crianca *dependentes_; int numDependentes_; public: //Cria novo usuario adulto Adulto(); //Cria novo usuario com atributos Adulto(int id,string nome,int idade,float saldo); //Cria adulto co dependentes Adulto(int id,string nome,int idade,float saldo, Crianca dependentes[], int numDependentes); //Torna Adulto uma classe instanciavel void toString() override; //Adiciona dependente void addDependente(Crianca *dependente); }; //----------------------------- Classe Crianca ----------------------------------- class Crianca: public Usuario{ private: Adulto *responsavel_; public: //Construtor padrão Crianca(); //Cria novo usuario Crianca Crianca(int id,string nome,int idade,float saldo,Adulto *responsavel); //Sobrescreve funcao toString e permite que Crianca seja uma classe instanciavel //Imprime na tela dados da crianca void toString() override; }; //----------------------------- Classe Idoso ----------------------------------- class Idoso : public Adulto{ public: //Cria um novo Idoso Idoso(); //Cria um novo idoso pre definiddo Idoso(int id,string nome,int idade,float saldo); }; } #endif //USUARIO_H
-
Ola, sou iniciante em linguagem C, estou com um trabalho da faculdade para fazer, coloquei esses printf no meu codigo para debuggar, porém gostaria de saber porque o programa nao volta pro primeiro while sendo que a condicao de parada nao foi satisfeita. Desde já agradeço a atencao dos senhores! ENUNCIADO: Trabalho Pratico 1 - União dos Bancos Com a modernizacão dos sistemas bancários, é possível realizar transações financeiras de maneira simples pela Internet. Geralmente cada banco recebe um código de identicação que é utilizado pelos sistemas bancários. Uma característica comum no mercado financeiro é a fusão de bancos, onde dois bancos tornam-se um só. Logo, para manter a compatibilidade dos sistemas bancários qualquer um dos códigos antigos pode ser utilizado para se referir ao novo banco. Como o processo de fusão tem sido cada vez mais comum, muitas vezes é difícil identificar se dois códigos estão se referindo ao mesmo banco ou não. Tarefa Escreva um programa que, dada uma série de fusões entre bancos, responde a várias consultas informando se dois códigos bancários se referem ao mesmo banco. Entrada A primeira linha da entrada contém dois inteiros N e K, indicando o número de bancos e o número de operações efetuadas (1 N 100:000, 1 K 100:000). Os códigos de cada um dos N bancos, inicialmente, s~ao os inteiros de 1 até N. Cada uma das K linhas seguintes descreve ou uma fus~ao entre bancos ou uma consulta. • Uma fusão é descrita na entrada como uma linha que começa com o caractere `F', um espaço, e dois códigos bancários, que se referem aos dois bancos que estão sofrendo a fusão, separados por um espaço em branco; • Uma consulta é descrita na entrada como uma linha que começa com o caractere `C', um espaço, e os dois códigos a serem consultados, separados por um espaço em branco. Os códigos bancários consultados são sempre distintos. As fusões são sempre realizadas entre bancos diferentes, e todos os códigos bancários fornecidos na entrada são válidos. A leitura da entrada deve parar quando N = 0 e K = 0. Exemplo de Entrada 3 5 C 1 2 F 1 2 C 1 2 F 1 3 C 1 3 4 5 F 1 2 F 2 3 C 1 3 F 2 4 C 1 4 4 4 F 1 2 F 3 4 F 1 3 C 2 4 0 0 Saída Seu programa deve imprimir uma linha para cada consulta na entrada. Caso os dois códigos bancários consultados se refiram ao mesmo banco, imprima uma linha contendo o caractere `S'; caso contrário, imprima uma linha contendo apenas o caractere `N'. Ao final das K consultas, imprima uma linha em branco. Não é necessário identificar cada saída com `Teste i'. Exemplo de Saída: N S S S S S (esta saída corresponde ao exemplo de entrada acima) //Trabalho_1 #include <stdio.h> #include <stdlib.h> #include <string.h> void adicionaFinalVetor(int vetor[],const int tamanho,int x){ int *ponteiro; int *finalVetor = vetor+tamanho; int *aux= finalVetor++; *aux = x; } int existe(int vetor1[],int vetor2[],const int tamanho,int entrada1,int entrada2){ int *ponteiro1,*ponteiro2; int *final1 = vetor1+tamanho; int *final2 = vetor2+tamanho; ponteiro1 = vetor1; ponteiro2 = vetor2; while(ponteiro1 < final1 && ponteiro2 < final2){ if((*ponteiro1 == entrada1 && *ponteiro2 == entrada2) || (*ponteiro1 == entrada2 && *ponteiro2 == entrada1)){ return 1; } ponteiro1++; ponteiro2++; } return 0; } int main(){ int n=1,k=1; char saida[10000] = "\0"; while((n!= 0) && (k!= 0)){ printf("entra no primeiro while \n"); scanf("%d %d",&n,&k); printf("n = %d k = %d \n",n,k); int fusao1[10000],fusao2[10000]; int tamanho=0; while(k !=0){ printf("entra segundo while \n"); int banco1,banco2; char operacao[2]; scanf("%s %d %d", &operacao,&banco1,&banco2); printf("op = %s \n", operacao); if(operacao[0] == 'F'){ printf("banco1 = %d, banco2 = %d \n",banco1,banco2); adicionaFinalVetor(fusao1,tamanho,banco1); adicionaFinalVetor(fusao1,tamanho,banco2); tamanho++; } if(operacao[0] =='C'){ printf("banco1 = %d, banco2 = %d \n",banco1,banco2); if(existe(fusao1,fusao2,tamanho,banco1,banco2) == 1){ strcat(saida,"S"); }else{ strcat(saida,"N"); } } k--; printf("k = %d \n",k); } strcat(saida,"\n"); printf("n = %d",n); } printf("%s",saida); system("pause"); return 0; } adicionado 41 minutos depois RESOLVI!! era apenas um and que devia ser or =s.
-
Java Indicação de material EJB: Entity Beans
Cortella respondeu ao tópico de Cortella em Java/Android SDK
Alguem sabe onde encontro a lib jsf-ibm.jar? -
Java Auxilio em um exercício de programação orientada a Objetos, alguém ai ?
Cortella respondeu ao tópico de Nivaldo Reis2019 em Java/Android SDK
Ola @Nivaldo Reis2019 nao compreendi qual é o objetivo do exercicio, se voce puder me mostra um enunciado poderia te ajudar, boa noite -
Java Problema com Opencv Incompatibilidade JAVA
Cortella respondeu ao tópico de Joice Fernanda ferreira em Java/Android SDK
Olá, já tentou alguma outra versão? Caso nao tenha tentado recomendo que tente, nao se esqueça de incluir no path do projeto, confira o caminho dos imports mesmo se a IDE nao acusar erros ele esta acusando um erro que geralmente esta relacionado com algumas das opções a cima, porém não tenho experiencia suficiente para ajudar alem disso, Boa sorte! -
Ola usando linguagem C, tente pesquisar sobre a biblioteca <dirent.h> ela possui algumas funções que ajudariam muito em seu problema, caso tenha duvidas sobre os tipos especificos da biblioteca, há uma postagem no github oficila dela explicando com detalhes o uso de cada função e conversão de tipos
-
ola gostaria de saber se alguém tem algum material para indicar sobre : EJB: Entity Beans com Container-Managed Persistence, estou precisando estudar mas não sei se o material que estou utilizando é bom, então se alguém tiver algo para indicar ficaria agradecido
-
Olá o tipo string está definido apenas na biblioteca <string> exclusiva para c++, em c utilizamos vetores de caracteres para armazenar o tipo string. Como vetores armazenam um tipo por posição uma palavra de 20 letras poderia ser representada por palavra[21], lembre-se que a ultima posição por padrão é o carácter '\0' que marca o final da string armazenada, aloque posições na memória para os tipo char declarados: char result[25], nome[40], estado[20], cidade[20], estado_nasceu[20], nome_login[20], senha[20], senha_login[20]; Observe que nesse exemplo a cidade só poderá armazenar 19 caracteres(1 reservado ao '\0'), caso o usuário digite algo com mais que 20 caracteres, apenas os 20 primeiros serão armazenados. Para imprimir uma string você deve fazer um for que percorre cada posição do vetor e vai ate o carácter '\0' ou usar o método lenght(), declarado em <string.h>. Qualquer duvida estou a disposição
-
Preciso de opiniões - computador gamer (R$3.500,00)
Cortella respondeu ao tópico de Tatii em Montagem e upgrade de computadores de mesa
@Rodrigo Lazarotto Concordo plenamente com voce amigo -
Java Erro - "cannot be resolved to a type"
Cortella respondeu ao tópico de Cortella em Java/Android SDK
@bngomes Olá, muito obrigado pela resposta, realmente era um problema de import, resolvi assim: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import ="java.util.ArrayList"%> <%@ page import ="java.util.List"%> <%@ page import ="br.com.cortella.entidades.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <table border="1"> <tr bgcolor = "#EAEAEA"> <th> ID </th> <th> Nome </th> <th>Login</th> <th> Senha </th> <th> Acao </th> </tr> <% List<Usuario> lista = (List<Usuario>) (request.getAttribute("lista")); for(Usuario usu : lista){ %> <tr> <td> <%= usu.getId() %></td> <td> <% out.print(usu.getNome()); %></td> <td> <%= usu.getLogin() %></td> <td> <%= usu.getSenha() %></td> <td> <a href = "usucontroller.do?acao=exc&id=<%= usu.getId() %>"> Excluir </a> | <a href = "usucontroller.do?acao=alt&id=<%= usu.getId() %>"> Alterar </a> </td> </tr> <% } %> </table> </body> </html> Obriagadoo -
Ola, sou iniciante em java web e no curso que estou fazendo me foi solicitado a criação do seguinte jsp: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <table border="1"> <tr bgcolor = "#EAEAEA"> <th> ID </th> <th> Nome </th> <th>Login</th> <th> Senha </th> </tr> <% List<Usuario> lista = (List<Usuario>) (request.getAttribute("lista")); for(Usuario usu : lista){ %> <tr> <td> <%= usu.getId() %></td> <td> <% out.print(usu.getNome()); %></td> <td> <%= usu.getLogin() %></td> <td> <%= usu.getSenha() %></td> </tr> <% } %> </table> </body> </html> Porém, nas linhas: List<Usuario> lista = (List<Usuario>) (request.getAttribute("lista")); for(Usuario usu : lista){ os erros "- List cannot be resolved to a type" e "- Usuario cannot be resolved to a type" ocorrem, gostaria de saber como resolver! Segue a classe Usuario: package br.com.cortella.entidades; public class Usuario { private int id; private String nome; private String login; private String senha; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } } Desde já agradeço atencao!
-
Ola, Sou iniciante em java e estou com dificuldades para estabelecer a conexão com o banco de dados a exceção "No suitable driver found for jdbc:postgresql://localhost/java-web1DataBase", porém baixei o driver e coloquei em "..java-web1\WebContent\WEB-INF\lib" a versão bichada foi o postgresql-42.2.6.jar, mas pelo visto o compilador nao o reconheceu o que devo fazer? Segue meu codigo de conexao: package br.com.cortella.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conexao { public static Connection getConnection() { Connection con = null; try { String url = "jdbc:postgresql://localhost:5432/java-web1DataBase"; String user = "postgres"; String password = "postgress"; con = DriverManager.getConnection(url,user,password); System.out.println("Conexao estabelecida!"); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("Erro ao conectar " + e.getMessage()); } return con; } }
-
@Flávio Pedroza Ja havia feito isso, porém quando adiciono essa definicao gera 17 erros novos adicionado 7 minutos depois Nunca usei declaracao de namaspace, poderia ser isso?
-
Olá Preciso fazer um simulador de loja em c++, sou iniciante e fiquei preso nos seguintes erros: • Erro C2011 'Pedidos': redefinição do tipo 'class' • Erro C2027 uso de tipo indefinido 'Pedidos' em main: Cliente* c1 = new Cliente("Bruno", "105.158.525-13", "[email protected]", "abc", "1234", "Rua Sao Lazaro", 1404, 501, "31035580", "BH"); Publicacao* p1 = new Publicacao("Arte", 19.90, "joao", "Semanal", "21/05/2018"); Pedidos* pedido1 = new Pedidos(p1, c1); Classe Cliente: #ifndef CLIENTE_H #define CLIENTE_H #include "Endereco.h" #include <string> using std::string; using std::to_string; class Cliente { private: string nome_; string login_; string senha_; Endereco *endereco_; string cpf_; string email_; public: Cliente(); //Cadastra novo cliente Cliente(string nome, string cpf, string email, string login, string senha, string rua, int numero, int ap, string cep, string cidade); //Retorna dados do cliente string dados(); }; #endif #include "Cliente.h" Cliente::Cliente() { endereco_ = NULL; } Cliente :: Cliente(string nome, string cpf, string email, string login, string senha, string rua, int numero, int ap, string cep, string cidade) { this->nome_ = nome; this->login_ = login; this->senha_; this->cpf_ = cpf; this->email_ = email; endereco_ = new Endereco(rua,numero,ap,cep,cidade) ; } string Cliente :: dados() { return "NOME = " + nome_ + " | CPF = " + cpf_ + " | Email = " + email_ + endereco_->DadosEndereco(); } Classe Publicacoes: #pragma once #define PUBLICAO_H #ifdef PUBLICAO_H #include <string> using std::string; class Publicacao { private: string titulo_; double preco_; string autor_; string periodicidade_; string data_; bool etiquetada_; int vendas_; public: Publicacao(); //Cria nova publicacao Publicacao(string titulo,double preco,string autor,string periodiciodade,string data); //etiqueta Publicacao void etiquetar(); //Retorna numero de vendas int getVendas(); //vender void vender(); }; #endif #include "Publicacao.h" Publicacao::Publicacao() { preco_ = 0; vendas_ = 0; etiquetada_ = false; } Publicacao::Publicacao(string titulo, double preco, string autor, string periodicidade, string data) { titulo_ = titulo; preco_ = preco; autor_ = autor; periodicidade_ = periodicidade; data_ = data; etiquetada_ = false; vendas_ = 0; } void Publicacao::etiquetar() { etiquetada_ = true; } int Publicacao::getVendas() { return vendas_; } void Publicacao::vender() { vendas_++; } Classe Pedidos: #include <string> #include "Cliente.h" #include "Publicacao.h" using std::pair; class Pedidos { private: pair<int, string> pedido_; public: //Cria novo pedido Pedidos(Publicacao *p, Cliente *c); //Retorna pedido pair<int, string> retornaPedido(); }; #include "Pedidos.h" Pedidos::Pedidos(Publicacao *p,Cliente *c) { pair<int, string>aux(p->getVendas(), c->dados()); pedido_ = aux; p->vender(); } pair<int, string> Pedidos::retornaPedido() { return pedido_; }
-
Boa noite a todos, Estou com um trabalho de faculdade para fazer e preciso ler arquivos em diferentes pastas, porém nunca fiz algo assim e estou enfrentando dificuldades, me sugeriram a biblioteca dirent.h , porém estou preso no seguinte bug: C:\Cortella\Projetos\Trabalho_PDS\Buscador>g++ Buscador.cpp In file included from Buscador.cpp:5:0: dirent.h:383:28: error: missing binary operator before token "(" #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ^ dirent.h:405:28: error: missing binary operator before token "(" #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ^ dirent.h: In function '_WDIR* _wopendir(const wchar_t*)': dirent.h:413:43: error: 'wcsncpy_s' was not declared in this scope wcsncpy_s (dirp->patt, n+1, dirname, n); Gostaria de saber do que se trata e como corrigir. Meu codigo: #include <iostream> #include "dirent.h" using namespace std; int main(int argc, char* argv[]) { DIR* d; struct dirent* dir; d = opendir(".data"); //diretório atual; if (d != NULL) { //le todos os arquivos no diretorio especificado while ((dir = readdir(d)) != NULL) { //cout << "\n " << dir->d_name << endl; char namePaste[50] = "./data/"; int aux; //Copia nome das pastas do diretorio for (int i = 0; i < dir->d_namlen; i++) { aux = (int)dir->d_name[i]; //seleciona caracteres a partir de ASCII if ((aux >= 97 && aux <= 122) || (aux >= 48 && aux <= 57) || (aux == 45) || (aux == 46)) { namePaste[i+7] = dir->d_name[i]; //Cria novo diretorio para entrar na pasta DIR* p; struct dirent* paste; //Abre Pasta p = opendir(namePaste); if (p != NULL) { while ((paste = readdir(p)) != NULL) { cout << "\n " << paste->d_name; } } } } } } return 0; } Ainda nao fiz a parte de leitura de arquivos porquê nao consigo prosseguir, desde já agradeço a atencao.
-
Gostaria de agradecer de coracao a ajuda de todos em especial a de@arfneto ... Tentei utilizar a biblioteca,porém me deparei com o seguinte erro: C:\Cortella\Projetos\Trabalho_PDS\Buscador>g++ Buscador.cpp In file included from Buscador.cpp:5:0: dirent.h:383:28: error: missing binary operator before token "(" #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ^ dirent.h:405:28: error: missing binary operator before token "(" #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) ^ dirent.h: In function '_WDIR* _wopendir(const wchar_t*)': dirent.h:413:43: error: 'wcsncpy_s' was not declared in this scope wcsncpy_s (dirp->patt, n+1, dirname, n); ^ Gostaria de saber se o erro em questão se trata de uma incompatibilidade em meu sistema: segue meu codico em anexo ... #include <iostream> #include "dirent.h" using namespace std; int main(int argc, char* argv[]) { DIR* d; struct dirent* dir; d = opendir(".data"); //diretório atual; if (d != NULL) { //le todos os arquivos no diretorio especificado while ((dir = readdir(d)) != NULL) { //cout << "\n " << dir->d_name << endl; char namePaste[50] = "./data/"; int aux; //Copia nome das pastas do diretorio for (int i = 0; i < dir->d_namlen; i++) { aux = (int)dir->d_name[i]; //seleciona caracteres a partir de ASCII if ((aux >= 97 && aux <= 122) || (aux >= 48 && aux <= 57) || (aux == 45) || (aux == 46)) { namePaste[i+7] = dir->d_name[i]; //Cria novo diretorio para entrar na pasta DIR* p; struct dirent* paste; //Abre Pasta p = opendir(namePaste); if (p != NULL) { while ((paste = readdir(p)) != NULL) { cout << "\n " << paste->d_name; } } } } } } return 0; }
-
Ola, estou com um trabalho de faculdade no qual preciso ler 12000 arquivos, gostaria de saber se existe alguma funcao que le todos os arquivos de uma pasta!! Obrigado
-
Olá preciso implementar o header abaixo para um trabalho da faculdade, porém não entendi bem o conceito de sentinela. Ele aponta para a posição atual ou para o fim da lista? Se a lista é circular ela não deveria ter um fim não é mesmo? Obrigado pela atenção de todos!!! #ifndef MULTICONJUNTO_H #define MULTICONJUNTO_H #include <string> using std::string; struct No; // Implementa um conjunto com repetição de elementos. class Multiconjunto { public: // Cria um conjunto vazio. Multiconjunto(); // Cria um conjunto unitário contendo s; Multiconjunto(string s); // Cria um conjunto com os mesmos elementos de x; Multiconjunto(const Multiconjunto& x); // Testa se o conjunto é vazio. bool vazio() const; // Retorna a cardinalidade do conjunto. int cardinalidade() const; // Testa se s pertence ao conjunto. bool pertence(string s) const; // Retorna o número de ocorrências de s no conjunto. int ocorrencias(string s) const; // Retorna um elemento qualquer do conjunto. // RECONDIÇÃO: o cojunto tem pelo menos um elemento. string elemento() const; // Retorna a união de *this e x. Multiconjunto uniao(const Multiconjunto& x); Multiconjunto uniao(string s) {return uniao(Multiconjunto(s));} // Retorna a interseção de *this e x. Multiconjunto intersecao(const Multiconjunto& x); // Retorna a diferença entre *this e x. Multiconjunto operator-(const Multiconjunto& x); Multiconjunto operator-(string s) {return *this - Multiconjunto(s);} // Testa se *this tem exatamente os mesmos elementos de x. bool operator==(const Multiconjunto& x) const; // Faz com que *this tenha os mesmos elementos de x. void operator=(const Multiconjunto& x); // Desaloca toda a memória alocada para o conjunto. ~Multiconjunto(); private: No* fim_; // Ponteiro para o sentinela da lista encadeada. int cardinalidade_; // Número de elementos no conjunto; friend class Teste; }; #endif // MULTICONJUNTO_H
-
Olá, sou estudante de engenharia e estou com um trabalho da faculdade que consiste em programar uma urna eletrônica em C. Porém gostaria de implementar uma interface gráfica no programa, mas nunca li nada a respeito e não sei por onde começar. Resumindo tenho as seguintes dúvidas: • Qual a melhor ferramenta para o meu caso? • Consigo sair do zero e fazer alguma coisa básica em 10 dias? • Eu consigo implementar alguma interface já existente ou preciso construí-la do zero? Desde já agradeço a atenção
-
Muito obrigado devair1010!!! Fico de devendo essa !!!
-
Caro amigo, Primeiramente gostaria de agradecer a dica. Tem dois meses que comecei a aprender a programar,então eu ainda tenho muito pouca experiência. Sou novo aqui e não sei como as coisas funcionam, porém só gostaria de obter alguma ajuda. Eu ficaria agradecido!
-
Olá @astridxd em relação ao seu primeiro código: • Seus dois primeiros scanf tem um erro de sintaxe: Você colocou scanf ("%d, &sb"); Porém as aspas devem ser fechadas assim: scanf ("%d", &sb); • O uso de variáveis do tipo int é mal visto quando nos referimos a valores monetários, pois existem subdivisões nas moedas (centavos), por isso o uso de variáveis do tipo float,double é mais indicada nesses casos. • Já nos ifs há um erro de lógica,pois a expressão não corresponde ao desconto desejado. Você colocou assim: sl = ((sb + p) - (10/100)); repare que caso sb=85 e p=15, a soma sb+p seria igual a 100 correto? Logo seu programa iria agora subtrair (10/100) dessa soma, como (10/100 =0,1), seu sl final seria 99.9, o que não corresponde a um desconto de 10%. Para esse problema o correto seria: sl = ((sb + p)*0.9); Nesse caso o programa retorna 90% do total o que corresponde a um desconto de 10%, você tambem poderia fazem assim: sl = ((sb + p)-(((sb+p)*10)/100)); Porém acho essa resolução mais confusa, mas também está correta!!! • Faça o mesmo para o outro if e ficará correto . espero ter ajudado, abraços!!
-
Bom dia, estou com um trabalho da faculdade para programar uma urna em C, porém no voto para presidente quando digito um numero de um candidato existente e confirmo o voto, o programa soma o voto normalmente e entra no if referente ao voto nulo por motivos desconhecidos. Já tentei dar printf tanto no array "voto" como no variavel "char" confirma, nenhum deles apresentou alteração, se alguém puder me ajudar ficaria agredecido!!! #include <stdio.h> #include <conio.h> #include <string.h> #define TAM_MAX 40 struct candidato{ char numero[5]; char nome[TAM_MAX]; char partido_sigla[5]; char nome_partido[TAM_MAX]; int voto; }; struct candidato presidente[5]={ {"91","Futebol","PEsp","PARTIDO DOS ESPORTES"}, {"92","Rock","PMus","PARTIDO DOS RITMOS MUSICAIS"}, {"93","Professora","PProf","PARTIDO DAS PROFISSÕES"}, {"94","Copa do Mundo","PFest","PARTIDO DAS FESTAS POPULARES"}, {"95","Vitória-Régia","PFolc","PARTIDO DO FOLCLORE"}, }; int nulo_presidente,branco_presidente; char voto[6]; void Presidente(){ char confirma='n'; while(confirma!='s'){ //ate que o voto seja confirmado a urna continuara a solicitar a entrada printf("\nPRESIDENTE: "); setbuf (stdin, NULL) ; // limpa buffer teclado voto[0]=getche(); //entrada sem digitar enter voto[1]=getche(); int i=0; while(i<5){ if(strcmp(voto,presidente[i].numero)==0){ //compara numero digitado com banco de dados printf("\nNome: %s",presidente[i].nome); printf("\nPartido : %s (%s)",presidente[i].partido_sigla,presidente[i].nome_partido); printf("\nConfirma? :"); scanf("%c",&confirma); if(confirma =='s'){ presidente[i].voto++; break; //referente ao while mais interno; continue; //referente ao while mais externo } } i++; } i=0; //caso precise entrar novamente no while de comparacao if(((voto<"91") || (voto>"95")) && (voto[0]!='b')){ // Voto nulo printf("\nNÚMERO ERRADO!!! "); printf("\nVOTO NULO "); printf("\nconfirma? 's'-> sim 'n'-> nao: "); scanf("%c",&confirma); if(confirma =='s'){ nulo_presidente++; continue; } } if(voto[0]=='b'){ //voto em branco printf("\nVOTO EM BRANCO"); printf("\nconfirma? 's'-> sim 'n'-> nao: "); scanf("%c",&confirma); if(confirma =='s'){ branco_presidente++; continue; } } } } int main(){ Presidente(); printf("%s = %i \n",presidente[0].nome,presidente[0].voto); printf("%s = %i \n",presidente[1].nome,presidente[1].voto); printf("%s = %i \n",presidente[2].nome,presidente[2].voto); printf("%s = %i \n",presidente[3].nome,presidente[3].voto); printf("%s = %i \n",presidente[4].nome,presidente[4].voto); printf("Nulos = %i \n",nulo_presidente); printf("Brancos = %i \n",branco_presidente); return 0; }
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais