Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Lógica de programação, Notas de estudo de Informática

Lógica de Programação

Tipologia: Notas de estudo

2014

Compartilhado em 04/02/2014

ajpadilson-3
ajpadilson-3 🇧🇷

5

(2)

1 documento

1 / 342

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
TREINAMENTOS
Lógica de Programação
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Lógica de programação e outras Notas de estudo em PDF para Informática, somente na Docsity!

TREINAMENTOS

Lógica de Programação

Sumário ii

  • Sobre a K19
  • Seguro Treinamento
  • Termo de Uso
  • Cursos
  • 1 Introdução
    • 1.1 O que é um Computador?
    • 1.2 Formato Binário
    • 1.3 Unidades
    • 1.4 Arquiteturas de Processadores
    • 1.5 O que é um Programa?
    • 1.6 Linguagem de Máquina
    • 1.7 Linguagem de Programação
    • 1.8 Compilador
    • 1.9 Máquinas Virtuais
    • 1.10 Hello World em Java
    • 1.11 Hello World em C#
    • 1.12 Método Main
    • 1.13 Exercícios de Fixação Com Java
    • 1.14 Exibindo mensagens
    • 1.15 Comentários
    • 1.16 Indentação
    • 1.17 Engenharia Reversa (Conteúdo Extra)
    • 1.18 Ofuscadores (Conteúdo Extra)
    • 1.19 Exercícios de Fixação Com Java
    • 1.20 Erro: Não Fechar os Blocos
    • 1.21 Erro: Trocar Maiúsculas e Minúsculas
    • 1.22 Erro: Esquecer o Ponto e Vírgula
    • 1.23 Erro: Esquecer o Main
    • 1.24 Exercícios de Fixação Com C#
    • 1.25 Exercícios Complementares
    • 1.26 Desafios
    • 1.27 Resumo do Capítulo
    • 1.28 Prova
  • 2 Algoritmos
    • 2.1 O que é um Algoritmo?
    • 2.2 Como um algoritmo pode ser representado?
    • 2.3 Exercícios de Fixação
    • 2.4 Desafios
  • 3 Variáveis
    • 3.1 O que é uma Variável?
    • 3.2 Declarando variáveis em Java ou C#
    • 3.3 Tipos de Básicos
    • 3.4 String
    • 3.5 Data e Hora (Conteúdo Extra) iii SUMÁRIO
    • 3.6 Valores Literais
    • 3.7 Números Aleatórios
    • 3.8 Exercícios de Fixação Com Java
    • 3.9 Casting
    • 3.10 Conversão de string
    • 3.11 Convenções de nomenclatura
    • 3.12 Regras de nomenclatura
    • 3.13 Keywords
    • 3.14 Formatação
    • 3.15 Formatação de Data e Hora (Conteúdo Extra)
    • 3.16 Exercícios de Fixação Com Java
    • 3.17 Erro: Variáveis com nomes repetidos
    • 3.18 Erro: Esquecer a inicialização de uma variável local
    • 3.19 Erro: Trocar aspas simples por aspas duplas ou vice-versa
    • 3.20 Erro: Utilizar o separador decimal errado
    • 3.21 Erro: Valores incompatíveis com os tipos das variáveis
    • 3.22 Exercícios de Fixação Com C#
    • 3.23 Exercícios Complementares
    • 3.24 Desafios
    • 3.25 Resumo do Capítulo
    • 3.26 Prova
  • 4 Operadores
    • 4.1 Tipos de Operadores
    • 4.2 Operadores Aritméticos
    • 4.3 Divisão Inteira
    • 4.4 Concatenação de Strings
    • 4.5 Exercícios de Fixação Com Java
    • 4.6 Operadores de Atribuição
    • 4.7 Operadores Relacionais
    • 4.8 Operadores Lógicos
    • 4.9 Exercícios de Fixação Com Java
    • 4.10 Operador ternário “?:”
    • 4.11 Operador “!”
    • 4.12 Pré e Pós Incremento ou Pré e Pós Decremento
    • 4.13 Exercícios de Fixação Com Java
    • 4.14 Operações com Strings
    • 4.15 Operações com Data e Hora (Conteúdo Extra)
    • 4.16 Exercícios de Fixação Com Java
    • 4.17 Erro: Utilizar operadores incompatíveis
    • 4.18 Exercícios de Fixação Com C#
    • 4.19 Exercícios Complementares
    • 4.20 Resumo do Capítulo
    • 4.21 Prova
  • 5 Controle de Fluxo
    • 5.1 Instruções de Decisão
    • 5.2 Instrução if
    • 5.3 Instrução else
    • 5.4 Instruções de Decisão Encadeadas SUMÁRIO iv
    • 5.5 Exercícios de Fixação Com Java
    • 5.6 Instruções de Repetição
    • 5.7 Instrução while
    • 5.8 Instrução for
    • 5.9 Instruções de Repetição Encadeadas
    • 5.10 Exercícios de Fixação Com Java
    • 5.11 Instrução break
    • 5.12 Instrução continue
    • 5.13 Exercícios de Fixação Com Java
    • 5.14 Blocos Sem Chaves
    • 5.15 “Laços Infinitos”
    • 5.16 Exercícios de Fixação Com Java
    • 5.17 Erro: Não utilizar condições booleanas
    • 5.18 Erro: Excesso de “;”
    • 5.19 Exercícios de Fixação Com C#
    • 5.20 Exercícios Complementares
    • 5.21 Resumo do Capítulo
    • 5.22 Prova
  • 6 Array
    • 6.1 O que é um Array?
    • 6.2 Como declarar e inicializar um array?
    • 6.3 Inserindo valores de um array
    • 6.4 Acessando os valores de um array
    • 6.5 Percorrendo um array
    • 6.6 Array de arrays
    • 6.7 Percorrendo um array de arrays
    • 6.8 Exercícios de Fixação Com Java
    • 6.9 Erro: Acessar uma posição inexistente
    • 6.10 Exercícios de Fixação Com C#
    • 6.11 Exercícios Complementares
    • 6.12 Resumo do Capítulo
    • 6.13 Prova
  • 7 Funções ou Métodos
    • 7.1 Parâmetros
    • 7.2 Resposta
    • 7.3 Exercícios de Fixação Com Java
    • 7.4 Erro: Parâmetros incompatíveis
    • 7.5 Erro: Resposta incompatível
    • 7.6 Exercícios de Fixação Com C#
    • 7.7 Exercícios Complementares
    • 7.8 Resumo do Capítulo
    • 7.9 Prova
  • A Problemas
    • A.1 Encontrar o maior ou o menor elemento de um array
    • A.2 Exercícios de Fixação Com Java
    • A.3 Calcular a soma dos elementos de um array
    • A.4 Exercícios de Fixação Com Java v SUMÁRIO
    • A.5 Calcular a média dos elementos de um array
    • A.6 Exercícios de Fixação Com Java
    • A.7 Trocar as posições de dois elementos de um array
    • A.8 Exercícios de Fixação Com Java
    • A.9 Escolher aleatoriamente um número inteiro dentro de um intervalo
    • A.10 Exercícios de Fixação Com Java
    • A.11 Gerar apostas da Mega-Sena
    • A.12 Exercícios de Fixação Com Java
    • A.13 Embaralhar os elementos de um array
    • A.14 Exercícios de Fixação Com Java
    • A.15 Ordenar os elementos de um array
    • A.16 Exercícios de Fixação Com Java
    • A.17 Inverter o posicionamento dos elementos de um array
    • A.18 Exercícios de Fixação Com Java
    • A.19 Números em formato binário
    • A.20 Exercícios de Fixação Com Java
    • A.21 Exercícios de Fixação Com C#
  • B Respostas

