Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Pesquisar na Comunidade

Mostrando resultados para as tags ''Pascal''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Categorias

  • Armazenamento
  • Áudio
  • Energia
  • Entrada
  • Feiras e Eventos
  • Gabinetes
  • Memória
  • Museu
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Rádio CdH
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Blog

Categorias

  • Armazenamento
  • Áudio
  • Câmeras
  • Computadores
  • Consoles
  • Eletrônicos
  • Energia
  • Entrada
  • Gabinetes
  • Impressão
  • Jogos
  • Memória
  • Placas-mãe
  • Portáteis
  • Processadores
  • Programas
  • Redes
  • Refrigeração
  • Smartphones
  • Tablets
  • Vídeo
  • Outros

Categorias

  • Livros disponíveis
  • Livros esgotados

Categorias

  • Cursos

Fóruns

  • Mensagens do Clube do Hardware
    • Regras gerais
    • Boletins do Clube do Hardware
    • Notícias da administração
  • Hardware
    • Recomendações de computadores
    • Placas de vídeo
    • Placas-mãe e chipsets
    • Processadores
    • Problemas de gargalo e desempenho
    • Memórias
    • Armazenamento
    • Refrigeração e superaquecimento
    • Fontes e energia
    • Gabinetes e casemods
    • Placas de som e áudio on-board
    • Periféricos
    • Mac
    • Overclock
    • Hardware - outros
  • Computação móvel
    • Notebooks
    • Tablets
    • Smartphones e apps
  • Redes e Internet
    • Redes e Internet
    • Hospedagem de sites e registro de domínios
  • Segurança da informação
    • Remoção de malware
    • Dúvidas sobre invasões e infecções
    • Programas de proteção
  • Programação e desenvolvimento
    • Java
    • C/C#/C++
    • Pascal/Delphi
    • .NET
    • Bancos de dados
    • Programação web
    • Programação - iniciantes
    • Programação de microcontroladores
    • Programação - outros
  • Software
    • Jogos
    • Pacotes de escritório
    • Computação distribuída (Folding@Home, Bitcoin etc.)
    • Virtualização
    • Design, animação e tratamento de imagens
    • Edição de áudio e vídeo
    • Programas
  • Sistemas Operacionais
    • Recomendação de sistemas operacionais
    • Windows
    • GNU/Linux, BSD, Unix-like e software livre
    • Mac OS
  • Eletrônicos
    • Equipamentos de som, home theaters e gravadores de mesa
    • Televisores e projetores
    • Câmeras e filmadoras
    • Players portáteis
    • Consoles (videogames)
    • GPS
    • Telefonia fixa
    • Eletrônica
    • Retrocomputação
  • Outros
    • Recomendações de serviços e lojas
    • Preços e promoções
    • Notícias
    • Bolsa de empregos, certificações e mercado de trabalho
    • "Causos"
    • Encontros de usuários
    • Feira do Rolo
  • Clube do Hardware
    • Comentários, elogios, críticas, sugestões e questões sobre o Clube do Hardware
    • Comentários de artigos
    • Fórum para testes de funcionalidades

Categorias

  • Hardware
  • Redes
  • Eletrônica
  • Sistemas operacionais

