Autor Marcos Costa Julio Oliveira Motivao para Estudar

  • Slides: 112
Download presentation
Autor: Marcos Costa Julio Oliveira

Autor: Marcos Costa Julio Oliveira

Motivação para Estudar CLP. • Aumento da capacidade de expressar ideias uma vez que

Motivação para Estudar CLP. • Aumento da capacidade de expressar ideias uma vez que nossa capacidade intelectual seja influenciada pelo poder expressivo da linguagem em que comunicamos nossos pensamentos. • Maior conhecimento para escolha de linguagens apropriadas, possibilitando uma melhor adequação do problema a linguagem. • Capacidade aumentada para aprender novas linguagens, visto o desenvolvimento continuo de novas linguagens de programação que ainda estão em crescente evolução, assim entender os conceitos fundamentais das linguagens, irá tornar fácil uma possível transição ou adaptações.

Motivação para Estudar CLP. • Entender melhor a importância da implantação, pois em alguns

Motivação para Estudar CLP. • Entender melhor a importância da implantação, pois em alguns casos a compressão das questões de implementação leva a um entendimento do porquê das linguagens serem projeta daquela maneira. • Aumento da capacidade de projetar novas linguagens. • Avanço global da computação que pode justificar o estudo dos conceitos das linguagens de programação. • Ajustar e aprender novas linguagens de programação

Década de 1940 • Sistema de código ENIAC, Assembly, C-10 e Plankalkül. 1950 -

Década de 1940 • Sistema de código ENIAC, Assembly, C-10 e Plankalkül. 1950 - 1960 • FORTRAN, LISP, Basic, COBOL, etc. Hi st ór ic o 1967 - 1978 • Pascal, C, Prolog, SQL, etc. Década de 1980 • C++, Perl, Ada, etc. Década de 1990 • Haskell, Python, Java, Ruby, Common Lisp, Java. Script, PHP, , Delphi, etc. Década de 2000 • VB. net, etc. 4

As linguagens mais utilizadas atualmente Índice de popularidade das linguagens de programação. É baseado

As linguagens mais utilizadas atualmente Índice de popularidade das linguagens de programação. É baseado em estatística obtida nos principais portais de informações (Google, MSN, Yahoo!, You. Tube, etc. ). Note que o índice não classifica as melhores linguagens de programação, e sim as mais populares (utilizadas). Não é uma coisa absoluta, mas bem representativa do mercado global de programação. As 10 mais populares 3% 4% 4% 4% 7% 18% 24% 16% 9% Java C++ (Visual) Basic C# Perl 10% C PHP Python Java. Script Outras Fonte: tiobe. com 5

Domínios de Programação. • Aplicações cientificas: Estão relacionados computação de grandes dados. A primeira

Domínios de Programação. • Aplicações cientificas: Estão relacionados computação de grandes dados. A primeira linguagem para aplicações cientificas foi o FORTAN. O ANGOL 60 e a maioria de suas descendentes também se destina a essa área. • Aplicações Comercias: Teve inicio na dec. 50, equipamentos especiais foram desenvolvidos para este proposito. A primeira linguagem bem sucedida foi o COBOL que apareceu na dec 60. As linguagens comerciais são caracterizadas por facilidades para produzir relatórios elaborados. Duas ferramentas especificas que podem ser usadas são: A planilha eletrônica e os sistemas de bancos de dados.

Domínios de Programação. • Inteligência Artificial: É uma área abrangente das aplicações de computador

Domínios de Programação. • Inteligência Artificial: É uma área abrangente das aplicações de computador caracterizada pelo uso de computações simbólicas em vez de numérica. computação simbólica significa que símbolos, que constituem em nomes no lugar do numero, são manipulados. A primeira linguagem desenvolvida para aplicações de IA foi a funcional LISP em 1959. Na dec de 70 surgiu uma abordagem alternativa que foi o Prolog.

Domínios de Programação. • Programação de Sistemas: O sistema operacional e todas as ferramentas

Domínios de Programação. • Programação de Sistemas: O sistema operacional e todas as ferramentas de suporte à programação de um computador são coletivamente conhecidas como seu software básico que é usado quase continuamente e, portanto deve ter eficiência na sua execução. Além disso, deve ter recursos de baixo nível que permitam ao software fazer interface com os dispositivos externos a serem escritos.

Domínios de Programação Aplicações Científicas Inteligência Artificial Aplicações Comerciais Programação de Sistemas

Domínios de Programação Aplicações Científicas Inteligência Artificial Aplicações Comerciais Programação de Sistemas

Abordadaremos: Características e Objetivos das linguagens de programação Abstração de Dados Polimorfismo Ambiente de

Abordadaremos: Características e Objetivos das linguagens de programação Abstração de Dados Polimorfismo Ambiente de Escopo de Variáveis

Objetivos da Linguagem de Programação • O objetivo de uma linguagem de programação é

Objetivos da Linguagem de Programação • O objetivo de uma linguagem de programação é permitir que um programador possa resolver problemas computacionais criando um conjunto de instruções que seguem um determinado padrão, por meio do qual se representam ações executáveis por um computador • Pensando dessa forma, uma linguagem de programação deve melhorar a comunicação entre desenvolvedores, facilitando a criação de códigos mais limpos, claros e que podem ser lidos facilmente por outro programador a qualquer momento.

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura e entendimento dos códigos. A legibilidade deve ser considerada no contexto do domínio do programa. Para contribuição da legibilidade de uma linguagem de programação aplica-se características como: • Simplicidade Global (esta relacionado como deve ser estruturado uma linguagem para que não possua nem grande numero de informações e recursos e nem pouco numero de informações facilitando assim seu entendimento). • Ortogonalidade. • Instruções de controle. • Tipos de estrutura de dados.

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura e entendimento dos códigos. A legibilidade deve ser considerada no contexto do domínio do programa. Para contribuição da legibilidade de uma linguagem de programação aplica-se características como: • Ortogonalidade (Diz respeito a capacidade da LP permitir ao programador combinar seus conceitos básicos sem que se produzam efeitos irregulares nessa combinação. Assim uma LP é tão mais ortogonal quanto menor for o número de exceções aos seus padrões regulares). • Instruções de controle. • Tipos de estrutura de dados.

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura e entendimento dos códigos. A legibilidade deve ser considerada no contexto do domínio do programa. Para contribuição da legibilidade de uma linguagem de programação aplica-se características como: • Instruções de controle (trata-se da característica de o programador poder mudar o fluxo natural do programa exemplo o GO TO em C e JUMP em assembly ). • Tipos de estrutura de dados.

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura

Características da Linguagem de Programação • Legibilidade: Está relacionada com a facilidade de leitura e entendimento dos códigos. A legibilidade deve ser considerada no contexto do domínio do programa. Para contribuição da legibilidade de uma linguagem de programação aplica-se características como: • Tipos de estrutura de dados ( refere-se a facilidade de representação de tipos de dados para posterior manipulação).

Características da Linguagem de Programação • Capacidade de Escrita: Trata-se de uma medida de

Características da Linguagem de Programação • Capacidade de Escrita: Trata-se de uma medida de quão facilmente uma linguagem pode ser usada para criar programas para um domínio de problemas escolhidos. A maioria das características da linguagem que afeta a legibilidade também afeta a capacidade de escrita. • Simplicidade e Ortogonalidade (apresentado anteriormente). • Suporte para Abstração (trata-se da capacidade de definir , e usar estruturas de dados ou operações complicadas de maneira que permita ignora muitos detalhes) • Expressividade()

Características da Linguagem de Programação • Capacidade de Escrita: Trata-se de uma medida de

Características da Linguagem de Programação • Capacidade de Escrita: Trata-se de uma medida de quão facilmente uma linguagem pode ser usada para criar programas para um domínio de problemas escolhidos. A maioria das características da linguagem que afeta a legibilidade também afeta a capacidade de escrita. • Expressividade( significa que uma linguagem tem formas relativamente convenientes, em vez de desajeitadas para especificar computações , ou seja uso de termos adequados da linguagem para resolução do problema. Exemplo: em C a notação count++ é mais conveniente e mais breve do que count=count+1 , ).

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se ele se comportar de acordo com suas especificações sob todas condições. • Verificação de Tipos ( é simplesmente, testar se existem erros de tipo em um determinado programa, ou por meio do compilador ou durante a execução do programa). • Manipulações de exceções • Aliase • Legibilidade e Capacidade de Escrita.

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se ele se comportar de acordo com suas especificações sob todas condições. • Manipulações de exceções (capacidade do programa interceptar erros). • Aliasing • Legibilidade e Capacidade de Escrita.

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se ele se comportar de acordo com suas especificações sob todas condições. • Aliasing (é ter dois ou mais métodos , ou nomes , distintos para fazer referência á mesma célula de memoria). • Legibilidade e Capacidade de Escrita.

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se

Características da Linguagem de Programação • Confiabilidade: Diz-se que o programa é confiável se ele se comportar de acordo com suas especificações sob todas condições. • Legibilidade e Capacidade de Escrita (tanto a legibilidade quanto a capacidade de escrita influenciam a confiabilidade uma vez que um programa escrito em uma linguagem que não suporta maneiras naturais de expressar os algoritmos exigidos usará necessariamente métodos não naturais para resolve-los ).

Características da Linguagem de Programação • Custo: O custo final de uma linguagem de

Características da Linguagem de Programação • Custo: O custo final de uma linguagem de programação é uma função de muitas de suas características. • Custo de treinamento de programadores para usar a linguagem. • Custo para escrever programas na linguagem. • Custo para compilar programas na linguagem. • Custo para executar programas. • Custo do sistema de implementação da linguagem. • Custo da má confiabilidade. • Custo de manipulação de programas.

Propriedades desejáveis de uma LP Confiabilidade Ortogonalidade Está relacionada com os mecanismos fornecidos pela

Propriedades desejáveis de uma LP Confiabilidade Ortogonalidade Está relacionada com os mecanismos fornecidos pela LP para incentivar a construção de programas confiáveis Diz respeito a capacidade da LP permitir ao programador combinar seus conceitos básicos sem que se produzam efeitos irregulares nessa combinação. Assim uma LP é tão mais ortogonal quanto menor for o número de exceções aos seus padrões regulares Conclusão Eficiência De acordo com as demandas por recursos de um tipo de aplicação, certas LPs são mais recomendadas, e outras não devem ser usadas Legibilidade Está relacionada com a facilidade de leitura dos códigos Reusabilidade Possibilita a reutilização do mesmo código para diversas aplicações. Quanto mais reusável for um código, maior será a produtividade de programação, uma vez que, na construção de novos programas, bastará adaptar códigos escritos anteriormente sem a necessidade de reconstruí-los Facilidade de aprendizado Redigibilidade O programador deve ser capaz de aprender a linguagem com facilidade. LPs com muitas características e múltiplas maneiras de realizar a mesma funcionalidade tendem a ser mais difíceis de aprender Relaciona-se com a facilidade em escrever programas 23 Dessa forma, não existe a melhor ou a pior LP, isso não depende somente da linguagem e sim para que tipo de projeto será aplicado Portabilidade Modificabilidade Refere-se às facilidades oferecidas pela LP para possibilitar ao programador alterar o programa em função de novos requisitos, sem que tais modificações impliquem mudanças em outras partes do programa É altamente desejável que programas escritos em uma LP se comportem da mesma maneira independentes da ferramenta utilizada para traduzi-los para a linguagem de máquina ou da arquitetura computacional (hardware ou sistema operacional) sobre a qual estão sendo executados.

Abstração de Dados. • Conceito: abstração é uma visualização ou representação de um entidade

Abstração de Dados. • Conceito: abstração é uma visualização ou representação de um entidade que inclui somente os atributos de importância em um contexto particular. • Em todo sistema ou problema pode-se identificar níveis de abstração distintos. • A abstração é uma arma contra a complexidade da programação; seu proposito é simplificar o processo de programação. Permite que os programadores concentrem-se nos atributos essenciais e ignorem os atributos subordinados. • Uma instancia de um tipo de dado abstrato é chamada de objeto.

Abstração de Dados. • Encapsulamento: É uma forma de ocultamento e proteção de informações,

Abstração de Dados. • Encapsulamento: É uma forma de ocultamento e proteção de informações, viabilizando a manutenção e facilitando a evolução de sistemas, pois, em muitos casos será desejável que os dados não possam ser acessados ou usados diretamente, mas somente através das operações cuja especialidade será a manipulação desses dados. • Vantagem: Considerável aumento da confiabilidade obtido através do principio da proteção. • Exemplo de encapsulamento: class Data{ private byte dia, mês; private short ano; }

Polimorfismo • É a capacidade de dois ou mais objetos responderem á mesma mensagem,

Polimorfismo • É a capacidade de dois ou mais objetos responderem á mesma mensagem, cada um a seu próprio modo. • Enquanto que a herança refere-se ás classes (e á sua hierarquia), o polimorfismo diz respeito aos métodos e seus objetos. • Existem alguns tipos de polimorfismo dentre o quais pode-se cita:

Polimorfismo de inclusão Todo objeto de uma subclasse pode ser usado no contexto de

Polimorfismo de inclusão Todo objeto de uma subclasse pode ser usado no contexto de um superclasse. • Polimorfismo Paramétrico Permite e existência de vários métodos com mesmo nome definidos na mesma classe, que se diferenciam pelo tipo ou numero de parâmetros suportados(sobrecarga de operadores) 27

Escopo de variáveis O escopo de uma variável é a faixa de comandos em

Escopo de variáveis O escopo de uma variável é a faixa de comandos em que a mesma é visível. Uma variável é visível em um comando se puder ser referenciada naquele comando. Uma variável é local a uma unidade de programa se foi declarada nela. Uma variável é não-local a uma unidade de programa se for visível mas não tiver sido declarada nela.

29

29

Capacidade de escolher a LP mais adequada. Conhecer os recursos oferecidos por uma linguagem

Capacidade de escolher a LP mais adequada. Conhecer os recursos oferecidos por uma linguagem e saber como esses recursos são implementados podem determinar uma boa escolha da LP a ser usada em um projeto. Habilidade ao usar uma LP. O maior entendimento a respeito das funcionalidades e da implementação de uma LP possibilita ao programador construir programas melhores e mais eficientes. O que um bom programador precisa saber/ter? Ser dinâmico. O programador não deve se limitar a uma única linguagem, com o mercado profissional cada vez mais competitivo e a constante atualização da área deve-se ampliar o leque de LPs, conhecendo suas características básicas e os conceitos em que elas são implementadas. 30 Maior capacidade de desenvolver programas. Uma maior compreensão sobre os conceitos de uma LP pode aumentar a habilidade de como pensar e resolver problemas.

O programador mediano sabe uma coisa porque ele precisa saber. O bom programador sabe

O programador mediano sabe uma coisa porque ele precisa saber. O bom programador sabe alguma coisa porque ele tem vontade de saber. No English? No job. s, içõe e f e r suas osta de o ã g is Aqu ocê não lemas e se v er prob er em z lv reso ente pra tra área s u não uscar o inho. r, b m cam faze bo é um Gostar de problemas lógicos 31 Um b nece om prog r s sinta sita sabe amador xe d r in Saberpinglês rogra as lingua glês, a g m palav ação é ens de f e r docu a men s em ing ita de tação lê da lin s, a ferra g men tas, e uagem, tc. Qualidades ou esforços necessários Gostar de ler, estudar e aprender Pa r é n a res o e b ce lve qu usca ssár r um a io r tiv nto m as in sab prob er e ma ais i form r co lema n a m i res s fác form ções o olv il se aç er. rá ões de Saber buscar as informações Vo cê g entã osta de o prof é melh ler? Não issão or ? S prog. É im você arr into mu Prog ramado possíve umar o ito, uma ramaçã r sem l l ser um utra de s área m o de co er basta bom ua m u n aind s verte ito vasta putado te. ntes a, nã e, em res é , m de a o existe muito c omp uitas pren uma l der se n melhor exa. E ão é form lend a o.

1. A LINGUAGEM C Indice • E suas características; 2. A LINGUAGEM JAVA •

1. A LINGUAGEM C Indice • E suas características; 2. A LINGUAGEM JAVA • E suas características; 3. A LINGUAGEM PYTHON • E suas características. 32

33

33

Características da linguagem C • C: A Linguagem C é uma linguagem de programação

Características da linguagem C • C: A Linguagem C é uma linguagem de programação que tem sua origem em outras duas linguagens anteriores: a Linguagem BCPL e a Linguagem B. A Linguagem BCPL foi desenvolvida por Martin Richards. Esta linguagem influenciou a linguagem inventada por Ken Thompson, chamado B. Logo em seguida, Dennis Ritchie desenvolveu a Linguagem C que foi implementada em um DEC PDP-11, usando o sistema operacional UNIX. • A Linguagem C, dada a sua simplicidade e flexibilidade, tornou-se ao longo do tempo uma das linguagens de programação mais usadas, sendo utilizada na criação e desenvolvimento de softwares e sistemas operacionais que se tornaram famosos em todo mundo, como por exemplo o Sistema Operacional Windows. Entretanto, a Linguagem C atinge seus limites a partir do ponto em que os programas escritos na linguagem atingem um certo tamanho, entre 25. 000 e 100. 000 linhas, devido à problemas de gerenciamento do código.

Características da linguagem C • Portabilidade entre máquinas e sistemas operacionais, ou seja, um

