Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
e
Programao de Computadores
Programa da Disciplina
Contedo
1. Introduo a Algoritmos
Funcionamento do computador
Definio de algoritmos
2. Programas de computador
O que um programa
Codificao de um programa
Compilao de um programa
Execuo de um programa
Linguagens de programao
3. Itens fundamentais
Tipos de Dados
Constantes
Variveis
Comentrios
Expresses Aritmticas ( + , - , / , * )
Expresses Lgicas (E, OU, NO)
Expresses Literais
Comandos de Entrada e Sada
Professor Pessoni
4. Estruturas de controle
Desvio Condicional Simples (SE)
Operadores Relacionais
Desvio Condicional Composto (SE SENO)
Desvios Condicionais Encadeados
Operadores Lgicos (E, OU, NO)
5. Estruturas de repetio
Estrutura PARA
Estrutura ENQUANTO
Varivel de controle
Estruturas de controle encadeadas
Estrutura de dados
Vetores unidimensionais (Vetores)
Vetores multidimensionais (Matrizes)
O que um programa;
Codificao, Compilao e Execuo;
Linguagens de Programao;
Tipos de Dados e Instrues Primitivas;
Entrada, processamento e sada;
Representao em Portugol;
Professor Pessoni
Programa da Disciplina
Bibliografia desta Aula
Captulos 1,2,3::
MANZANO, Jos Augusto N. G.; OLIVEIRA, Jayr Figueiredo.;
Algoritmos: lgica para desenvolvimento de programao de
computadores, 26 ed. So Paulo (SP): rica, 2012. 328 p. ISBN
9788536502212.;
Professor Pessoni
Professor Pessoni
Conceitos Bsicos
O que um Computador?
uma mquina que pode resolver problemas para as pessoas executando instrues
que lhe so fornecidas;
Professor Pessoni
Conceitos Bsicos
O que um Computador?
EX:
Professor Pessoni
10 = 0000 1000
A = 0100 0001
a = 0110 0001
h = 0110 1000
Algoritmos e Programao de Computadores
Conceitos Bsicos
O que um Algoritmo?
Forbellone:
Manzano:
um conjunto de regras e operaes bem definidas e
ordenadas,
para a soluo de um problema ou de uma classe de
problemas,
em um nmero finito de passos.
Professor Pessoni
O que um Programa?
Professor Pessoni
O que um Programa?
Professor Pessoni
10
O que um Programa?
Tanenmbaum:
um computador digital uma mquina que pode resolver
problemas para as pessoas executando instrues que lhe so
dadas.
Uma sequncia de instrues que descrevem como
realizar uma tarefa chamada de programa.
Puga:
um programa um conjunto de instrues que dizem ao
computador o que deve ser feito.
11
O que um Programa?
Em alguma referncias, software e programa so conceitos
equivalentes;
Porm, o conceito de software mais amplo que o de programa:
Pressman
Software um composto:
a. um conjunto de instrues (programas de computador)
que, quando executadas, produzem a funo e o desempenho
desejados;
b. estruturas de dados que possibilitam que os programas
manipulem corretamente as informaes;
c. documentos que descrevem a operao e o uso dos
programas.
Professor Pessoni
12
O que um Programa?
Em alguma referncias, software e programa so conceitos
equivalentes;
Porm, o conceito de software mais amplo que o de programa:
Sommerville
Software no apenas o programa,
mas tambm toda a documentao associada
e os dados de configurao para fazer com que eles
operem corretamente.
Professor Pessoni
13
O que um Programa?
Assim,
Programa != Software
Professor Pessoni
14
O que um Programa?
Sistema de propsito especfico:
sistemas de computao que possuem programas fixos,
invariveis;
sistemas embarcados;
mp3 Players, microondas, semforo, etc.
Sistema de propsito geral:
sistemas de computao que possibilitam a utilizao de
programas;
computadores pessoais.
Professor Pessoni
15
O que um Programa?
Os circuitos eletrnicos dos computadores podem reconhecer
e executar diretamente um conjunto limitado de instrues
simples;
Para que os programas sejam executados, eles devem ser
convertidos nesse tipo de instrues;
O conjunto das instrues primitivas de um computador
denominado linguagem de mquina;
por meio dessa linguagem, as pessoas se comunicam com ele;
Professor Pessoni
16
O que um Programa?
Os projetistas do computador decidem quais instrues
estaro includas na linguagem de mquina;
em geral, eles fazem com que as instrues primitivas
sejam as mais simples possveis;
para reduzir a complexidade e o custo da
eletrnica necessria.
Professor Pessoni
17
O que um Programa?
Problema:
Como a maioria das linguagens de mquina muito
simples,
difcil / complexo / entendiante / mais suscetvel
a erros programar diretamente nelas;
simples para o computador, complexo para os
humanos!
linguagens de baixo nvel.
Professor Pessoni
18
O que um Programa?
Professor Pessoni
19
O que um Programa?
Professor Pessoni
20
O que um Programa?
Problema: simples para o computador, complexo para os
humanos!
Isso levou a estruturao dos computadores em nveis (ou
camadas) de abstrao;
cada camada acumula-se quela que lhe precede;
Essas abstraes, facilitam o projeto sistemtico e estruturado,
reduzindo a complexidade em lidar com os sistemas
computacionais;
Assim surgiram as linguagens de alto nvel (C, JAVA, C++...);
Professor Pessoni
21
O que um Programa?
Problema: simples para o computador, complexo para os
humanos!
Programamos ento em linguagens de alto nvel que so mais
fceis de estruturar e so mais legveis para os humanos;
No entanto, esses programas desenvolvidos em alto nvel devem
ser compilados/interpretados para o baixo nvel;
Professor Pessoni
22
O que um Programa?
Para que os computadores consigam executar os programas
codificados em linguagens de alto nvel, esses programas
devem ser convertidos/traduzidos em cdigo de mquina;
Professor Pessoni
23
O que um Programa?
Compilao: o mtodo utilizado traduz todo o texto do programa
(tambm chamado de cdigo), para s depois executar o
programa;
o programa compilado e o mecanismo utilizado para a
traduo um compilador (que tambm um programa);
a verso compilada do programa armazenada, e ele pode
ser executado infinitas vezes sem precisar compilar
novamente, o que compensa o tempo gasto na compilao.
EX:
Pascal, C.
Professor Pessoni
24
O que um Programa?
Compilao: o mtodo utilizado traduz todo o texto do programa
(tambm chamado de cdigo), para s depois executar o
programa;
Professor Pessoni
25
O que um Programa?
Interpretao: o texto do programa executado medida que vai
sendo traduzido, como em num processo de traduo de trechos
seguidos de sua execuo imediata;
o mecanismo utilizado para a traduo um interpretador.
EX:
JavaScript, BASIC, Python ou Perl.
26
O que um Programa?
Interpretao: o texto do programa executado medida que vai
sendo traduzido, como em num processo de traduo de trechos
seguidos de sua execuo imediata;
Professor Pessoni
27
O que um Programa?
De maneira simplificada:
Podemos entender um programa de computador como a
formalizao de um algoritmo escrito em alguma linguagem de
programao como:
Cobol, Java, PHP, Pascal, C, Fortran, Visual Basic.
Professor Pessoni
28
O que um Programa?
Professor Pessoni
29
O que um Programa?
E um sistema operacional?
o que ele ?
(windows, linux, macOS, unix, solaris...)
Professor Pessoni
30
O que um Programa?
O sistema operacional:
um programa ou um conjunto de programas
cuja funo gerenciar os recursos do sistema (definir
qual programa recebe ateno do processador, gerenciar
memria, criar um sistema de arquivos, etc.),
fornecendo uma interface entre o computador e o
usurio.
Professor Pessoni
31
O que uma
Linguagem de Programao?
Professor Pessoni
32
Linguagem de Programao
Linguagem de programao:
Para nos comunicarmos uns com os outros, utilizamos
uma linguagem:
Potugus, Ingls, Italiano, Japons, etc.
Da mesma, nos comunicamos com um computador
tambm por meio de linguagens especficas:
linguagens de programao.
Professor Pessoni
33
Linguagem de Programao
Linguagem de programao:
De forma simplificada, uma linguagem de programao:
uma notao para escrever programas, os quais so
uma especificao de um algoritmo;
um mtodo padronizado para comunicar instrues
para um computador;
uma notao formal para descrio de algoritmos que
sero executados por um computador.
Professor Pessoni
34
Linguagem de Programao
Refinando:
Linguagem de programao:
Conjunto de smbolos (comandos, identificadores,
caracteres etc)
e regras de sintaxe,
que permitem a construo de sentenas
que descrevem de forma precisa aes compreensveis e
executveis para o computador.
Tambm possui uma semntica (o que significam).
Professor Pessoni
35
Linguagem de Programao
Exemplo JAVA:
Conjunto de smbolos:
int variavel =1;
c = a / b;
abstract, double, int, strictfp, boolean, if, else,
interface, super, break.
public, static, void, main;
(, {, ),}, ; , .
Professor Pessoni
36
Linguagem de Programao
Exemplo JAVA:
Regras de sintaxe (ex. para declarar uma varivel):
<tipo> + <espao> + identificador + ;
<tipo> um tipo primitivo de dados ou o nome
de uma classe ou interface;
37
Linguagem de Programao
Exemplo JAVA:
38
Linguagem de Programao
Linguagem de programao:
As distinguimos em:
alto nvel: mais prximas dos humanos;
baixo nvel: mais prximas do computador.
Professor Pessoni
39
Tipos de Dados e
Instrues Primitivas
Professor Pessoni
40
Tipos de Dados
Um computador eletrnico (computador digital) executa
basicamente trs aes de trabalho:
entrada de dados: recebe os dados do mundo externo;
processamento de dados: quando o computador, por
meio de um programa, faz transformaes dos dados
entrados ou previamente armazenados, tornando-os fonte
de informao;
sada dos dados: envio dos dados processados na
memria principal ou armazenados para o mundo externo.
Professor Pessoni
41
Tipos de Dados
Os dados so elementos do mundo exterior, que representam
dentro de um computador digital as informaes manipuladas
pelos seres humanos;
Podem ser classificados em trs tipos primitivos ou tipos
bsicos:
numricos (representados por valores numricos inteiros
ou reais);
caracteres (representados por valores alfabticos ou
alfanumricos);
lgicos (valores dos tipos falso e verdadeiro).
Professor Pessoni
42
Tipos de Dados
Numrico: Inteiro
Dados numricos positivos e negativos inteiros;
exclumos qualquer nmero fracionrio (fracionrios so
do conjunto real);
EX:
35, 0, 234, -56, -27.
representao em portugol inteiro.
o tipo de dado inteiro usado em operaes e
processamentos matemticos.
Professor Pessoni
43
Tipos de Dados
Numrico: Real
Dados numricos positivos e negativos reais;
incluindo todos os valores fracionrios e inteiros;
EX:
35, 0, 234, -56, -27, 45.999999, 4.5;
representao em portugol real.
o tipo de dado real usado em operaes e
processamentos matemticos.
Professor Pessoni
44
Tipos de Dados
Caractere / Cadeia
Caracteres delimitados pelos smbolos de aspas ;
So representados por:
Professor Pessoni
45
Tipos de Dados
Caractere / Cadeia
EXs:
Professor Pessoni
ALGORITMOS;
FACULDADES ALFA 2016-2
Professor Pessoni;
CEP 74645-2000;
Fone: (62) 9-8888-8888
email@alfa.br;
-95.6;
a;
1;
[string vazia].
Algoritmos e Programao de Computadores
46
Tipos de Dados
Lgico / Booleano
Dados com valores binrios do tipo sim ou no,
verdadeiro ou falso, 1 ou 0.
ao usarmos, somente um dos valores pode ser
escolhido, nunca ambos ao mesmo tempo;
representao em portugol lgico;
Para usar, temos que escolher uma representao:
.V. para Verdadeiro; ou .S. para SIM;
.F. para Falso; ou .N. para NO.
Professor Pessoni
47
Tipos de Dados
Lgico / Booleano
EX:
Se uma condio for Verdadeira
realizo tal coisa
Se uma condio for Falsa
realizo outra coisa
Se estou com fome == V
vou comer algo;
Se estou com fome == V
no vou comer.
Professor Pessoni
48
Professor Pessoni
49
Variveis
Varivel :
tudo que est sujeito a variaes;
que incerto, instvel ou inconstante;
Em computadores o volume de dados a serem tratados grande e
diversificado;
Desta forma, os dados a serem processados so bastante variveis;
Todo dado a ser armazenado na memria do computador deve ser
previamente identificado segundo seu tipo;
um espao que reservamos na memria do computador para
colocar dados de um determinado tipo.
Professor Pessoni
50
Variveis
Para entender o que uma varivel, utilizemos a Analogia das
gavetas:
imagine que a memria principal de um computador um
armrio com muitas gavetas;
cada gaveta pode armazenar apenas um valor (dado) por vez:
Professor Pessoni
inteiro;
real;
lgico;
caractere.
51
Variveis
Por ser um armrio com diversas gavetas, precisamos dar um nome
para elas;
com esse nome, podemos ir na gaveta posteriormente para
pegar de volta o que foi armazenado nela;
Professor Pessoni
52
Variveis
O nome de uma varivel utilizado para sua identificao e
representao em um programa de computador;
necessrio obedecer algumas regras para uso de variveis:
Os nomes de identificao de uma varivel podem utilizar um ou
mais caracteres, limitando-se a restries da prpria linguagem
formal de programao em uso.
No pseudicdigo essa restrio no existe.
Professor Pessoni
53
Variveis
necessrio obedecer algumas regras para uso de variveis:
O primeiro caractere de identificao do nome de uma varivel
no pode ser, em hiptese nenhuma:
numrico ou de smbolo grfico (cifro, tralha, vrgula, ponto
e vrgula, trao, parnteses, chaves, colchetes, entre outros);
ex: 1nome; @nome; %nome; #nome;
o primeiro caractere de identificao do nome de uma
varivel deve ser sempre alfabtico;
os demais caracteres do nome de uma varivel podem ser
alfanumricos (nmeros ou letras).
Professor Pessoni
54
Variveis
necessrio obedecer algumas regras para uso de variveis:
Em nome composto de varivel no pode haver espaos em
branco;
Para separar nomes compostos usamos underline _;
nome_composto;
nomeComposto;
**seguimos o conjunto de regras de boas prticas de programao da
linguagem. Em JAVA usamos nomeComposto, por exemplo (direto, sem
underline para composio).
Professor Pessoni
55
Variveis
necessrio obedecer algumas regras para uso de variveis:
Jamais uma varivel pode ser definida com o mesmo nome de
uma palavra que represente um dos comandos ou instrues
de uma linguagem de programao de computadores.
EX:
nunca poder se chamar while, for;
No pode ser utilizado como nome de varivel algum rtulo que
j tenha sido usado para identificar o nome de um programa ou
mesmo de outra varivel;
Um nome toma-se exclusivo no programa em que foi definido.
Professor Pessoni
56
Variveis
necessrio obedecer algumas regras para uso de variveis:
Exemplo de nomes vlidos:
Professor Pessoni
NOMEUSURIO;
NOME_USURIO;
NUSURIO;
N_USURIO, FONE1,
FONE_1;
F1;
F_1;
X;
DELTA25.
57
Variveis
necessrio obedecer algumas regras para uso de variveis:
Exemplo de nomes invlidos:
Professor Pessoni
NOME USURIO;
1X;
FONE#;
INTEIRO;
REAL;
CARACTERE;
LGICO;
int, char, boolean, float, double, for, while.
58
Variveis
Uma varivel pode assumir dois papis em um programa:
Papel de ao:
quando seu valor inicial modificado ao longo da execuo
de um programa;
Papel de controle:
quando seu valor "vigiado e utilizado principalmente em
operaes lgicas de deciso e laos de repetio ao longo
de um programa.
a representao em portugol para ambas var.
Professor Pessoni
59
Variveis
Professor Pessoni
60
Professor Pessoni
61
Constantes
Constante tudo que fixo, estvel, inaltervel, imutvel, contnuo,
incessante, invarivel, de valor fixo e que aplicado em diversos
pontos de vista;
uma grandeza numrica fixa utilizada normalmente numa
expresso aritmtica ou matemtica, a qual define um valor que ser
inalterado na expresso, independentemente das variveis
envolvidas na operao a ser realizada;
EX:
CONSTANTE_EXEMPLO = 5;
SAIDA = ENTRADA + 1.25;
em portugol usamos const.
Professor Pessoni
62
Operadores Aritmticos
Professor Pessoni
63
Operadores Aritmticos
Professor Pessoni
64
Operadores Aritmticos
Professor Pessoni
65
Expresses Aritmticas
Professor Pessoni
66
Expresses Aritmticas
Uma operao muito comum em programao de computadores
usar expresses aritmticas para o estabelecimento de
processamentos matemticos;
So realizadas a partir do relacionamento existente entre variveis e
constantes numricas com a utilizao dos operadores aritmticos;
Ex:
area= 3,14 * raio;
Professor Pessoni
area: varivel;
3,14: constante;
raio: varivel;
: constante
Algoritmos e Programao de Computadores
67
Expresses Aritmticas
Ex:
X = { 43 . [ 55 : ( 30 + 2 ) ] } na matemtica;
X <- (43 * (55 / (30 + 2))) em computao.
Observe:
que o simbolo (=) "igual a", em computao representado
pelo smbolo (<-) "seta para a esquerda", que indica a
operao de atribuio.
Professor Pessoni
68
Expresses Aritmticas
Ex:
A frmula da rea anterior pode ser escrita:
area = 3,14 * raio;
area <- 3,14 * raio 2;
area <- 3,14 * raio ^ 2.
Professor Pessoni
69
Instrues e Comandos
Professor Pessoni
70
Instrues e Comandos
O controel de um computador realizado por meio de um conjunto de
programas;
Um programa, alm da lgica de programao necessria e dos
dados a serem manipulados, necessita de um conjunto de
instrues para comandar as aes programadas de um
computador;
71
Instrues e Comandos
Comandos em portugol:
ATE;
AT_QUE;
AT_SEJA;
CADEIA;
CARACTERE;
CASO;
CLASSE;
CONJUNTO;
CONST;
CONTINUA;
DE;
EFETUE;
ENQUANTO;
ENQUANTO_SEJA;
ENTO;
ESCREVA;
FAA;
FIM;
FIM_AT_SEJA;
FIM_CASO;
FIM_CLASSE;
Professor Pessoni
FIM_ENQUANTO;
FIM_FAA;
FIM_LAO;
FIM_PARA;
FIM_REGISTRO;
FIM_SE;
FUNO;
HERANA;
INICIO;
INTEIRO;
LAO;
LEIA.
LOGICO;
PARA;
PASSO,
PRIVADA;
PROCEDIMENTO;
PROGRAMA;
PROTEGIDA;
PBLICA;
REAL;
REGISTRO;
REPITA;
SAIA_CASO;
SE;
SEO_PRIVADA;
SEO_PROTEGIDA;
SEO_PBLICA;
SEJA;
SENO;
TIPO;
VAR;
VIRTUAL.
72
Instrues e Comandos
Regras para usar portugol:
Comandos, com letra maiscula e de forma;
O processo de entrada e de sada de dados representado em
portugol:
leia (entrada);
escreva (saida);
As operaes de processamento matemtico ou lgicoso
representadas com o uso do operador de atribuio (<-).
Professor Pessoni
73
Instrues e Comandos
Utilizao de portugol para representar algoritmos (programas):
EX: Desenvolver um programa de computador que efetue a
leitura de dois valores numricos inteiros. Processe a operao
de adio dos dois valores e apresente na sequncia a soma
obtida com a operao.
1 passo: entender o problema;
2 passo: decidir quais tipos de dados devemos usar, e por
quais variveis eles sero representados;
3 passo: pensar em como descrever esse a soluo do
problema para o computador com os passos de entrada,
processamento e sada;
4 passo: desenvolver o algoritmo.
Professor Pessoni
74
Instrues e Comandos
Utilizao de portugol para representar algoritmos (programas):
EX: Desenvolver um programa de computador que efetue a
leitura de dois valores numricos inteiros. Processe a operao
de adio dos dois valores e apresente na sequncia a soma
obtida com a operao.
1 passo: entender o problema;
um problema de soma;
tem dois nmeros;
tem entrada e sada de dados.
Professor Pessoni
75
Instrues e Comandos
Utilizao de portugol para representar algoritmos (programas):
EX: Desenvolver um programa de computador que efetue a
leitura de dois valores numricos inteiros. Processe a operao
de adio dos dois valores e apresente na sequncia a soma
obtida com a operao.
2 passo: decidir quais tipos de dados deve-se usar, e por
quais variveis eles sero representados;
se vai ler dois inteiros, ento devemos armazen-los em
algum lugar (duas variveis do tipo inteiro A e B);
se vai ter resultado, ento tambm precisamos guardar
essse resultado (mais uma varivel do tipo inteiro R);
Professor Pessoni
76
Instrues e Comandos
Utilizao de portugol para representar algoritmos (programas):
EX: Desenvolver um programa de computador que efetue a
leitura de dois valores numricos inteiros. Processe a operao
de adio dos dois valores e apresente na sequncia a soma
obtida com a operao.
3 passo: pensar em como descrever esse a soluo do
problema para o computador com os passos de entrada,
processamento e sada;
Professor Pessoni
77
Instrues e Comandos
Utilizao de portugol para representar algoritmos (programas):
EX: Desenvolver um programa de computador que efetue a
leitura de dois valores numricos inteiros. Processe a operao
de adio dos dois valores e apresente na sequncia a soma
obtida com a operao.
4 passo: desenvolver o algoritmo.
Professor Pessoni
78
Instrues e Comandos
EX: Desenvolver um programa de computador que efetue a leitura de
dois valores numricos inteiros. Processe a operao de adio dos dois
valores e apresente na sequncia a soma obtida com a operao.
4 passo: desenvolver o algoritmo.
programa SOMA_NUMEROS
var
R: inteiro
A: inteiro
B: inteiro
**um
programa em portugol
comea com o a palavra
programa e com a sua
identificao, nesse caso,
SOMA_NUMEROS.
**o deslocamento pra frente
do nome e tipo das variveis
chamado identao.
Professor Pessoni
79
Instrues e Comandos
EX: Desenvolver um programa de computador que efetue a leitura de
dois valores numricos inteiros. Processe a operao de adio dos dois
valores e apresente na sequncia a soma obtida com a operao.
4 passo: desenvolver o algoritmo.
programa SOMA_NUMEROS
var
R: inteiro
A: inteiro
B: inteiro
inicio
leia A
leia B
R <- A+B
escreva R
fim
Professor Pessoni
**um
programa em portugol
comea com o a palavra
programa e com a sua
identificao, nesse caso,
SOMA_NUMEROS.
**o deslocamento pra frente
do nome e tipo das variveis
chamado identao.
80
Exerccios
Professor Pessoni
81
Atividade em Sala 1
Professor Pessoni
82
Professor Pessoni
83
Atividade em Sala 2
Professor Pessoni
84
85
Atividade em Sala 3
Professor Pessoni
86
Professor Pessoni
87
Atividade em Sala 4
Faa um algoritmo em que o usurio fornea como
entrada o nome e a idade de uma pessoa e, o
algoritmo retorne como sada quantos dias de vida
ela possui.
Considere sempre anos completos, e que um ano
possui 365 dias.
Exemplo: uma pessoa com 19 anos possui 6935 dias de
vida. Um exemplo de sada: MARIA, VOC J VIVEU
6935 DIAS
Professor Pessoni
88
inicio
leia nome
leia idade
resultado<- idade* 365
escreva nome , VOC J VIVEU , resultado , DIAS
fim
Professor Pessoni
89
inicio
leia nome
leia idade
resultado<- idade* ano
escreva nome , VOC J VIVEU , resultado , DIAS
fim
Professor Pessoni
90
Professor Pessoni
91
Atividade em Sala 5
Torre de Hani (20 min)
O problema consiste na transferncia da torre de um pino a outro,
conforme as Figuras 2 e 3, obedecendo as seguintes restries:
a) S possvel movimentar um disco por vez para qualquer pino;
b) Um disco maior nunca poder ser colocado sobre um menor;
c) A soluo dever ser encontrada com o menor nmero de passos
possvel.
Professor Pessoni
92
Atividade em Sala 5
Torre de Hani (20 min)
O problema consiste na transferncia da torre de um pino a outro,
conforme as Figuras 2 e 3, obedecendo as seguintes restries:
a) S possvel movimentar um disco por vez para qualquer pino;
b) Um disco maior nunca poder ser colocado sobre um menor;
c) A soluo dever ser encontrada com o menor nmero de passos
possvel.
Professor Pessoni
93
Professor Pessoni
94
Professor Pessoni
95
Referncias
Professor Pessoni
96