SUMÁRIO vi

vi www.k19.com.br

SUMÁRIO 2

Seguro Treinamento

Na K19 o aluno faz o curso quantas vezes quiser!

Comprometida com o aprendizado e com a satisfação dos seus alunos, a K19 é a única que pos- sui o Seguro Treinamento. Ao contratar um curso, o aluno poderá refazê-lo quantas vezes desejar mediante a disponibilidade de vagas e pagamento da franquia do Seguro Treinamento.

As vagas não preenchidas até um dia antes do início de uma turma da K19 serão destinadas ao alunos que desejam utilizar o Seguro Treinamento. O valor da franquia para utilizar o Seguro Treina- mento é 10% do valor total do curso.

2 www.k19.com.br

3 SUMÁRIO

Termo de Uso

Termo de Uso

Todo o conteúdo desta apostila é propriedade da K19 Treinamentos. A apostila pode ser utilizada livremente para estudo pessoal. Além disso, este material didático pode ser utilizado como material de apoio em cursos de ensino superior desde que a instituição correspondente seja reconhecida pelo MEC (Ministério da Educação) e que a K19 seja citada explicitamente como proprietária do material.

É proibida qualquer utilização desse material que não se enquadre nas condições acima sem o prévio consentimento formal, por escrito, da K19 Treinamentos. O uso indevido está sujeito às medidas legais cabíveis.

