Pesquisar na Comunidade
Mostrando resultados para as tags ''PASCAL''.
Encontrado 15 registros
-
Este programa irá: | Escrever 10 números aleatórios em um vetor | Ordenar um vetor em ordem crescente | Trocar um valor por outro, caso tenha | inserir um valor na ultima posição | //fpc 3.0.0 program vetor; var vet:array[0..9] of integer; vet_aux:array[0..9] of integer; i, j, k, aux_crescente, x, y, ultima:integer; // Procedimento que irá mostrar o vetor na tela procedure mostrar ( vetor : array of integer) ; var i : integer; begin for i := 0 to 9 do write(vetor[i], ' '); end; // Fim do procedimento begin // laço de for para preencher o array for i := 0 to 9 do begin // colocar um readln para obter os valores do usuário vet[i] := random(10); end; mostrar(vet); // mostra o vetor na tela // colocar vetor em ordem crescente for i := 0 to 9 do begin for j := 0 to 9 do begin if vet[i] < vet[j] then begin aux_crescente := vet[i]; vet[i] := vet[j]; vet[j] := aux_crescente; end; end; end; writeln; // FIM colocar vetor em ordem crescente writeln; mostrar(vet); //Substituir x por y no array x := 7; y := 9; writeln; writeln; writeln('Todos os valores ', x, ' Serão trocados por ', y); for i := 0 to 9 do begin if vet[i] = x then vet[i] := y; end; writeln; mostrar(vet); //FIM Substituir x por y no array //Inclui um valor na pilha. O valor será incluso na ultima posição, empurrando todas as outras para baixo e assim perdendo o valor que estava //na primeira posição. ultima := random(10); for i:= 0 to 8 do begin vet[i] := vet[i + 1]; end; vet[9] := ultima; writeln; mostrar(vet); end.
-
Bom dia.Estou com um probleminha que não estou conseguindo resolver.Tenho dois DBGrids onde no 'Dbgrid1' coloco as contas e no 'Dbgrid2' as parcelas das mesmas e desta forma atualizo as cores conforme baixa nas contas e parcelas.Digamos que para o 'Dbgrid1' uso o DM.qcontasareceber e no 'Dbgrid2' uso o DM.qparcelasR.Preciso que as contas vencendo no dia atual fiquem conforme abaixo. //A Pagar Hoje else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then begin DBGrid1.Canvas.Brush.Color := clGray; DBGrid1.Canvas.Font.Color := clBlack; end porém preciso puxar mais um campo para validação do DM.qparcelasR mais ou menos assim //A Pagar Hoje else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) and (dm.qparcelas_RContaFinalizada.Value = 'Não') then begin DBGrid1.Canvas.Brush.Color := clGray; DBGrid1.Canvas.Font.Color := clBlack; end porém quando coloco desta forma acima não muda a cor do grid como se não reconhecesse o comando.Alguém pode me ajudar?Segue abaixo todo o código de pintura para quem interessar!!!Todos os demais códigos estão todos funcionando!!! procedure Tfrm_ContasAReceber.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin // Selecionado if (gdSelected in State) or (gdFocused in State) then Begin DBGrid1.Canvas.Brush.Color := clBlue; DBGrid1.Canvas.Font.Color := clWhite; End // Sem gerar Parcela Else if (dm.qcontasreceberESTATUS.Value = 'QUITADO') and (dm.qContasreceberULTIMAPARCELA.Value = 0) then begin DBGrid1.Canvas.Brush.Color := clBlack; DBGrid1.Canvas.Font.Color := clWhite; end // Pago Else if (dm.qContasreceberESTATUS.Value = 'QUITADO') then begin DBGrid1.Canvas.Brush.Color := clYellow; DBGrid1.Canvas.Font.Color := clBlack; end //A Pagar Hoje else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then begin DBGrid1.Canvas.Brush.Color := clGray; DBGrid1.Canvas.Font.Color := clBlack; end // Vencida else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value < date) and (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then begin DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.Canvas.Font.Color := clWhite; end // A Pagar else if (dm.qContasreceberPROXIMOPAGAMENTO.Value > date)and (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then begin DBGrid1.Canvas.Brush.Color := clGreen; DBGrid1.Canvas.Font.Color := clWhite; end; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
-
Olá! Meu conhecimento em Pascal pode ser considerado básico. E não consigo escrever uma solução para o problema abaixo: No site da Caixa, disponibilizam os resultados (todos eles) de todas as loterias. Ele vem em formato HTM. Para a Megasena, é uma tabela mostrando nas linhas todos os resultados com informações diversas distribuidas pelas colunas. Cada linha um resultado e nas 21 colunas (Megasena) , informações pertinentes ao próprio. Preciso colocar num arquivo texto sequencial a informação de cada uma dessas 21 colunas de todos os sorteios já realizados. O arquivo baixado da Caixa, possui um trecho inutil no começo e outro no final. A parte central tem o que nos interessa, com HTM uniforme que se repete em todas as linhas dos sorteios. Problema que ele não tem marcação de final de linha..... quando mando ler uma linha, ele tenta ler o arquivo todo (1.2Mb) e dá erro de execução. Foi o que conclui. Trecho que interessa: <tr> <td rowspan="1">1</td> <td rowspan="1">11/03/1996</td> <td rowspan="1">41</td> <td rowspan="1">05</td> <td rowspan="1">04</td> <td rowspan="1">52</td> <td rowspan="1">30</td> <td rowspan="1">33</td> <td rowspan="1">0,00</td> <td rowspan="1">0</td> <td rowspan="1"> </td><td rowspan="1"> </td> <td rowspan="1">0,00</td> <td rowspan="1">17</td> <td rowspan="1">39.158,92</td> <td rowspan="1">2016</td> <td rowspan="1">330,21</td> <td rowspan="1">SIM</td> <td rowspan="1">1.714.650,23</td> <td rowspan="1">0,00</td> <td rowspan="1">0,00</td></tr> São (hoje) 2065 resultados da Megasena e logo, 2065 trechos desses. Podem me dar alguma dica do caminho a seguir? Tem que ser em Pascal. Uso o Lazarus. Vou publicando aqui o desenrolar. Abraço à todos e grato pela atenção.
-
funcao Exemplo de função | comentada | pascal
uma questão postou Thiago André Cardoso Lógica de Programação
Uso na prática: ------------------------------ program FuncaoSomar; uses crt; var numero1, numero2, resultado: integer; // início da função somar function somar(n1:integer; n2:integer😞integer; // n1 e n2 são variáveis locais e só existem dentro dessa função. begin somar:= n1 + n2; // retorna o valor da soma para a função end; // Fim da função somar // Bloco principal do programa begin clrscr; writeln('Este programa irá somar dois valores'); writeln('Digite o primeuro número:'); readln(numero1); readln(numero2); resultado := somar(numero1, numero2); // chamada da função e passagem dois dois parâmetros, numero1 e numero2. writeln('Resultado da soma = ', resultado); end. O valor de numero1 e numero2 são repassado para n1 e n2 da função; O valor de n1 + n2 é atribuído para somar dentro da função; O valor da função é retornado para a variável resultado. Espero que tenham gostado. Estou com um ótimo curso online com um preço bem pequeno e negociável. Entra em contato para falarmos 🙂 (85) 999273805 WhatsApp -
//fpc 3.0.0 //Thiago André Cardoso Silva //Git Hub: https://github.com/doctorwho1998 program funcionario; uses crt; const COL = 2; LIN = 10; var matricula_nome:array[0..(LIN - 1), 0..(COL - 1)] of String; salario:array[0..9] of Real; jornada:array[0..9] of integer; matricula:String; q_c,i,j,k,aux_alt,aux_exc,aux_mat:integer; cont_cad:boolean; //-----Pesquisar funcionário----- procedure pesquisar(mat:String); begin for i := 0 to 9 do begin if mat = matricula_nome[i,0] then begin writeln; writeln('Resultado da busca:'); writeln('Matricula: Nome: Salário: Jornada:'); write(matricula_nome[i][0],' '); write(matricula_nome[i][1],' '); write(salario[i]:00:02,' '); write(jornada[i]); writeln; writeln; end; end; end; //-----Pesquisar funcionário----- //-----Alterar funcionário----- procedure alterar(mat:String; n:String; sal:real; jor:integer); begin for i := 0 to 9 do begin if mat = matricula_nome[i,0] then begin matricula_nome[i,1] := n; salario[i] := sal; jornada[i] := jor; aux_alt := aux_alt + 1; writeln('Funcionário alterado com sucesso!'); end; end; writeln; if aux_alt = 0 then begin writeln('Matricula ',mat,' não encontrada'); writeln; end; end; //-----Alterar funcionário----- //-----Cadastrar----- procedure cadastrar(mat:String; n:String; sal:real; jor:integer); begin if q_c < 10 then begin for i := 0 to 9 do begin if mat = matricula_nome[i][0] then begin aux_mat := aux_mat + 1; end; end; if aux_mat = 0 then begin matricula_nome[q_c,0] := mat; matricula_nome[q_c,1] := n; salario[q_c] := sal; jornada[q_c] := jor; q_c := q_c + 1; writeln; end else begin writeln('Matricula ',mat,' já cadastrada'); end; end else begin writeln('Limite de cadastro atingido!'); writeln; end; end; //-----Cadastrar----- //-----Excluir----- procedure excluir(mat:String); begin for i := 0 to 9 do begin if mat = matricula_nome[i,0] then begin for j := i to q_c do begin for k := 0 to COL - 1 do begin matricula_nome[j][k] := matricula_nome[j+1][k]; end; salario[j] := salario[j+1]; jornada[j] := jornada[j+1]; end; aux_exc := aux_exc + 1; end; end; if aux_exc = 0 then begin writeln('Matricula ',mat,' não encontrada'); end else begin q_c := q_c - 1; end; end; //-----Excluir----- //-----Listar----- procedure listar; begin writeln('Matricula: Nome: Salário: Jornada:'); for i := 0 to q_c - 1 do // for para listar matricula e nome begin for j := 0 to COL - 1 do begin write(matricula_nome[i][j],' '); end; write(salario[i]:00:02,' '); write(jornada[i]); writeln; end; end; //-----Listar----- //---------------------------------------------INÍCIO--------------------------------------------- begin { writeln('Digite a matricula do funcionário'); writeln('Digite o nome do funcionário'); writeln('Digite o salário'); writeln('Digite a jornada de trabalho'); } cadastrar('1010', 'José Sobrinho', 5500, 40); cadastrar('1011', 'Jovem Célio ', 2500, 40); cadastrar('1011', 'Jovem Thiago ', 2500, 40); listar; pesquisar('1011'); alterar('1011', 'Jovem Cesar ', 2499, 80); listar; excluir('1011'); listar; end.
-
1 - Deixe sua reposta para que outras pessoas posam ver 2 - Pode-se responder em qualquer linguagem, mas se puder deixar só o algoritmo escrito (Portugol) por exemplo, seria ótimo. Vamos ao desafio: Criar um algoritmo que multiplique dois números inteiros positivos maiores que zero SEM usar o operador de multiplicação (*) Boa sorte!
-
Porque o pascal do Linux não aceita a biblioteca crt(uses crt)?
-
Então pessoal me ajudem ai pode ser usando Pascal , c, c++ queria saber como crio um programa que quando eu digitar 4 numeros qualquer ele gera uma grande sequencia de combinações com esse numero mais sem repetir nem um ???? me ajudem por favor
-
Pessoal sou iniciante na programação, estou com dúvidas nessa questão, pois não consigo resolver, o programa tem que ser resolvido só com comados de entrada e saída. Carlos chegou ao aeroporto para fazer o check-in do seu vôo. Ao entrar na fila de passageiros, ele percebeu que a empresa aérea tinha 5 guichês para fazer o check-in dos passageiros, e que estes guichês eram numerados de 1 a 5. Considerando que os guichês iam começar a realização dos check-ins no exato momento em que Carlos entrou na fila, e que cada check-in é realizado em exatamente 15 minutos, escreva um programa que leia um número inteiro positivo que corresponde à posição de Carlos na fila e determine o número do guichê no qual ele será atendido.
-
Bom pessoa boa noite, comecei a fazer um trabalho da faculdade de grafos, que é pra ler um arquivo .txt contendo uma matriz nesse arquivo e o programa mostrar a arvore minima geradora pelo algoritmo de Kruskal, eu so não consegui fazer até agora essa parte desse algoritmo, achei muito complexo, vou postar aqui a parte do meu codigo onde ler o arquivo, se alguém poder me ajudar agradeço muito. Program AlgoritmoemGrafos; uses crt, dos; var MAdjacencia : Array [1..100,1..100] of integer; {Matriz de Adjacencia do Grafo} n,m : Integer; {Quantidade de Vertices e de Arestas direcionadas do Grafo} arquivo : Text; {Arquivo texto onde esta o Grafo} arqok : Boolean; {Arquivo encontrado ou não} nomearquivo : String; {Nome do arquivo a ser utilizado} Auxarq : Char; {Auxiliar para colocar os dados do arquivo na matriz} Snumero : String; {Numero do arquivo em formato String} Inumero : Integer; {Numero do arquivo em formato inteiro} I, J : Integer; {Auxiliares para varrer a matriz} erro : Integer; {Erro na transformacao de String para Inteiro} {============ VARIAVEIS DOS ALUNOS =============} {======= FIM DAS VARIAVEIS DOS ALUNOS ==========} begin textbackground(1); clrscr; arqok := false; while not arqok do {Verificando a existencia do arquivo} begin write('Digite o nome do arquivo: '); readln (nomearquivo); if Fsearch (nomearquivo,'') <> '' then begin arqok := true; writeln('Arquivo localizado com sucesso!'); readkey; clrscr; end else begin writeln ('Arquivo inexistente, tente novamente!') end; end; for i := 1 to 100 do for j := 1 to 100 do MAdjacencia [i,j] := 0; writeln('Trabalhos dos alunos: X, Y e Z'); {Substituir o X, Y e Z pelo nome dos componentes da equipe e excluir esse comentario} writeln(' '); writeln('Matriz de Adjacencia do Grafo no arquivo:'); writeln(' '); assign (arquivo, nomearquivo); reset (arquivo); snumero := ''; i := 1; {Preenchimento inicial na linha 1 } j := 1; {Preenchimento inicial na coluna 1 } m := 0; While not eof (arquivo) do {Preenchimento da Matriz de Adjacencia do Grafo} begin read(arquivo, auxarq); if (auxarq <> ' ') and (auxarq <> chr(13)) and (auxarq <> chr(10)) then begin snumero := concat (snumero,auxarq); end else begin val (snumero,inumero,erro); if (erro <> 0) and (auxarq <> chr(10)) then begin Writeln('Erro: ', erro,'. Arquivo não possui um grafo'); readkey; halt; end; snumero := ''; MAdjacencia [i,j] := inumero; if inumero <> 0 then m := m + 1; {Definindo a quantidade de Arestas Dirigidas em digrafos} if auxarq = ' ' then begin write (MAdjacencia [i,j], ' '); j := j + 1; end else begin if (auxarq <> chr(10)) then begin writeln (MAdjacencia [i,j], ' '); i := i + 1; j := 1; end; end; end; {do if} end; {do while eof} val (snumero,inumero,erro); if (erro <> 0) and (auxarq <> chr(10)) then begin Writeln('Erro: ', erro,'. Arquivo não possui um grafo'); readkey; halt; end; MAdjacencia [i,j] := inumero; if inumero <> 0 then m := m + 1; {Definindo a quantidade de Arestas Dirigidas em digrafos} writeln (MAdjacencia [i,j], ' '); {m := m div 2; {descomente essa linha para grafos} n := i; writeln(''); writeln(''); writeln('n= ',n, ' e m= ', m); close(arquivo); readkey; {=== CODIGODe Kruskal implementar a partir dessa linha ====} end.
-
Olá a todos. Estava fazendo um trabalho para o curso referente a corretora de seguros onde trabalho. Porém após o término percebi um grave erro e não estou conseguindo ideias para resolver. SEGUINTE: * O preço de um seguro vem de: Valor Líquido + 7.38% de IOF * Porém, Este valor líquido é o valor já adicionado a comissão. Exemplo: Valor Líquido(15% de comissão)= 1254.80 IOF(7.38%)= 92.60 Valor Total= 1347.41 * Gostaria de fazer que o valor líquido variasse ao modo que altero a comissao. Tentei de toda forma e não consigo. Segue _____________________________________________________ Program precodeseguro; uses SysUtils, Crt; var vf, vp, tj, t, p, p1, i, c, co : Real; Const iof=(7.38/100); Begin ClrScr; p1 := 0; WriteLn ('Calculo de IOF e parcelas com Juros '); WriteLn; Write ('Valor Liquido.: '); ReadLn (vp); Write ('Taxa de Juros.: '); ReadLn (tj); WriteLn ('IOF...........: 7.38 '); Write ('Parcelas......: '); ReadLn (p); Write ('Comissao......: '); ReadLn ©; t := tj/100; // Taxa em porcento co := vp*(c/100); if p = 1 then // 1 parcela não tem juros vf := vp*(1+iof*1); p1 := vf / p; if p = 2 then // 2 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 3 then // 3 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 4 then // 4 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 5 then // 5 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 6 then // 6 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 7 then // 7 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 8 then // 8 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; if p = 9 then // 9 parcelas begin vf := vp*(1+iof*1); vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; vf := vf +(vf*tj)/100; p1 := vf / p; end; WriteLn; WriteLn ('Valor com juros:',vf:8:2); WriteLn ('Valor das parcelas:',p:2:0,'X',p1:8:2); WriteLn ('Comissao:',co:4:2); ReadLn; End.
-
Olá, Preciso executar uma aplicação que calcule o valor de IOF(+7,8%) sobre um valor à determinar. Após isto, preciso elencar as parcelas sendo que: em 1x não há juros em 2x há 1,7% sobre o valor da de (1x) em 3x há 1,7% sobre o valor da de (2x) . . . . até 9x Por Exemplo: Valor liquido: R$ 900,00 IOF:+7,8% Valor total: R$ 970,20 1x 970,20 2x 493,34 = 986,69 3x 334,49 = 1003,46 . . . Alguém me da uma luz???
-
Olá pessoal,boa tarde! Tudo bem ? Estou com umas dúvidas em pascal e gostaria de umas ajudas. Tenho o seguinte exercício: Desenvolva uma pequena aplicação em Pascal que leia do teclado um inteiro n, maior ou igual a 1, e que e que apresente linhas dessa forma: 1 1 1 1 1 4 4 4 4 9 9 9 16 16 25 Dessa forma eu já consegui fazer usando comandos de repetição, todavia o terceiro exercício pede que façamos esse mesmo exercício usando recursividade(sem repetição), não tenho muita ideia de como poderia começar, alguém poderia me dar uma ideia? Segue o código da primeira aplicação program quuest1 (input{teclado}, output{video}); uses crt; var n:integer; procedure esc_linhas(n{e}:integer); var i,t,j :integer; begin t:=n; n:=t-(n-1); for i := t downto 1 do begin for j:= 1 to i do begin write(output, sqr(n),' '); end; writeln; n:=n+1; end; end; begin writeln('Nome do Aluno: Beto'); writeln('Disciplina: Fundamentos de programaçao'); writeln('Primeira Avaliaçao a distancia'); writeln('__________________________________________________'); writeln('Questao 1'); write(output,'Digite um numero inteiro maior ou igual a 1: '); read(input,n); if n>=1 then esc_linhas(n) else writeln(output,' Somente números maiores ou igual a 1 são aceitos'); readkey; end.
- 2 respostas
-
- recursividade
- pascal
-
(e %d mais)
Tags:
-
Soluções em biometria para leitor Nitgen e Catracas Biométricas para desenvolvedores vb.net implementamos biometria em seu projeto de controle de ponto.. saiba mais sobre nossas soluções em http://geovanny-oliveira16.wix.com/khronostecnologia Acesse nosso canal no youtube e saiba mais sobre nosso módulo para desenvolvedor em biometria https://www.youtube.com/watch?v=YH318BNCV6E Giovanny Oliveira Skype:Giovanny 0113 Correio Eletrônico:geovanny_oliveira16@hotmail.com