Características da linguagem C • Portabilidade entre máquinas e sistemas operacionais, ou seja, um código escrito em linguagem C poderá ser executado em diferentes máquinas independentemente da sua configuração física (hardware) e do sistema operacional residente • A linguagem C é estruturada, com isso desencoraja a utilização dos goto's – desvios incondicionais, que geram os chamados códigos "macarronada". O "goto" é substituído por diversos tipos de laços e desvios, tais como: while, do-while, for; if-then-else, switch, que permitem ao programador exercer um controle lógico mais eficaz sobre os códigos fontes de seus programas.

Características da linguagem C • A linguagem C possui sub-rotinas com variáveis locais, isto

Características da linguagem C • A linguagem C possui sub-rotinas com variáveis locais, isto é, funções cujas variáveis são visíveis apenas dentro desta função e somente no momento em que estas funções estejam sendo usadas. Assim as variáveis com mesmo nome, que pertençam a funções distintas, são protegidas dos efeitos colaterais (proteção de variáveis), isto é, uma modificação em nível funcional não acarretará mudança na variável em nível global. Desta forma, mudanças de valores de variáveis no corpo do programa principal não afetam as variáveis de funções e vice-versa, a não ser que o programador assim o queira.

Características da linguagem C Código compacto e rápido, quando comparado ao código de outras

Características da linguagem C Código compacto e rápido, quando comparado ao código de outras linguagem de complexidade análoga. A linguagem C é Case-Sensitive. É importante saber que as letras maiúsculas e minúsculas são tratadas como caracteres distintos. Por exemplo, em algumas linguagens, os nomes de variáveis count, Count e COUNT são três maneiras de se especificar a mesma variável. Entretanto na linguagem C, serão três variáveis diferentes. Então, quando você digitar programas em C seja cuidadoso na utilização correta das letras.

Características da linguagem C A linguagem C oferece ao programador: _ pouquíssimas restrições, _

Características da linguagem C A linguagem C oferece ao programador: _ pouquíssimas restrições, _ estrutura de bloco, _ criação de funções isoladas, _ um conjunto compacto de palavras reservadas, _ compilação separada, _ alta eficiência de execução.

Características da linguagem C Tabela: Todos os Tipos de dados definidos pelo Padrão ANSI

Características da linguagem C Tabela: Todos os Tipos de dados definidos pelo Padrão ANSI C, seus tamanhos em bytes e suas faixas de valores:

Características da linguagem C ● VARIÁVEIS: • Todo nome só pode conter letras e

Características da linguagem C ● VARIÁVEIS: • Todo nome só pode conter letras e dígitos; • Todo primeiro caractere deve ser sempre uma letra; • Letras maiúsculas e minúsculas são consideradas caracteres diferentes; • Palavras Reservadas não podem ser usadas como nome de variáveis.

Características da linguagem C ● Declaração de variáveis: Para serem usadas, as variáveis precisam

Características da linguagem C ● Declaração de variáveis: Para serem usadas, as variáveis precisam ser declaradas de modo que o compilador possa reservar espaço na memória para o valor a ser armazenado. A forma geral de uma declaração é: tipo lista_de_variaveis ; Exemplos: int i; unsigned int a, b, c; unsigned short int dia, mes, ano; double salario;

Características da linguagem C ● Escopo geral de um programa em c: #include <stdio.

Características da linguagem C ● Escopo geral de um programa em c: #include <stdio. h> #include <stdlib. h> //declarações do escopo funções int main(void){ //desenvolvimento do programa /*chamadas às funções*/ }

Características da linguagem C ● Tipos de Operadores: 1. Operador de atribuição: (=) 2.

Características da linguagem C ● Tipos de Operadores: 1. Operador de atribuição: (=) 2. Operadores aritméticos: Os operadores +, - , * e / funcionam em C com seu significado matemático, • O C inclui dois operadores que geralmente não aparecem na notação matemática; • operador de incremento ++; • operador de decremento --; • x = x + 1 é o mesmo que x++; • os operadores ++ e -- permitem fazer as operações mais eficientemente.

Características da linguagem C ● Tipos de Operadores: 3. Operadores relacionais: • operador relacional,

Características da linguagem C ● Tipos de Operadores: 3. Operadores relacionais: • operador relacional, refere-se às relações que os valores podem ter uns com os outros.

Características da linguagem C ● Tipos de Operadores: 4. Operadores lógicos: operador lógico, refere-se

Características da linguagem C ● Tipos de Operadores: 4. Operadores lógicos: operador lógico, refere-se às maneiras que relações podem ser conectadas.

Características da linguagem C ● PALAVRAS RESERVADAS DA LINGUAGEM C: A linguagem C possui

Características da linguagem C ● PALAVRAS RESERVADAS DA LINGUAGEM C: A linguagem C possui um total de 32 palavras conforme definido pelo padrão ANSI:

Características da linguagem C Estruturas de controle: • Estruturas do controle são utilizadas para

Características da linguagem C Estruturas de controle: • Estruturas do controle são utilizadas para especificar a ordem em que as instruções devem ser executadas. • Tipos de estruturas de controle: 1. estrutura de seqüência, 2. estrutura de seleção, 3. estrutura de repetição. • A linguagem C tem apenas 7 estruturas de controle.

Características da linguagem C Estruturas de seleção: • permitem escolher blocos de instruções diferentes

Características da linguagem C Estruturas de seleção: • permitem escolher blocos de instruções diferentes (caminhos diferentes durante a execução). • a linguagem C fornece três tipos de estruturas de seleção: 1. estrutura de seleção simples; 2. estrutura de seleção dupla; 3. estrutura de seleção múltipla.

Características da linguagem C Estruturas de seleção simples: 1. Estrutura de seleção simples if,

Características da linguagem C Estruturas de seleção simples: 1. Estrutura de seleção simples if, seleciona ou ignora um bloco de instruções. • sintaxe: if(condição) {Instruções} Exemplo: if (nota >= 60) printf(“Aprovadon”);

Características da linguagem C Estruturas de seleção dupla: 2. Estrutura de seleção dupla ifelse,