www.facebook.com/k19treinamentos 3

INTRODUÇÃO

C

A P Í T U L O 1

O que é um Computador?

Atualmente, os computadores estão presentes no cotidiano da maioria das pessoas. Você, prova- velmente, já está acostumado a utilizar computadores no seu dia a dia. Mas, será que você conhece o funcionamento básico de um computador? A seguir, listaremos os principais elementos de um computador e suas respectivas funções.

ULA + UC

Registradores

CPU

HD

Memória RAM

Figura 1.1: Principais elementos de um computador

CPU (Unidade Central de Processamento - Processador): A CPU é o “cérebro” que controla o fun- cionamento dos outros componentes do computador e realiza todo o processamento neces- sário. Esse processamento consiste basicamente na realização de operações matemáticas e operações de armazenamento ou recuperação de dados.

Registradores: Os registradores armazenam os dados que estão sendo processados pela CPU. O acesso ao conteúdo dos registradores é extremamente rápido. Por outro lado, eles não pos- suem muito espaço. Dessa forma, não é possível armazenar uma grande quantidade de infor- mação

Memória RAM: Os dados utilizados pelos programas que estão abertos são armazenados na memó- ria RAM. O acesso ao conteúdo da memória RAM é rápido porém mais lento do que o acesso ao conteúdo dos registradores. Por outro lado, o espaço da memória RAM é bem maior do que o espaço dos registradores.

www.facebook.com/k19treinamentos 1

INTRODUÇÃO 2

Disco Rígido: Os dados armazenados nos registradores e na memória RAM são descartados quando o computador é desligado. O conteúdo que não pode ser descartado ao desligar o computador deve ser armazenado no disco rígido. O acesso ao disco rígido é bem mais lento do que o acesso a memória RAM mas, em geral, o espaço é bem maior.

Os computadores são capazes se comunicar com dispositivos periféricos como teclado, mouse, monitor, caixa de som, impressoras, projetores, entre outros. Eles também são capazes de se comu- nicar com outros computadores. Essa comunicação é realizada através das diversas portas físicas que os computadores possuem. A seguir listaremos algumas portas físicas e as suas respectivas fun- ções.

Ethernet: Utilizada para conectar um computador a uma rede local de computadores. Através dessa porta, um computador pode enviar e receber dados de outros computadores.

Figura 1.2: Porta Ethernet

Paralela: Essa porta foi criada conectar um computador a uma impressora. Hoje, é utilizada tam- bém para conectar computadores a scanners, câmeras de vídeo, entre outros dispositivos.

Figura 1.3: Porta Paralela

PS/2: Teclados e mouses antigos são conectados aos computadores através dessa porta.

