Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Rúben Periquito Developer

    dúvida simples

    se alguém em trabalho para outra pessoa comprar um template pronto, só terá de editar o código (por exemplo o que está entre >< e cobrar o preço por hora + o custo do template? XD um developer de lvl de entrada como eu poderia cobrar uns 10€ por hora e ter clientes? estou á achar pouco trabalho para tanta massa
  3. Yesterday
  4. LuisLopes72

    Programa Para Contar Palavras

    Programa para contar palavras. O gcc faz o executável e não dá erro. Executando o executável dá erro e "estoura" . O que estou a fazer mal. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> typedef struct _BTree { char palavra1[128]; //nossa chave char palavra2[128]; char token[5]; //classificados double prob; //certeza struct _BTree *left, *right; } BTree; BTree *LerFicheiro(); BTree *EscreverFicheiro(); BTree *btree_insert(BTree *root, BTree *nova); void PrintInOrder(BTree *root); int main() { BTree *tree = NULL; //vamos medir o tempo clock_t start, end; double cpu_time_used; start = clock(); //ler ficheiro e carregamos para a arvore binaria tree = LerFicheiro(); //que tempo demoramos a ler? end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("Demoramos %lf", cpu_time_used); PrintInOrder(tree); } BTree *btree_insert(BTree *root, BTree *nova) { if(root) { if(strcmp(nova->palavra1, root->palavra1) <0) root->left = btree_insert( root->left, nova); if(strcmp(nova->palavra1, root->palavra1) >0) root->right = btree_insert( root->right, nova); } else { root =(BTree*) malloc( sizeof (BTree)); //printf("%-20s %-20s %-5s %lf\n", nova->palavra1, nova->palavra2, nova->token, nova->prob); strcpy(root->palavra1, nova->palavra1); strcpy(root->palavra2, nova->palavra2); strcpy(root->token, nova->token); root->prob = nova->prob; root->left = root->right = NULL; } return root; } BTree * LerFicheiro() { BTree *tree; //arvore completa que vai ser devolvida BTree *nova = (BTree *) malloc(sizeof(BTree)); //nodo auxiliar FILE *ficheiro =fopen("slate-tagged.txt","r"); int contador = 0; while (fscanf (ficheiro, "%s %s %s %lf", nova->palavra1, nova->palavra2, nova->token, &nova->prob) != EOF) //fim do ficheiro { //condiçao para ignorar simbolos if((('a' <= nova->palavra1[0]) && (nova->palavra1[0] <= 'z')) || (('A' <= nova->palavra1[0]) && (nova->palavra1[0] <= 'Z'))){ tree = btree_insert(tree, nova); } else{ continue; } } fclose(ficheiro); return tree; } BTree * EscreverFicheiro() { BTree *tree; //arvore completa que vai ser devolvida BTree *nova = (BTree *) malloc(sizeof(BTree)); //nodo auxiliar FILE *ficheiro =fopen("saida.txt","r"); int contador = 0; while (fscanf (ficheiro, "%s %s %s %lf", nova->palavra1, nova->palavra2, nova->token, &nova->prob) != EOF) //fim do ficheiro { //condiçao para ignorar simbolos if((('a' <= nova->palavra1[0]) && (nova->palavra1[0] <= 'z')) || (('A' <= nova->palavra1[0]) && (nova->palavra1[0] <= 'Z'))){ tree = btree_insert(tree, nova); } else{ continue; } } fclose(ficheiro); return tree; } void PrintInOrder(BTree *root){ if(root!=NULL) { PrintInOrder(root->left); printf(" %s - %s - %s - %lf \n", root->palavra1, root->palavra2, root->token, root->prob); printf("\n"); PrintInOrder(root->right); } }
  5. Agostinho_ferreira

    diferenças entre programado e resultado final

    Boa noite, estou com um pequeno problema entre o que programo e o resultado final. tenho o seguinte código no form1.designer.cs // button1 // this.button1.Location = new System.Drawing.Point(12, 12); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 34); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; // // button2 // this.button2.Location = new System.Drawing.Point(93, 12); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(75, 34); this.button2.TabIndex = 1; this.button2.Text = "button2"; this.button2.UseVisualStyleBackColor = true; e no form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Vcontrol16 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.button1.Location = new System.Drawing.Point(12, 12); } } } o problema e que quando mando executar o botão 1 fica mais baixo que o botão 2 (este código e só um exemplo) alguém me pode dar uma dica do que poderá ser para acontecer este problema. obs.: estou a usar o visual studio 2019 desde já obrigado pela ajuda
  6. Obrigado, pelo link, mas a minha implementação é em Java, acabei por encontrar os xsd incluindo o shematron do cius-pt. Estava na mesma página mas no tabulador do cius, num dos link para baixo. Alguém me pode confirmar o seguinte, só tenho invoices e Credit note, não era suposto ter suporte para outros documentos..? Obrigado.
  7. Para acelerares a implementação podes eventualmente usar a biblioteca UBLSharp. No nosso caso estamos a implementar com esta biblioteca e a validação (de sintaxe e dados) fica a cargo do schematron, que tb está num link dessa página.
  8. pc.cesar

    PHC - Programação em XBASE

    Boas utilizando a mais ritmo, 1) copia a query abaixo ou cria a query que pretendes converter em packing list select bo.boano, bo.ndos, bo.nmdos, bo.obrano, bi.ref, bi.design, bi.qtt , row_number() over(Partition by bo.boano, bo.ndos, bo.nmdos, bo.obrano,bi.ref order by bo.boano, bo.ndos, bo.nmdos, bo.obrano, bi.ref) Linha from bo inner join bi on bi.bostamp=bo.bostamp --CROSS APPLY dbo.NumbersTable(1,(bi.qtt),1) where 1=1 and bo.boano=2019 and bo.ndos='5' and bo.obrano='2' and bi.ref in ('ACOR01','B001','G003') ORDER BY ref,8 asc option (maxrecursion 0) 2) ------------------- cria a funcao abaixo no SQL create FUNCTION [dbo].[NumbersTable] ( @fromNumber int, @toNumber int, @byStep int ) RETURNS TABLE RETURN ( WITH CTE_NumbersTable AS ( SELECT @fromNumber AS i UNION ALL SELECT i + @byStep FROM CTE_NumbersTable WHERE (i + @byStep) <= @toNumber ) SELECT * FROM CTE_NumbersTable ) ; 3) na query tira o -- comentário da linha CROSS APPLY dbo.NumbersTable(1,(bi.qtt),1) vai ver que passa a exisitr o numero de linhas iguas ao bi.qtt ex: bi.qtt=5 entaao existe 5 linhas iguais
  9. N3lson

    Animação jQuery

    $("#abrirMenu").click ( function() { $( "#menuTopo" ).animate({ // o que queres fazer opacity: 0.25 //exemplo }, 5000, function() { $(this).slideToggle(); }); }); });
  10. Boa tarde, Alguém sabe onde posso obter os xsd actualizados referentes ao CIUS-PT, tirei uma versão do https://www.espap.gov.pt/spfin/normas/Paginas/normas.aspx#maintab3 Vejo que no documento de especificações falam de campos que não existe no xsd (por exemplo o TaxCurrencyCode ). Será que estou a trabalhar com xsd desactualizados ? Ou estou a ver mal Se alguém que tenha partido do xsd que possa ajudar, agradecia. Obrigado.
  11. Ivo Vieira

    PHC - Programação em XBASE

    Bom dia, Eu precisava de no PHC construir uma impressão em forma de packing List, ou seja eu tenho um dossier interno chamado packing List, onde construo o que vou carregar numa determinada carga, mas na mesma carga tenho artigos que vendo por exemplo 10 caixas, na listagem de impressão apareceuma linha apenas com o artigo e o número de caixas que vendi e eu queria que esse artigo fosse desdobrado em 10 linhas iguais na impressão. Conseguiam ajudar? Obrigado, Ivo Vieira
  12. Last week
  13. Rúben Periquito Developer

    cobrar pelos meus serviços

    quanto ganha no mínimo um web developer de nível de entrada por hora?
  14. antseq

    cobrar pelos meus serviços

    Viva, Acima o @M6 já te respondeu que isto não é científico nem existe uma fórmula: . não tens uma loja a retalho, em que compras produto ao preço de custo X, aplicas a tua margem Y e vendes a Z . o valor do projecto depende do tempo, do esforço, do que consideras ser ju$to (ou inju$to) para ti . há empresas/particulares que já tem soluções chave-na-mão que vão praticar preços +baixos em prazos +curtos Segue as indicações já dadas que volto a resumir: . analisa o projecto que tens em mãos . realiza um "caderno de encargos" de tarefas a implementar . pelas tarefas que vais implementar (és tu que as vais fazer) deves ter uma ideia de quanto tempo vais precisar em cada uma . tempo é dinheiro... é uma questão de fazeres contas... Notas: . podes dar um valor alto ou demasiado tempo e o cliente não aceitar (tem +barato, tem quem faça em -tempo, ...) . podes fazer as contas ao contrário, do que seria aceitável pelo cliente (ou pelo mercado), dividir pelo tempo estimado e ver se ainda é aceitável para ti [preço/hora] . os 2 valores acima, * só os vais descobrir os intervalos *, com a experiência de perder e ganhar projectos Sugestões: . vais perder clientes por praticar preços/tempos altos, vais rejeitar clientes por valores baixos/prazos curtos, entre outros motivos. . pelo meio aproveita para realizar algo visível, * nem que seja a um valor mínimo aceitável *: ... não estar parado [a pior coisa é dizer estou há meses sem fazer nada] ... para ganhares experiência (desenvolvimento, comercial, negociação, contactos, referências, outros) ... para mostrar "a qualidade" dos teus trabalhos já realizados a outros (novos) clientes e justificar os preços/tempos praticados cps, a.s.
  15. Rúben Periquito Developer

    cobrar pelos meus serviços

    existem pelo menos 3 maneiras de cobrar, certo? 1 é cobrar por hora outra, é cobrar por produto e qual é a outra? e qual me aconselharia?
  16. João Victor Maciel

    Programa de cadastro de uma oficina em C

    Estou aprimorando um código antigo meu e to tentando adicionar novas funções nele, exibir todos os cadastros, alterar e excluir. Só que no meio disso esbarrei em alguns problemas: 1- na hora que vou realizar cadastros e depois faço a busca específica do cadastro ele está sobrescrevendo um cadastro anterior e misturando os dados 2- minha função emitir tudo só mostra um cadastro 3- não estou entendendo como posso fazer as funções alterar e excluir O que está comentado são as coisa que não fiz ainda. Na função de emitir todas os fread comentado foram tentativas de fazer a emissão sem usar o while. Vou deixar o que já fiz aqui em baixo #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <locale.h> struct carro{ char placa[10], marca[50], modelo[50], ano[10]; }; struct cliente{ struct carro y; char nome[100], CPF[20], RG[20], endereco[200]; }; struct manutencao{ char data[15], mecanico[50], itens[200], valor[50], placa[15]; }; void cabecalho(); void cadastrarCliente(struct cliente x, struct carro y); void cadastarServ(struct manutencao z, struct carro y); void buscarOrdem(struct carro y, struct cliente x, struct manutencao z); void emitirTudo(struct carro y, struct cliente x, struct manutencao z); //void alterarCad(struct carro y, struct cliente x, struct manutencao z); //void excluirOrdem(struct carro y, struct cliente x, struct manutencao z); int main() { setlocale(LC_ALL, "portuguese"); struct cliente x; struct carro y; struct manutencao z; int op, wo; do{ cabecalho(); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t##\t1 - CADASTRAR CLIENTE ##\n"); printf("\t\t\t\t##\t2 - CRIAR ORDEM DE SERVIÇO ##\n"); printf("\t\t\t\t##\t3 - BUSCAR ORDEM DE SERVIÇO ##\n"); printf("\t\t\t\t##\t4 - MAIS OPÇÕES ##\n"); printf("\t\t\t\t##\t5 - SAIR ##\n"); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÂO --> "); scanf("%d", &op); switch(op) { case 1: cadastrarCliente(x, y); break; case 2: cadastrarServ(z, y); break; case 3: buscarOrdem(y, x, z); break; case 4: do { cabecalho(); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t##\t1 - EXIBIR TODAS AS ORDENS ##\n"); printf("\t\t\t\t##\t2 - ALTERAR CADASTRO ##\n"); printf("\t\t\t\t##\t3 - EXCLUIR ORDEM ##\n"); printf("\t\t\t\t##\t4 - VOLTAR ##\n"); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &wo); switch (wo) { case 1: emitirTudo(y, x, z); break; case 2: //alterarCad(y, x, z); break; case 3: //excluirOrdem(y, x, z); break; case 4: printf("\t\t\t\t\tVOLTANDO..."); Sleep(300); break; default: printf("\t\t\t\t\tOPÇÃO INVÁLIDA!!!"); getch(); break; } } while (wo != 4); break; case 5: printf("\t\t\t\t\tSAINDO...\n"); Sleep(400); break; default: printf("\t\t\t\t\tOPÇÃO INVÁLIDA!!!"); getch(); break; } }while(op != 5); }; void cadastrarCliente(struct cliente x,struct carro y){ FILE *fp; FILE *f; fp = fopen("cliente.txt", "ab"); f = fopen("carro.txt", "ab"); if(fp == NULL){ printf("\t\t\t\t\tNÃO FOI POSSÍVEL CRIAR O ARQUIVO!!\n"); } else{ do{ cabecalho(); fflush(stdin); printf("NOME DO CLIENTE: "); gets(x.nome); printf("CPF: "); gets(x.CPF); printf("RG: "); gets(x.RG); printf("ENDEREÇO: "); gets(x.endereco); fwrite(&x, sizeof(struct cliente),1,fp); printf("INFORME A PLACA DO CARRO: "); gets(y.placa); printf("MARCA DO CARRO: "); gets(y.marca); printf("MODELO: "); gets(y.modelo); printf("ANO DE FABRICAÇÃO: "); gets(y.ano); fwrite(&y, sizeof(struct carro), 1, f); fclose(f); fclose(fp); printf("DESEJA CONTINUAR REALIZANDO CADASTROS? [ S / N ]"); }while(getch() == 's'); } } void cadastrarServ(){ FILE *fs; FILE *fp; struct manutencao z; struct carro y; char placa[15]; int tam, i, w = 0; fs = fopen("manutenção.txt", "ab"); fp = fopen("carro.txt", "r+b"); if(fs == NULL){ printf("\t\t\t\t\tNÃO FOI POSSÍVEL CRIAR O ARQUIVO!!\n"); } else{ do{ cabecalho(); fflush(stdin); printf("DIGITE A DATA DA MANUTENÇÃO: "); gets(z.data); printf("INFORME O MECÂNICO QUE FARA A MANUTENÇÃO: "); gets(z.mecanico); printf("ITENS QUE SERÃO UTILIZADOS NA MANUTEÇÃO: "); gets(z.itens); printf("VALOR TOTAL DO SERVIÇO: "); gets(z.valor); do { printf("DIGITE A PLACA: "); gets(placa); //PESQUISA DENTRO DO ARQUIVO SE A PLACA INFORMADA ESTÁ CADASTRADA fseek(fp, 0, SEEK_END); tam = ftell(fp)/sizeof(struct carro); rewind(fp); for(i = 0; i < tam; i++) { fseek(fp, i* sizeof (struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, fp); if (strcmp(placa, y.placa)== 0) { w = 1; strcpy(z.placa, placa); } } if(w == 0) { printf("\nPLACA NÃO CADASTRADA!!\n"); } fwrite(&z, sizeof(struct manutencao), 1, fs); } while(w != 1); fclose(fp); fclose(fs); printf("DESEJA CONTINUAR REALIZANDO CADASTROS? [ S / N ]"); } while(getch() == 's'); } } void buscarOrdem(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; char placa[10]; int j, t, v = 0; fp = fopen("cliente.txt", "r+b"); fs = fopen("manutenção.txt", "r+b"); f = fopen("carro.txt", "r+b"); if(fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR O ARQUIVO!!\n"); getch(); } else { cabecalho(); fflush(stdin); do { printf("DIGITE A PLACA DO CARRO: "); gets(placa); //BUSCA A ORDEM DE SERVIÇO BASEADO NA PLACA INFORMADA fseek(f, 0, SEEK_END); t = ftell(f)/sizeof(struct carro); rewind(f); for(j = 0; j < t; j++){ fseek(f, j* sizeof(struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, f); if(strcmp(placa, y.placa)== 0){ v = 1; strcpy(y.placa, placa); //CASO A PLACA ESTIVER CADASTRADA, O PROGRAMA IRÁ IMPRIMIR printf("MODELO: %s\n", y.modelo); printf("MARCA: %s\n", y.marca); printf("ANO DE FABRICAÇÃO: %s\n", y.ano); fread(&x, sizeof(struct cliente), 1, fp); printf("NOME DO CLIENTE: %s\n", x.nome); printf("CPF: %s\n", x.CPF); printf("RG: %s\n", x.RG); printf("ENDEREÇO: %s\n", x.endereco); fread(&z, sizeof(struct manutencao), 1, fs); printf("DATA DE INÍCIO DA MANUTENÇÃO: %s\n", z.data); printf("MECÂNICO: %s\n", z.mecanico); printf("ITENS UTILIZADOS: %s\n", z.itens); printf("VALOR FINAL: %s\n",z.valor); } } if(v == 0){ printf("CARRO NÃO CADASTRADO!!\n\n"); } }while(v != 1); fclose(f); fclose(fp); fclose(fs); getch(); } } void emitirTudo(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; int retorno, cont = 0; fp = fopen("cliente.txt", "r+b"); fs = fopen("manutenção.txt", "r+b"); f = fopen("carro.txt", "r+b"); if (fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR OS ARQUIVOS!!\n"); getch(); } else { retorno = fread(&x, sizeof(struct cliente), 1, fp); retorno = fread(&y, sizeof(struct carro), 1, f); retorno = fread(&z, sizeof(struct manutencao), 1, fs); while( retorno == 0 ) { system("cls"); cabecalho(); cont++; //fread(&x, sizeof(struct cliente), 1, fp); printf("NOME DO CLIENTE: %s\n", x.nome); printf("CPF: %s\n", x.CPF); printf("RG: %s\n", x.RG); printf("ENDEREÇO: %s\n", x.endereco); //fread(&y, sizeof(struct carro), 1, f); printf("PLACA DO CARRO: %s\n", y.placa); printf("MODELO: %s\n", y.modelo); printf("MARCA: %s\n", y.marca); printf("ANO DE FABRICAÇÃO: %s\n", y.ano); //fread(&z, sizeof(struct manutencao), 1, fs); printf("DATA DO INÍCIO DA MANUTENÇÃO: %s\n", z.data); printf("MECÂNICO: %s\n", z.mecanico); printf("ITENS UTILIZADOS: %s\n", z.itens); printf("VALOR FINAL: %s\n",z.valor); retorno = fread(&x, sizeof(struct cliente), 1, fp); retorno = fread(&y, sizeof(struct carro), 1, f); retorno = fread(&z, sizeof(struct manutencao), 1, fs); printf("--------------------------------------------------------------------------\n\n\n"); } fclose(fp); fclose(fs); fclose(f); getch(); } } /* void alterarCad(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; char placa[10]; int j, t, v = 0; fp = fopen("cliente.txt", "rb"); f = fopen("carro.txt", "rb"); fs = fopen("manutenção.txt", "rb"); if (fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR OS ARQUIVOS!!\n"); getch(); } else { cabecalho(); fflush(stdin); do { printf("DIGITE A PLACA DO CARRO PARA ALTERAR O CADASTRO: "); gets(placa); fseek(f, 0, SEEK_END); t = ftell(f)/sizeof(struct carro); rewind(f); for(j = 0; j < t; j++){ fseek(f, j* sizeof(struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, f); if(strcmp(placa, y.placa)== 0){ v = 1; strcpy(y.placa, placa); } } printf("DESEJA REALIZAR OUTRAS ALTERAÇÕES? [ S / N ]"); }while(getch() == 's'); } } */ void cabecalho() { system("cls"); printf("\t\t\t########################################################\n"); printf("\t\t\t## ##\n"); printf("\t\t\t## SISTEMA DE CADASTRO DE MANUTENÇÃO E VENDAS ##\n"); printf("\t\t\t## ##\n"); printf("\t\t\t########################################################\n\n"); }
  17. Boa tarde, Eu estou a usar um codigo para passar as linhas selecionadas de um datagridview para outro datagridview em outro form mas quando passa as linhas passa com a ordenacao de baixo para cima. Ou seja Datagridview Carregada 1 2 Quando passa para outra datagridview fica 2 1 O código é : <Dim dr As New System.Windows.Forms.DataGridViewRow For Each dr In Me.DataGridView1.SelectedRows Me.DataGridView2.Rows.Add(dr.Cells(0).Value, dr.Cells(1).Value, dr.Cells(2).Value, dr.Cells(3).Value, dr.Cells(4).Value, dr.Cells(5).Value, dr.Cells(6).Value, dr.Cells(7).Value, dr.Cells(8).Value, NumericUpDown1.Value) Next> Alguem me pode ajudar? Obrigado
  18. M6

    cobrar pelos meus serviços

    Essas questões não têm uma resposta direta. A área de TI não é como ir comprar uma garrafa de lixívia ao supermercado onde o preço é mais ou menos igual. A área de TI é mais como o mercado de vinho, o preço é indicador da qualidade, mas uns gostam mais de umas coisas do que outros e, mais importaste do que isso, o preço varia com a marca, o ano de colheita, etc.. Tens de colocar um valor hora para aquilo que achas justo que é o teu trabalho e agarrar num Excel. Depois descreves todas as tarefas que tens de executar com o número de horas que vais demorar à frente. Junta uma margem de erro, por exemplo 10% Soma tudo e tens ai um valor orçamentado.
  19. Lucas Júlio de Souza

    Posso colocar uma condição no case?

    Queria saber se posso colocar uma condição no case. Ex: int a,b; cin>> a; Switch(a) {Case a==b: Cout<<"a é igual a b.";}
  20. tiago.f

    resolver problemas em programação

    Viva @Misternave, aconselho vivamente a deixar a escrita de código por "uns momentos" e aprender os conceitos e a lógica da programação. Tudo isto pode ser suportado com exemplos da linguagem que quiseres - pode ser javascript, c, swift, etc, etc Procura, por exemplo no youtube, videos sobre: introdução à programação tipos de dados estruturas de dados variaveis/scope de variaveis funcões/métodos conceitos Object oriented programming (OOP): classes, herança, interfaces Depois, depende a que queres aplicar o que aprendeste. Um site web? então aprende acerca das bases de web development: client-server, http (get, post, put, etc).... Boa sorte e bem-vindo a este mundo!
  21. Zex

    resolver problemas em programação

    1 - Aprender os comandos principais e experimentar com vários parametros para ver as coisas a dar resultados diferentes. (variaveis, metodos de receber dados, metodos de escrever dados no ecran, controles (if-then, for, while, etc.), etc. 2 - Fazer exercicios simples apenas para testar os comandos. (somar 2 numeros, colocar uma lista de numeros num array e fazer a média, etc.) 3 - Resolver problemas ou jogos simples. (o computador escolhe um número e o utilizador tem que adivinhá-lo) (jogo do galo para 2 utilizadores) (desenhar um tunel com circulos) 4 - Depois de alguns programas simples já deve ficar evidente que as coisas começam a complicar e que é melhor seguir algumas regras para organizar o trabalho. Por isso, deve-se estudar também boas práticas de programação. Algumas boas práticas incluem: - Colocar comentários suficientes para outra pessoa perceber o programa. - Não fazer funções tão grandes que não caibam no ecran (mais vale muitas funções com meia dúzia de linhas) - Os computadores são cada vez mais rápidos, por isso, dar mais importância à legibilidade do que à velocidade. 5 - Será mais fácil se o programador tiver um incentivo. (principalmente se sentir prazer ao conseguir acabar cada programa) (se o incentivo é ganhar dinheiro, isso já não terá muita importância daqui a 15 anos...) 6 - Infelizmente, javascript não é bom para os principiantes porque tem regras demasiado flexiveis e deixa fazer demasiadas asneiras. Mas isso pode ser minimizado tendo sempre aberta a janela da consola/debug. No século 20 o ideal era a linguagem Pascal porque não deixava fazer erros de escrita - apenas erros de algoritmo. Podes ver aqui como era o Pascal no século 20: conversor de pascal para javascript 7 - Podes ver aqui os exercicios de outro principiante de javascript: site starsoft 8 - Boa sorte.
  22. Misternave

    resolver problemas em programação

    Olá a Todos, Suponho não ser o único a passar por isto, e que muitos outros tenham o mesmo problema no inicio. Gostaria de saber qual é que acham ser a melhor maneira, para desenvolver a capacidade de resolver problemas em programação. No meu caso, comecei a estudar programação no inicio do ano sozinho em casa e depois de estudar Javascript e querer começar a desenvolver projectos, apercebo me que tenho alguns conhecimentos na linguagem, mas escrever linhas de código de raiz torna-se mais complicado. Eu consigo ver tutorias de projectos e consigo acompanhar e perceber o que esta a ser feito, mas as vezes fico com a sensação que estou apenas a copiar sem dar o passo em frente. Parece que fico com a ideia de que nunca vou conseguir escrever aquilo sozinho. Ou seja, como é que conseguiram dar esse passo em frente, fazer vários projectos diferentes e ir percebendo com a pratica? fazer exercícios mais básicos, por exemplo pequenos algoritmos? Digam me como fizeram no vosso caso Agradeço a vossa ajuda, Cumprimentos
  23. GobsRuiz

    Laravel - Não consigo usar yield

    Alguém por favor me ajuda. Eu estou tentando usar o yield, porém ele não mostra nada na tela, apenas o que já esta na página welcome. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <div> Sarve :: <br> </div> <div> @yield('imprimindo') </div> </body> </html> @extends('welcome') @section('imprimindo') <H1>Imprimindo o texto - yield and section</H1> @endsection
  24. Rúben Periquito Developer

    cobrar pelos meus serviços

    como devo cobrar pelos meus serviços de web-developer? o que devo ter em conta? quanto custa um trabalho simples, médio e avançado? quanto tempo demora um trabalho simples, quanto tempo demora um trabalho médio? quanto tempo demora um trabalho avançado? como eu sei quando sou um Web Developer iniciante médio ou avançado? quanto devo cobrar por cada trabalho simples, médio ou avançado para cada nível de experiência? tenho muitas dúvidas sobre o quanto eu vou cobrar... agradecia respostas bem explicadas
  25. António Fernandes

    C# WinForms Nif.pt

    // API-KEY cfeb4a166 ....... c7d8a3a3940aac string nif = txtNIF.Text.Trim(); string link = "http://www.nif.pt/?json=1&q=" + nif + "&key=cfeb4a166 ....... c7d8a3a3940aac"; try { using (var client = new WebClient()) { var json = client.DownloadString(link); JObject jsonObj = JObject.Parse(json); JObject nifObj = (JObject)jsonObj["records"][nif]; // teste ok MessageBox.Show(nifObj["address"].ToString()); } } catch (Exception ex) { MessageBox.Show(ex.Message); } Este é um exemplo básico e sem preocupações com boas práticas. Espero que ajude.
  26. Carlos Matos

    Utilizar Webservices da AT

    É só de minha parte ou toda a gente também acha que o "manual" da AT parece ser uma manual de software feito por um doutorando de história ou geografia. Em outros 215 países seguem um padrão, pq em Portugal é diferente?
  27. M6

    Calculadora em Pascal

    Para teres ajuda tens de colocar as tuas dúvidas ou problemas concretamente. Ninguém te consegue ajudar se não souber qual é o teu problema.
  1. Load more activity
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.