410 likes | 542 Views
Construção de Algoritmos. Aquiles Burlamaqui UERN 2007.1. Conteúdo Programático. Unidade I Fundamentos de Lógica de Programação Algoritmo (metalinguagem) Conceitos de memória, variáveis e constantes. Tipos básicos de dados Operadores aritméticos, relacionais e lógicos.
E N D
Construção de Algoritmos Aquiles BurlamaquiUERN 2007.1 Professor: Aquiles Burlamaqui
Conteúdo Programático • Unidade I • Fundamentos de Lógica de Programação • Algoritmo (metalinguagem) • Conceitos de memória, variáveis e constantes. • Tipos básicos de dados • Operadores aritméticos, relacionais e lógicos. • Comandos básicos de entrada e saída e atribuição • Conceito de bloco de comandos • Estruturas de controle de fluxo – condicionais (se, se-senão e caso) • Estruturas de controle de fluxo – repetições (para, enquanto e repita-enquanto) • Estruturas de Dados Homogêneas (vetores e matrizes) • Unidade II • Estruturas de Dados Heterogêneas (registros) • Modularização • Variáveis locais e globais • Funções • Passagem de parâmetros por valor e por referência • Funções recursivas • Biblioteca de funções • Unidade III • Algoritmos de Busca • Ponteiros • Conceitos • Operador endereço e operador de acesso indireto • Alocação dinâmica de memória • Arquivo Professor: Aquiles Burlamaqui
Planejamento • Carga horária: 90h, 15 dias Professor: Aquiles Burlamaqui
Metodologia • Aulas • Teóricas-Práticas: • Em todas as aulas haverão uma discussão inicial, onde serão expostos conceitos assim como atividades práticas que servirão como parâmetro para avaliação. • Avaliação: • A avaliação será feita de forma continua. E Baseada em três provas escritas. Assim como trabalhos em sala aula. Professor: Aquiles Burlamaqui
Bibliografia • Bibliografia Básica: • Manzano, José Augusto N. Z.; Oliveira, Jayr F. de Algoritmos: Lógica para o desenvolvimento de programas de computadores. 16ª Edição. Érica, 2004. • Técnicas de programação: Uma Abordagem Estruturada;SALIBA, Walter Luiz Caram;Markron Books,2002. • Técnicas de programação: Uma Abordagem Moderna. LEIRE, Mario,Brasport,2006. • Bibliografia Complementar: • Herbert Schildt; "C" Completo e Total, McGraw-Hill,1990. • CHARLES E. LEISERSON ;Algoritmos: Teoria e Prática. • Internet • www.google.com Professor: Aquiles Burlamaqui
Motivação • Por que estudar Construção de Algoritmos? Professor: Aquiles Burlamaqui
Motivação • Por que estudar Construção de Algoritmos? • Disciplina base do curso de computação • Pré-requisito para todas as outras linguagens de programação; Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Três pilares • Físico • Lógico • Humano Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Três pilares • Físico • Hardware (CPU + Periféricos) • Lógico • Firmware (Instruções de Fábrica) • Software (Programas) • Algoritmo • Humano • Peopleware (Profissionais) Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Origem da palavra Algoritmo • Matemático Persa do século IX • Mohamed ben Musa Al-Khwarizmi, • Algorithmi de numero indorum • Al-goreten (conceito que se pode aplicar aos cálculos) • Definição: Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Origem da palavra Algoritmo • Matemático Persa do século IX • Mohamed ben Musa Al-Khwarizmi, • Algorithmi de numero indorum • Al-goreten (conceito que se pode aplicar aos cálculos) • Definição: • Receita de bolo; • Um algoritmo é uma seqüência não ambígua de instruções que é executada até que determinada condição se verifique; (wikipédia) • Conjunto ordenado e não-ambíguo de passos executáveis que definem uma atividade finita;(Brookshear) Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Algoritmo • Exemplo (Ligar o Carro): Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Algoritmo • Exemplo (Ligar o Carro): • Ligar o carro • Pisar na embreagem • Passar a primeira marcha • Soltar a embreagem lentamente,enquanto pisa no acelerador. • Algoritmo para fritar um ovo? Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Algoritmo • Calcular a média na disciplina? Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Algoritmo • Se não for seguido um formalismo, podemos ter problemas. Professor: Aquiles Burlamaqui
Conceitos Fundamentais • Algoritmo • De modo a torná-lo não ambíguo uma formalização é necessária. • Definição de regras de semântica e sintaxe. Professor: Aquiles Burlamaqui
Formas de representação de algoritmos • Descrição Narrativa • Fluxograma • Pseudocódigo • Linguagens de Programação Professor: Aquiles Burlamaqui
Formas de representação de algoritmos • Descrição Narrativa • Uso da linguagem natural; • Temos a inconveniência da má interpretação, originando ambigüidades e imprecisões. • Vejamos mais um exemplo: a troca de um pneu furado. • Analisar as ambigüidades e imprecisões. Professor: Aquiles Burlamaqui
Descrição Narrativa • Algoritmo • afrouxar ligeiramente as porcas; • suspender o carro; • retirar as porcas e o pneu; • colocar o pneu reserva e as porcas; • abaixar o carro; • dar o aperto final nas porcas. Professor: Aquiles Burlamaqui
Fluxograma • Uso de formas geométricas distintas produzindo ações distintas • Início ou fim do fluxograma. • Entrada de dados. • Cálculo de expressões. • Saída de resultados. • Tomada de decisão • Fluxo. Professor: Aquiles Burlamaqui
Fluxograma Professor: Aquiles Burlamaqui
Pseudocódigo • Uso de linguagem própria, aproximando-se mais das linguagens de alto nível, chamado, também de pseudolinguagem ou ainda portugol. • Forma geral: Algoritmo < nome_do_algoritmo > < declaração_de_variáveis > Início < Instruções > Fim Professor: Aquiles Burlamaqui
Pseudocódigo • Algoritmo Média_do_aluno Real: m1,m2,media Início Escreva(“Digite as duas notas:”) Leia(m1,m2) media (m1+m2)/2 Se (média >= 5) então Escreva (“APROVADO”) Senão Escreva (“REPROVADO”) Fim_se Fim Professor: Aquiles Burlamaqui
Linguagens de Programação • Linguagens de Programação • Uma linguagem de programação é um método padronizado para expressar instruções para um computador. • É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Professor: Aquiles Burlamaqui
Linguagens de Programação • Linguagens de baixo nível • Linguagens de máquina, assembly • Linguagens de alto nível • Fortran, Cobol, C, C++, Java, Pyton, Lua, Basic, Pascal... Professor: Aquiles Burlamaqui
Conceitos Básicos • Baixo nível • Código otimizado,Indicado para situações onde não há opção de alto nível • Alto nível • Programação do algoritmo mais fácil • Portabilidade • Manutenção do código Professor: Aquiles Burlamaqui
Processadores de Linguagens • Compilação • Interpretação Professor: Aquiles Burlamaqui
Compilação Professor: Aquiles Burlamaqui
Linguagem de Programação C • Flexibilidade • Portabilidade • Usada no desenvolvimento de: • Unix • Linguagem C, C++ • Java • Etc Professor: Aquiles Burlamaqui
Linguagem de Programação C • Programas em C geram programas executáveis. • Mais veloz que outras linguagens de alto nível. • Linguagem de relativo baixo nível, permite operações com bits, bytes, endereços de memórias. Professor: Aquiles Burlamaqui
Linguagem de Programação C • Instalação • Windows • Dev-C++ • Turbo C++ • Linux • gcc Professor: Aquiles Burlamaqui
Tipos de Dados • Manipulação de informações na memória • Instruções • Dados • Memória 1 célula = 1 byte = 8 bits 1 bit possui 2 estados: 0 e 1 (dígitos binários). 1 byte possui 28 = 256 estados possíveis. Professor: Aquiles Burlamaqui
Tipos de Dados • Tipos básicos podem ser: • Numéricos; • Inteiros • Reais; • Literais; • Lógicos; Professor: Aquiles Burlamaqui
Tipo de Dados • Numéricos • Inteiros: sem parte fracionária nem ponto; • Ex: 86 0 234 -34 4324 • Reais: com parte fracionária e ponto; • Ex:85.3 -9.34 10.0 6.0 0.00 Professor: Aquiles Burlamaqui
Tipos de Dados • Literais: Seqüências de caracteres contendo letras, dígitos e/ou símbolos especiais • Também chamados de: • “alfanuméricos” • “cadeia de caracteres” • “strings” • Serão representados nos algoritmos entre aspas. • Ex:“UERN” comprimento 4; “Construção de Algoritmos” comprimento ?; “29/04/80” comprimento ? “” comprimento ? “ “ comprimento ? Professor: Aquiles Burlamaqui
Tipos de Dados • Lógico • Usados para representar dois únicos valores lógicos possíveis: verdadeiro e falso. • Representados nos algoritmos como: .V. (verdadeiro) e .F. (falso). Professor: Aquiles Burlamaqui
Armazenamento na Memória Professor: Aquiles Burlamaqui
Trabalho 01 • Escrever o pseudo-código da média da UERN baseado no fluxograma criado em sala de aula. • Entregar próxima aula. Professor: Aquiles Burlamaqui
FIM PRIMEIRA AULA Professor: Aquiles Burlamaqui