Lógica para desenvolvimento de programação de computadores
Editora Érica
Aurores: José Augusto N. G Manzano e Jayr figueiredo de Oliveira.
O livro é organizado com a apresentação conceitual de elementos básicos de programação computacional, em estilo imperativo, a partir de exemplos introdutórios, demonstrações de programas direcionados aos elementos introdutórios apresentados, uso de exercícios de aprendizagem para aprofundamento conceitual e aplicação de exercícios de fixação para aprofundamento prático. De modo geral o livro, em cada capítulo, é fundamentado na estrutura operacional:
- Introdução a certo conceito de programação;
- Exercícios de conhecimento com demonstração do conceito apresentado;
- Exercícios de aprendizagem com aplicação do conceito apresentado;
- Exercícios de fixação para aprofundamento dos conceitos apresentados.
Este repositório complementa a codificação em diversas linguagens de programação dos exemplos usados (exercícios de conhecimento com demonstração) do livro na apresentação conceitual dos temas relacionados a programação de computadores. É pertinente salientar que os algoritmos disponibilizados, neste livro, nem sempre serão implementados nas linguagens de programação exemplificadas neste repositório. Isto ocorre pois há linguagens que podem não dar suporte a determinado recurso que venha a interferir na implementação do algoritmo. No entanto, na maioria das vezes, se consegue seguir um caminho alternativo na busca da solução como ocorre nos exemplos do diretório "Cap 05\Topico 5.5\Seletivo\Com Ir-para" onde do conjunto de linguagens usadas algumas não possuem um dos comandos necessários a implementação do recurso, mas a alternativa de operação encontra-se no diretório "Cap 05\Topico 5.5\Seletivo\ Com Enquanto-infinito". O diretório "Cap 12" também possui um conjunto menor de linguagens implementadas pelo fato de fazer uso do paradigma de "Programação Orienta a Objetos" e este não estar disponível em todo o conjunto das linguagens utilizadas.
OBS: -- Quando em um diretório faltar a codificação de um programa em certa linguagem do conjunto usado, isto indicará que aquela linguagem não possui suporte ao recurso exemplificado e a sua forma simulada de fazê-lo é mais complexa do que os objetivos destes exemplos.
A organização deste material baseia-se na mesma estrutura de sumário do livro e está configurado para atender especialmente a 30ª. Edição (a ser lançada). No entanto, poderá com certo cuidado e atenção ser usado com edições anteriores a esta. É importante ressaltar que nem todos os capítulos do livro possuem conteúdos práticos de programação na forma de algoritmos gráficos (ISO-5807:1985) e algoritmos textuais (português estruturado). Alguns capítulos possuem tonalidade apenas descritiva. Desta forma, este material contempla os capítulos práticos:
- 03 - Programação com Sequência
- 04 - Programação com Decisão
- 05 - Programação com Laços (Estruturada)
- 06 - Estruturas de Dados Homogêneas de Uma Dimensão
- 07 - Aplicações Básicas com Matrizes de Uma Dimensão
- 08 - Estruturas de Dados Homogêneas de Duas Dimensões
- 09 - Estruturas de Dados Heterogêneas
- 10 - Programação com Subrotinas (Modular)
- 12 - Aplicação Básica de POO
- xA - Apêndice A (Resolução de Alguns Exercícios de Fixação)
- xB - Apêndice B (Exemplos de Codificação Interativo)
Os programas aqui apresentados podem ser executados nos serviços Web:
O serviço "Replit" possui um conjunto de linguagens maior que o serviço "Tutorialpoint" e se mostra, de certa forma, mais estável. No entanto, o serviço "Tutorialpoint" possui acesso a linguagem BASIC para o compilador FreeBASIC usado para codificar os exemplos deste repositório nesta linguagem.
Mas não há a garantia de que esses programas funcionem como esperado, pois isso depende de diversos fatores de configuração que não se tem como definir, uma vez que os serviços são "online" é oferecem um ambiente pré-configurado. Esforços foram realizados para que os resultados fossem dentro do esperado.
O melhor uso de uma linguagem se consegue se ela estiver devidamente instalada e configurada no próprio computador de uso, mas não tendo esta possibilidade os serviços Web são uma "mão na roda", principalmente para iniciantes quando não possuem o conhecimento técnico de saber como instalar e configuras linguagens de programação.
Os programas apresentados neste repositório seguem, de forma didática, a estrutura de escrita dos algoritmos do livro texto. Assim sendo, há nos códigos das diversas linguagens disponibilizadas a ocorrência de pequenos detalhes que buscam manter a maior proximidade possível da escrita destes com os algoritmos. No uso prático de linguagens de programação podem certos elementos serem suprimidos ou trabalhados de forma diferente da maneira que aqui é apresentado. Este material é direcionado a iniciantes em programação de computadores, não há profissionais
São disponibilizados algoritmos de demonstração do livro em 29 linguagens de programação. Veja a seguir os nomes das linguagens, anos de lançamento, extensões de gravação dos programas-fonte, autores ou líderes de projetos:
- AWK (1977, extensão ".awk") - Alfred Aho, Peter Weinberger, Brian Kernighan (#)
- BASIC | FreeBASIC (2004, extensão ".bas") - Richard Russell (líder) (#)
- C (1972, extensão ".c") - Dennis Ritchie (#)
- C++ (1983, extensão ".cpp") - Bjarne Stroustrup
- C# (2000, extensão ".cs") - Microsoft Corporation (Anders Hejlsberg, líder)
- D (2001, extensão ".d") - Walter Bright
- Dart (2011, extensão ".dart") - Google (Lars Bak e Kasper Lund)
- Fortran-95 (1997, extensão ".f90/.f95") - ISO/IEC (Michael Metcalf, John Reid e Malcolm Cohen, líderes)
- Go (2009, extensão ".go") - Google (Robert Griesemer, Rob Pike e Ken Thompson) (#)
- Groovy (2007, extensão ".groovy") - James Strachan
- Java (1995, extensão ".java") - Sun Microsystems (James Gosling, líder)
- JavaScript (1995, extensão ".js") - Netescape (Brendan Eich, lider)
- Julia (2012, extensão ".jl") - Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman (#)
- Kotlin (2016, extensçao ".kt") - JetBrains (Dmitry Jemerov, líder)
- Lua (1994, extensão ".lua") - Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes (#)
- Pascal (1970, extensão ".pas") - Niklaus Wirth
- Perl (1988, extensão ".pl") - Larry Wall
- PHP (1995, extensão ".php") - Rasmus Lerdorf
- Pike (1994, extensão ".pike") - Universidade de Linköping (Fredrik Hübinette, Per-Åke Minborg e outros)
- Python (1991, extensão ".py") - Guido van Rossum
- Raku (2019, extensão ".raku") - Larry Wall |antes linguagem Perl6|
- Rexx (1979, extensão ".rex ou .rexx") - IBM (Mike Cowlishaw) (#)
- Ruby (1995, extensão ".rb") - Yukihiro Matsumoto
- Rust (2015, extensão ".rust") - Graydon Hoare
- Scala (2204, extensão ".scala") - Martin Odersky
- Swift (2014, extensão ".swift") - Apple Inc. (Chris Lattner, líder)
- Tcl (1988, extensão ".tcl") - John Ousterhout (#)
- TypeScript (2012, extensão ".ts") - Microsoft Corporation (Anders Hejlsberg, líder)
- Visual Basic .Net (2002, extensão ".vb") - Microsoft Corporation (Anders Hejlsberg, líder)
(#) - Indica linguagens usadas que não são POO (AWK, C, Fortran-95, Go, Tcl) ou que não dão suporte adeaquado a POO (BASIC, D, Julia, Lua, Pascal |Free Pascal|, Classic Rexx).
Com o tempo outras linguagens poderão ser acrescidas.