Você está aqui: Lisp ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como criar arrays na linguagem LISP usando a função make-array() - Vetores e matrizes em LISPQuantidade de visualizações: 476 vezes |
Assim como a maioria das linguagens, LISP também possui vetores e matrizes, e estes são criados por meio da função make-array. Nesta seção do site nós usaremos a palavra vetor para nos referirmos aos arrays de apenas uma dimensão, e usaremos matrizes para os arrays de duas ou mais dimensões. É claro que o nome array será visto com muita frequência também, pois é um termo ao qual todos os programadores estão acostumados. Como já sabemos, um array consiste de posições de memória distribuidos de forma contígua, o que torna o acesso a seus elementos muito rápido. Então, vamos ver como criar um array de uma dimensão em LISP usando a função make-array. Note que criaremos um vetor com 10 posições, mas não definiremos os seus valores iniciais. Lembre-se que as implementações LISP não garantem que elementos (por exemplo, do tipo inteiro) não inicializados terão sempre o valor 0, como acontece com Java. Veja o código LISP a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; vamos criar um array unidimensional contendo ; espaço para 10 elementos (let (numeros) ; agora que já declaramos o nome do array, ; vamos reservar espaço para os 10 elementos (setq numeros (make-array '(10))) ; vamos mostrar o array criado (format t "Os elementos do array são: ~D~%" numeros) ) Ao executar este código LISP nós teremos o seguinte resultado: Os elementos do array são: #(0 0 0 0 0 0 0 0 0 0) Veja que os elementos do array foram inicializados como 0. Porém, nem todas as implementações LISP garantem este resultado. Para fins de estudos, eu estou usando Common Lisp e o compilador Steel Bank Common Lisp (SBCL). |
![]() |
Lisp ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar uma substring de uma string em LISP usando a função subseq()Quantidade de visualizações: 473 vezes |
Nesta dica mostrarei como podemos extrair uma parte de uma palavra, frase ou texto, ou seja, vamos obter uma substring a partir de uma string. Na linguagem LISP isso pode ser feito por meio da função subseq(). Esta função aceita 3 argumentos. O primeiro argumento é a string a partir da qual a substring será extraída. O segundo argumento é o índice inicial da substring, começando sempre em 0. O terceiro argumento marca o índice final da substring (um índice a mais que o último caractere desejado). Se o terceiro argumento for omitido, todo o restante da string será incluído na substring. Veja o código LISP completo para o exemplo no qual pedimos para o usuário informar uma frase e extraímos dessa frase os 5 primeiros caracteres: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; variáveis que vamos usar no programa (let ((frase)(substring)) ; Vamos pedir para o usuário informar ; uma frase (princ "Informe uma frase: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável frase (setq frase (read-line)) ; vamos mostrar a frase informada ; o símbolo ~% provoca uma quebra de linha (format t "A frase informada foi: ~S~%" frase) ; agora vamos obter os 5 primeiros caracteres (setq substring (subseq frase 0 5)) ; e mostramos a substring (format t "A substring obtida foi: ~S" substring) ) Ao executar este código LISP nós teremos o seguinte resultado: A frase informada foi: "Estudar LISP é bom demais" A substring obtida foi: "Estud" |
Lisp ::: Desafios e Lista de Exercícios Resolvidos ::: Lisp Básico |
Exercícios Resolvidos de Lisp - Como somar dois números em Lisp - Escreva um programa Lisp que leia dois números e mostre a sua somaQuantidade de visualizações: 1440 vezes |
Exercício Resolvido de Lisp - Como somar dois números em Lisp - Escreva um programa Lisp que leia dois números e mostre a sua soma Pergunta/Tarefa: Escreva um programa Common Lisp que solicita ao usuário dois números inteiros e mostre a sua soma. Sua saída deverá ser parecida com: Informe o primeiro valor: 2 Informe o segundo valor: 8 A soma é 10 Veja a resolução completa para o exercício em Common Lisp usando o compilador Steel Bank Common Lisp (SBCL), comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; Vamos definir as variáveis que vamos ; usar no programa (defvar n1) (defvar n2) (defvar soma) ; Este o programa principal (defun Soma() ; Vamos ler o primeiro valor (princ "Informe o primeiro valor: ") ; talvez o seu compilador não precise disso (force-output) (setq n1 (read)) ; Vamos ler o segundo valor (princ "Informe o segundo valor: ") ; talvez o seu compilador não precise disso (force-output) (setq n2 (read)) ; Agora vamos efetuar a soma dos dois números (setq soma (+ n1 n2)) ; E mostramos o resultado (format t "A soma é ~D" soma) ) ; Auto-executa a função Soma() (Soma) |
Lisp ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como testar uma condição em Lisp usando a macro ifQuantidade de visualizações: 1009 vezes |
Nesta dica mostrarei como podemos usar a macro if da linguagem Common Lisp para testar uma condição. Por se tratar de um exemplo básico, não mostrarei um caminho alternativo, ou seja, a mensagem será exibido somente se a condição for satisfeita. Em outras dicas eu complemento com o desvio opcional. Veja um exemplo no qual solicitamos um número ao usuário e informamos se o valor lido é maior que 10: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; Vamos definir as variáveis que vamos ; usar no programa (defvar numero) ; Este é o programa principal (defun Estudos() ; Vamos ler o número (princ "Informe um número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável numero (setq numero (read)) ; vamos testar se este número é maior que 10 (if (> numero 10) (format t "~D é maior que 10~%" numero)) ; E mostramos o número informado (format t "O número informado foi: ~D" numero) ) ; Auto-executa a função Estudos() (Estudos) Ao executar este código Common Lisp nós teremos o seguinte resultado: Informe um número: 12 12 é maior que 10 O número informado foi: 12 |
Veja mais Dicas e truques de Lisp |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |