apresentação do powerpoint -...
TRANSCRIPT
![Page 1: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/1.jpg)
1
Introdução
• Programa Computacional busca da necessidade de solução de um problema particular: – a geração automática de documentos, – o controle de um equipamento eletrodoméstico, – a transmissão de informações em longas distâncias, – a agilização de cálculos científicos, e outras motivações mais.
• A solução dos nossos problemas através de um sistema computacional só é obtida no momento em que é definido um conjunto coerente de instruções de um programa que permita estabelecer que ações deverão ser executadas e em que ordem.
Por que desenvolver ALGORITMO?
![Page 2: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/2.jpg)
2
Definição de Algoritmo
“um procedimento consistindo de um conjunto finito de regras não ambíguas que especificam uma seqüência finita de
operações necessárias à solução de um problema ou para especificar uma classe de problemas”. (Kronsjö)
• Conceitos inter-relacionados: – Algoritmo:
• Abstrato e distinto de sua representação.
– Programa: • É uma das possíveis representações do algoritmo.
– Processo: • A atividade de executar um algoritmo.
![Page 3: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/3.jpg)
3
Representação de Algoritmos
• Primitivas: – Conjunto bem definido de elementos funcionais básicos
com os quais podem ser construidas representações de algoritmos.
– Cada primitiva consiste de duas partes: • Sintaxe: representação simbólica da primitiva • Semântica: significado da primitiva
• Linguagem de Programação:
– Um conjunto de primitivas, juntamente com um de regras, estabelecendo de que maneira as primitivas podem ser combinadas
![Page 4: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/4.jpg)
4
Delineamento de Algoritmos
• O desenvolvimento de um programa consiste de duas atividades – delinear o algoritmo subjacente, e representar o algoritmo na forma de um programa.
• Delinear um algoritmo é descobrir um método de solucionar um problema. Assim, entender como os algoritmos são delineados é entender o próprio processo de resolução de problemas.
![Page 5: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/5.jpg)
5
Resolução de Problemas “Arte de Pensar” (1960)
• Modelo de G. Polya (matemático):
– Fase 1 – Entender o problema
– Fase 2 – Construir um plano para solucionar o problema
– Fase 3 – Executar o plano em funcionamento.
– Fase 4 – Avaliar a solução quanto à precisão e quanto ao seu potencial como ferramenta para solucionar outros problemas.
![Page 6: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/6.jpg)
6
Desenvolvimento de Programas para Resolução de Problemas
• Traduzindo o modelo de Polya para o contexto do desenvolvimento de programas, estas fases se tornam:
– Fase 1 – Compreender o problema
– Fase 2 – Adquirir uma idéia da forma como um procedimento algorítmico poderia resolver o problema
– Fase 3 – Formular o algoritmo e representá-lo na forma de um programa.
– Fase 4 – Avaliar o programa quanto à precisão e quanto ao seu potencial como ferramenta para solucionar outros problemas. (ANÁLISE DE ALGORITMO)
![Page 7: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/7.jpg)
7
Análise de Algoritmos
• DEFINIÇÃO: Determinar os recursos necessários para executar um dado algoritmo: tempo de execução e o espaço de armazenamento de dados. A maior parte dos algoritmos são pensados para trabalhar com entradas (inputs) de tamanho arbitrário.
• Em geral, a eficiência ou complexidade de um algoritmo é função: – do tamanho do problema, – do número de passos necessário (complexidade temporal) e – da complexidade espacial ou de memória do sistema usado para
executar o algoritmo.
O objetivo final não é apenas fazer códigos que funcionem,
mas que sejam também eficientes.
![Page 8: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/8.jpg)
8
Por que estudar Estrutura de Dados?
• Porque os programas de computador são formados por:
Algoritmo + Dados
![Page 9: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/9.jpg)
9
Estrutura de Dados
• Motivação: Conhecer técnicas de estruturar os dados para que possam ser manipulado pelos algoritmos dos programas!
• Objetivo: Estudo das principais técnicas de representação e manipulação de dados na memória
• Tipos de dados: – Básicos: inteiros, reais, caracteres, strings etc.
– Abstratos: valores + funções aplicadas aos valores
![Page 10: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/10.jpg)
Vetores
• Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único nome e armazenados contiguamente na memória.
• A individualização de cada variável de um vetor é feita através do uso de índices.
• Os Vetores são matrizes de 1 só dimensão.
• Matrizes Bidimensionais - São matrizes linha-coluna, onde o primeiro índice indica a linha e o segundo a coluna. Esse tipo de matriz é considerado o caso mais simples de matrizes multidimensionais.
• int[,] matriz = new int[2,2];
• int[] vetor = new int[10];
![Page 11: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/11.jpg)
Funções e Procedimentos
• Diferenças – Procedimentos são estruturas que agrupam um conjunto de
comandos, que são executados quando o procedimento é chamado;
– Funções são procedimentos que retornam um valor ao seu término
• Vantagens – Evitam que os blocos do programa fiquem grandes demais e mais
difíceis de ler e entender;
– Ajudam a organizar o programa;
– Permitem reaproveitamento de códigos construídos anteriormente;
– Evitam repetição de trechos de códigos, minimizando erros e facilitando alterações.
![Page 12: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/12.jpg)
Funções e Procedimentos
• Funções – Sintaxe de uma função:
static tipo_de_retorno nome_da_função (com ou sem parâmetros)
{
corpo_da_função
return (valor de retorno);
}
• Procedimentos – Sintaxe de um procedimento:
static void nome_da_função (com ou sem parâmetros)
{
código;
}
![Page 13: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/13.jpg)
Funções e Procedimentos
•O tipo-de-retorno é o tipo de variável que a função vai retornar. •A declaração de parâmetros é uma lista com a seguinte forma geral: tipo var1, tipo var2, ... , tipo varN •O tipo deve ser especificado para cada uma das N variáveis de entrada. É na declaração de parâmetros que informamos ao compilador quais serão as entradas da função. •O corpo da função é onde as entradas são processadas, saídas são geradas, etc. •O comando return tem a seguinte forma geral: return valor_de_retorno; •Quando se chega a uma declaração return a função é encerrada imediatamente e, se o valor de retorno é informado, a função retorna este valor. É importante lembrar que o valor de retorno fornecido tem que ser compatível com o tipo de retorno declarado para a função. • static – Um método estático, indica que não precisa ser instaciado para ser utilizado (orientação a objetos).
![Page 14: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/14.jpg)
Estrutura de Dados 14
Passagem de Parâmetros • Passagem por valor:
– Passagem do conteúdo da variável
– Parâmetro do mesmo tipo da variável
– Independência entre variáveis e parâmetros
– Valores das variáveis são copiados para os parâmetros
– Mudanças em parâmetros não afetam as variáveis
• Passagem por referência: – Passagem do endereço da variável
– Parâmetro do tipo apontador
– Dependência entre variáveis e parâmetros
– Parâmetros apontam para o conteúdo das variáveis
– Mudanças em parâmetros refletem nas variáveis
![Page 15: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/15.jpg)
Estrutura de Dados 15
Tipos Abstratos de Dados (TDAs)
• Agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados;
• O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados;
• Usuário do TAD x Programador do TAD
– Usuário só “enxerga” a interface, não a implementação
![Page 16: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/16.jpg)
Estrutura de Dados 16
Tipos Abstratos de Dados (TDAs) na Programação
• Tipos Abstratos de Dados (TDAs) usados na programação:
– Estáticos:
• Vetores, matrizes e registros
– Dinâmicos:
• Tabelas e índices (aplicações de banco de dados)
• Listas, pilhas, filas, árvores e grafos
![Page 17: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/17.jpg)
Estrutura de Dados 17
ED Estáticas: REGISTROS
• Combinação de diferentes “tipo base” para formar um tipo heterogêneo;
• Tamanho (estrutura) definido em tempo de programação
• Acesso aleatório a qualquer posição através do nome do campo dentro do registro.
• Váriáveis (campos ou membros) com nomes diferentes mas relacionadas e referenciada por um nome comum:
Nome (string) Estado (string) Idade (int) Sexo (char)
Pessoa
![Page 18: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/18.jpg)
Registros em Java • Um registro é uma classe em Java e é composto de vários campos (chamados de
variáveis de instâncias). class AlunoUNIP{
String nome;
String curso;
int codcurso;
char sexo;
String codRA;
// construtor
AlunoUNIP (String nomealuno, String cursoaluno,
int codCurso,char sexoaluno,
String raaluno){
nome = nomealuno;
curso = cursooaluno;
codcurso = codCurso;
sexo = sexoaluno;
codRA = raaluno;
}
}
Construtor, que inicializa as variáveis de
instância
Variáveis de instância
![Page 19: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/19.jpg)
Registros em Java
Com a definição de classe AlunoUNIP nós criamos um modelo para o registro aluno. Quando quisermos utilizar o registro AlunoUNIP, devemos utilizar a sentença abaixo: AlunoUNIP aluno = new AlunoUNIP (inicialização dos campos); A partir daí nós podemos acessar a variável aluno que neste ponto é uma instância da classe AlunoUNIP, nosso registro.
![Page 20: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/20.jpg)
Registros em Java
• Para acessarmos o campo nome do registro AlunoUNIP, basta usarmos a expressão:
aluno.nome
• De forma semelhante, aluno.codcurso acessa o campo codcurso do registro AlunoUNIP.
• Para atribuirmos o valor “M” ao campo sexo, faremos: aluno.sexo = ‘M’; // atribui “M” ao campo sexo.
![Page 21: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/21.jpg)
Registros em Java
public class AlunoUNIP{
String nome;
String curso;
int codcurso;
char sexo;
String codRA;
// construtor
public AlunoUNIP (String nomealuno, String cursoaluno, int codCurso, char sexoaluno, String
raaluno){
nome = nomealuno;
curso = cursoaluno;
codcurso = codCurso;
sexo = sexoaluno;
codRA = raaluno;
}
}
![Page 22: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/22.jpg)
Registros em Java
import java.util.Scanner;
public class TestaAlunoUNIP {
public static void main (String args []) throws Exception {
AlunoUNIP aluno = new AlunoUNIP ("","",0,' ',"");//inicializando os campos do
construtor
Scanner ler = new Scanner(System.in);
System.out.printf("Digite o nome do aluno\n");
aluno.nome = ler.next();
System.out.printf("Digite o curso\n");
aluno.curso = ler.next();
System.out.printf("Digite o codigo do curso\n");
aluno.codcurso = ler.nextInt();
![Page 23: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/23.jpg)
Registros em Java
System.out.printf("Digite o sexo do aluno ( M / F)\n");
//Lendo um caractere usando o método read() do pacote de classes System.in
aluno.sexo = (char)System.in.read();
System.out.printf("Digite o RA do aluno (alfanumerico\n");
aluno.codRA = ler.next();
System.out.printf("O nome do aluno eh: %s.\n",aluno.nome);
System.out.printf("O curso do aluno eh: %s.\n",aluno.curso);
System.out.printf("O codigo curso do aluno eh: %d.\n",aluno.codcurso);
System.out.printf("O sexo do aluno eh: %c.\n",aluno.sexo);
System.out.printf("O RA do aluno eh: %s.\n",aluno.codRA);
System.exit(0);
}
}
![Page 24: Apresentação do PowerPoint - walderson.comwalderson.com/site/wp-content/uploads/2015/02/Aula-01.pdf · permita estabelecer que ações deverão ser executadas e em ... strings etc](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c16f83009d3f28f1e8d5746/html5/thumbnails/24.jpg)
Registros em Java
• Exercício Lab • Criar um programa em Java que tenha os mesmos
campos apresentados no exemplo apresentado em aula, poré armazenando os dados de 10 alunos. Dica: Usaremos um vetor de registros.