Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
https://codesilva.github.io
Sumário
Sobre este material …………………………………………………………… 3
Sobre o autor …………………………………………………………………... 4
Capítulo 1 – Algoritmos ………………………………………………………. 5
Capítulo 2 – Introdução à programação …………………………………… 10
Capítulo 3 – Entrada e saída de dados ………………………………….…. 20
Capítulo 4 – Estruturas de controle ……………………………………...… 26
Capítulo 5 – Arranjos ………………………………………………………….. 42
Capítulo 6 – Funções ………………………………………………………….. 50
2
https://codesilva.github.io
Sobre este material
Este material tem o objetivo de lhe introduzir conceito básicos de
algoritmos e programação. Por mais que você nunca tenha ouvido
falar sobre estes assuntos.
3
https://codesilva.github.io
Sobre o autor
Me chamo Edigleysson Silva e sou formado técnico em informática
e aluno de Ciência da Computação pelo Instituto Federal de
Ciência e Tecnologia do Ceará.
4
https://codesilva.github.io
Capítulo 1 – Algoritmos
Objetivos do capítulo
• Definir algoritmo
• Descrever o que um algoritmo deve ter
• Formas de representação de um algoritmo
O que é um algoritmo?
5
https://codesilva.github.io
Algoritmo para fritar um ovo
6
https://codesilva.github.io
• Efetividade – As operações do algoritmo devem ser básicas o
suficiente para que possam em princípio, serem executadas
de maneira exata e em tempo finito.
Formas de representação
• Descrição Narrativa
• Fluxograma
• Pseudocódigo
Descrição Narrativa
Fluxograma
7
https://codesilva.github.io
a ser seguido. Veja abaixo um exemplo de um algoritmo
representado em fluxograma:
Figura 01 – Fluxograma
Pseudocódigo
8
https://codesilva.github.io
Resumo
Neste capítulo foram introduzidos conceitos básicos acerca de
algoritmos e programação. Além disso foram mostradas algumas
forma de se fazer a representação de algoritmos.
9
https://codesilva.github.io
Capítulo 2 – Introdução à programação
Objetivos do capítulo
• Entender como utilizaremos computadores para resolver
problemas
• Entender o que é uma linguagem de programação
• Conhecer o JavaScript
• Entender o que é necessário para se programar
computadores
• Começar as práticas
10
https://codesilva.github.io
Linguagens de Programação
Para que possamos entender os algoritmos por meio dos
computadores, precisamos primeiro saber como poderemos nos
comunicar com eles. Um computador é uma máquina que recebe
comandos e segue esse comandos de forma metódica, não
fazendo nada além do que foi programado. Para que possamos
definir o que a máquina fará precisaremos conhecer as chamadas,
linguagens de programação.
11
https://codesilva.github.io
Benefícios de se aprender e utilizar JavaScript
Lógica
Variáveis
12
https://codesilva.github.io
[1] Palavra reservada que informa para a máquina que ali está
sendo criada uma variável
[2] Identificador da variável. É por esse identificador que será
utilizado para realizar operações em outros setores do programa. É
como se fosse o nome daquela variável.
[3] Delimita o fim de um comando.
Operadores
13
https://codesilva.github.io
Comparações são necessárias
5 é maior que 4?
14
https://codesilva.github.io
Verifica se o operando da
< esquerda é menor que o 2 < 1 (false)
operando da direita.
Verifica se o operando da
>= esquerda é maior ou igual 2 >= 1 (true)
ao operando da direita.
Verifica se o operando da
<= esquerda é menor ou igual 2 <= 1 (false)
ao operando da direita.
Tabela 02 – Operadores relacionais
Vamos praticar
15
https://codesilva.github.io
Imagem 02 – Console do Navegador
16
https://codesilva.github.io
Abaixo é possível ver na imagem alguns exemplo de como se
utilizam os tipos de dados. Veja:
Operações matemáticas
17
https://codesilva.github.io
Imagem 04 – Operações matemáticas
Operadores de comparação
18
https://codesilva.github.io
A imagem abaixo mostra algumas comparações feitas com as
variáveis definidas anteriormente. Veja que no console, logo após a
operação ser executada, é mostrado se aquela comparação é
verdadeira (true) ou falsa (false).
Resumo
Durante este capítulo alguns conceitos foram introduzidos e esses
conceitos é que formarão a base de conhecimento necessária na
resolução de algoritmos. Precisaremos utilizar a lógica matemática
e nossa caixa de ferramentas, com conhecimento de operadores e
variáveis.
19
https://codesilva.github.io
Capítulo 3 – Entrada e saída de dados
Objetivos do capítulo
• Entender e praticar comandos de entrada e saída em
JavaScript
• Como escrever nossos códigos em arquivos e executar no
navegador
Função alert()
Basicamente você precisa informar a string que você quer que seja
exibida. Exemplo de utilização como mostra a imagem:
20
https://codesilva.github.io
Imagem 07 – Execução da função alert()
Função prompt()
21
https://codesilva.github.io
Salvando seus códigos JavaScript
Até aqui fizemos nossos códigos direto no console do navegador.
No entanto isso não é muito viável, pois em determinado momento
queremos salvar nosso código. Nessa seção nós veremos duas
formas de fazer nossos códigos em arquivos que possam ser
salvos e executados no navegador. Vamos a elas.
Precisamos de HTML
22
https://codesilva.github.io
<html>
<head>
<title>Algoritmos com JavaScript</title>
<script>
// aqui você colocará seus códigos JavaScript
</script>
</head>
<body>
</body>
</html>
<html>
...
<script>
alert(‘Hello World :)’);
</script>
...
</html>
Após isso, qualquer alteração que você fizer no arquivo, você não
precisará reexecutar o arquivo, basta atualizar a página.
23
https://codesilva.github.io
JavaScript separado do HTML
- script.js
alert(‘Hello World :)’);
- index.html
<html>
<head>
<title>Algoritmos com JavaScript</title>
<script src=”script.js”></script>
</head>
<body>
</body>
</html>
24
https://codesilva.github.io
Resumo
Neste capítulo foram lhe apresentadas duas funções da linguagem
JavaScript. Funções essas que permitem que você mostre
informações para o usuário e também solicite que ele passe
informações para seu programa. Além disso, você aprendeu a
como fazer para salvar seus códigos JavaScript em arquivos e
executá-los no browser.
25
https://codesilva.github.io
Capítulo 4 – Estruturas de controle
Objetivos do capítulo
• Compreender e utilizar estruturas de decisão
• Compreender e utilizar estruturas de repetição
Antes de iniciar…
Chegamos em um ponto interessante do aprendizado de
algoritmos e programação. Durante este capítulo vamos construir
um pequeno algoritmo para cálculo de situação de um aluno, onde
coletaremos duas notas e faremos o cálculo de uma média simples
e se esse aluno tiver atingido uma nota maior ou igual a sete,
informaremos que ele está reprovado, entre cinco e sete ele
precisará fazer uma prova de recuperação e por fim se o aluno tive
uma nota menor que cinco ele estará reprovado.
Estrutura de decisão
Geralmente algoritmos necessitam de tomada de decisão. No
algoritmos que trabalharemos , fluxos diferentes serão seguido
dadas as condições. Portanto é preciso fazer uma verificação para
que uma determinada ação seja tomada e determinadas instruções
sejam executadas.
Uma sentença lógica comum é: “Se a sua média for maior ou igual
a 7, então você estará aprovado”
26
https://codesilva.github.io
Veja que para esta simples sentença precisaremos ter o valor da
média e compará-lo com o valor 7 e somente no caso em que for
maior ou igual a 7 ele estará aprovado.
Decisão simples
27
https://codesilva.github.io
Operadores Lógicos
28
https://codesilva.github.io
Veja que agora na instrução if temos uma instrução composta por
duas verificações. Onde a função alert() será exibida somente
se essas duas verificações forem verdadeiras.
Nesse exemplo temos apenas duas verificações, mas podemos ter
quantas forem necessárias.
Usando o operador ||
Usando o operador !
29
https://codesilva.github.io
Mesclando expressões lógicas
Decisão composta
30
https://codesilva.github.io
Por que preciso de decisões compostas?
Perceba que verificamos o valor 7 por duas vezes. Isso pode ser
melhorado. Vamos ver como fica isso agora com a utilização de
estrutura de decisão composta.
31
https://codesilva.github.io
se a média não for maior ou igual a 5, só precisamos de um else e
informar que o aluno está reprovado.
Decisão múltipla
case 2:
alert(‘Você selecionou a segunda opção’);
break;
default:
alert(‘Você não selecionou nenhuma dessas
opções’);
break;
}
33
https://codesilva.github.io
Nesse exemplo solicitamos ao usuário que informe uma opção e
logo após isso utilizamos a instrução switch, passando a variável
opcao e verificando cada caso com a instrução case e se a
verificação for atendida, as instruções daquele case serão
executadas.
Retomando o desafio
case 2:
var nota1 = prompt(‘Digite a primeira nota’);
var nota2 = prompt(‘Digite a segunda nota’);
var nota3 = prompt(‘Digite a terceira nota’);
media = (nota1+nota2+nota3)/3;
break;
case 3:
var nota1 = prompt(‘Digite a primeira nota’);
var nota2 = prompt(‘Digite a segunda nota’);
var nota3 = prompt(‘Digite a terceira nota’);
var nota4 = prompt(‘Digite a quarta nota’);
34
https://codesilva.github.io
media = (nota1+nota2+nota3+nota4)/4;
break;
default:
alert(‘Opção inválida’);
break;
}
...
Estruturas de repetição
As vezes é necessário repetir uma determinada quantidade de
instruções. No algoritmo da média do aluno por exemplo, nós só
podemos executar uma única vez. Se quisermos fazer com que
seja possível calcular a situação de mais de um aluno,
precisaremos duplicar o código ou executar o programa repetidas
vezes.
35
https://codesilva.github.io
Comando while
var contador = 1;
while(contador <= 10) {
alert(contador);
contador = contador + 1;
}
36
https://codesilva.github.io
Comando do-while
Comando for
37
https://codesilva.github.io
Na coluna esquerda temos a definição de como se utiliza o loop for
e na segunda temos um exemplo de utilização. Vamos explicar
cada parte presente no loop for:
Loop infinito
Comandos de desvio
Comando break
38
https://codesilva.github.io
pois também delimita o fim, mas nesse caso o fim do loop. Quando
o loop está executando e encontra a instrução break o loop é
quebrado imediatamente. Veja um exemplo de loop infinito, com a
chamada de um break em determinadas condições.
var contador = 0;
while(true){
if(contador == 200) break;
contador++;
}
Comando continue
var contador = 0;
while(contador <= 20){
contador++;
if(contador%2 == 0) continue;
alert(contador);
}
39
https://codesilva.github.io
No exemplo acima temos um loop while que executa a função
alert() somente quando o valor da variável contador for um valor
ímpar. Perceba que o continue não encerra o loop, ele só avança
para o próximo laço.
while(true){
var opcao = prompt(‘Selecione uma opção: 1 –
Calcular Média | 0 – Encerrar execução’);
if(opcao == 0) break;
...
}
40
https://codesilva.github.io
Se a opção informada pelo usuário for 0, o comando de desvio
break é chamado e o loop é encerrado. Mas e o que acontece se
informamos um valor diferente de 0 e 1? Se você executou e fez
este teste, percebeu que o algoritmo executa normalmente. Como
resolver isso? É aqui que passo a bola para você. Altere este código
e faça com que sempre que o usuário informar algum valor que
seja diferente de 1, o programa seja encerrado.
Resumo
Neste capítulo começamos a criar nossos próprios algoritmos com
JavaScript e para isso utilizamos as ferramentas que já tínhamos.
Utilizamos entrada e saída para poder coletar informações,
utilizamos operações matemáticas para calcular a média,
utilizamos estruturas de controle e repetição e operações lógicas
para verificar a situação do aluno. Nos próximos capítulos veremos
alguns conceitos mais avançados e que tornarão nosso código
mais sofisticado.
41
https://codesilva.github.io
Capítulo 5 – Arranjos
Objetivos do capítulo
• Entender e fazer operações com vetores
• Compreender como funcionam as matrizes
• Utilizar loops com arranjos
Antes de iniciar…
No final do capítulo anterior, nós vimos como implementar o
algoritmo que calcula a média de um aluno. De tal modo que agora
o usuário poderá calculas a média de um aluno por quantas vezes
quiser, porém a cada nova execução os dados anteriores são
perdidos. Agora pense como você faria para poder adicionar várias
notas de alunos distintos e depois visualizar a média de todos? E
se quiser calcular a média geral da turma?
Vetores
42
https://codesilva.github.io
Os arranjos podem ter diferentes dimensões. Um tipos especial de
arranjo com apenas uma dimensão é chamado de vetor. Abaixo
temos a ilustração de um vetor:
0 1 2 3 → índices
43
https://codesilva.github.io
Acessando elementos de um vetor
alert(vetor[0]); → Edigleysson
alert(vetor[3]); → Sabrina
alert(vetor[9]); → Isso vai te retornar um erro!
Perceba pelo trecho acima que caso você tente acessar um índice
inexistente, seu algoritmo irá parar no erro.
Agora imagine que você quer adicionar um novo aluno a este vetor.
Você poderá fazê-lo da seguinte forma:
alunos.push(‘João’);
44
https://codesilva.github.io
Alterando o elemento de um vetor
alunos[0] = ‘Camila’;
Matrizes
Matriz mxn
var matriz = [
[1, 2, 3], → Linha 0
[4, 5, 6], → Linha 1
[7, 8, 9] → Linha 2
];
45
https://codesilva.github.io
É possível perceber que é como se fosse um vetor que possui um
vetor em cada elemento. Se acessarmos o primeiro elemento da
variável matriz por exemplo, teremos um vetor de três posições,
mas como aqui estamos utilizando a notação de matriz,
chamaremos isto de linha e cada linha de uma matriz é um vetor e
as posições deste vetor representarão as colunas. Vejamos como
isso funciona de forma melhor:
-– ou --
alert(matriz[0][0]);
Arranjos e Loops
Agora já sabemos como criar estruturas que podem armazenar
vários elementos. Agora imagine que você precise mostrar toso os
elementos de um array de 20 posições. Como você faria isso?
46
https://codesilva.github.io
implementar nosso algoritmos de média do aluno, mostrando no
final a média geral da turma.
var opcao = 0;
var medias = [];
var nota1, nota2, media;
while(true){
opcao = prompt(‘Selecione uma opção: 1 – Calcula
média de um novo aluno | 2 – Visualizar média geral da
turma | 3 – Encerrar execução’);
if(opcao == 3) break;
if(opcao != 1 && opcao != 2) continue;
47
https://codesilva.github.io
}
...
while(true) {
…
if(opcao == 3) break;
if(opcao != 1 && opcao != 2) continue;
if(opcao == 1){
nota1 = prompt(‘Informe a primeira nota do
aluno’);
nota2 = prompt(‘Informe a segunda nota do aluno’);
media = (nota1+nota2)/2;
medias.push(media);
alert(‘Media registrada’);
}else {
}
}
48
https://codesilva.github.io
…
while(true){
…
if(opcao == 1) {
...
}else {
var somatorio = 0;
var mediaGeral = 0;
for(var i=0; i<medias.length; i++){
somatorio = somatorio + medias[i];
}
mediaGeral = somatorio/medias.length;
alert(‘A média geral é: ’ + mediaGeral);
}
}
Resumo
É notório que nosso pequeno algoritmo de média está ficando mais
sofisticado. Estamos quase finalizando e o próximo capítulo será o
fechamento dos conhecimentos básicos que você precisa ter sobre
algoritmos.
49
https://codesilva.github.io
Capítulo 6 – Funções
Objetivos do capítulo
• Entender o que são funções e como podem melhorar
nosso código
• Definir nossas próprias funções
Antes de iniciar...
Quando estamos implementando algoritmos, é comum
identificarmos parte do código que se repetem e partes distintas.
Suponha que você tenha um algoritmos de 1000 linhas e que uma
determinada parte deste algoritmo se repete por 8 vezes e suponha
que você precise alterar o comportamento desse bloco de código.
Você terá de alterar parte por parte desse bloco de códigos. Esse
procedimento leva muito tempo o que coloca em cheque a
produtividade de desenvolvimento.
Funções
Funções e procedimentos podem ser compreendidos como trechos
reutilizáveis de código. Uma função ou procedimento pode, então,
ser utilizado várias vezes por um mesmo programa. Isso simplifica
a criação de programas maiores, dividindo-os em unidades
menores que trabalham em conjunto. Funções e procedimentos
50
https://codesilva.github.io
são bastante semelhantes e, posteriormente, vamos entender as
diferenças entre eles.
function nomeDaFuncao() {
// intruções;
}
Agora você pode abstrair blocos do seu código para poder reutilizá-
los. Vamos fazer aqui uma pequena analogia com funções no
conceito de matemática. Considere a seguinte função:
f(x) = x+1
51
https://codesilva.github.io
Parâmetros
function f(x) {
alert(x+1);
}
Veja que definimos nossa função com o nome de “f” e esta função
recebe um parâmetro. Logo abaixo da definição da função é
mostrado como executá-la. Basta “chamar” o nome da função
seguido de parênteses e informar os parâmetros entre os
parênteses. Caso a função não possua parâmetros, deixe os
parênteses vazios.
52
https://codesilva.github.io
function soma(a, b){
alert(a+b);
}
Note que aqui temos uma função que possui dois parâmetros. Na
chamada da função separamos cada parâmetros por vírgula e a
sequência de passagem será colocada nas variáveis de parâmetro.
Por exemplo, nesta função a seria igual a 3 e b seria igual a 4.
function mensagem() {
alert(‘Mensagem fixa’);
}
mensagem() → Execução
f(x,y) = (x+y)/2
53
https://codesilva.github.io
Esta função receberá dois valores e retornará a média aritmética
desses. Essa função é bastante útil em nosso algoritmo de cálculo
de média de alunos. Mas não podemos só calcular a média e
mostrar na tela com a função alert(). Precisamos obter a média
e salvar em um array, como poderíamos fazer isso?
function calculaMedia(a,b){
return (a+b)/2;
}
...
var media = calculaMedia(nota1, nota2);
medias.push(media);
Resumo
Neste capítulo aprendemos o que são funções e os variados tipos
de funções que existem. Aprendemos também como que as
funções podem melhorar o nosso código.
54
https://codesilva.github.io
Referências
• DE SOUSA, Bruno Jefferson; DIAS JÚNIOR, José Jorge Lima;
FORMIGA, Andrei de Araújo. Introdução a Programação,
2014.
• MUELLER, John Paul; MASSARON, Lucas. Algorithms for
Dummies, 2017.
55
https://codesilva.github.io