Figura 1.4: Porta PS/

USB: Atualmente, é a porta mais utilizada. Diversos dispositivos são conectados aos computadores através das portas USB. Por exemplo, teclados, mouses, impressoras, celulares, HDs externos, entre outros.

Figura 1.5: Porta USB

2 www.k19.com.br

INTRODUÇÃO 4

Decimal Binário 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010

Decimal Binário 11 1011 12 1100 13 1101 14 1110 15 1111 16 10000 17 10001 18 10010 19 10011 20 10100 21 10101

Decimal Binário 22 10110 23 10111 24 11000 25 11001 26 11010 27 11011 28 11100 29 11101 30 11110 31 11111 32 100000 Tabela 1.1: Representação decimal e binária

Os textos também são manipulados pelos computadores em formato binário. Normalmente, cada caractere de um texto corresponde a uma sequência de oito 0s e 1s. Os caracteres são mapea-

dos para formato binário através de padrões como ASCII (http://pt.wikipedia.org/wiki/ASCII)

e Unicode (http://pt.wikipedia.org/wiki/Unicode). Veja a seguir, a representação binária de

alguns caracteres de acordo com o padrão ASCII.

Caractere Binário A 01000001 B 01000010 C 01000011 D 01000100 E 01000101 F 01000110 G 01000111 H 01001000 I 01001001 J 01001010 K 01001011

Caractere Binário L 01001100 M 01001101 N 01001110 O 01001111 P 01010000 Q 01010001 R 01010010 S 01010011 T 01010100 U 01010101 V 01010110

Caractere Binário W 01010111 X 01011000 Y 01011001 Z 01011010 a 01100001 b 01100010 c 01100011 d 01100100 e 01100101 f 01100110 g 01100111 Tabela 1.2: Representação binária de caracteres seguindo o padrão ASCII

Como vimos, os números e os caracteres de um texto são facilmente representados em formato binário. Contudo, os computadores também são capazes de manipular imagens, áudio e vídeo. Para esses tipos de dados, a transformação para formato binário é bem mais complicada. Pesquise por PNG, MP3 e AVI que são formatos binários de imagens, áudios e vídeos através dos seguinte endere- ços:

  • PNG - http://www.w3.org/TR/PNG/
  • MP3 - http://en.wikipedia.org/wiki/MP
  • AVI - http://en.wikipedia.org/wiki/Audio_Video_Interleave

Unidades

4 www.k19.com.br

5 INTRODUÇÃO

É importante ser capaz de mensurar a quantidade de dados que um computador pode armazenar ou transmitir. Essa mensuração pode ser realizada com ajuda das unidades de medida. A unidade de medida básica é o Bit. Cada 0 ou 1 que um computador armazena ou transmite é um Bit. Além dessa unidade básica, existem várias outras. Veja a seguir, algumas delas.

Byte (B)

  • 8 Bits

Quilobyte (kB)

• 1024 B
  • 8192 Bits

Megabyte (MB)

  • 1024 kB
  • 1048576 B
  • 8388608 Bits

Gigabyte (GB)

• 1024 MB
  • 1048576 kB
  • 1073741824 B
  • 8589934592 Bits

Terabyte (TB)

• 1024 GB
• 1048576 MB
  • 1073741824 kB
  • 1099511627776 B
  • 8796093022208 Bits

Arquiteturas de Processadores

Os comandos que os processadores dos computadores executam são definidos em formato bi- nário. Considere o exemplo fictício a seguir com algumas instruções para um determinado proces- sador.

www.facebook.com/k19treinamentos 5

7 INTRODUÇÃO

O que é um Programa?

Os comandos que os processadores dos computadores oferecem são extremamente básicos. Nor- malmente, são comandos para realizar operações aritméticas como soma, subtração, divisão e mul- tiplicação. Qualquer tarefa mais complexa deve ser resolvida através de uma sequência desses co- mandos básicos.

Por exemplo, para calcular a média aritmética dos números 10, 15 e 20, devemos obter o valor da somatória desses números através de operações básicas de soma. Depois, podemos utilizar uma operação básica de divisão para dividir o valor dessa somatória por 3 e assim obter o valor 15 que é a média dos números.

Uma sequência de comandos básicos de processador que resolve uma determinada tarefa re- cebe o nome de programa. Os programas são armazenados em arquivos comumente chamados de executáveis.

Na prática, os programas são formados por instruções que dependem da arquitetura do proces- sador e do sistema operacional. Consequentemente, um mesmo programa pode não funcionar em sistemas operacionais diferentes ou em processadores de arquiteturas diferentes.

Linguagem de Máquina

Como vimos anteriormente, o formato dos comandos que um computador pode executar de- pende basicamente da arquitetura do seu processador. Como existem diversas arquiteturas diferen- tes, um mesmo comando pode funcionar em um computador e não funcionar em outro. O formato dos comandos que funcionam em um determinado processador define a linguagem de máquina ou código de máquina desse processador.

Comandos definidos em linguagem de máquina são perfeitos para os computadores processa- rem. Por outro lado, eles são extremamente complexos para as pessoas entenderem. Podemos ve- rificar essa complexidade, observando o trecho de comandos em linguagem de máquina da figura abaixo:

000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000010000000000100000000 000000000000111000011111101110100000111000000000101101000000100 111001101001000011011100000000001010011001100110100100001010101 000110100001101001011100110010000001110000011100100110111101100 111011100100110000101101101001000000110001101100001011011100110 111001101111011101000010000001100010011001010010000001110010011 Figura 1.10: Trecho do programa Chrome em binário

Linguagem de Programação

Devido a complexidade, escrever um programa em linguagem de máquina é inviável. Para tor- nar viável o desenvolvimento de programas, existem as linguagens de programação que tentam se aproximar das linguagens humanas. Confira um trecho de código escrito com a linguagem de pro-

www.facebook.com/k19treinamentos 7

INTRODUÇÃO 8 gramação Java:

1 while ( lineMeasurer. getPosition () < paragraphEnd ) { 2 TextLayout layout = lineMeasurer. nextLayout ( formatWidth ); 3 drawPosY += layout. getAscent () ; 4 float drawPosX ; 5 6 if ( layout. isLeftToRight () ) { 7 drawPosX = 0; 8 } else { 9 drawPosX = formatWidth - layout. getAdvance () ; 10 } 11 }

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

Por enquanto, você não precisa se preocupar em entender o que está escrito no código acima. Apenas, observe que um programa escrito em linguagem de programação é bem mais fácil de ser lido do que um programa escrito em linguagem de máquina.

Mais Sobre

A maioria das linguagens de programação são case sensitive. Isso significa que elas

diferenciam as letras maiúsculas das minúsculas. Portanto, ao escrever o código de um programa, devemos tomar cuidado para não trocar uma letra maiúscula por uma letra minús- cula ou vice-versa.

Compilador

Vimos que os computadores são capazes de processar o código escrito em linguagem de má- quina. Também vimos que é inviável desenvolver um programa em linguagem de máquina. Por isso, existem as linguagens de programação. Daí surge uma pergunta: se os computadores entendem ape- nas comandos em linguagem de máquina, como eles podem executar código escrito em linguagem de programação?

Na verdade, os computadores não executam código escrito em linguagem de programação. Esse código que é denominado código fonte deve ser traduzido para código em linguagem de máquina. Essa tradução é realizada por programas especiais chamados compiladores.

while(true){if(x < 1){ }return 0; }return 1;

while(true){if(x < 1){ }return 0; }return 1;

CÓDIGO FONTE PROCESSADOR NÃO EXECUTA

CÓDIGO FONTE COMPILADOR CÓDIGO DE MÁQUINA PROCESSADOR EXECUTA Figura 1.11: Processo de compilação e execução de um programa

8 www.k19.com.br