Lógica de Programação

Lógica de Programação

(Parte 1 de 9)

TREINAMENTOS Lógica de Programação

Lógica de Programação 26 de abril de 2011 i i w.k19.com.br

Sumário i

1.1 O que é um Programa?1
1.2 Linguagem de Máquina1
1.3 Linguagem de Programação2
1.4 Compilador2
1.5 Máquinas Virtuais3
1.6 Hello World4
Hello World em Java5
Hello World em C#6

1 Introdução 1

2.1 O que é um Algoritmo?9
2.2 Como um algoritmo pode ser representado?9
Fluxograma9
Pseudocódigo1
2.3 Execícios12
2.4 Desafios12

2 Algoritmos 9

3.1 O que é uma Variável?13
3.2 Como utilizamos as variáveis?13
Declaração13
Inicialização14
3.3 Tipos de variáveis14
Tipos de dados primitivos em Java15
Tipos de dados primitivos em C#15
3.4 Convenção para a nomenclatura16
3.5 Regras para a nomenclatura16
3.6 Execícios17
3.7 Desafios18

3 Variáveis 13

4.1 Tipos de Operadores19
Aritmético19
Atribuição20
Relacional21
Lógico21
4.2 Tabela Verdade2
4.3 Execícios23
5.1 Instruções de Decisão25
Instrução if25
Instrução if...else26
Instrução if...else if...else26
5.2 Execícios27
5.3 Instruções de Repetição28
Instrução while29

5 ControledeFluxo 25 w.k19.com.br i

Instrução for31
Instrução break32
5.4 Execícios3
5.5 Desafios34

SUMÁRIO iv

6.1 O que é um Array?35
6.2 Como declarar e inicializar um array?36
6.3 Inserindo e acessando os valores de um array36
Inserindo valores em um array36
Acessando os valores de um array37
6.4 Percorrendo um array38
6.5 Array de arrays39
Declarando e inicializando um array de arrays40
Inserindo e acessando valores de um array de arrays40
Percorrendo um array de arrays41
6.6 Ordenando um array41
Selection Sort41
Bubble Sort42
6.7 Execícios43
6.8 Desafios4
A.1 Leitura do teclado em Java47
A.2 Leitura do teclado em C#49

A LeituradoTeclado 47 B Respostas dos Exercícios e Desafios 51 iv w.k19.com.br

OqueéumPrograma?

Um programa ou programa de computador é um conjunto de instruções que são interpretadas pelo computador afim de se executar uma determinada tarefa. Essas instruções estão armazenadas em um arquivo que comumente é chamado de executável e, dentro deste arquivo, as instruções aparecem no formato binário que é extremamente difícil de ser lido por um ser humano.

No mercado existem diversas marcas de computador, cada uma produzindo computadores com características variadas, desde a capacidade de armazenamento de dados à estética do gabinete. Dentro de um mercado tão diversificado, nada mais natural que encontrarmos diversos tipos de processadores que não variam somente o poder de processamento, mas também de arquitetura. Essa variedade acontece também no mundo dos sistemas operacionais. Hoje temos o Windows, Linux e o Mac OS X entre os mais populares, mas ao longo dos últimos 20 anos tivemos também o OS/2, QNX, DOS, BeOS, entre outros.

E o que isso tem a ver com o programa que executamos em nossos computadores?

Tudo. Nomomentoemqueumprogramaégerado,éditoàeleemqualsistemaoperacionaleem qual arquitetura de processador ele será executado. Ou seja, nele estará contido instruções específicas para um determinado tipo de processador, além de instruções específicas para um determinado sistema operacional.

LinguagemdeMáquina

NaLinguagemdeMáquinaocódigoéescritocomoumasequênciadenúmerosquerepresentam as instruções a serem executadas pelo processador. É uma linguagem praticamente impossível de se trabalhar dado a dificuldade de se ler o código e de mantê-lo. Podemos verificar essa complexidade na figura abaixo:

Figura 1.1: Trecho do programa Chrome em binário.

w.k19.com.br 1

INTRODUÇÃO 2

LinguagemdeProgramação

Como vimos anteriormente, escrever um programa em Linguagem de Máquina é totalmente inviável. PararesolveresseproblemasurgiramasLinguagensdeProgramaçãoquetentamseaproximar das linguagens humanas. Confira um trecho de um código escrito em Java:

Código Java 1.1: Exemplo de código em Java.

Por enquanto você pode não entender muito do que está escrito, porém fica bem claro que um programa escrito dessa forma fica bem mais fácil de ser lido. O código acima está escrito na Linguagem de Programação Java.

