Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linguagens de Programao
Linguagens de Programao Contedo Programtico: Tpico Geral Contedo Conceitos Bsicos de Linguagens de programao de alto e baixo nvel; Linguagem de Programao Linguagens de programao compilada e interpretada; e Interpretadores e Compiladores. Introduo Linguagem Histrico; e C++ Caractersticas. Tipos Bsicos de dados em Definies de tipos de dados numricos, lgicos e C++ caracteres. Identificadores Definio de nomes de variveis e constantes; e Declarao de variveis e constantes em Linguagem C++. Operadores lgicos, Definio de operadores em Linguagem C++; e aritmticos e de atribuio Uso prtico dos operadores lgicos, aritmticos, de atribuio, aritmticos de atribuio e unrio. Estrutura bsica de Programa principal; programas em Linguagem Comentrios; C++ Instrues do pr-processador; e Arquivos de cabealho. Cdigos especiais Definio das funes dos cdigos especiais da Linguagem C++. Entrada e sada padro C++ Comandos de Entrada/Sada padro da Linguagem C++. Estruturas condicionais comandos if, if/else e switch; e Comandos de controle de Estruturas de repetio comandos: for, while e do fluxo de execuo while. Funes Definio de funes em Linguagem C++; Prottipo da funo; Passagem de parmetros para funo; Valores de retorno das funes; e Funes Recursivas. Vetores e matrizes em Definio e uso prtico de Vetores e Matrizes. linguagem C++ Arquivos Definio de arquivos; e Comandos de manipulao de arquivos. Alocao dinmica em Definio e manipulao de Ponteiros. Linguagem C++ Programao Orientada a Definio do paradigma da orientao a objetos; Objetos Conceitos de classes, objetos, instancia, polimorfismo, herana, composio, generalizao, especializao, mtodos e atributos; e Introduo a UML Diagramas de classes. Introduo a Linguagem Histrico; Java Tipos bsicos de dados em linguagem Java; e Comparao das caractersticas das Linguagens C++ e Java.
Linguagens de Programao Programao em Linguagem Java Ambiente de programao; Compilador e mquina virtual Java; e Desenvolvimento de programas em Linguagem Java, baseados nos conceitos de orientao a objetos. Desenvolvimento de aplicativos para Internet; Definio dos mtodos bsicos para o desenvolvimento de um aplicativo Applet; e Comandos da Linguagem HTML para execuo de Applets.
Linguagens de Programao
Bibliografia
Bibliografia Bsica: MIZRAHI, Victorine Viviane. Treinamento em Linguagem C++. So Paulo: Makron Books, 1995. DEITEL, H. M., DEITEL, P.J. JAVA Como Programar. Porto Alegre: Bookman, 2001. DEITEL, H. M., DEITEL, P.J. C++ Como Programar. Porto Alegre: Bookman, 2001. Traduo por: Carlos Arthur Lang Lisba e Maria Lcia Lang Lisba. HORSTMANN , C. S. Core Java 2. So Paulo: Makron Books, 2000 Bibliografia Complementar: FURGERI, Srgio. Java 2: Ensino Didtico: Desenvolvendo e Implementando Aplicaes. So Paulo: rica, 2002. DAMASCENO JNIOR, Amrico. Aprendendo Java: Programao na Internet. 3 ed. So Paulo: rica, 1996. TITTEL,ED. Internet World 60 Minutos Para Aprender Java . So Paulo: Berkeley Brasil Editora Ltda, 1997. GOODWILl, James. Developing Java Servlets. Indiana: Sams Publishing, 1999. HOLZNER, Steven. Borland C++ Programao for Windows. So Paulo:Makron Books, 1995. FURLAN , Jos Davi. Modelagem de objetos atravs da UML . So Paulo: Makron Books, 1998. NAUGHTON, Patrick. Dominando o Java. So Paulo:Makron Books, 1996. BARKAKATI, Nabajyoti. Visual C++ developers guide. USA: Sams Publishing, 1993. SILVA, Jos Carlos G. da, ASSIS, Fidelis S. G. de. Linguagens de Programao: Conceitos e Avaliaes. So Paulo:McGraw-Hill, 1998. BARKAKATI, Nabajyoti. Visual C++ Guia de Desenvolvimento Avanado. Rio de Janeiro:Berkeley, 1994. Traduo por: Lus Gustavo Neves da Silva. YAO, Paul. Borland C++ 4.0: Programao for Windows. So Paulo: Makron Books, 1995. JAMSA, Kris. Sucesso com C++. So Paulo: rica, 1995. DEITEL, H. M., DEITEL, P.J. C++ How to program. New Jersey: Prentice-Hall, 1998. HOFF, Arthur Van. Ligando em Java. So Paulo:Makron Books, 1996. LALANI, Suleiman Sam. Java:Biblioteca do programador. So Paulo: Makron Books, 1997. Newman, Alexander. Usando Java. Traduo de: Using Java. Rio de Janeiro: Campus, 1997. LINDEN, Peter van der. Just Java. Traduzido por: Betina de Oliveira. So Paulo: Makron Books, 1997. LEMAY,Laura. Aprenda Em 21 Dias Java : Editora Campus Ltda, 1999. CORNELL. Core Java 2, 1. Editora: Makron Books Do Brasil, 2000. 4
Professora: Vera Lcia da Silva
Linguagens de Programao
Lista de Exerccios
1-) Faa o algoritmo e o fluxograma para resolver os seguintes problemas: a) Somar os nmeros pares de 0 a 100 e imprimir o resultado na tela. b) Dada a entrada de 3 nmeros imprimir o maior na tela. c) Imprimir os nmero de 0 a 200 na tela. 2-) Trs crianas moram na mesma rua. Observando as pistas abaixo, identifique o nome completo e a idade de cada uma. A menina de sobrenome Bento tem trs anos a mais que Maria A criana cujo sobrenome Silva tem 9 anos Bento Ana Joo Maria 7 9 10 3-) Dado um arquivo contendo os nmeros (N) : 1,5,10,100,15,101,20 respectivamente, dizer qual o valor de A e B no final do fluxograma abaixo. Inicio B=0 A=0 Ler N S A,B Castro Silva 7 9 10
Fim
N B=B+N
Linguagens de Programao
Linguagens de Programao sintaticamente vlido. O que pode ocorrer que um programa seja sintaticamente vlido sem, no entanto, ter um significado lgico coerente. parte do domnio da semntica verificar esta coerncia em termos de significado lingstico e no em termos de lgica de programa.
Determinar Realizar
a ao.
Nas linguagens compiladas um programa executado somente quando toda a traduo foi completada. A compilao de um programa fonte (texto escrito diretamente na linguagem de alto ou mdio nvel) prev que o mesmo seja traduzido para a linguagem da mquina correspondente antes da execuo. Esta traduo geralmente
Linguagens de Programao feita em diversas etapas: ETAPAS CRIA O [1a. etapa] depurao sinttica programa fonte [2a. etapa] gerao de cdigo de mquina relocvel programa objeto [3a. etapa] linkage - liga cdigos e funes de biblioteca programa executvel Programa Fonte: Declaraes escritas em uma linguagem de programao. Programa Objeto: Programa objeto ou cdigo objeto a representao de seu programa fonte em cdigo de mquina, quando o mesmo submetido a um compilador. Erros:
compilao, em tempo de linkagem (ligao), e mesmo, depurados todos os erros dessas etapas, podem ocorrer erros em tempo de execuo.
execuo. Exemplos:
Linguagem Linguagem
1.3.1. Compiladores Um compilador l uma instruo do programa, checa sua sintaxe, traduz para a linguagem de mquina, passa para a prxima instruo at atingir a ltima instruo do programa. Ao final deste processo o compilador constri um arquivo de cdigo objeto (.OBJ), porm para ser executado o cdigo gerado deve ser submetido a um linkeditor. A linkedio consiste em agregar ao programa .OBJ bibliotecas existentes na linguagem de programao utilizada e rotinas em linguagens de mquina que lhe permitiro sua execuo, resultando um programa com extenso .EXE, que pode ser executado diretamente.
Linguagens de Programao 1.3.2. Interpretadores Um interpretador l uma instruo do programa, em seguida verifica a consistncia de sua sintaxe, converte-a para linguagem de mquina e a executa. Esse processo repetido para todas as outras instrues do programa at a ltima instruo ser executada ou a consistncia apontar algum erro. Caso exista uma rotina dentro do programa que necessite ser executada 100 vezes, o processo de traduo e checagem de sintaxe ser executado 100 vezes para a mesma linha da rotina.
Aumento da velocidade de execuo do Facilidade de desenvolvimento de um programa Independncia do Interpretador Proteo do cdigo fonte programas .EXE no podem ser alterados programa na fase de aprendizagem Fcil depurao de erros
Bibliografia:
LEITE, Aury de S. Introduo Linguagem de Programao C++. Notas de aulas. No publicado, 1999.
MIZRAHI, Victorine Viviane. Treinamento em Linguagem C++. So Paulo: Makron Books, 1995.
SILVA, Jos Carlos G. da, ASSIS, Fidelis S. G. de. Linguagens de Programao: Conceitos e Avaliaes. So Paulo:McGraw-Hill, 1998.
Linguagens de Programao
LINGUAGEM C/C++
1. Introduo a Linguagem C/C++
1.1. Histrico
A linguagem C foi desenvolvida por Dennis Ritchie, pesquisador dos Laboratrios Bell, no ano de 1972. Foi inicialmente criada para ser um "ASSEMBLY porttil". Rodava num computador PDP-11, usando o sistema operacional UNIX. Posteriormente foi utilizada para reescrever o UNIX. Somente em 1978 Brian W. Kernighan e Dennis Ritchie estabeleceram a sintaxe e a semntica da linguagem C. O desenvolvimento de C foi fortemente influenciado pela linguagem B, desenvolvida por Ken Thompson, que por sua vez, teve suas origens na linguagem BCPL, desenvolvida por Martins Richards. Tais linguagens surgiram da evoluo da linguagem Algol CPL, na tentativa de aproximar esta linguagem do hardware. Com a sada do UNIX dos limites da Bell Laboratories em meados dos anos 70, a linguagem C se tornou mais popular e por volta de 1980 muitas verses de compiladores C apareceram, oferecidos por diversas empresas e compatveis inclusive com outros sistemas operacionais. Em maio de 1987 a Borland lanou o Turbo C, especialmente destinado aos IBM-PCs e compatveis que utilizavam como sistema operacional o PC-DOS ou equivalentes. Uma evoluo natural da linguagem C, o C++ (C plus-plus), foi criada por um outro pesquisador dos Laboratrios Bell, Bjarne Stroustrup, em 1983, tendo sido lanada no mercado em 1985 pela AT&T. O C++, um superconjunto da linguagem C, utiliza todas as bibliotecas do C, possuindo ainda, algumas bibliotecas suplementares muito diferentes; que visam permitir a Programao Orientada a Objetos (POO). O C++ possui, ainda, um compilador mais eficiente que o da linguagem C, eficincia esta que comprovada em termos de forte verificao dos tipos de dados envolvidos num programa, checagem de parmetros passados para uma funo, entre outras vantagens.
10
Linguagens de Programao Famlia da Linguagem C++: CPL (Combined Programming Language) BCPL (Basic CPL) B (Ken Thompson, Bell Labs, 1970) C (Dennis Ritchie, Bell Labs, 1972). C++ (Bjarne Stroustrup, Bell Labs, 1983)
Linguagens de Programao valores de variveis no corpo do programa principal no afetam as variveis de funes e vice-versa, a no ser que o programador assim o queira. Programa em Linguagem C/C++ tem aspecto modular e funcional; o prprio programa principal "main() " uma funo. O C/C++ permite chamadas recursivas de funes, isto , uma funo pode chamarse a si mesma repetidas vezes. O C/C++ permite a alocao da memria disponvel para armazenagem de dados em tempo de execuo do programa, a chamada alocao dinmica de memria (possvel atravs da utilizao de ponteiros = pointers). A Linguagem C/C++ permite que o programador acesse detalhes do hardware da mquina, no entanto prov recursos de alto nvel suficientes para que o programador implemente seus programas sem a necessidade de se preocupar com detalhes da mquina.
12
Linguagens de Programao As variveis em C/C++ podem ser dos seguintes tipos: Tipo void char Unsigned char short Unsigned short int Unsigned int Long int Unsigned long int float double Long double Definio no devolve nenhum valor, no ocupa memria variveis que contm os caracteres ASCII abrange os cdigos dos caracteres de -128 a 127 variveis que contm os caracteres ASCII abrange os cdigos caracteres de 0 a 255 valores numricos inteiros range: de -32768 a 32767 valores numricos inteiros no negativos range: de 0 a 65535 valores numricos inteiros range: de -32768 a 32767 valores numricos inteiros no negativos range: de 0 a 65535 valores numricos inteiros longos range: de 2147483648 a 2147483647 valores inteiros longos no negativos range: de 0 a 4294967265 nmeros reais em ponto flutuante range: de () 3.4E-38 a () 3.4E+38 valores numricos reais em ponto flutuante range: de () 1.7E-308 a () 1.7E+308. valores numricos reais em ponto flutuante range: de () 3.4E-4932 a () 1.1E+4932 Byte 0 1 1 2 2 2 2 4 4 4 8 10
Modificadores de tipos: Com exceo do tipo void, os tipos de dados bsicos da linguagem C/C++ podem ser acompanhados pelos modificadores: long, short e unsigned, como mostra a tabela acima. O modificador unsigned usado para considerar os tipos char, short, int e long s com valores positivo, aumentando um bit o tamanho do nmero a ser armazenado.
Linguagens de Programao
3.4. Operadores Lgicos and (e): && or (ou): || (no teclado elas aparecem como barras interrompidas) not (No): !
14
Linguagens de Programao 3.5. Operadores de Atribuio O smbolo " =" chamado comando de atribuio quando ligar duas variveis ou uma varivel a esquerda e um valor numrico direita, assim, "x = n" deve ser lido a varivel x recebe o valor n, ou o valor da varivel n. Operadores de Atribuio Aritmticos: +=, - =,*=,/=,%= Como regra geral, se x uma varivel, exp uma expresso e op um operador aritmtico, ento: x op= exp equivale a x = x op (exp)
d = d % 9 => d = 3
Se a expresso 1 for verdadeira, a expresso 2 avaliada e seu valor passa a ser o resultado, caso contrrio a expresso 3 avaliada e seu valor o resultado, por exemplo:
" x > y ? x = x-1 : x = x+ 1; " : que significa se x maior que y ento x decrementado de uma unidade, caso x seja menor ou igual a y, o x ser incrementado de uma unidade. Note que esta sentena poderia ser escrita como: "x>y ? x-- : x++; ".
15
Linguagens de Programao
Operadores
Aritmticos + adio - subtrao * multiplicao / diviso % mdulo Atribuio = Atribuio Incremento Relacionais Lgicos Aritmticos Decremento += ++ > && (e) -= ->= || (ou) *= < ! (no) /= <= %= == != Ternrio ?:
Associatividade Esquerda para Direita Direita para Esquerda Esquerda para Direita Esquerda para Direita Esquerda para Direita Esquerda para Direita Esquerda para Direita Esquerda para Direita Direita para Esquerda Direita para Esquerda
Tipo parntese unrio Aritmticos Aritmticos Relacional Relacional E lgico OU lgico condicional Atribuio
Linguagens de Programao
A comunicao entre as funes feita pela passagem de parmetros (por valor ou por referncia), por retorno de valores funcionais funo chamadora, ou atravs de variveis globais, que so visveis (tm validade) em todo o programa;
As funes podem ser definidas em qualquer ordem dentro de um programa fonte, sendo que o texto do programa fonte pode estar subdividido em vrios outros arquivos-fonte que podero ser compilados em separado e depois ligados (linkage);
Espaos em branco, tabulaes e mudanas de linha so ignorados pelo compilador. Portanto, torna-se possvel escrever vrias instrues em uma nica linha, inserir espaos em branco, tabulaes e pular linhas vontade. Porm existem algumas excees: o Cadeias de caracteres constantes como O primeiro programa no podem ser separadas em diversas linhas; o Nome de funes, operadores e comandos da linguagem no podem ser separados; o Diretivas do pr-processador como #include no podem ser escritas em vrias linhas;
17
Linguagens de Programao A funo main() (principal) nica para cada programa. Esta funo marca o ponto de partida e trmino de um programa e se este for constitudo de uma nica funo, esta ser a principal. A funo main() no precisa estar no incio do programa. 4.1. Um programa em C++ Um simples programa em C++. 1 2 3 4 5 6 } // Primeiro programa em C++ #include <iostream.h> void main() { cout << Primeiro programa;
18
Linguagens de Programao A linha 2 do programa apresenta uma diretiva do pr-processador C++. Pr-Processador C++ - O Pr-Processador C++ um programa que examina o programa-fonte em C++ e executa nele certas modificaes com base em instrues chamadas diretivas. Diretivas - Toda diretiva iniciada pelo smbolo # e seu texto deve ser escrito em uma nica linha. Caso ocorra a necessidade de quebra de linha, pode-se terminar a linha com a barra invertida \ e continuar em outra linha. Diretiva #include - Esta diretiva inclui no programa fonte o arquivo indicado antes do programa ser compilado. A linha 2 do programa solicita ao compilador incluir o arquivo iostream.h no programa fonte manipulado. A busca pelo programa indicado pode ocorrer de duas maneiras: Ao utilizar a diretiva #include com os smbolos <> (maior e menor) indica que a biblioteca ou arquivo especificado deve ser procurado no diretrio INCLUDE. Ao utilizar a diretiva #include com os smbolos (aspa duplas) indica que a biblioteca ou arquivo especificado deve ser procurado primeiramente no diretrio atual e depois, caso no seja encontrado, no diretrio INCLUDE. #include iostream.h. Arquivos de incluso ou arquivos de cabealho contm definies e declaraes necessrias para que o compilador reconhea vrios identificadores da linguagem C++. Geralmente possuem extenso .h (Header ou cabealho). O arquivo iostream.h contm declaraes necessrias ao uso dos objetos cout e cin e dos operadores de insero << e extrao >> e outras definies bsicas de entrada e sada padro. Exemplo:
A linha 3 apresenta a declarao da funo principal, main(); As linhas 4 e 6 apresentam os caracteres de incio e trmino de funo; A linha 5 apresenta uma instruo de impresso da frase entre aspas duplas na tela.
cout um objeto da classe de I/O predefinida em C++. Sua funo est associada sada padro. O operador <<, conecta a mensagem a ser impressa a cout.
19
Linguagens de Programao
5. Identificadores em C++
Para definir o nome de variveis em C++, faz-se necessrio seguir algumas regras bsicas para evitar confuses: 1. Letras maisculas e minsculas so diferentes. Considerando esta regra, os seguintes nomes de variveis so diferentes: PESO, Peso, peso, pESO, peSO, ... 2. A quantidade de caracteres significativos: somente os 32 primeiros caracteres que formam o nome da varivel so considerados. 3. Uma varivel em C++ no pode ter o mesmo nome que uma palavra-chave (palavra reservada da linguagem). A seguir temos uma tabela de palavras-chave em C++:
Palavra chave em C e C++ auto continue enum If short switch volatile break default extern int signed typedef while case do float long sizeof union char double for register static unsigned const else goto return struct void
Palavra chave somente em C++ Asm delete inline private template typied bool dynamic_cast mutable protected this typename catch explicit namespace public throw using class false new const_cast friend operator
4. O nome de uma varivel em C++ pode conter letras, nmeros e o caractere underscore _, sendo obrigatrio que o incio do nome de uma varivel contenha uma letra ou o caractere de sublinhado (underscore).
20
Linguagens de Programao
21
Linguagens de Programao
5.2. Constantes
Uma constante tem valor fixo e inaltervel. Nmeros constantes em C++ podem ser escritos nas seguintes bases: Representao Normal Com 0x frente Com 0 frente Exemplos 6766, 10, 34,... 0x72, 0xFFA, ... 07, 045, 034,...
Caracteres constantes so escritos entre aspas simples (). Exemplo: 5, a,Q,... Cadeia de caracteres constante reconhecida quando escrita entre aspas duplas (). Exemplo: Primeiro Programa
6. Cdigos Especiais
O pintf() (no C) ou o cout<< (no C++) pode conter dentro das aspas (" ") cdigos de escapes: Quando trabalhamos com a impresso de caracteres em tela ou impressora, alguns cdigos so necessrios em C++. Esses cdigos so representados pela barra invertida (\) acompanhada de outros caracteres indicadores. \b \f \n \r \t \" \' \0 \\ \v \a retrocesso form feed = alimentao de formulrio salta pgina de formulrio line feed (CR + LF) = mudana de linha retorno de carro, sem mudar de linha tabulao horizontal aspas duplas plic (ou aspas simples) - apstrofo zero, NULL, ou final de string imprime uma barra: \ tabulao vertical alerta (beep)
22
Linguagens de Programao Exemplo: // Este programa salta uma linha antes de imprimir #include <iostream.h> void main() { cout << \nPulando linha; }
7. Imprimindo dados usando o cout C++ fornece uma biblioteca de funes e classes conhecida como streams. Ela fornece os elementos necessrios para a execuo de operaes de leitura e impresso (I/O). O objeto cout est associado sada padro. O objeto cout utiliza o operador <<, denominado operador de insero, para conectar a mensagem a ser impressa. O objeto cout permite imprimir valores numricos em diferentes bases: dec A impresso do campo apresentada em decimal (modo default). hex A impresso do campo apresentada em hexadecimal. oct A impresso do campo apresentada em octal. Exemplo: // Este programa imprime o valor 65 em diferentes bases #include <iostream.h> void main() { int n=65; cout << \n << hexadecimal << hex << n; cout << \n << Octal << oct << n; cout << \n << Decimal << dec << n; } Para imprimir smbolos entre 128 a 255 (smbolos de lngua estrangeira e caracteres grficos), o objeto cout utiliza a representao \xdd, onde dd representa o cdigo do caractere na base hexadecimal.
Bibliografia:
MIZRAHI, Victorine Viviane. Treinamento em Linguagem C++. So Paulo: Makron Books, 1995. LEITE, Aury de S. Introduo Linguagem de Programao C++. Notas de aulas. No publicado, 1999. 23
Professora: Vera Lcia da Silva
Linguagens de Programao
} // jota.cpp #include <iostream.h> void main() { cout << "\n A letra " << 'j'; cout << " pronuncia-se " << "jota" << '.'; } Imprimindo caracteres Grficos
possvel imprimir qualquer caractere da tabela ASCII, inclusive cdigos de 128 a 255, que consistem em smbolos de lnguas estrangeiras e caracteres grficos. Para imprimir caracteres acima de 127 utilizada a notao \xdd, onde dd representa o cdigo do caractere na base hexadecimal. Veja os exemplos abaixo: // Carros.cpp #include <iostream.h> void main() { cout << "\n\n"; cout << "\n \xDC\xDC\xDB\xDB\xDB\xDB\xDC\xDC"; cout << "\n \xDFO\xDF\xDF\xDF\xDFO\xDF"; cout << "\n\n"; cout << "\n \xDC\xDC\xDB \xDB\xDB\xDB\xDB\xDB\xDB"; cout << "\n \xDFO\xDF\xDF\xDF\xDF\xDFOO\xDF"; cout << "\n\n"; } // Quadrado.cpp #include <iostream.h> void main() { cout << "\n\n\n\xC9\xCD\xBB\n\xBA\x20\xBA\n\xC8\xCD\xBC"; }
24