150 likes | 216 Views
Generalidades. Programação estruturada. Diagrama de blocos do HARDWARE de um PC. Parte suficiente para os utilizadores. Diagrama de blocos do SOFTWARE. Sistemas operativos. Mono utilizador MSDOS
E N D
Generalidades Programação estruturada
Diagrama de blocos do HARDWARE de um PC Generalidades
Parte suficiente para os utilizadores Diagrama de blocos do SOFTWARE Generalidades
Sistemas operativos • Mono utilizador • MSDOS • Desenvolvido pela Microsoft na década de 80, por encomenda da IBM, para correm em PC’s IBM compatíveis. • Baseado no CP/M e UNIX. • Actualmente está em declínio (felizmente para alguns !!!) • Windows 3.x. • Multi utilizador • Unix (muito heterogéneos). • Novell. • OS/2. • Windows NT. Generalidades
Alguns conceitos básicos de programação • Primeiras barreiras a ultrapassar : • Disciplinar raciocínio, por forma a traduzir algoritmicamente a solução do problema. • Algoritmo • Conjunto finito de regras sobre as quais se pode dar execução a um dado processo (Knuth73v1) • Exº ordenação de um conjunto, pesquisa numa base de dados. • Atributos que deve possuir: • Ser finito, inteligível, exequível, caracterizável. • Formas de representação : • Narrativa, Fluxograma, Pseudo código, Linguagens de programação. • Processo • Conjunto ordenado de acções, sujeitos a critérios de decisão condicionados por variáveis. • Executa as regras de um algoritmo, para atingir o seu objectivo. Generalidades
Representação dos algoritmos (1) • Enunciado: • Dados dois inteiros m e n, encontrar o maior inteiro que os divida a ambos exactamente. • Descrição narrativa: • Algoritmo E (Algoritmo de Euclides) • E 1- (Encontrar o resto) - Dividir m por n e afectar r com o resto ( 0 <= r < n) • E 2 - ( O resto é zero?) - Se r=0, o algoritmo termina ; n é o valor procurado. • E 3 - (Substituir) - Afectar m com n e n com r, voltando ao passo E1. Algoritmo de Euclides (geómetra grego ) desenvolvido em 600 AC. Generalidades
int mdc(int m, int n) { int r; while ( (r= m % n) != 0) { m=n; n=r; } return n; } Representação dos algoritmos(2) Descrição em fluxograma Descrição em linguagem C++ m % n - significa resto da divisão inteira de m por n Generalidades
Constituintes dos algoritmos • Parâmetros do processo ou entradas. • Variáveis intermédias (temporárias) • Índices de iteração • Acções primitivas. • Resultados finais ou saídas. Generalidades
Ponto de entrada Ponto de saída Algoritmos e linguagens estruturadas • O conjunto S normalmente adoptado envolve as primitivas: • Decisão binária:if (condição) acção1 else acção2 • Repetição condicional:while (condição) acção • Decisão múltipla :switch (expressão) {case expressão1: acção1case expressão2: acção2 … • } S (conjunto de primitivas de controlo. p.e C++) Um algoritmo diz-se estruturadoem relação ao conjunto S se todo ele for explicitado exclusivamente com essas primitivas. Generalidades
O que é programar ? Enquanto na literatura, a arte de escrever, revela-se na interligação das regras gramaticais, expressas numa dada língua (não bastando para isso dominar a gramática) ,na programação, a arte de programar, revela-se na concepção dos algoritmos, expressos numa dada linguagem. Generalidades
Linguagens e paradigmas de programação A evolução das linguagens pode analisar-se através dos paradigmas de programação que suportam. A evolução das linguagens de programação tem vindo a acompanhar as evoluções do Hardware. Generalidades
Paradigmas de programação (1) • Programação modular • suporta princípio do encapsulamento de dados. • programa dividido em módulos (ficheiros). • programa resulta da ligação (“link”) de vários módulos. • Programação procedimental • decomposição de um problema em pequenos problemas (procedimentos) • cada procedimento utiliza os algoritmos mais adequados ao que se pretende realizar. • procedimentos suportados por um conjunto de primitivas de controlo. Generalidades
Complexo a, b, c; a = 2.3; b = 1 / a; c = a + b * Complexo(1,2.3); c = c - ( ( a / 2 ) + 2 ); Paradigmas de programação (2) • Abstracção de tipo de dados • Possibilidade de definição de tipos de dados novos semelhantes aos já existentes suportando cada um deles um conjunto novo de: • Operações já existentes sobrecarregadas (overload) para o novo tipo ( novas operações e métodos de acesso). • Tipo de objecto => CLASSE • Instância de uma classe => OBJECTO • Extensão natural aos tipos (classes) pré-definidos. Generalidades
No caso de não existirem características comuns entre classes de objectos, a programação por objectos degenera na abstracção de dados. Paradigmas de programação (3) Programação orientada por objectos • Definir as classes ou tipos de objectos que sejam necessários. • Munir essas classes com um conjunto completo de operações. • Explicitar as características comuns entre elas, através de mecanismos de herança. • Usar polimorfismo de métodos entre objectos de classes derivadas. Generalidades
A linguagem C++ • A linguagem C foi desenvolvida nos Laboratórios BELL em 1970 por B. W. Kernighan e D. M. Ritchie. • Em 1983, foi normalizada pela ANSI (American National Standards Institute), uma versão melhorada da linguagem C original, o standardANSI C . • Em 1988, também nos Laboratórios BELL, Bjarne Stroustrup desenvolveu uma extensão à linguagem C ANSI, destinada a suportar todos os paradigmas de programação a que atrás nos referimos, e que tomou a designação de C ++. • O C++ vem acrescentar novas potencialidades à linguagem C: • Refinar conceitos de estruturação. • Facilitar o trabalho entre grandes equipas. • Maior reutilização de código. Generalidades