Formas de Representação de Algoritmos
Descrição Narrativa
Fluxograma Convencional
Pseudocódigo, Linguagem Estruturada ou Portugol
Fluxograma de Chapin
Descrição Narrativa
representação dos algoritmos diretamente em linguagem natural
Fluxograma Convencional
É uma representação gráfica de algoritmos no qual formas geométricas diferentes implicam ações (instruções, comandos) distintas.
Simbologias Básicas
Pseudocódigo, Portugol
nassemelha-se bastante à forma em que os programas são escritos
Diagrama de Chapin
Criado por NED CHAPIN a partir dos trabalhos de NASSI & SHNEIDERMAN
Solução de Problema x Disciplinas do Curso
Método para Construção de Algoritmos
Ler atentamente o enunciado.
Retirar do enunciado a relação das entradas de dados.
Definir a relação das saídas.
Determinar o que deve ser feito para transformar entradas determinadas nas saídas especificadas
Construir o algoritmo.
Executar o algoritmo (teste de mesa).
Construção de algoritmos computacionais
Capacidades elementares
Ler
Escrever
Efetuar operações aritméticas básicas:
Adição, subtração, multiplicação e divisão
A execução de instruções em um computador requer a manipulação de dados armazenados em sua memória.
MEMÓRIA - Dispositivo físico para armazenar programas e dados. Organizada em um conjunto de elementos denominados bytes.
Cada conjunto de bytes compõe uma posição de memória.
Cada posição recebe um nome (identificação) e armazena um determinado valor.
Memória
Cada posição sempre armazena um valor.
lixo
Toda vez que uma mesma posição recebe um valor novo (execução de uma nova instrução), o valor velho é sobrescrito, isto é, deixa de existir dando lugar ao novo conteúdo .
Programa que calcula a área de um triângulo
Posições de memória
Base, altura, memória
Instruções de entrada e saída
comando versus posição de memória
Sobrescrição de valores
Armazenamento de resultados
Símbolo de atribuição ←
Linguagem
Sintaxe
Pseudocódigo - Linguagem
Características
Não é uma linguagem de programação
Base
Português
Sintaxe usadas em linguagens de programação tradicionais
Código escrito em pseudocódigo:Algoritmo
Vantagens
Abstração – detalhes específicos da linguagem de programação
Construção de uma solução – solução do problema
Bibliografia
ASCENCIO, A. F. G.; CAMPOS, E.A. V. Fundamentos e programação de computadores. São Paulo: Pearson, 2007.
CARBONI, I.F. lógica de programação, São Paulo: Thomsom, 2003.
BORATTI, I.C.; OLIVEIRA, A.B. Introdução à programação de computadores. Florianópolis: VisualBooks, 2004.
MANZANO. J. A. N. G. Estudo dirigido de algoritmos. São Paulo: Érica, 2003. (15)
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico Eberspacher. Lógica de Programação de Algoritmos e Estrutura de Dados. 2 ed. São Paulo: Makron Books, 2000 (9)
GUIMARÃES, LAGES. Algoritmos e estruturas de dados. Rio de Janeiro: LTC,1994.
Algoritmo
Seqüência lógica e finita de instruções, descritas em uma linguagem específica, as quais ao serem executadas solucionam um problema.
“Um algoritmo deve especificar quais são as instruções que devem ser executadas e em que ordem ”( BORATI; OLIVEIRA,2004)
Algoritmo Correto: Sempre termina e para qualquer instância de entrada produz uma saída correta
Exercício
compor um algoritmo que determine a média aritmética de 03 valores.
Exercício - solução
Algoritmo media_tres;
variáveis
valor1,valor2,valor3:inteiro;
media:real;
Inicio
{leia valor1,valor2, valor3;}
leia valor1; (1)
leia valor2; (2)
leia valor3; (3)
media ← (valor1+valor2+valor3)/3; (4)
escreva media; (5)
Fimalgoritmo
Tipos de valores
Algoritmos manipulam valores :
Informados pelo usuário
Intermediários
Resultado final
Existem diferentes tipos de dados
Exemplo: Livro
Título: PHP A BIBLIA
Ano:2004
Preço:195,00
Editora: makron books
tipos de dados X operações
Tipos de valores
Classificação
Tipo
Características e operações
Classificação em pseudocódigo
Inteiro
Real
Caractere
Literal
lógico
Tipos de valores
Variáveis
Posição de memória versus armazenamento de valores
Sobreposição de valores - volatilidade
Tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante:
variável
Variável (computação) representa um nome de um local onde se pode colocar um valor ou conjunto de valores
Variáveis
O nome de uma variável é um IDENTIFICADOR, cuja sintaxe em pseudocódigo obedece a regra:
O nome de uma variável pode ser composto por letras, dígitos, e o caractere sublinhado (_), sendo que o primeiro caractere deve ser uma letra.
Maiúscula versus minúscula: indiferente
Situação: nome,_valor, #55, k2, achou, ano, x,12, “Vacina”
Compatibilidade de tipos
O valor a ser armazenado em uma variável deve ser do mesmo tipo da variável
Exemplos
1.Num ← 30 / 0.75;
2.Media_semestre ← (7.5 +6.2)/2;
3.digito ← “2x”;
4.Aprovado ← (Media_semestre >= 7.0) E (frequencia >0.75)
Tipo das variáveis
Num, Media_semestre: REAL;
Digito: LITERAL;
Aprovado: LÓGICO;
ALGORTIMO ILUSTRATIVO: Compatibilidade de Tipos
Operadores
Os operadores podem subdividir-se em:
Operadores unários - por envolverem apenas um operando
Operadores binários - por envolverem dois operandos
Operadores de atribuição - por permitirem a atribuição de um valor a uma variável
Operadores especiais - existentes em algumas linguagens como a C e C++
Operador de atribuição
Sintaxe - pseudocódigo: ←
Operação de atribuição
Conceito – operação que permite armazenar um valor em uma variável
Exemplos:
aux ¬ 2
soma ¬ aux + 100
b ¬ (5 = 3)
operadores aritméticos
+, -, *, /, resto(mod), div, sqr, **, ^
SQR = raiz quadrada
MOD = resto divisão inteira
DIV = quociente da divisão inteira
**, ^ = exponenciação
Delimitadores
colchetes [ ] ou (. .)
comentários { } ou //
Exemplos
1.num ← (A**X) – Y**Z;
2.valor ← percentual_aumento*(salario + gratificacao);
3.Z ← P-V *D;
4.N ← X Resto 2; - lê-se n recebe resto da divisão de x por dois
5.Resultado ← sqr a; {lê-se resultado recebe raiz quadrada de a }
6.M ← 4 div 2; //lê-se M recebe quociente da //divisão de 4 por dois.
Operadores relacionais
Operadores lógicos
Expressões aritméticas
Precedência dos operadores:
1.+, - (unários)
2.*, /, \ , %, div, mod
3.+, - (binários)
Comandos de entrada e saída
Finalidades
Comando de Leitura – entrada
Leia
Exemplo
Leia codigo, nome_funcionario, cargo;
Comando de saída
escreva
Exemplo
Escreva codigo, nome_funcionario, cargo, salario;
Algoritmo Ilustrativo: entrada e saída de dados
Constantes
Valor que permanece inalterável durante toda a execução de um algoritmo, ou seja, é sempre constante e não sofre alteração no seu conteúdo.
Está associado a um local na memória do computador e portanto, também deve possuir um identificador.
É um valor tipado:lógico, literal, caractere, literal etc...
Atividade prática
Resolução da lista de exercícios 1
Regras para construção de algoritmos legíveis
1.Comentar algoritmo {}
Descrever significado das variáveis
{declaração das variáveis}
{declaração de constantes}
{cálculo do ICMS}
Partes significativa do código
2.Dê nomes significativos as variáveis
Significativo = indique o tipo de informação armazenada na variável ou constante.
Exemplo: nome_funcionario:literal;
3.Sublinhe todas as palavras-chave do algoritmo, destacando as estruturas de controle
•Se (salario <600,00) cargo=" 019)">
Descrição Narrativa
Fluxograma Convencional
Pseudocódigo, Linguagem Estruturada ou Portugol
Fluxograma de Chapin
Descrição Narrativa
representação dos algoritmos diretamente em linguagem natural
Fluxograma Convencional
É uma representação gráfica de algoritmos no qual formas geométricas diferentes implicam ações (instruções, comandos) distintas.
Simbologias Básicas
Pseudocódigo, Portugol
nassemelha-se bastante à forma em que os programas são escritos
Diagrama de Chapin
Criado por NED CHAPIN a partir dos trabalhos de NASSI & SHNEIDERMAN
Solução de Problema x Disciplinas do Curso
Método para Construção de Algoritmos
Ler atentamente o enunciado.
Retirar do enunciado a relação das entradas de dados.
Definir a relação das saídas.
Determinar o que deve ser feito para transformar entradas determinadas nas saídas especificadas
Construir o algoritmo.
Executar o algoritmo (teste de mesa).
Construção de algoritmos computacionais
Capacidades elementares
Ler
Escrever
Efetuar operações aritméticas básicas:
Adição, subtração, multiplicação e divisão
A execução de instruções em um computador requer a manipulação de dados armazenados em sua memória.
MEMÓRIA - Dispositivo físico para armazenar programas e dados. Organizada em um conjunto de elementos denominados bytes.
Cada conjunto de bytes compõe uma posição de memória.
Cada posição recebe um nome (identificação) e armazena um determinado valor.
Memória
Cada posição sempre armazena um valor.
lixo
Toda vez que uma mesma posição recebe um valor novo (execução de uma nova instrução), o valor velho é sobrescrito, isto é, deixa de existir dando lugar ao novo conteúdo .
Programa que calcula a área de um triângulo
Posições de memória
Base, altura, memória
Instruções de entrada e saída
comando versus posição de memória
Sobrescrição de valores
Armazenamento de resultados
Símbolo de atribuição ←
Linguagem
Sintaxe
Pseudocódigo - Linguagem
Características
Não é uma linguagem de programação
Base
Português
Sintaxe usadas em linguagens de programação tradicionais
Código escrito em pseudocódigo:Algoritmo
Vantagens
Abstração – detalhes específicos da linguagem de programação
Construção de uma solução – solução do problema
Bibliografia
ASCENCIO, A. F. G.; CAMPOS, E.A. V. Fundamentos e programação de computadores. São Paulo: Pearson, 2007.
CARBONI, I.F. lógica de programação, São Paulo: Thomsom, 2003.
BORATTI, I.C.; OLIVEIRA, A.B. Introdução à programação de computadores. Florianópolis: VisualBooks, 2004.
MANZANO. J. A. N. G. Estudo dirigido de algoritmos. São Paulo: Érica, 2003. (15)
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico Eberspacher. Lógica de Programação de Algoritmos e Estrutura de Dados. 2 ed. São Paulo: Makron Books, 2000 (9)
GUIMARÃES, LAGES. Algoritmos e estruturas de dados. Rio de Janeiro: LTC,1994.
Algoritmo
Seqüência lógica e finita de instruções, descritas em uma linguagem específica, as quais ao serem executadas solucionam um problema.
“Um algoritmo deve especificar quais são as instruções que devem ser executadas e em que ordem ”( BORATI; OLIVEIRA,2004)
Algoritmo Correto: Sempre termina e para qualquer instância de entrada produz uma saída correta
Exercício
compor um algoritmo que determine a média aritmética de 03 valores.
Exercício - solução
Algoritmo media_tres;
variáveis
valor1,valor2,valor3:inteiro;
media:real;
Inicio
{leia valor1,valor2, valor3;}
leia valor1; (1)
leia valor2; (2)
leia valor3; (3)
media ← (valor1+valor2+valor3)/3; (4)
escreva media; (5)
Fimalgoritmo
Tipos de valores
Algoritmos manipulam valores :
Informados pelo usuário
Intermediários
Resultado final
Existem diferentes tipos de dados
Exemplo: Livro
Título: PHP A BIBLIA
Ano:2004
Preço:195,00
Editora: makron books
tipos de dados X operações
Tipos de valores
Classificação
Tipo
Características e operações
Classificação em pseudocódigo
Inteiro
Real
Caractere
Literal
lógico
Tipos de valores
Variáveis
Posição de memória versus armazenamento de valores
Sobreposição de valores - volatilidade
Tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante:
variável
Variável (computação) representa um nome de um local onde se pode colocar um valor ou conjunto de valores
Variáveis
O nome de uma variável é um IDENTIFICADOR, cuja sintaxe em pseudocódigo obedece a regra:
O nome de uma variável pode ser composto por letras, dígitos, e o caractere sublinhado (_), sendo que o primeiro caractere deve ser uma letra.
Maiúscula versus minúscula: indiferente
Situação: nome,_valor, #55, k2, achou, ano, x,12, “Vacina”
Compatibilidade de tipos
O valor a ser armazenado em uma variável deve ser do mesmo tipo da variável
Exemplos
1.Num ← 30 / 0.75;
2.Media_semestre ← (7.5 +6.2)/2;
3.digito ← “2x”;
4.Aprovado ← (Media_semestre >= 7.0) E (frequencia >0.75)
Tipo das variáveis
Num, Media_semestre: REAL;
Digito: LITERAL;
Aprovado: LÓGICO;
ALGORTIMO ILUSTRATIVO: Compatibilidade de Tipos
Operadores
Os operadores podem subdividir-se em:
Operadores unários - por envolverem apenas um operando
Operadores binários - por envolverem dois operandos
Operadores de atribuição - por permitirem a atribuição de um valor a uma variável
Operadores especiais - existentes em algumas linguagens como a C e C++
Operador de atribuição
Sintaxe - pseudocódigo: ←
Operação de atribuição
Conceito – operação que permite armazenar um valor em uma variável
Exemplos:
aux ¬ 2
soma ¬ aux + 100
b ¬ (5 = 3)
operadores aritméticos
+, -, *, /, resto(mod), div, sqr, **, ^
SQR = raiz quadrada
MOD = resto divisão inteira
DIV = quociente da divisão inteira
**, ^ = exponenciação
Delimitadores
colchetes [ ] ou (. .)
comentários { } ou //
Exemplos
1.num ← (A**X) – Y**Z;
2.valor ← percentual_aumento*(salario + gratificacao);
3.Z ← P-V *D;
4.N ← X Resto 2; - lê-se n recebe resto da divisão de x por dois
5.Resultado ← sqr a; {lê-se resultado recebe raiz quadrada de a }
6.M ← 4 div 2; //lê-se M recebe quociente da //divisão de 4 por dois.
Operadores relacionais
Operadores lógicos
Expressões aritméticas
Precedência dos operadores:
1.+, - (unários)
2.*, /, \ , %, div, mod
3.+, - (binários)
Comandos de entrada e saída
Finalidades
Comando de Leitura – entrada
Leia
Exemplo
Leia codigo, nome_funcionario, cargo;
Comando de saída
escreva
Exemplo
Escreva codigo, nome_funcionario, cargo, salario;
Algoritmo Ilustrativo: entrada e saída de dados
Constantes
Valor que permanece inalterável durante toda a execução de um algoritmo, ou seja, é sempre constante e não sofre alteração no seu conteúdo.
Está associado a um local na memória do computador e portanto, também deve possuir um identificador.
É um valor tipado:lógico, literal, caractere, literal etc...
Atividade prática
Resolução da lista de exercícios 1
Regras para construção de algoritmos legíveis
1.Comentar algoritmo {}
Descrever significado das variáveis
{declaração das variáveis}
{declaração de constantes}
{cálculo do ICMS}
Partes significativa do código
2.Dê nomes significativos as variáveis
Significativo = indique o tipo de informação armazenada na variável ou constante.
Exemplo: nome_funcionario:literal;
3.Sublinhe todas as palavras-chave do algoritmo, destacando as estruturas de controle
•Se (salario <600,00) cargo=" 019)">
Máximas da Programação (1/2)
Algoritmos devem ser feitos para serem lidos por seres humanos.
Escreva comentários no momento em que estiver escrevendo o algoritmo.
Os comentários deverão acrescentar alguma coisa.
Use comentários no início ao algoritmo:
O que faz o algoritmo, como utilizá-lo, explicar o significado das variáveis mais importantes, autor, data de escrita e alterações.
Máximas da Programação (2/2)
Utilize espaços em branco para melhorar a legibilidade.
Escolha nomes representativos para suas variáveis.
Um comando por linha é suficiente.
Utilize parênteses para aumentar a legibilidade das expressões e prevenir-se contra erros.
Utilize “indentação” (alinhamento) para mostrar a estrutura lógica do algoritmo.
Leituras Recomendadas
Guimarães, Lages - Algoritmos e estruturas de dados. LTC (1994)
Capítulos 1, 2 e 3.
Saliba - Técnicas de Programação- Uma Abordagem Estruturada (1993)
Capítulo 1- Introdução.
Capítulo 2- Formas de Representação de Algoritmos.
Capítulo 10- O Método dos Refinamentos Sucessivos.
Algoritmos devem ser feitos para serem lidos por seres humanos.
Escreva comentários no momento em que estiver escrevendo o algoritmo.
Os comentários deverão acrescentar alguma coisa.
Use comentários no início ao algoritmo:
O que faz o algoritmo, como utilizá-lo, explicar o significado das variáveis mais importantes, autor, data de escrita e alterações.
Máximas da Programação (2/2)
Utilize espaços em branco para melhorar a legibilidade.
Escolha nomes representativos para suas variáveis.
Um comando por linha é suficiente.
Utilize parênteses para aumentar a legibilidade das expressões e prevenir-se contra erros.
Utilize “indentação” (alinhamento) para mostrar a estrutura lógica do algoritmo.
Leituras Recomendadas
Guimarães, Lages - Algoritmos e estruturas de dados. LTC (1994)
Capítulos 1, 2 e 3.
Saliba - Técnicas de Programação- Uma Abordagem Estruturada (1993)
Capítulo 1- Introdução.
Capítulo 2- Formas de Representação de Algoritmos.
Capítulo 10- O Método dos Refinamentos Sucessivos.
Nenhum comentário:
Postar um comentário