Encontrado 59 registros

  1. Olá Bom dia. estudando sobre estrutura de dados, me deparei com um exemplo, encontrado na internet, em modo gráfico que demonstra a utilização de pilhas. O sistema é o seguinte: Digita-se o nome e a idade e (acredito eu) ao clicar em listar deveria aparecer em um listbox os dados digitados. porém, aparece (1-Nome:,Idade:) Estou encafifado com isso. Há pouco conteúdo em modo gráfico sobre assunto. Grato por qualquer ajuda unit1.zip project1.zip
  2. Eu não sei como juntar essas 3 variáveis (be,bc,aa), para que eu possa converter para decimal.
  3. Fala galera, beleza? Então, eu tenho que criar um programa que some números binários, e no geral creio que está dando certo mas agora eu tento compilar e diz que os dados informados no writeln da varivavel vetorial resp não são primitivos!(?) Segue o código de até agora: Program Pzim ; var bin1,bin2:string[4]; i,j,vai,expoente1,expoente2,tam1,tam2:integer; deci,deci1,deci2:real; resp:array[1..5] of string; Begin Writeln ('Soma de binários!'); Writeln ('Digite o primeiro número binário de quatro dígitos'); readln (bin1); Writeln ('Digite o segundo número binário de quatro dígitos'); readln (bin2); tam1:=length(bin1); for i:=tam1 downto 1 do Begin If bin1='1' then deci1:=deci1+(exp(expoente1*ln(2))); expoente1:=expoente1+1; End; Writeln ('O número binário ',bin1,' é igual a ',deci1:0:0,' decimal'); tam2:=length(bin2); for i:=tam2 downto 1 do Begin If bin2='1' then deci2:=deci2+(exp(expoente2*ln(2))); expoente2:=expoente2+1; End; Writeln ('O número binário ',bin2,' é igual a ',deci2:0:0,' decimal'); deci:=deci1+deci2; Writeln ('A soma dos números em decimal é igual a ',deci:0:0); Writeln; //soma vai:=0; for i:=tam1 downto 1 do Begin if (bin1='0') and (bin2='0') and (vai=0) then begin Writeln ('Desce 0'); resp[j]:='0'; vai:=0; end; if (bin1='0') and (bin2='1') and (vai=0) then begin Writeln ('Desce 1'); resp[j]:='1'; vai:=0; end; if (bin1='1') and (bin2='0') and (vai=0) then begin Writeln ('Desce 1'); resp[j]:='1'; vai:=0; end; if (bin1='1') and (bin2='1') and (vai=0) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='1') and (bin2='0') and (vai=1) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='0') and (bin2='1') and (vai=1) then begin Writeln ('Sobe 1'); resp[j]:='0'; vai:=1; end; if (bin1='1') and (bin2='1') and (vai=1) then begin Writeln ('Sobe 1 e vai 1'); resp[j]:='1'; vai:=1; end; End; if vai=1 then Begin Writeln ('Desce 1'); resp[j]:='1'; end; Writeln (resp); Writeln ('Aperte qualquer tecla para sair'); Readln; End.
  4. (trabalho da faculdade,tudo compilado usando pascalzim) boa dia/tarde/noite alguém poderia me dar uma luz em relação a este trabalho? Program TxN04 ; uses crt,modulos; var br,er,prv,media,mediam,mediap,notam,notap:integer; prvum,x,prvdo:text; gab:array[1..50] of string; corr:integer; regi:regis; resp:array[1..54] of string; arqi:file of regis; c,a,tot:integer; vet:vetor; Begin {Você receberá dois arquivos PROVA1.TXT = contém as respostas dos candidatos da primeira prova PROVA2.TXT = contém as respostas dos candidatos da segunda prova Ambos com as informações assim dispostas: 01-04=inscrição; 05-54=as 50 respostas (A,B,C,D,E, ou ESPAÇO (SEM RESPOSTA) OU * (MARCOU MAIS DE UMA OPÇÃO).} {1:Antes de tudo, criar o vetor, a partir de CAND.IND, contendo o número de inscrição no campo chave e a posição física ocupada pelo registro dentro do arquivo... (já foi feito este procedimento no exercício 3). PORQUE???} assign(arqi,'cand.ind'); reset(arqi); repeat read(arqi,regi); c:=c+1; vet[c].pf:=c-1; //c=indice do vetor; c-1=posicao fisica no arquivo str(regi.num:4,vet[c].c_chave); until (eof(arqi)); {2:Se você abriu o arquivo PROVA1.TXT ou PROVA2.TXT, verá que ambos estão em ordem de número de inscrição, que não é a ordem em que os registros de CAND.IND estão gravados. Como será necessário acessar o registro do candidato a partir do número de inscrição que está nos arquivos de provas. Então usaremos o vetor para a partir do número de inscrição contido nas respostas, descobrir qual a PF desta inscrição em CAND.IND, pois teremos que mostrar o nome do candidato no relatório e teremos que atualizar os campos nota1 e nota2, quando da correção da primeira prova e os campos nota3, nota4 e soma quando da correção da segunda prova.} {3:Perguntar qual prova será corrigida 1 ou 2??? (VALIDAR, o programa deve corrigir uma prova por vez).} repeat writeln ('qual prova será corrigida, 1 ou 2 ?'); readln (prv); until (prv=2) or (prv=1); {4:Abrir o arquivo CAND.IND (RESET permite leitura e gravação)} assign(arqi,'CAND.ind'); reset(arqi); {5:Se a opção for 1 para correção, abrir PROVA1.TXT; se a opção for 2, abrir PROVA2.TXT.} if (prv=1) then x:=prvum; assign (prvum,'PROVA1.TXT'); reset (prvum) ; if (prv=2) then x:=prvdo; assign (prvdo,'PROVA2.TXT'); reset (prvdo); {6. Ler o gabarito DO TECLADO, VALIDANDO (só pode ser A, B, C, D ou E) string[50] } writeln ('digite o gabarito'); repeat for corr:= 1 to 10 do readln (gab[corr]); until (gab[corr]='a') or (gab[corr]='b') or (gab[corr]='c') or (gab[corr]='d') or (gab[corr]='e'); writeln ('lol'); {7: Enquanto não fim do arquivo de prova } while not(eof(x)) do begin {7.1: ler as respostas string[54]} read(x,regi); //fala que quer dados primitivos!! {7.2:retirar o número de inscrição } resp:=[5..54]; ///???? {7.3: fazer pesquisa binária no vetor criado em 1 para descobrir a PF do num de inscr. Ver em MODULOS, quais informações de entrada e qual informação de saída da função que faz a pesquisa binária. } pebin1 (); {7.4: posicionar no CAND.IND (seek-para posicionar) e ler o registo (READ) } seek(read.pf); {7.5: corrigir a prova} for a:= a+x to x+24 do readln (gab[a]); repeat if gab[a]=res[a+4] then ??? else sf.(resp[a+4]=' ') then br:=br+1 else er:=er+1; {7.6:calcular a nota} nota:=ce*4; x:=x+25; {7.7:somar a nota para cálculo da média} notap= ? notam= ? {7.8: se prova = 1, atualizar os campos nota1 e nota2; se prova =2, atualizar os campos nota3, nota4 e soma,no cand.ind} //??? sei que tem que atualizar n1,n2,n3,n4,mas como? {7.9: posicionar no CAND.IND (seek-para reposicionar) e gravar o registro (WRITE)} seek write(cand.ind) close (cand.ind) {8:mostrar as médias por disciplina...} mediap:=notap/portugues ; mediam:=notam/matematicas; } end; End. Ele requere (cand.ind,provas,Unit modulos); o que está obviamente errado é o que eu não consigo desenvolver. se alguém puder dar umas dicas. a saída desse arquivo é pra sair igual a primeira foto do pdf (usando o ledir). não sei se é permitido postar programas grandes como esse no fórum. obrigado desde já. programas necessarios.rar
  5. Program TN03testes; uses crt, modulos; var vett10:vetor; vet1t10:vet1; arqi:file of regis; ctv,ctp,es,a,poc,PAG,tv:integer; reg:regis; aux:cc; PROCEDURE CABECA(ord:string[32]);{MODULO ESPECIFICO PARA ESTE PROGRAMA} BEGIN CLRSCR ; PAG:=PAG+1; WRITELN(' RELATORIO GERAL - ORDEM ',ord,' PAGINA:',PAG:3); WRITELN; write(' ORD NUM N O M E ===C P F=== NASCIMENTO CS N1'); WRITELN(' N2 N3 N4 SO CG CC CV'); begin clrscr; CABECA(ord); poc:=ctv; for ctp:=1 to poc do begin seek(arqi,vett10[ctp].pf); read(arqi,reg); begin tv:=tv+1; writeln(tv:5,reg.num:5,' ',reg.NOME,' ',reg.cpf,' ',copy(reg.data,7,2),'/',copy(reg .data,5,2),'/',copy(reg.data,1,4),reg.car:3,reg.n1:4,reg.n2:4,reg.N3:4 ,reg.N4:4,reg.so:4,reg.clg:4,reg.clc:3,reg.ccl:3 ); if(tv MOD 40 = 0)THEN BEGIN readln; CABECA(ord); END; end; close(arqi); writeln('Registros Lidos: ',tv:5); end; end; end; procedure ordenanum(onum:string[32]); BEGIN //Monta o vetor usando o campo chave como número!!! assign(arqi,'CAND.ind'); reset(arqi); readln(arqi,reg); while not(eof(arqi)) do begin begin ctv:=1; vett10[a].pf:=ctv; seek(arqi,vett10[a].pf); Str(reg.num:4,vett10[a].c_chave); ctv:=ctv+1; end; end; //Chama ordenacao ordem(vett10,ctv); //Apresenta na tela o resultado conforme o arquivo LEDIR CABECA(onum); end; procedure ordenanome(onum:string[32]); BEGIN //Monta o vetor usando o campo chave como número!!! assign(arqi,'CAND.ind'); reset(arqi); read(arqi,reg); while not(eof(arqi)) do begin ctv:=ctv+1; vett10[a].pf:=ctv; vett10[a].c_chave:=reg.nome; seek(arqi,vett10[a].pf); read(arqi,reg); end; //Chama ordenacao ordem(vett10,ctv); //Apresenta na tela o resultado conforme o arquivo LEDIR CABECA(onum); end; procedure ordenacpf(onum:string[32]); BEGIN //Monta o vetor usando o campo chave como número!!! assign(arqi,'CAND.ind'); reset(arqi); read(arqi,reg); while not(eof(arqi)) do begin ctv:=ctv+1; vett10[a].pf:=ctv; vett10[a].c_chave:=reg.cpf; seek(arqi,vett10[a].pf); read(arqi,reg); end; //Chama ordenacao ordem(vett10,ctv); //Apresenta na tela o resultado conforme o arquivo LEDIR CABECA(onum); end; procedure ordenadata(onum:string[32]); BEGIN //Monta o vetor usando o campo chave como número!!! assign(arqi,'CAND.ind'); reset(arqi); read(arqi,reg); while not(eof(arqi)) do begin ctv:=ctv+1; vett10[a].pf:=ctv; vett10[a].c_chave:=reg.data; seek(arqi,vett10[a].pf); read(arqi,reg); end; //Chama ordenacao ordem(vett10,ctv); //Apresenta na tela o resultado conforme o arquivo LEDIR CABECA(onum); end; procedure ordenacar(onum:string[32]); BEGIN //Monta o vetor usando o campo chave como número!!! assign(arqi,'CAND.ind'); reset(arqi); read(arqi,reg); while not(eof(arqi)) do begin ctv:=ctv+1; vett10[a].pf:=ctv; Str(reg.car:1,vett10[a].c_chave); seek(arqi,vett10[a].pf); read(arqi,reg); end; //Chama ordenacao ordem(vett10,ctv); //Apresenta na tela o resultado conforme o arquivo LEDIR CABECA(onum); end; //Comeca o Programa BEGIN WRITELN('+++++++++++++++++++++++++++++++++++++++++++++++'); WRITELN(' BEM VINDO A PESQUISA '); WRITELN('+++++++++++++++++++++++++++++++++++++++++++++++'); WRITELN('DIGITE O NÚMERO DO TIPO DE ORDENACAO DESEJADA:'); WRITELN('1)Por Número de inscrição'); WRITELN('2)Por Nome'); WRITELN('3)Por CPF'); WRITELN('4)Por Data de Nascimento'); WRITELN('5)Por Cargo'); WRITE('R: '); read(es); if (es=1) or (es=01) then ordenanum('ORDENA POR NUMERO DE INSCRICAO'); if (es=2) or (es=02) then ordenanome('ORDENA POR NOME DE CANDIDATO'); if (es=3) or (es=03) then ordenacpf('ORDENA POR CPF'); if (es=4) or (es=04) then ordenadata('ORDENA POR DATA DE NASCIMENTO'); if (es=5) or (es=05) then ordenacar('ORDENA POR CARGO'); End. esse é o 'MODULOS UNIT': unit modulos; interface type a36=string[36]; regis=record num:integer; nome:a36; cpf:string[11]; data:string[8]; car,n1,n2,n3,n4,so,clg,clc,ccl:integer end; cc=record pf:integer; c_chave:a36; end; vetor=array[1..2000] of cc; vet1=array[1..2000] of a36; PROCEDURE pebin1(vet:vetor;ext:a36;t:integer;VAR CC:INTEGER); function valdat(d,m,a:integer):boolean; function vercpf(num:string[11]):boolean; procedure ordea(var vet:vet1; t:integer); procedure ordem(var vet:vetor; t:integer); implementation //-----ordena vetor contento em cada posicao a estrutura registro PF+CAMPO CHAVE procedure ordem(var vet:vetor; t:integer); var aux:cc; tot,a,jt:integer; tro:boolean; begin tot:=t; jt:=1; repeat tro:=true; tot:=tot-jt; for a:=1 to tot do if(vet[a].c_chave > vet[a+1].c_chave) then begin aux:=vet[a]; vet[a]:=vet[a+1]; vet[a+1]:=aux; tro:=false; jt:=1; end else jt:=jt+1; until tro; end; //-----ordena um vetor contendo em cada posicao um STRING[36] procedure ordea(var vet:vet1; t:integer); var aux:a36; tot,a,jt:integer; tro:boolean; begin tot:=t; jt:=1; repeat tro:=true; tot:=tot-jt; for a:=1 to tot do if(vet[a] > vet[a+1]) then begin aux:=vet[a]; vet[a]:=vet[a+1]; vet[a+1]:=aux; tro:=false; jt:=1; end else jt:=jt+1; until tro; end; //------valida uma data function valdat(d,m,a:integer):boolean; var dm:integer; DAT:BOOLEAN; BEGIN DAT:=TRUE; IF(A<1900)THEN //ano DAT:=FALSE ELSE IF(M<1) OR (M>12) THEN //mes DAT:=FALSE ELSE BEGIN //dia DM:=31; IF(M=4) OR (M=6) OR (M=9) OR (M=11) THEN //meses com 30 dias DM:=30; IF(M=2) THEN //fevereiro BEGIN DM:=28; IF(A MOD 4) = 0 THEN //bissesto DM:=29; end; IF(D<1) OR (D>DM) THEN DAT:=FALSE END; valdat:=dat; END; //-----pequisa binaria PROCEDURE pebin1(vet:vetor;ext:a36;t:integer;VAR CC:INTEGER); var ii,i9,meio:integer; achou:boolean; begin achou:=false; ii:=1; i9:=t; repeat meio:=(ii+i9) div 2; if(ext = vet[meio].c_chave)then achou:=true else if(ext > vet[meio].c_chave)then ii:=meio+1 else i9:=meio-1; until ((achou) OR (ii > i9)); if( achou ) then CC := meio else CC := 0; end; //-----valida CPF function vercpf(num:string[11]):boolean; var vet:array[1..11] of integer; dvs:array[1..2] of integer; som,a,b,e,f,m,r:integer; aux:boolean; begin aux:=true; for a:=1 to 11 do val(num[a],vet[a],e);{o string "num" já vem validado} f:=8; m:=10; a:=0; repeat som:=0; a:=a+1; f:=f+1; m:=m+1; for b:=1 to f do som:=som+vet[b]*(m-b); r:=som mod 11; dvs[a]:=11-r; if(r<2)then dvs[a]:=0; if(vet[m-1] <> dvs[a])then aux:=false; until ((a=2) or (not aux)); vercpf:=aux; end; end. trabalho da faculdade. Quando tento executar o primeiro code ele me diz "A posição 0 esta fora dos limites do vetor!",alguém pode me ajudar? (tudo foi compilado no pascalzim). Essa é minha primeira vez postando,desculpe se cometi algum erro.
  6. Boa noite, Preciso de ajuda no meu quis feito em Pascal. Queria saber como coloco para que as opções de maior pontuação e menor pontuação funcionem, pois, sempre aparece a última pontuação e as outras são esquecidas. Gostaria também como arrumar a questão de quando o jogador querer continuar no quis, a linha de inserir a senha não fique na mesma linha da pergunta de continuar ou sair. Obrigada desde já! Código:
  7. Alguém poderia me dar uma dica... não esta funcionando. Program Pzim ; var posi,i,a,e:integer; var octal: string[8]; decimal: real ; potencia, qtde_numeros: integer; Begin write('Digite o octal para ser convertido: '); readln(octal); qtde_numeros:=length(octal); potencia:= 0; for a:=1 to qtde_numeros do //val(octal[a],decimal,e); //decimal:=octal[a]; for i:=qtde_numeros downto 1 do begin decimal:=decimal*(exp(potencia*ln(8))); potencia:=potencia+1; end; writeln ('O numero Octal ',octal,' e igual a ',decimal:0:0,' em decimal'); End.
  8. Program Calculadora ; Uses crt; Var opt: char; x, y, z: real; M: array [1..4, 1..4] of real; i, j: integer; {Função para calcular os resultados} Function Calculo (x:real; y:real; z:real): real; begin Case opt of #43: begin z:= x+y end; #45: begin z:= x-y end; #42: begin z:= x*y end; #47: begin z:= x / y; if y = 0 then begin Writeln('Divisão inválida, digite um número diferente de zero para o divisor '); end; end; end; Calculo:= z end; {Procedure para adição} Procedure Adicao; begin clrscr; writeln; writeln ('Insira a primeira parcela'); readln (x); writeln; writeln('+'); writeln; writeln ('Insira a segunda parcela'); readln(y); writeln; writeln(Calculo(x, y, z):0:2); readkey; clrscr; end; {Procedure para a subtração} Procedure Sub; begin clrscr; writeln; writeln ('Insira o minuendo'); readln (x); writeln; writeln('-'); writeln; writeln ('Insira o subtraendo'); readln(y); writeln; writeln(Calculo(x, y, z):0:2); readkey; clrscr; end; {Procedure para a multiplicação} Procedure Mult; begin clrscr; writeln; writeln ('Insira o primeiro fator'); readln (x); writeln; writeln('*'); writeln; writeln ('Insira o segundo fator'); readln(y); writeln; writeln(Calculo(x, y, z):0:2); readkey; clrscr; end; {Procedure para a divisão} Procedure quo; begin clrscr; writeln; writeln ('Insira o dividendo'); readln (x); writeln; writeln('/'); writeln; writeln ('Insira o divisor'); readln(y); writeln; writeln(Calculo(x, y, z):0:2); readkey; clrscr; end; {Procedure para colocar os resultados em uma matriz e apresenta-los} Procedure Matriz; begin for i:=1 to 3 do begin for j:=1 to 3 do begin M[i,j]:=z end; end; for i:=1 to 3 do begin for j:=1 to 3 do begin writeln(M[i,j]:0:2); end; end; end; {Procedure com o menu que dá as opções} Procedure Menu; Begin Repeat clrscr; writeln; writeln('Escolha uma operação usando os simbolos: (+),(-)(*),(/).'); writeln; writeln('Tecle espaço para imprimir a matriz de resultados'); writeln; writeln('Esc para sair do programa'); opt:=readkey; Case opt of #43: begin adicao end; #45: begin sub end; #42: begin mult end; #47: begin quo end; #32:begin matriz end; #27: begin exit; end; end; writeln('Esc para sair ou Backspace para voltar ao menu principal'); opt:=readkey; Until(opt = #27 ); End; Begin Menu End.
  9. Olá!!! estou tentando fazer um código que transforme um número hexadecimal em decimal, mas este aqui não está funcionando (dá para compilar tranquilo,mas a conversão fica errada). Alguém consegue resolver? Program HexToDec ; var numero:string; tam,digito,i,expoente:integer; deci:real; begin Writeln ('Digite um número hexadecimal'); readln (numero); expoente:=0; deci:=0; tam:=length(numero); for i:=tam downto 1 do begin case numero of '1': digito:=1; '2': digito:=2; '3': digito:=3; '4': digito:=4; '5': digito:=5; '6': digito:=6; '7': digito:=7; '8': digito:=8; '9': digito:=9; 'A': digito:=10; 'B': digito:=11; 'C': digito:=12; 'D': digito:=13; 'E': digito:=14; 'F': digito:=15; end; expoente:=expoente+1; deci:=deci+digito*(exp(expoente*ln(16))); end; Writeln ('O número decimal é ',deci:0:0); End.
  10. Boa tarde pessoal. Gostaria de pedir ajuda com um pequeno problema... Estou começando agora a estudar programação e encontrei um pequeno problema que vem me atormentando... Preciso pegar a idade de 3 pessoas e mostrar qual é a maior atribuindo o comando IF. Montei o código desse jeito: program idade; var i1, i2, i3: integer; begin writeln('digite a primeira idade: '); readln(i1); writeln('digite a segunda idade: '); readln(i2); writeln('digite a terceira idade: '); readln(i3); if (i1 > i2) and (i1 > i3) then begin writeln('a maior idade ‚', i1); end; else if (i2 > i3) and (i2 > i1) then begin writeln('a maior idade ‚', i2); end; else begin writeln('a maior idade ‚', i3); end; readln; end; end. Acontece que quando chega na segunda parte do programa, ele diz que esperava um . final mas encontrou um ; else if (i2 > i3) and (i2 > i1) then begin writeln('a maior idade ‚', i2); end; E daí pra frente não consigo mais executar. Gostaria de pedir a ajuda de vocês pra tentar resolver isso... Não consigo encontrar uma solução pra isso. Quando coloco o . no lugar do ; ele encerra o programa depois de pedir as idades, caso a i1 seja a maior, ele mostra na tela, mas caso a i2 e i3 sejam maiores o programa fecha porque dei um final ali com o "end.". Agradeço desde já!
  11. Opa galera tudo bem? Preciso criar um software utilizando a linguagem pascal e que seja capaz de realizar 6 tipos de conversões de base. Pra mim a parte das conversões é de boa, mas estou com dificuldade em criar o menu e usar funções. Como faço para declarar variáveis diferentes dentro de cada função? Desde já agradeço.
  12. program Central; uses crt; var op:integer; a1, a2, resultad:integer; s1, s2, resultsu:integer; m1, m2, resultmu:integer; d1, d2:integer; r1, r2:integer; resultdi:real; r:real; x:integer; restod:integer; nt:integer; ntresult:integer; poi:integer; n:integer; begin clrscr; gotoxy(1,2); textcolor(lightgreen); write('Inicializando'); for n:= 1 to 55 do begin delay(50); textcolor(lightgreen); write('.'); end; clrscr; gotoxy(26,2); write('SEJA BEM VINDO(A)!'); delay(1500); repeat clrscr; gotoxy(1,2); textcolor(lightblue); write('***CENTRAL DE CÁLCULOS*** by: Gustavo Moura'); textcolor(white); writeln; writeln; writeln; writeln('1 - ADIÇÃO'); writeln('2 - SUBTRAÇÃO'); writeln('3 - MULTIPLICAÇÃO'); writeln('4 - DIVISÃO'); writeln('5 - RAIZ QUADRADA'); writeln('6 - RESTO DA DIVISÃO'); writeln('8 - TABUADA'); writeln('9 - PAR OU IMPAR'); writeln; write('Digite um número como opção/-1 para sair: '); read(op); if op = 1 then begin clrscr; gotoxy(1,2); Write('Digite um número: '); read(a1); writeln; write('Digite outro número para somar: '); read(a2); resultad:=a1+a2; writeln; write('O resultado da soma é: '); textcolor(lightgreen); write(resultad); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readln; readkey; clrscr; end; if op = 2 then begin clrscr; gotoxy(1,2); Write('Digite um número: '); read(s1); writeln; write('Digite outro número para subtrair: '); read(s2); resultsu:=s1-s2; writeln; write('O resultado da subtração é: '); textcolor(lightgreen); write(resultsu); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readln; readkey; clrscr; end; if op = 3 then begin clrscr; gotoxy(1,2); Write('Digite um número: '); read(m1); writeln; write('Digite outro número para multiplicar: '); read(m2); resultmu:=m1*m2; writeln; write('O resultado da multiplicação é: '); textcolor(lightgreen); write(resultmu); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readln; readkey; clrscr; end; if op = 4 then begin clrscr; gotoxy(1,2); Write('Digite um número: '); read(d1); writeln; write('Digite outro número para dividir: '); read(d2); resultdi:= d1/d2; writeln; write('O resultado da divisão é: '); textcolor(lightgreen); write(resultdi:0:2); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readln; readkey; clrscr; end; if op = 5 then begin clrscr; gotoxy(1,2); write('Digite um número para saber sua raiz quadrada: '); read(x); r:=sqrt(x); writeln; write(' A raiz quadrada de ',x, ' é: '); textcolor(lightgreen); write(r:0:2); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readkey; readln; clrscr; end; if (op > 9) or (op = 0) or (op = 7) or (op < -1) then begin clrscr; textcolor(red); gotoxy(1,2); write('Número inválido, aperte enter para tentar novamente'); readkey; readln; clrscr; end; if (op = 6) then begin clrscr; gotoxy(1,2); write('Digite um número: '); read(r1); writeln; write('Digite outro número para saber o resto da divisão: '); read(r2); restod:=r1 mod r2; writeln; write('O resto da divisão de ',r1,' e ',r2,' é: '); textcolor(lightgreen); write(restod); textcolor(white); delay(300); writeln; writeln; write('Aperte enter para voltar ao menu '); readkey; readln; clrscr; end; if (op = 8) then begin clrscr; gotoxy(1,2); write('Digite um número para saber sua tabuada: '); read(nt); clrscr; ntresult:=0; gotoxy(1,2); while ntresult < 11 do begin writeln(nt,' x ',ntresult,' = ',nt*ntresult); inc(ntresult); end; writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readkey; readln; clrscr; end; if (op = 9) then begin clrscr; gotoxy(1,2); write('Digite um número para saber se é par ou impar: '); read(poi); if (poi mod 2 = 0) then begin clrscr; gotoxy(1,2); write('O número informado é '); textcolor(lightgreen); write('par'); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readkey; readln; clrscr; end else begin clrscr; gotoxy(1,2); write('O número informado é '); textcolor(lightred); write('impar'); textcolor(white); writeln; writeln; delay(300); write('Aperte enter para voltar ao menu '); readkey; readln; clrscr; end; end; until op = -1; clrscr; gotoxy(26,2); textcolor(lightgreen); write('Até mais!!! '); delay(1000); end. Olá pessoal!! Gostaria que vocês testassem esse programa simples e que dessem um feedback ou até sugestões para melhorias. Tenho 15 anos e estou apenas começando no mundo da programação, sei que ainda tenho muito para aprender, mas estou estudando muito... Obrigado!
  13. Boa tarde! Instalei o turbo pascal no meu windows 7, mas o único tipo de dado que consigo usar é o string. Como faço para resolver esse problema?
  14. Eae galera, eu fiz esse algoritmo mas nao acho o erro q esta dando no programa e também nao sei como resolve-lo.Precimo q me expliquem o erro e me ajudem a resolve-lo, por favor obrigado. Programa: procedure Exer20; type Nomes = array[1..10] of string[10]; Idades = array[1..10] of integer; var sexo,nome:Nomes; idade:Idades; N,i,idademaiordezoito,Homem25anos,Mulher35anos,Somatotalidade:integer; continuar:char; begin N:=0; for i:= 1 to 10 do begin writeln('Qual seu nome?'[N]); readln(nome[N]); writeln('Qual sua idade?'[N]); readln(idade[N]); writeln('Qual seu sexo? M ou F.'[N]); readln(sexo[N]); end; for i:= 1 to 10 do begin Somatotalidade:=idade+idade[N]; ((((ta dando erro aqui))) if (idade[N]>18) then idademaiordezoito:=idade+idade[N] else if (sexo[N]='M')and(idade[N]>25) then Homem25anos:=idade+idade[N] else if (sexo[N]='F')and(idade[N]>35) then Mulher35anos:=idade+idade[N]; end; writeln('As pessoas soma das idades das pessoas maiores de idade sao,',Idademaiordezoito,'.'); writeln('A soma da idade dos homens acima 25 anos e',Homem25anos,'.'); writeln('A soma de todas as idades e,',Somatotalidade,'.'); writeln('A soma da idade das mulheres acima dos 35 anos e,',Mulher35anos,'.'); writeln('Deseja pesquisar os dados? S ou N'); readln(continuar); continuar:='S'; while continuar='S' do begin writeln('escreva o numero de 0 a 9 para verificar os dados.'); readln(N); writeln( 'Nome:',nome[N],', Idade:',idade[N],' e sexo:',sexo[N],'.'); writeln('deseja continuar a pesquisar os dados? S ou N'); readln(continuar); end; readln; end;
  15. program usoeletron; var idade_anos, tempo_max_uso_eletron: byte; permite1_10, permite1_12, permite1_14, permite1_16, permite1_18: string[3]; permite2_10, permite2_12, permite2_14, permite2_16, permite2_18: boolean; begin write('Qual é a idade do seu filho em anos? '); readln(idade_anos); if (idade_anos < 2) then begin tempo_max_uso_eletron := 2; end else begin if (idade_anos < 4) then begin tempo_max_uso_eletron := 4; end else begin tempo_max_uso_eletron := idade_anos; if (tempo_max_uso_eletron mod 2 = 1) then begin tempo_max_uso_eletron := tempo_max_uso_eletron - 1; end; tempo_max_uso_eletron := tempo_max_uso_eletron * 2; if (tempo_max_uso_eletron > 60) then begin tempo_max_uso_eletron := 60; end; end; end; writeln; repeat write('Você permite que seu filho use mídias não recomendadas para menores de 10 anos [sim / não]? '); readln(permite1_10); until (permite1_10 = 'sim') or (permite1_10 = 'não'); if(permite1_10 = 'sim') then begin permite2_10 := true; repeat write('Você permite que seu filho use mídias não recomendadas para menores de 12 anos [sim / não]? '); readln(permite1_12); until (permite1_12 = 'sim') or (permite1_12 = 'não'); if(permite1_12 = 'sim') then begin permite2_12 := true; repeat write('Você permite que seu filho use mídias não recomendadas para menores de 14 anos [sim / não]? '); readln(permite1_14); until (permite1_14 = 'sim') or (permite1_14 = 'não'); if(permite1_14 = 'sim') then begin permite2_14 := true; repeat write('Você permite que seu filho use mídias não recomendadas para menores de 16 anos [sim / não]? '); readln(permite1_16); until (permite1_16 = 'sim') or (permite1_16 = 'não'); if(permite1_16 = 'sim') then begin permite2_16 := true; repeat write('Você permite que seu filho use mídias não recomendadas para menores de 18 anos [sim / não]? '); readln(permite1_18); until (permite1_18 = 'sim') or (permite1_18 = 'não'); if(permite1_18 = 'sim') then begin permite2_18 := true; end; end; end; end; end; writeln; write('Então seu filho pode usar eletrônicos no máximo ', tempo_max_uso_eletron, ' horas semanais, podendo ouvir músicas infantis'); if (tempo_max_uso_eletron >= 4) then begin write(', ouvir músicas livres não infantis infantis, ouvir músicas de jogos eletrônicos, assistir filmes e séries livres de personagens fictícios dublados'); end; if (tempo_max_uso_eletron >= 8) then begin write(', assistir programas de televisão livres de entrevistas e entretenimento, assistir programas livres de telejornalismo, jogar jogos eletrônicos livres, assistir filmes, séries e telenovelas livres de personagens reais interpretados'); end; if (permite2_10) then begin write(', usar mídias para 10'); if (permite2_12) then begin write(', 12'); if (permite2_14) then begin write(', 14'); if (permite2_16) then begin write(', 16'); if (permite2_18) then begin write(', 18'); end; end; end; end; write(' anos'); end; writeln(' e só!'); readln; end.
  16. Boa tarde a todos, como forma de treinamento eu desenvolvi essa calculador básica que calcula a media de 3 notas de 2 participantes e exibe as notas, a média e qual a maior média, e gostaria que avaliassem apontando os erros e o que poderia melhorar ou ate sugerir algo mais, simplesmente para fim didático, segue abaixo. Program calc_med ; var x,b: array [1..2 , 1..3] of real; i,j:integer; Begin writeln('Calculo da média de 3 notas de 2 participantes'); for j:= 1 to 2 do for i:= 1 to 3 do begin write(i,'ª nota do ',j,'º participante: '); readln(x[j][i]); end; clrscr; for j:= 1 to 2 do begin b[j][i]:= (x[j][1] + x[j][2] + x[j][3])/3; (!) end; for j:= 1 to 2 do for i:= 1 to 3 do writeln(i,' ª nota do ',j,' º participante: ',x[j][i]); for j:= 1 to 2 do writeln('Média das notas do ',j,' º participante é: ',b[j][i]); if (b[1][i]) > (b[2][i]) then writeln('O primeiro participante ganhou o concurso!') else writeln('O segundo participante venceu o concurso!'); End. Tive ate uma certa dificuldade para desenvolver, principalmente onde marquei com (!) pois não vi necessidade de adicionar o ''[i']'' na linha do calculo já que não faria sentindo eu por o comando ''for i:= 1 to 3 do'' pois calcularia o mesmo resultado nas 3 repetições... enfim, ainda me restam algumas dúvidas pois ainda não domino o assunto, se algum puder me da uma luz eu agradeço. ps: coloquei como [i'] pois no pré -visualizar não estava aparecendo.
  17. Boa tarde, estou iniciando na programação e comecei pela linguagem Pascal, sempre pratico criando aplicações simples, por exemplo essa aqui: Program par_ou_impar ; var x :integer; resp :string; Begin while (resp = 'sim') do begin write('Verifique se um número é par ou não: '); readln(x); if (x mod 2 = 0) then writeln('O número é par!') else writeln('O número é impar!'); writeln; writeln; write('Deseja continuar com a aplicação? '); readln(resp); clrscr; end; End. Quando eu executo o programa (F9) no PascalZim ele simplesmente abre o console e fecha rapidamente, não aponta falha em nenhuma linha nem nada, o que pode ser? alguém pode testar o código?.. Ps: antes de adicionar o comando de repetição 'while...do' junto a variável 'resp' ele funcionava, porém no final da operação ele fechava o programa naturalmente.
  18. Olá amigos. Estou com dificuldade em manipulação de arquivos de texto, mais precisamente no excluir e no alterar. Criei o projeto e o programa até cria o arq.aux (que é usado para excluir), mas não copia nada para ele e nem apaga o original. Alguém pode revisar para mim? Grato. Código: program project1; uses crt,sysutils; type cadastro = record modelo: string; cor : string; end; var arq : textfile; arq2: textfile; opcao : integer; auto : cadastro; linha : string; begin Assignfile(arq, 'garagem.txt'); Assignfile(arq2, 'garagemaux.txt'); //cria arq tmp p/ excluir if (fileexists ('garagem.txt') = false)then begin rewrite(arq); //abre arquivo closefile(arq); end; repeat writeln('1 - Inserir Registro '); writeln('2 - Ver Registros'); writeln('3 - Excluir Registro'); writeln('4 - Alterar registro'); writeln('5 - Sair'); readln(opcao); case opcao of //inserir 1 : begin write('Digite o nome do veiculo: '); readln(auto.modelo); write('Digite a cor do veiculo: '); readln(auto.cor); Append(arq); //final do arquivo writeln(arq, auto.modelo:10,auto.cor:10); Closefile(arq); clrscr; end; //listar 2 : begin reset(arq); //ABRE O ARQ while not EOF(arq) do begin readln(arq,auto.modelo,auto.cor); writeln(auto.modelo,auto.cor); end; readkey; closefile(arq); end; //excluir 3 : begin writeln('qual modelo desejas excluir: '); readln(linha); reset (arq); //abre o arq no inicio rewrite(arq2); while not (EOF(arq)=false) do //enquanto nao for o final do arquivo begin readln(arq,auto.modelo); if (linha <> auto.modelo) then begin writeln(arq2,auto.modelo); end; closefile(arq); closefile(arq2); erase(arq); rename(arq2,'garagem.txt'); end; end; //alterar // 4 : end; begin writeln(''); writeln('Aperte qualquer tecla para voltar ao menu'); clrscr; end; until (opcao = 5); Closefile(arq); end. teste.txt
  19. Faça um programa em Pascal que receba os seguintes dados de uma pessoa: nome (texto), cpf (inteiro), sexo (caractere) e o ano de nascimento (inteiro) e armazene-os em um registro. Em seguida, apresente o nome, o sexo e a idade dessa pessoa
  20. Olá alguém poderia me ajudar nesse exercício sou iniciante. Faça um programa que receba os seguintes dados dos habitantes de uma região: idade, sexo (M/F) e salário, calcule e mostre a) A média dos salários do grupo, A maior e a menor idade do grupo, c) A quantidade de mulheres com salário até R$ 200,00, d) A idade e o sexo da pessoa que possui o menor salário. Finalize a entrada de dados ao digitar uma idade negativa.
  21. Eu sou novato na programação, e então decidi optar por uma linguagem de mais fácil compreensão para iniciantes. Bem, eu estava tentando fazer um enigma no Pascal, e até aí tudo bem, mas, eu não sei o "código" (não sei se esse é o termo correto) para que se a pessoa acertar a palavra aparecer que ela acertou, e se ela errar aparecer que ela errou.
  22. Olá tudo bem,poderia me ajudar a escrever um código em pascal aqui? Sou iniciante e estou com uma dúvida na seguinte questão: Faça um algoritmo que receba um caractere qualquer do teclado e mostre as seguintes mensagens: *se* for uma letra do alfabeto, a mensagem mostrada deverá ser : 'esse caractere e uma letra do alfabeto', *caso* seja um número ela deverá ser: 'esse caractere e um número', e *caso* seja outro caractere,deverá aparecer essa outra essa outra mensagem: 'esse caractere e um outro caractere qualquer'. Esse algoritmo também deve mostrar o caractere digitado dessa maneira: O caractere digitado foi: CARACTERE'. EU estou tendo dúvida no no *se*,mas o *case* eu sei,como eu consigo colocar a decisão se no tipo char? Pode passar o código pra mim ou dar uma explicação? Eu fiz assim,está certo?: program caracteres; var caracter: char; begin WriteLn('Digite um caractere qualqier no teclado'); ReadLn(caracter); if caracter = 'a..z' then begin WriteLn('esse caractere e uma letra do alfabeto'); end else if caracter <> 'a..z' then begin WriteLn('nao e uma letra do alfabeto'); end; readln; end. Não está dando certo pois toda vez que dou Run e digito qualquer letra o compilador somente entende como 'não e uma letra do alfabeto' me ajudem.
  23. Boa Tarde pessoal! , estou tentando fazer um sistema tipo um caixa de supermercado, aonde o programa lê os produtos e depois dá um preço final, o problema é que se eu colocar um mesmo produto duas vezes ele não junta o total das duas execuções, ex: Arroz* 2 unidades = 10 reais, se voltar nessa conta ele não coloca os 20 reais. Gostaria de saber como acumular os valores em uma mesma variável a cada execução do programa. Se alguém puder me ajudar com qualquer dica, agradeço desde já. Olhei várias apostilas e sites mas só consegui fazer desse jeito. program caixa; uses crt, math; var produto: array [1..5] of string; preco1: real; subtotal: array[1..5] of real; troco: real; pagamento: real; quantidade: integer; prodescolhido: string; precototal: real; totalcompra: real; finalcompra: string; begin produto[1] := 'Arroz'; produto[2] := 'Feijao'; produto[3] := 'Macarrao'; produto[4] := 'Leite'; produto[5] := 'Acucar'; repeat writeln('Produto Escolhido e Quantidade'); readln(prodescolhido); readln (quantidade); if (prodescolhido = produto[1]) then begin preco1 := 5; subtotal[1] := quantidade*preco1; end; if (prodescolhido = produto[2]) then begin preco1 := 2; subtotal[2] := quantidade*preco1; end; if (prodescolhido = produto[3]) then begin preco1 := 3.5; subtotal[3] := quantidade*preco1; end; if (prodescolhido = produto[4]) then begin preco1 :=1.5; subtotal[4] := quantidade*preco1; end; if (prodescolhido = produto[5]) then begin preco1 := 4; subtotal[5] := quantidade*preco1; end; precototal := subtotal[1] + subtotal[2] + subtotal [3] + subtotal[4] + subtotal[5]; totalcompra:= precototal; writeln ('Finalizar Compra?'); readln(finalcompra); until (finalcompra = 'Sim'); if (finalcompra = 'Sim') then begin clrscr; writeln('Total da Compra: ', totalcompra:6:2); writeln('Pagamento'); readln(pagamento); troco:= pagamento-precototal; writeln('troco: ', troco:6:2); writeln('Pressione ENTER para finalizar o programa'); readln; end; end.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×