
Maligno
Membros-
Total de itens
214 -
Registro em
-
Última visita
Tudo que Maligno postou
-
Me lembrei de um livro que li no tempo do guaraná de rolha (final dos anos 80). Era do Peter Norton. Acho que o nome era "Assembly 8088". O caso de estudo era um visor de arquivos apenas no modo hexadecimal. Programa simples de tudo. Mas era Assembly. Já viu, né? Você não tem piçiroca nenhuma pronta. E o que ele disse no livro sobre essa carência é bem interessante. Partindo do zero, sem nada pronto que ajude a montar algo que seja minimamente decente, você terá de fazer tudo, desde um simples posicionamento de cursor, até uma entrada de dados mais sofisticada. Mas quando tiver esse simples programa pronto, você terá passado por um leque imenso de conhecimentos, já que todos os aspectos da linguagem serão explorados. Por isso que sugeri montar essa base em C, que é extremamente mais fácil que Assembly. Mas o que você também sugeriu é válido, claro. Qualquer coisa, pra quem não tem nada, tem muito valor.
-
Captei! :) Mas não gostei. :( Já que o OP está se dispondo a fazer uma entrada de senha, acho eu que melhor seria se fosse algo o mais próximo possível da vida real. Um texto simples de, digamos, 15 caracteres, para a entrada de uma senha. Com os devidos asteríscos, claro. Depois ele calcula o MD5 disso. :)))))
-
Isso foi sério? Não sei se entendi. :\ Legal seria se o OP raciocinasse como seria um bom sistema de desenvolvimento em modo console. Já começaria com a base da programação, como uma função de impressão com posicionamento, uma função de impressão de quadros, linhas, etc. Só a parte de edição de texto (algo decente, claro) já daria tanto trabalho que o aprendizado seria muito mais proveitoso.
-
Uma crítica: ao usar float pra receber senha você força o infeliz a ter senha numérica. Use string. E aproveita pra mostrar tudo como asteriscos. Seria um bom exercício. ;-)
-
MingW é o port do GCC pra Windows. Acho que pra quem está começando não poderia ter feito escolha pior. O BCC é bem mais didático. Pelo menos ele tem um help decente. O GCC costuma me dar uns paus muitos estranhos, que somem do nada. Aliás, falando em help, GCC --help imprime no vídeo uma lista dos switches que ele aceita. Basicamente ele só precisa de: GCC <arquivo.cpp> -I<diretótio_do_header> para gerar o objeto <arquivo.o> (note: não é .obj - é .o mesmo) Depois, para criar o executável, o comando depende de que tipo de EXE for. GCC <arquivo.o> -mconsole -l<library> GCC <arquivo.o> -mwindows -l<library> A grosso modo é isso. Se é que eu não esqueci de nada. :)
-
será que preciso de um sistema? ou só um script basta?
pergunta respondeu ao ricardo_lda de Maligno em C, C++
Ficará mais fácil usar aquilo que ele sabe usar. Resguardadas as devidas diferenças, claro. Mas em C ANSI o programa poderá ser portado pra Windows facilmente. Se o problema for recorrente, o recurso poderá se tornar necessário, no futuro, também em Windows. -
Ao menos mostre o código que você já escreveu. E aponte suas dúvidas.
-
Não tão barato, mas que vale a pena: http://www.submarino.com.br/produto/1/1508...+como+programar Mas tem os gratuitos. Tenho alguns (em inglês): http://pub.buzinello.com/index.php?d=./cpp/tutorials/
-
Outra distração, mesmo depois que eu já cantei a bola. A função soma() continua não devolvendo o resultado da soma. Mais atenção! :) Fiz uma versão corrigida aqui e testei. Ela está funcionando perfeitamente. Mas não usei o stream pra saída porque meu gcc resolveu dar pau. Como era coisa rápida mesmo e o problema não está na saída, usei printf(). #include <stdio.h> int soma(int array[]) { int soma=0; for(int i = 0; i < 5; i++) soma += array[i]; return soma; } int main() { int array[] = {2,7,1,5,6}; printf("Soma: %d\n",soma(array)); return 0; } Cuidado você também com a distração. Aqui você tenta colocar um ponteiro de inteiro no lugar de um ponteiro constante de char. Isso não passa nem a pau. :)
-
São vários erros. Quase todos por distração. Por partes: 1) A malha for de soma() está finalizado e a soma abaixo dela é uma simples operação de única iteração. Ela está fora da malha. Então, remova o ponto-e-vírgula da malha. Dica: cuidado com os ponto-e-vírgulas. Se faltar um que seja, o compilador vai engasgar e muitas vezes o erro apontado não tem nada a ver com o erro real. 2) A soma está como soma += array[5]. Você usou uma constante. Deveria utilizar a variável i que controla a iteração. Portanto, o correto é soma += array. Aliás, a constante 5 que você usou aponta para um elemento que sequer existe na matriz. Lembre-se de que a numeração começa em zero. 3) A função soma() não retorna o resultado da soma, apesar de sua declaração indicar que há um retorno. 4) A exibição do resultado está como cout<<"Soma: "<<soma, mas que soma é essa? Não é o resultado da soma. Isso nem deve compilar. O correto é cout<<"Soma: "<<soma(array). Note que soma na função soma() é uma variável de escopo limitado à função em que foi declarada. Logo, esta variável deixa de existir quando soma() finalizar. Dica: procure usar nomes diferentes, para evitar qualquer confusão.
-
Em tempo: esqueci de dizer que, como TStrings é uma classe abstrata*, você deve utilizar em seu lugar a classe derivada TStringList. * uma classe abstrata não pode ser instanciada. :)
-
O método AddStrings() da classe TStrings não é o ideal, pois ele é utilizado para inserir um objeto TStrings em outro. Não é o caso, claro. Você precisa setar o texto da classe diretamente ou por um setter. Então, ou você usa a propriedade Text ou usa o método SetText(). Lembrando que o texto é um ponteiro para char. Em suma: seria mais ou menos... ComboBox2->Items->SetText(<texto_qualquer>); ou ComboBox2->Items->Text = <texto_qualquer>; A função que encontrou, se você notar, devolve um UINT ao invés de um ponteiro para char. Não serve. Mas use o esqueleto dela pra fazer sua função de montagem dessa string. Mas note que os valores de cada linha (drive) devem ser terminados por um par CR/LF ("/r/n"). Para mais detalhes, leia o help sobre TStrings. E depois, se precisar, sobre TComboBox. Lembrando que há outros meios de inserir strings num objeto TStrings. Eu só comentei sobre um deles. Por isso é importante ler o help.
-
A função GetDriveType(), da API do Windows, até como o próprio nome diz, apenas informa qual o tipo do drive. Para obter uma lista dos drives lógicos da máquina, deve-se usar a função GetLogicalDrives(), também da API do Windows. Ela não exige qualquer argumento e retorna uma DWORD com os drives em um bitmask. A partir do MSB do valor, 0=drive A, 1=drive B, 2=drive C, e assim por diante. Depois, com a lista em mãos, pode-se usar GetDriveType() para saber que tipo é.
-
Idéia! Uma idéia que ajuda nos estudos e ajuda a melhorar as habil
pergunta respondeu ao phdmais de Maligno em Grupo de Estudos
Acho que a melhor forma de aprender é construir pequenos programas que focalizem o aprendizado nos comandos e funções que estiverem em estudo. Se a idéia for aprender mais fazendo um programa de porte maior, não acho que vá ajudar tanto. Até porque, perde-se muito tempo com tópicos que não são tão necessários. Por isso acho melhor programas menores. -
Não seja por isso. Use o Google. Por meio dele você encontrará toneladas de código. Mas é preciso ir atrás. As coisas não virão atrás de você. Sim, essa é uma dúvida. Entretanto, não há apenas uma resposta. Mas posso lhe dar algumas: estude, tente, arrisque, experimente, etc. Depois disso, se tiver dúvidas com o código QUE VOCÊ FEZ, poste-as no grupo. Aí sim, certamente haverá alguém para ajudar. Note que ao pedir código pronto, específico para a sua necessidade, alguém até pode pensar que você é um "aproveitador" e não alguém com disposição para aprender. Faça o que eu disse: tente você mesmo. Não peça código pronto. Até porque, no futuro, novas necessidades surgirão. E elas serão sempre mais complexas e longe do seu alcance. Mas se cada vez que isso acontecer alguém tiver que fazer o código só pra você ler, melhor contratar um programador de uma vez. :)
-
Em C e C++ não é possível. Além de XBase (Clipper), não conheço outra linguagem que tenha tal recurso.
-
Apesar do título da mensagem, você não expôs dúvida alguma. Apenas pediu o serviço pronto. Não acha melhor tentar você mesmo fazer? Programação é o tipo da coisa que só se aprende fazendo.
-
Especificando: a função main() só pode retornar int.
-
Verifique a correta aplicação das chaves de abertura e fechamento dos seus blocos de código. No presente caso, você fechou main() e depois colocou código que não pertence a qualquer bloco de código. Nem sempre os compiladores apontam para o erro certo. Muitas vezes os erros que ele indica sequer existem. São apenas consequencias de erros anteriores às linhas que ele destaca. Detalhe: a declaração de main() está errada. Essa função SEMPRE retorna um int. Apesar de funcionar sem retorno algum, isso vai contra a norma da linguagem C. Se é pra fazer, melhor sempre fazer certo. :)
-
Fiquei nervoso não. Eu sou tranquilão. :)))
-
Essas duas strings são realmente diferentes. Entretanto, se você precisa usar um tipo de avaliação "diferente" para destacar "semelhança" entre duas strings, você precisará ter um algoritmo diferente, próprio à necessidade. Não daria pra usar strcmp() ou stricmp(). A solução do problema, com nossa ajuda, começa com você mostrando seu código. É a partir daí que vamos ver o que dá pra fazer. ;-)
-
Se o ângulo do motor é um argumento de linha de comando, você pode utilizar a função da API do Windows ShellExecute(), que é a mais simples de usar. Ou ainda, se quiser capturar a saída do programa DOS e trabalhar com ela (se o programa DOS tiver saída pelo pipe), pode usar a função CreateProcess(). É uma função bem mais complexa e, logo, dá mais trabalho de usar.
-
Se for o FreeCommandLineTools (grátis) da Borland, não deveria dar qualquer problema. Ele instala normalmente no diretório \BCC, se não me falha a memória. Procure no raiz do seu HD. Se encontrar, aí é só incluir seu diretório BIN no PATH de busca.
-
Operandos são os elementos essenciais para que uma operação se torne válida. Operadores são os elementos que agem sobre seus operandos. Quanto à quantidade, são três tipos de operadores: unários, binários e ternários. Alguns exemplos: o operador de incremento (++) é unário, pois precisa de apenas um operando. O operador de adição (+) é binário, pois necessita de dois operandos. E, incomum à muitas linguagens, temos o operador ternário (?:), que utiliza três operandos. Aliás, apesar de eu ter dito no plurar, esse é o único operador ternário que temos em C ou C++. Quanto ao tipo, os operadores são vários: matemáticos, lógicos, de teste, etc. Um mais ou menos esdrúxulo é o sizeof(), que muita gente pensa que é função. Mas não é função. É um simples operador unário.
-
Em tempo: TStrings é uma classe e, claro, não pode ser utilizada em C, já que esta linguagem não é orientada a objetos.