Programao estruturada Generalidades Programao em C Pimenta Rodrigues

  • Slides: 15
Download presentation
Programação estruturada Generalidades Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa

Programação estruturada Generalidades Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa

Diagrama de blocos do HARDWARE de um PC Programação em C++ Pimenta Rodrigues Pedro

Diagrama de blocos do HARDWARE de um PC Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -2

Diagrama de blocos do SOFTWARE Parte suficiente para os utilizadores Programação em C++ Pimenta

Diagrama de blocos do SOFTWARE Parte suficiente para os utilizadores Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -3

Sistemas operativos • Mono utilizador – MSDOS • Desenvolvido pela Microsoft na década de

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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -4

Alguns conceitos básicos de programação • Primeiras barreiras a ultrapassar : – Disciplinar raciocínio,

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 (Knuth 73 v 1) • 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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -5

Representação dos algoritmos (1) Algoritmo de Euclides (geómetra grego ) desenvolvido em 600 AC.

Representação dos algoritmos (1) Algoritmo de Euclides (geómetra grego ) desenvolvido em 600 AC. • 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 E 1. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -6

Representação dos algoritmos(2) Descrição em fluxograma Descrição em linguagem C++ int mdc(int m, int

Representação dos algoritmos(2) Descrição em fluxograma Descrição em linguagem C++ int mdc(int m, int n) { int r; while ( (r= m % n) != 0) { m=n; n=r; } return n; } m % n - significa resto da divisão inteira de m por n Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -7

Constituintes dos algoritmos • Parâmetros do processo ou entradas. • Variáveis intermédias (temporárias) •

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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -8

Algoritmos e linguagens estruturadas O conjunto S normalmente adoptado envolve as primitivas: Ponto de

Algoritmos e linguagens estruturadas O conjunto S normalmente adoptado envolve as primitivas: Ponto de entrada • Decisão binária: if (condição) acção 1 else acção 2 • Repetição condicional: while (condição) acção • Decisão múltipla : switch (expressão) { case expressão 1: acção 1 case expressão 2: acção 2 … S (conjunto de primitivas de controlo. p. e C++) } Um algoritmo diz-se estruturado em relação ao conjunto S se todo ele for explicitado exclusivamente com essas primitivas. Ponto de saída Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 -9

O que é programar ? Enquanto na literatura, a arte de escrever, revela-se na

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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 10

Linguagens e paradigmas de programação A evolução das linguagens pode analisar-se através dos paradigmas

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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 11

Paradigmas de programação (1) – Programação procedimental – decomposição de um problema em pequenos

Paradigmas de programação (1) – 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. – 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 em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 12

Paradigmas de programação (2) • Abstracção de tipo de dados – Possibilidade de definição

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. Complexo a, b, c; a = 2. 3; b = 1 / a; c = a + b * Complexo(1, 2. 3); c = c - ( ( a / 2 ) + 2 ); Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 13

Paradigmas de programação (3) Programação orientada por objectos – Definir as classes ou tipos

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. No caso de não existirem características comuns entre classes de objectos, a programação por objectos degenera na abstracção de dados. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 14

A linguagem C++ – A linguagem C foi desenvolvida nos Laboratórios BELL em 1970

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 standard ANSI 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. Programação em C++ Pimenta Rodrigues Pedro Pereira Manuela Sousa Generalidades 1 - 15