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: 477 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 ::: 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: 1441 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 usar o laço loop para contar de 1 até 10 em LispQuantidade de visualizações: 634 vezes |
A estrutura de repetição loop da linguagem Common Lisp é o laço mais simples fornecido pela linguagem. Este laço nos permite repetir uma ou mais instruções de código repetidamente, até que o comando return seja encontrado, o que faz com que o laço seja interrompido. Veja no trecho de código abaixo como podemos usar o laço loop da Common Lisp para contar e exibir os valores de 1 até 10: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ( ; vamos declarar a variável que vamos usar let (numero) ; vamos inicializar a variável com o valor 1 (setq numero 1) ; agora iniciamos o laço (loop ; escrevemos o valor da variável (write numero) ; aumentamos o valor da variável em 1 (setq numero (+ numero 1)) ; provocamos uma quebra de linha (terpri) ; e fazemos o teste da continuidade (when (> numero 10) (return)) ) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que usamos a macro when para testar o ponto de parada do laço. Note ainda o uso da função terpri da Common Lisp para provocar uma quebra de linha na saída do programa. |
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" |
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 |