Características da linguagem C Estruturas de seleção dupla: 2. Estrutura de seleção dupla ifelse, seleciona entre dois blocos de instruções diferentes. • sintaxe: if(condição) {Instruções} else {Instruções} Exemplo: if (nota >= 60) printf(“Aprovadon”); else printf(“Reprovadon”);

Características da linguagem C Estruturas de seleção múltipla: Sintaxe: switch(expressão){ case constante 1: seqüência

Características da linguagem C Estruturas de seleção múltipla: Sintaxe: switch(expressão){ case constante 1: seqüência de comandos break; case constante 2: seqüência de comandos break; case constante 3: seqüência de comandos break; . . . default: seqüência de comandos }

Características da linguagem C Estruturas de repetição: • permitem realizar uma instrução ou um

Características da linguagem C Estruturas de repetição: • permitem realizar uma instrução ou um bloco de instruções várias vezes. • A linguagem C fornece três tipos de estruturas de repetição: 1. estrutura while, 2. estrutura dowhile, 3. estrutura for.

Características da linguagem C Estruturas de repetição: while: • permite ao programador especificar que

Características da linguagem C Estruturas de repetição: while: • permite ao programador especificar que uma ação deve ser repetida enquanto uma determinada condição for verdadeira. • sintaxe: while (condição){ bloco de instruções } Exemplo: prod = 2; while (prod <= 500){ prod = prod * 2; }

Características da linguagem C Estruturas de repetição: for: • Sintaxe: for (expressão 1; expressão

Características da linguagem C Estruturas de repetição: for: • Sintaxe: for (expressão 1; expressão 2; expressão 3){ bloco de instruções; } • expressão 1 = inicialização • expressão 2 = condição • expressão 3 = incremento

Características da linguagem C Estruturas de repetição: do/while: No do/while a condição de continuidade

Características da linguagem C Estruturas de repetição: do/while: No do/while a condição de continuidade do laço é testada depois do corpo do laço ser executado. • O laço do/while é executado pelo menos uma vez. • Sintaxe: do{ instrução }while(condição)

Características da linguagem C Comandos de desvios • A linguagem C tem quatro comandos

Características da linguagem C Comandos de desvios • A linguagem C tem quatro comandos que realizam desvio incondicional: return: usado para retornar o valor de função, break: usado para forçar a terminação imediata de um laço, continue: utilizado para forçar a próxima iteração de um laço; e Exit: provoca a terminação imediata do programa.

Características da linguagem C COMPLEMENTO: C da suporte a: ● Uso de números aleatórios

Características da linguagem C COMPLEMENTO: C da suporte a: ● Uso de números aleatórios através da função rand(); ● Alocação dinâmica de memória e manipulação de ponteiros; ● Estrutura de dados: Lista, pilha, fila, arvore, matriz e vetores.

Características da linguagem C COMPLEMENTO: C NÃO da suporte a: ● A diferença da

Características da linguagem C COMPLEMENTO: C NÃO da suporte a: ● A diferença da maioria das linguagens de programação, a linguagem C não fornece um tipo string como tipo de dado básico. Limitação? • Para manipular strings a linguagem C utiliza vetores de tipo caractere. ● Boolean: C não da suporte ao tipo de dado booleano

Características da linguagem C Aplicações Escritas em C: • Sistema Operacional: UNIX (Sistema Operacional

Características da linguagem C Aplicações Escritas em C: • Sistema Operacional: UNIX (Sistema Operacional executável em micro computadores e em mainframes). • Montadores: Clipper (O utilitário de banco de dados mais usado no Brasil). • Planilhas: 1, 2, 3 e Excel (A planilha eletrônica com maior volume de vendas mundial).

Características da linguagem C Aplicações Escritas em C: • Banco de Dados: d. Base

Características da linguagem C Aplicações Escritas em C: • Banco de Dados: d. Base III, IV e Access (o gerenciador de base de dados mais utilizado no mundo); • Info. Star: O Editor de Texto mais utilizado nos USA no Sistema Operacional UNIX; • Utilitários: Form. Tool (Editor de formulário mais vendido no mundo); • Aplicações Gráficas: Efeitos Especiais de filmes com Star Trek e Star War; • Linguagens como o Power Builder e o Visual Basic, respectivamente as linguagens mais utilizadas nos EUA e no Brasil.

Características da linguagem C A Linguagem C Comparada à Outras Linguagens

Características da linguagem C A Linguagem C Comparada à Outras Linguagens

62

62

Características da linguagem de Programação Java. A Linguagem Java: • Concisa e simples Não

Características da linguagem de Programação Java. A Linguagem Java: • Concisa e simples Não contém redundâncias e é fácil de entender, implementar e usar. Parecida com C++ para facilitar compreensão por grande parte de programadores. É uma evolução de C++: não suporta aritmética de ponteiros, registros, etc. • Orientada a objetos Suporta os principais conceitos de orientação a objetos. Favorece extensibilidade e reusabilidade. • Robusta Fortemente tipada. Programas são confiáveis. Reduz imprevistos em tempo de execução: variáveis são automaticamente inicializadas, uso disciplinado de ponteiros, rotinas devem ser chamadas corretamente, etc.

Características da linguagem de Programação Java A Linguagem Java: • Portável Aplicações funcionam do

Características da linguagem de Programação Java A Linguagem Java: • Portável Aplicações funcionam do mesmo jeito em qualquer ambiente. Completamente especificada. Não contém aspectos dependentes da implementação: o tamanho dos tipos é fixo para qualquer implementação, etc. • Segura Restrições de acesso a arquivos (applets), manipulação de ponteiros, etc. Implica que não é útil para desenvolver certas aplicaçoes como `device drivers', etc • Concorrente Suporta aplicações concorrentes: multithreads e monitores.

Características da linguagem de Programação Java A Linguagem Java: • Independente de plataforma Código

Características da linguagem de Programação Java A Linguagem Java: • Independente de plataforma Código gerado pelo compilador funciona em qualquer ambiente. Geração de bytecode que pode ser interpretado para qualquer arquitetura e sistema operacional tendo o sistema Java. Facilita distribuição de software • Interpretada Facilita desenvolvimento exploratório. Perde em eficiência. • Compilada Utilizando compiladores, bytecodes podem ser traduzidos em tempo de execução para código de máquina.

Características da linguagem de Programação. A Linguagem Java: • Alto Desempenho Tipicamente, o custo

Características da linguagem de Programação. A Linguagem Java: • Alto Desempenho Tipicamente, o custo de tais características de portabilidade, segurança e robustez se manifestaria na redução de desempenho. Não seria razoável supor que códigos interpretados pudessem ser executados com velociade equivalente aos códigos nativos. Em Java utiliza alguns truques que reduzem de forma significativa a quantidade de processamento adicional: • Multithreading incorporado • Código de bytes eficientes • Compilação just-in-time • Habilidade de linkeditar em métodos nativos em C

Características da linguagem de Programação Java A Linguagem Java: • Dinâmica Java é uma

Características da linguagem de Programação Java A Linguagem Java: • Dinâmica Java é uma linguagem mais dinâmica que C ou C++. Ela foi projetada para se adaptar a um ambiente em evolução. As bibliotecas podem adicionar livremente novos métodos e variáveis de momento sem causar nenhum efeito em seus clientes. Na linguagem Java, obter informações em tempo de execução é imediato. Este é um recurso importante, por exemplo, nas situações em que algum código precisa ser adicionado a um programa que está sendo executado

Características da linguagem de Programação Java possui as seguintes características que contribuem para torná-la

Características da linguagem de Programação Java possui as seguintes características que contribuem para torná-la mais robusta e segura: • • • É fortemente tipada; Não possui aritmética de ponteiros; Possui mecanismo de coleta de lixo; Possui verificação rigorosa em tempo de compilação; Possui mecanismos para verificação em tempo de execução; Possui gerenciador de segurança. Segurança: Java possui mecanismos de segurança que podem no caso de applets, evitar qualquer operação no sistema de arquivos da máquina alvo, minimizando problemas. 68

Ambiente de Desenvolvimento Java possui um ambiente de desenvolvimento de software denominado Java SDK

Ambiente de Desenvolvimento Java possui um ambiente de desenvolvimento de software denominado Java SDK ( Software Development Kit – antigamente denominado JDK ). Não é um ambiente integrado de desenvolvimento, não oferecendo editores ou ambiente de programação. O Java SDK contém um amplo conjunto de APIs (Application Programing Interface). 69

Ambiente de Desenvolvimento Algumas ferramentas do Java SDK: • o compilador Java (javac) •

Ambiente de Desenvolvimento Algumas ferramentas do Java SDK: • o compilador Java (javac) • o interpretador de aplicações Java (java) • o interpretador de applets Java (appletsviewer ) • e ainda: • javadoc (um gerador de documentação para programas Java) • jar (o manipulador de arquivos comprimidos no formato Java Archive) • jdb (um depurador de programas Java), entre outras ferramentas. 70

Packages Os arquivos Java serão armazenados fisicamente em uma pasta. No nosso exemplo ao

Packages Os arquivos Java serão armazenados fisicamente em uma pasta. No nosso exemplo ao lado estes arquivos estão no diretório Geometria. Com o uso de packages podemos organizar de forma física algo lógico (um grupo de classes em comum); 71

Packages • Para indicar que as definições de um arquivo fonte Java fazem parte

Packages • Para indicar que as definições de um arquivo fonte Java fazem parte de um determinado pacote, a primeira linha de código deve ser a declaração de pacote: package nome_do_pacote; • Caso tal declaração não esteja presente, as classes farão parte do “pacote default”, que está mapeado para o diretório corrente. 72

Tipos Primitivos • Podem ser agrupados em quatro categorias: – Tipos Inteiros: Byte, Inteiro

Tipos Primitivos • Podem ser agrupados em quatro categorias: – Tipos Inteiros: Byte, Inteiro Curto, Inteiro e Inteiro Longo. – Tipos Ponto Flutuante: Ponto Flutuante Simples, Ponto Flutuante Duplo. – Tipo Caractere: Caractere. – Tipo Lógico: Booleano. 73

Tipos Primitivos - Inteiros Tipos de Dados Inteiros Faixas Byte -128 a +127 Short

Tipos Primitivos - Inteiros Tipos de Dados Inteiros Faixas Byte -128 a +127 Short -32. 768 a +32. 767 Int -2. 147. 483. 648 a +2. 147. 483. 647 -9. 223. 372. 036. 854. 775. 808 a +9. 223. 372. 036. 854. 775. 807 Long 74

Tipos Primitivos – Ponto Flutuante Tipos de Dados em Ponto Flutuante Float Double •

Tipos Primitivos – Ponto Flutuante Tipos de Dados em Ponto Flutuante Float Double • Faixas 1. 40282347 x 10 -45 a 3. 40282347 x 10+38 4. 94065645841246544 x 10 -324 a 1. 79769313486231570 x 10+308 Exemplos: – 1. 44 E 6 é equivalente a 1. 44 x 106 = 1. 440. 000. – 3. 4254 e-2 representa 3. 4254 x 10 -2 =0. 034254. 75

Tipos Primitivos - Caractere • O tipo char permite a representação de caracteres individuais.

Tipos Primitivos - Caractere • O tipo char permite a representação de caracteres individuais. • Ocupa 16 bits interno permitindo até 32. 768 caracteres diferentes. • Caracteres de controle e outros caracteres cujo uso é reservado pela linguagem devem ser usados precedidos por < >. 76

Tipos Primitivos - Booleano • É representado pelo tipo lógico boolean. • Assume os

Tipos Primitivos - Booleano • É representado pelo tipo lógico boolean. • Assume os valores false (falso) ou true (verdadeiro). • O valor default é false. • Ocupa 1 bit. • Diferente da linguagem C. 77

Tipos Primitivos - Booleano • É representado pelo tipo lógico boolean. • Assume os

Tipos Primitivos - Booleano • É representado pelo tipo lógico boolean. • Assume os valores false (falso) ou true (verdadeiro). • O valor default é false. • Ocupa 1 bit. • Diferente da linguagem C. 78

Palavras reservadas • Além dessas existem outras que embora reservadas não são usadas pela

Palavras reservadas • Além dessas existem outras que embora reservadas não são usadas pela linguagem 79

Declaração de Variáveis • Uma variável não pode utilizar como nome uma palavra reservada

Declaração de Variáveis • Uma variável não pode utilizar como nome uma palavra reservada da linguagem. • Sintaxe: – Tipo nome 1 [, nome 2 [, nome 3 [. . . , nome. N]]]; • Exemplos: – int i; – float total, preco; – byte mascara; – double valormedio; 80

Declaração de Variáveis • Embora não seja de uso obrigatório, existe a convenção padrão

Declaração de Variáveis • Embora não seja de uso obrigatório, existe a convenção padrão para atribuir nomes em Java, como: – Nomes de classes são iniciados por letras maiúsculas; – Nomes de métodos, atributos e variáveis são iniciados por letras minúsculas; – Em nomes compostos, cada palavra do nome é iniciada por letra maiúscula, as palavras não separadas por nenhum símbolo. • Documento: Code Conventions Programming. Language. for the Java. TM 81

Comentários • Exemplos: // comentário de uma linha /* comentário de múltiplas linhas */

Comentários • Exemplos: // comentário de uma linha /* comentário de múltiplas linhas */ /** comentário de documentação * que também pode * possuir múltiplas linhas */ 82

Operadores Aritméticos 83

Operadores Aritméticos 83

Operadores Relacionais 84

Operadores Relacionais 84

Operadores Lógicos 85

Operadores Lógicos 85

Programa Java • Todos os programas em Java possuem quatro elementos básicos: Pacotes import

Programa Java • Todos os programas em Java possuem quatro elementos básicos: Pacotes import java. util Classes public class Hello. Java. Class { public final static void main(String args[]) { System. out. println(“Hello, Java”); Date d = new Date(); System. out. printiln(“Date: “+d. to. String()); } } Variáveis Métodos 86

Estruturas de Controle de Erro • Diretivas Try e Catch: try { Fluxo normal

Estruturas de Controle de Erro • Diretivas Try e Catch: try { Fluxo normal do sistema } catch(Exceção 1) { Diretiva do tratamento do erro 1 } catch(Exceção 2) { Diretiva do tratamento do erro 2 } 87

Arrays • O propósito de um array é permitir o armazenamento e manipulação de

Arrays • O propósito de um array é permitir o armazenamento e manipulação de uma grande quantidade de dados de mesmo tipo • Exemplos de dados armazenados através de arrays: • Notas de alunos • Nucleotídeos em uma cadeia de DNA • Frequencia de um sinal de audio 88

Arrays unidimensionais • Os elementos de um array são identificados através de índices •

Arrays unidimensionais • Os elementos de um array são identificados através de índices • Arrays cujos elementos são indicados por um único índice são denominados arrays unidimensionais 89

Arrays unidimensionais • Um elemento em uma posição indicada por um índice i, em

Arrays unidimensionais • Um elemento em uma posição indicada por um índice i, em um array A, é acessado através do indentificador do array seguido do índice i (entre chaves ou parênteses, dependendo da linguagem) a(n-1) Um array com n elementos a(n-2) a(4) a(2) a(1) a(0) 90

Polimorfismo em Java • O mecanismo de herança permite a criação de classes a

Polimorfismo em Java • O mecanismo de herança permite a criação de classes a partir de outras já existentes com relações “é um tipo de” , de forma que a partir de uma classe genérica, classes mais especializadas possam ser criadas 91

92

92

Sobre a linguagem Python • Criada por Guido van Rossum no final de 1989,

Sobre a linguagem Python • Criada por Guido van Rossum no final de 1989, no Instituto Nacional de Matemática e Ciência da Computação da Holanda (CWI); • OBJETIVO: Tinha como principal foco auxiliar físicos e engenheiros; • Linguagem de programação livre, com desenvolvimento comunitário;

Sobre a linguagem Python • É uma linguagem interpretada (como Perl, Shell script, etc)

Sobre a linguagem Python • É uma linguagem interpretada (como Perl, Shell script, etc) – Não é necessário compilar o programa; • Os arquivos fonte podem ser executados diretamente pelo interpretador, que os converte em byte codes (que são multiplataforma); • O Python pode ser executado diretamente no terminal: python (executa o python no modo interativo) python teste. py (executa o programa teste. py) • É ideal para ser usado como linguagem de scripts, automatizando tarefas; • É uma linguagem de aprendizado fácil, com sintaxe clara e concisa.

Sobre a linguagem Python • Estrutura simples (não é necessário digitar ponto-e-vírgula ao final

Sobre a linguagem Python • Estrutura simples (não é necessário digitar ponto-e-vírgula ao final de cada linha de instruções – caso seja preciso continuar na linha seguinte pode-se fazer uso da barra invertida); • Também não é necessário abrir e fechar blocos de código com chaves, como o C e o java, por exemplo; • A identificação de blocos é feita através de identação, Ex: (1) while x<100: (2) s=s+x (3) x=x+1 #acaba o bloco de codigo (4) print s

Sobre a linguagem • É uma linguagem orientada a objetos: Tudo em python é

Sobre a linguagem • É uma linguagem orientada a objetos: Tudo em python é objeto, até mesmo os inteiros. Desta forma, até os tipos mais básicos possuem métodos específicos; • Oferece ferramentas para: - Programação funcional; - Processamento de imagens; - Interface gráfica; - Processamento distribuído; - Integração com C , C# e outros programas como linguagem de script. • Blender: O Python permite acessar todas as estruturas do Blender (operações 3 D, manipulação de materiais, texturas e ambientes de cenas);

Sintaxe de Definição de uma Classe A forma mais simples de definição de uma

Sintaxe de Definição de uma Classe A forma mais simples de definição de uma classe pode ser descrita dessa maneira: >>> class Nome. Da. Classe: <comando-1>. . . <comando-N>

Operadores Lógicos and - retorna verdadeiro caso todas as entradas forem verdadeiro; or -

Operadores Lógicos and - retorna verdadeiro caso todas as entradas forem verdadeiro; or - retorna verdadeiro caso uma das entradas for verdadeiro; not - se a entrada for verdadeira passará a ser falsa e vice-versa; is - retorna verdadeiro caso receba duas referências ao mesmo objeto (útil para comparar strings); in - retorna verdadeiro caso receba uma entrada que é encontrada uma ou mais vezes em uma lista.

Tipos de Dados • inteiro (int): >>>a=10 • inteiro longo (long): >>>a=9999999 • ponto

Tipos de Dados • inteiro (int): >>>a=10 • inteiro longo (long): >>>a=9999999 • ponto flutuante (float): >>>a=1. 294 (ou ainda 12. 94 e-1) • complexo (complex): >>>a=1+2 j

Tipos de Dados • Strings(cadeias de caracteres) são constantes; • A indexação de seus

Tipos de Dados • Strings(cadeias de caracteres) são constantes; • A indexação de seus caracteres é feita através de colchetes. Entretanto os caracteres da String não podem ser modificados; Exemplos: >>> st='UERJ' >>> print st[0] U >>> print st[-4] U >>> print st[-len(st)] U • Todos os exemplos acima retornam o primeiro caractere da string st.

Tipos de Dados • Mais exemplos: >>> st='Departamento de Sistemas e Computacao' >>> print

Tipos de Dados • Mais exemplos: >>> st='Departamento de Sistemas e Computacao' >>> print st[: 15] Departamento de >>> print st[27: ] Computacao >>> print st[: 15], st[27: ] Departamento de Computacao >>> print st[15: 27] Sistemas e

Outros tipos de Dados • Listas, Tuplas, Dicionário, Booleano.

Outros tipos de Dados • Listas, Tuplas, Dicionário, Booleano.

Estrutura de Seleção if • A construção if é utilizada para controle condicional e

Estrutura de Seleção if • A construção if é utilizada para controle condicional e tem a seguinte sintaxe: if <condição>: <expressão 1> elif <condição 2>: <expressão 2> else: <expressão 3>

Estrutura de controle • for: Utilizado para percorrer listas , sequencias e processar iteradores.

Estrutura de controle • for: Utilizado para percorrer listas , sequencias e processar iteradores. • Sintaxe: for <referência> in <sequencia>: <bolco de expressões> continue break else: <bolco de expressões>

Estrutura de controle • while: É utilizada para realizar iterações condicionais, onde não se

Estrutura de controle • while: É utilizada para realizar iterações condicionais, onde não se sabe o momento em que as iterações terminam. • Sintaxe: while<condição>: <bloco de expressões> continue break else: <bloco de expressões>

Encapsulamento de dados A proteção dos atributos ou métodos de uma classe em Python

Encapsulamento de dados A proteção dos atributos ou métodos de uma classe em Python existem somente de duas formas: O public e o private e eles são definidos no próprio nome do atributo ou método. Atributos ou métodos iniciados por no máximo dois sublinhados e terminados por um sublinhado são privados e todas as outras formas são públicas.

Exemplo de Encapsulamento >>> class A: . . . a = 1 # atributo

Exemplo de Encapsulamento >>> class A: . . . a = 1 # atributo público. . . __b = 2 # atributo privado a classe A >>> class B(A): . . . __c = 3 # atributo privado a B. . . def __init__(self): . . . print self. a. . . print self. __c >>> a = A() >>> print a. a # imprime 1 1 #saída >>> b = B() >>> print b. __b # Erro, pois __b é privado a classe A. >>> print b. __c # Erro, __c é um atributo privado, somente chamado pela classe. >>> print b. _B__c # Imprime __c = 3, muito pouco utilizada, mas existe.

Polimorfismo O polimorfismo da suporte a herança simples e múltipla. O polimorfismo em Python

Polimorfismo O polimorfismo da suporte a herança simples e múltipla. O polimorfismo em Python é muito similar ao polimorfismo em Java, ou seja, eu posso implementar métodos em uma hierarquia de classes. Exemplos:

Polimorfismo

Polimorfismo

Vantagens da utilização da Linguagem · Qualidade do código: A sintaxe do Python facilita

Vantagens da utilização da Linguagem · Qualidade do código: A sintaxe do Python facilita e encoraja a legibilidade do código, o que o torna mais fácil de manter e reutilizar; · Produtividade: é mais rápido desenvolver um mesmo código em Python do que em outras linguagens como o C, C++ ou Java; · Código compacto: requer menos linhas, e não necessita da declaração prévia do tipo das variáveis. Além disso, não requer um ciclo de compilação, podendo o programa ser executado imediatamente; · Portabilidade: muitos programas Python correm sem qualquer alteração em várias plataformas como o Linux e o Windows; · Possui uma vasta biblioteca padrão. . É uma das linguagens mais usadas por grandes empresas da área de TI. • Modularização: reutilização de código.

111

111

Referências • SEBESTA, W. S. , Conceitos de Linguagens de Programação. Porto Alegre: Editora

Referências • SEBESTA, W. S. , Conceitos de Linguagens de Programação. Porto Alegre: Editora Bookman, 2000. 623 p. • SANTOS, R. , Introdução a Programação orientada a Objetos usando Java. Disponível em: www. bioinfo. univap. br/~POO. Acesso em 15 dez 2010. • MARQUES, M. Linguagens de Programação. 2009. • FERNANDES, J. H. C. , Polimorfismo em Java. Recife 1999.