Editor de texto em Pascal/Lazarus

Editor de texto simples, porém funcional para o Lazarus (Delphi 7 para Linux).

Por: Perfil removido


Calculadora de décimo terceiro salário em Pascal

Calculadora de décimo terceiro salário em Pascal feito no Geany.

Por: Perfil removido


Existência de triângulo, em Pascal

Programa em Pascal, que recebe três valores e decide se eles formam um triângulo. Também diz se o triângulo é equilátero, isósceles ou escaleno. Obs: há um bug para negativos.

Por: Perfil removido


Crivo de Eratóstenes Simples em Ada 95

A linguagem de programação Ada foi assim denominada em homenagem à Condessa Ada Lovelace (1815 — 1852), filha do poeta, maconheiro e revolucionário inglês Lord Byron (1788 — 1824). Ada Lovelace foi a primeira programadora da história, colaborando com os cálculos da máquina analítica de Charles Babbage. A máquina analítica é uma espécie de computador mecânico. Também chamada de máquina das diferenças, pois calculava diferenças de polinômios programados. Como disse em outra oportunidade, Ada possui semelhanças com Pascal. Na verdade foi implementada com base em Pascal e algumas outras linguagens como Simula, COBOL e BASIC. Mais tarde adquiriu elementos de C++ e Java. É um sonho de padronização de uma linguagem universal. Ada é uma linguagem de programação estruturada, com tipagem estática, imperativa, orientada a objetos, de alto nível, orientada à escalonamento de sistemas de tempo real e com suporte à programação de threads (programação paralela). Foi criada pelo Departamento de Defesa dos EUA (DoD) para substituir outras centenas de linguagens usadas por lá. Existe até uma implementação chamada de A# (A Sharp) para a plataforma .Net. Exemplos de quem usa ou usou Ada: sistema de bordo de aviões a Boeing e da Embraer, transporte metroferroviário de algumas capitais europeias, alguns projetos científicos da NASA. A maior parte das afirmações está esparsa pela internet. Há muito ainda para se dizer. Voltando ao programa, algumas semelhanças com Pascal: * Operador de atribuição := * Operador de igualdade lógica = * Operadores Lógicos, exceto o de diferente * Cálculo de resto de divisão * Conectores lógicos Comentários no programa começam por um duplo hífen no começo da linha. Após isto, o programa começa com uma invocação de módulos (melhor chamados de packages) nas cláusulas With e Use. Como são usadas expressões com tipo de dados inteiro e ponto flutuante, com funções do sistema, são chamados os módulos para os mesmos. A declaração de variáveis e arrays devem ser feitas antes do Begin da procedure principal do programa. O operador de diferente é expresso de uma forma curiosa. Ao invés de != (como em C) ou <> (como em Pascal) é expresso por /= que em C teria um significado bem diverso do apresentado. É possível converter tipos de dados como entre Integer e Float, de modo semelhante ao type casting de C++. Sendo Integer(X) e Float(Y) respectivamente uma conversão para tipos Integer e Float. Aparentemente não existem funções de incremento e decremento de valores numéricos. Posições de arrays são marcadas entre parêntesis. Podem existir arrays multidimensionais separando os índices por vírgulas, dentro do mesmo par de parêntesis. Existem três tipos de laços (loops) neste programa com as seguintes estruturas: While (...) Loop Exit When (...) End Loop; For (...) in <reverse> (...) Loop Exit When (...) End Loop; Loop Exit When (...) End Loop; O primeiro laço é condicional, um while simples, como aparece na maioria das linguagens. A diferença é a cláusula Exit When. O segundo é um for que percorre um conjunto, que pode ser um vetor ou uma sequência de números demarcados por pontos, como por exemplo 1..10, que vai de 1 a 10. Pode ainda ter em opcional a cláusula Reverse, que faz os itens do conjunto serem percorridos do fim para o começo. Novamente aparece a cláusula Exit When. O terceiro comeca apenas com a palavra Loop e encerra com a expressão End Loop. Seria apenas um laço perpétuo se não estivessem com a cláusula Exit When entre eles. A cláusula Exit When (...) serve para sair do laço caso a expressão lógica que vem após When seja verdadeira. A estrutura condicional If assemelha-se à do Pascal, com uma leve diferença no fechamento do bloco. Segue If ... Then ... <Elsif> ... <Else> End If. Com Elsif e Else sendo opcionais caso a lógica do programa necessite. A função Put() serve para a escrita de dados como a função Write do Pascal. E a mudança de linha se dá com a função New_Line. As duas combinadas tem o mesmo efeito da função WriteLn do Pascal.