Compilador

VimosqueosprocessadoressãocapazesdeinterpretarocódigodeumprogramaescritoemLinguagem de Máquina. Também vimos que é inviável trabalharmos com a Linguagem de Máquina e, por isso, foram desenvolvidas Linguagens de Programação. Mas aí fica uma pergunta: se o processador entende apenas Linguagem de Máquina, como ele irá interpretar o código que eu escrever em Linguagem de Programação?

Na verdade o processador não irá interpretar nosso código escrito em Linguagem de Programação. QuandoescrevemosocódigoemLinguagemdeProgramação,narealidadeestamosescrevendo o código fonte do programa. Esse código fonte ainda não está pronto para ser executado, pois ainda nãosetornouumexecutável. Paratorná-loexecutávelprecisamoscompilá-loeessatarefaérealizada por um compilador. O papel do compilador é, basicamente, “traduzir” um código em Linguagem de Programação paraum código emLinguagem de Máquina.

CÓDIGO FONTECOMPILADORCÓDIGO DE MÁQUINAPROCESSADOREXECUTA Figura 1.2: Processo de compilação e execução de um programa.

2 w.k19.com.br

3 INTRODUÇÃO

Máquinas Virtuais

Como vimos anteriormente, um código fonte deve ser compilado antes de ser executado por um computador. Além disso, vimos que os compiladores geram executáveis específicos para determinados sistemas operacionais e arquiteturas de processadores. Qual o impacto disso para quem desenvolve sistemas para múltiplas plataformas? A resposta simples e direta seria: complicada.

A empresa que desejar ter a sua aplicação disponível para diversos sistemas operacionais (Windows, Linux, Mac OS X, etc), e arquiteturas de processadores (Intel, ARM, PowerPC, etc), terá que escrever versões diferentes do código fonte para cada plataforma (sistema operacional + arquitetura de processador). Isso pode ser traduzido, do ponto de vista dos administradores de uma empresa, como um investimento muito alto em desenvolvimento e manutenção de um sistema.

PROGRAMA 1PLATAFORMA 1EXECUTA

EXECUTAPROGRAMA 2PLATAFORMA 2

NÃO EXECUTAPROGRAMA 2PLATAFORMA 3

Figura 1.3: Ilustração monstrando que cada plataforma necessita de um executável específico.

Para tentar minimizar essa tarefa custosa de gerenciar diversas versões do código foi introduzido o conceito de máquina virtual.

Uma máquina virtual funciona como uma camada a mais entre o código compilado e a plataforma. Portanto, quando compilamos um código fonte, estamos criando um executável que a máquina virtual saberá interpretar e ela é quem deverá traduzir as instruções do seu programa para a plataforma.

w.k19.com.br 3

INTRODUÇÃO 4 MÁQUINA VIRTUAL 1PLATAFORMA 1EXECUTA

MÁQUINA VIRTUAL 2EXECUTAPROGRAMAPLATAFORMA 2

MÁQUINA VIRTUAL 3EXECUTAPLATAFORMA 3

Figura 1.4: Ilustração do funcionamento da máquina virtual.

Tudo parece estar perfeito agora, porém, olhando atentamente a figura acima, percebemos que existe a necessidade de uma máquina virtual para cada plataforma. Alguém poderia dizer que, de fato, não resolvemos o problema.

A diferença é que implementar a máquina virtual não é tarefa do programador que criará os aplicativos que serão executados nela. A implementação da máquina virtual é responsabilidade de terceiros que geralmente são empresas bem conceituadas ou projetos de código aberto que envolvem programadores do mundo inteiro. Como maiores exemplos podemos citar a Oracle JVM (Java Virtual Machine), OpenJDK JVM, Microsoft CLR (Common Language Runtime) e Mono CLR.

A máquina virtual não funciona apenas como um mero adaptador. Ela normalmente traz recursos como o gerenciamento de memória, otimização do código em tempo de execução entre outros.

HelloWorld

Vamos escrever o nosso primeiro programa para entendermos como funciona o processo de escrita do código fonte, compilação e execução de um programa.

Lembre-se

Antes de compilar e executar um programa escrito em Java, é necessário que você tenha instalado e configurado em seu computador o JDK (Java Development Kit). Em nosso site você encontrará artigos explicando passo a passo o processo de instalação e configuração do JDK. Para compilar um programa escrito em C# é necessário ter o .NET Framework instalado em seu computador. Algumas versões do Windows já vêm com o framework instalado.

(Parte 1 de 9)

Comentários