Por: Perfil removido


Função Fatorial Recursiva em Ada 95

Este é um exemplo simples de uma função fatorial recursiva em Ada 95. Cheguei a ler um texto onde era citado que Ada é uma linguagem da família Pascal. Até parecem um pouco. Para a compilação pode ser usado o gnatmake. Ele vem junto com o pacote GNAT nas principais distribuições Linux. Uso: $ gnatmake fatorial-0001.adb Caso seja feita uma tentativa de compilação com o gnat, resultará no seguinte, conforme abaixo: $ gnat fatorial-0001.adb gcc-4.9 -c fatorial-0001.adb fatorial-0001.adb:4:11: warning: file name does not match unit name, should be "mostra.adb" Esta crítica sugere que o nome do arquivo deve ter o mesmo nome do programa declarado na primeira declaração Procedure. Mesmo sem fazer isto, tudo parece funcionar normalmente. Continuando: Este é um exemplo simples, sem aprofundamento. O objetivo é ilustrar uma pequena parte da sintaxe de um programa em ADA. No caso um programa com função recursiva. Posso dizer que até onde vi, Ada parece uma espécie de mistura de Pascal com Java. Coisas como System.out.println() são semelhantes a Ada.Text_IO.Get() ou Ada.Text_IO.Put(). As semelhanças com Pascal são maiores e aparecem mais em outras instruções de declaração de tipos e registros, que não constam no exemplo. Uma semelhança relevante é que não é case sensitive. A diferença é que colocando as bibliotecas com With e Use na primeira linha estes comandos podem ser abreviados para Get() e Put(). Get não foi usado nesta oportunidade. Uma coisa que chama a atenção é o fato de que todo programa deve estar declarado como "Procedure Nome_do_Programa" (semelhante ao "Program Nome_do_Programa" do Pascal) e ainda deve ser seguido da partícula is. Os comandos do programa são implementados entre um Begin e um End. Este último End do programa não termina com o ponto final igual ao Pascal, mas sim com "End Nome_do_Programa", seguido de um ponto-e-vírgula. A implementação da função Fatorial se dá antes do Begin de início do código. Ao invés de se igualar o retorno da função ao nome da mesma, retorna-se o resultado com o comando Return (semelhante ao C). A estrutura de decisão IF é semelhante ao Pascal, com IF, THEN, ELSE, mas neste caso completa-se com END IF. Neste exemplo não aparece o que seria semelhante à estrutura CASE, ficando para uma próxima. Ao invés de se usar um WriteLn para a mudança de linha, usa-se simplesmente o comando New_Line. O comando Put é usado semelhante ao comando Write, sem mudança de linha. A linguagem Ada é poderosa, tendo inúmeros usos estratégicos na indústria, como programação concorrente e orientada a objetos. Não é o objetivo de abordá-los neste micro-artigo.

Por: Perfil removido


Array de números aleatórios não-repetidos de um intervalo em Pascal

Este programa feito em Pascal preenche um array (vetor) de números inteiros de um intervalo dado (de 1 até VALOR) com valores inteiros aleatórios deste intervalo. Não sei como está agora, mas Pascal era primeira linguagem de cursos técnicos e universitários ao se ensinar algoritmos no 1º ciclo. Tinha ganho vida nova através do Object Pascal presente no Delphi. Que ultimamente não tenho visto muita coisa por aí... Ele consegue ser compilado com gpc (GNU Pascal) e fpc (Free Pascal). Há uma pequena "gambiarra" no código: Pelo menos foi assim que consegui fazer funcionar em ambos os compiladores. $ gpc alea001.pas -o alea001 # para usar gpc ou $ fpc alea001.pas # para usar fpc Ambos os compilados são enormes se comparado com o compilado em C. A vantagem de se usar gpc é que dá pra usar o gdb (GNU Debugger). Basta colocar a opção "-ggdb" no comando de compilação do gpc. Há também um debugger próprio do Free Pascal, mas o gdb é mais popular. Não tenho a menor ideia se funciona em Turbo Pascal, nem garantia no Dev-Pascal :-)

Por: Perfil removido






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts