RESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006

Tamanho: px
Começar a partir da página:

Download "RESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006"

Transcrição

1 Universidade Federal do Rio Grande do Sul Instituto de Informática Bacharelado em Ciência da Computação Disciplina de Modelos de Linguagens de Programação Profa. Dra. Érika Cota RESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006 Carlos Eduardo Ramisch Flávio Brun Francieli Zanon Boito Márcio Rocha Zacarias Sandra Kniphoff Santos

2 1. Aspectos sobre o C++: TIPOS DA LINGUAGEM: C++ possui os seguintes tipos primitivos de linguagem: char - 8 ou mais bytes - Usado para armazenar caracteres ASCII ou números inteiros entre 0 e signed char - Equivalente a char, com alcance -127 a unsigned char - Equivalente a char, com alcance 0 a 255. short - 16 ou mais bytes - Usado para armazenar números inteiros entre e Os seguintes tipos são equivalentes a short: short int, signed short, signed short int. unsigned short - Equivalente a short, porém no caso do modificador unsigned, a cobertura vai de 0 a Equivalente a unsigned short int. int - 16 ou mais bytes - Representa geralmente o tamanho da palavra de máquina. Equivale a signed ou signed int. Armazena inteiros na faixa de a unsigned int - Armazena inteiros, como int, porém a cobertura é de 0 a long - 32 ou mais bytes, armazena inteiros entre e Possui os seguintes nomes equivalentes: long int, signed long, signed long int. unsigned long - O modificador unsigned muda a cobertura do long para o intervalo de 0 a bool - Tamanho depende da implementação, pode armazenar os valores true (verdadeiro) e false (falso). Representa uma escolha booleana (este tipo é uma extensão do C, e não um tipo legado. Isto significa que a linguagem C não possui o tipo primitivo bool.) wchar_t - Tamanho depende da implementação, pode armazenar caracteres grandes (que ocupam mais de um byte, ou seja, não ASCII). Não se recomenda operações inteiras com esse tipo. float - 8 bytes ou mais. Usado para representar números reais com poucos bytes. Não é

3 necessariamente implementado como precisão simples da IEEE. Não pode ser modificado pela palavra unsigned. double - É geralmente maior que um float, é o tipo de ponto flutuante mais freqüentemente usado. Também não pode ser unsigned. long double - Como double, porém geralmente maior. Os tipos estruturados disponíveis para o programador C++ são os seguintes: struct - É equivalente a um registro com tipos heterogêneos. O tamanho de uma struct é maior ou igual à soma dos tamanhos de seus membros. Recomenda-se usar classes ao invés de registros quando o tipo declarado tiver muitos membros. class - Tipo usado para implementar orientação a objetos, é semelhante a uma struct porém possui métodos (funções membro) de acesso aos dados (nas struct apenas é possível declarar ponteiros para funções mas nenhuma proteção é garantida). Numa classe, os dados podem ser protegidos. union - Tipo que pode guardar objetos de tipos diferentes em uma mesma variável. Dessa forma, durante a execução, não é possível verificar o tipo de uma union, o que acaba enfraquecendo o sistema de tipos da linguagem. Structs, classes e unions são ditos tipos agregados. enum - Enum é um tipo especial, implementado como inteiro, que representa uma enumeração de valores com uma ordem implícita. São úteis para aumentar a abstração e legibilidade do código. typedef - Palavra-chave para definir um sinônimo para um tipo. template - Tipo que permite a implementação de polimorfismo paramétrico. Um template permite que se construa estruturas de dados independentes do tipo contido. ponteiro (*) - Um ponteiro nada mais é que um apontador para uma área de memória. Quando se define o ponteiro, deve-se também definir o tipo da área apontada por ele. A área de memória pode ser tanto uma variável quanto uma função. referência (&) - Uma referência é implementada como um ponteiro, porém não exige derreferenciação. Com uma referência, é mais difícil de se criar ponteiros oscilantes e ponteiros inválidos. array ([n]) - Um array é um vetor com n elementos do mesmo tipo. Para se inicializar um array, coloca-se o tipo do elemento seguido de colchetes, e entre os colchetes o número inteiro que representa o tamanho do mesmo. Arrays em C++ têm o índice inicial 0. Arrays e ponteiros só são compatíveis em situações especiais.

4 função (id(param)) - Uma função pode ser definida como um tipo porque pode ser apontada e armazenada em uma variável. Funções serão discutidas mais adiante. ponteiro para membro (::*) - Um ponteiro para um membro é exatamente um apontador para um membro de um tipo agregado. Sobre esses tipos, podem ser usadas diversas operações, que são descritas abaixo através de uma listagem de operadores. As operaçõs estão listadas em ordem decrescente de precedência: :: - Operação de resolução de escopo. Permitida apenas para tipos agregados. Não é associativa. ++ e -- - Operação que incrementa ou decrementa variável depois que ela foi avaliada. Todas as variáveis de tipo primitivo. () - Chamada de função com parâmetros. Somente para funções. [] - Acesso ao índice de uma array. Somente para arrays.. - Seleção de membro de tipo agregado. Somente para tipos agregados. -> Seleção de membro de apontador para tipo agregado, derreferenciando o apontador de tipo agregado antes de acessar o membro. Somente para ponteiros para tipos agregados. ++ e -- - Operação que incrementa ou decrementa variável antes de ela ser avaliada. Todas as variáveis de tipo primitivo. + e - Mais e menos unários. Indicam o sinal de uma variável de tipo básico.! e ~ - Negação lógica e bit-a-bit, respectivamente. Somente tipos primitivos. (tipo) - Conversão explícita de tipo (Cast). Pode ser usada para qualquer tipo. * - Derreferenciação de conteúdo de ponteiro. Aplica-se a ponteiros. & - Referenciação de uma variável. Aplica-se a todos os tipos. sizeof - Retorna o número de bytes ocupados por uma variável. Aplica-se a todos os tipos. new - Aloca uma área de memória para uma variável. Aplica-se para todos os tipos, exceto funções. delete - Destrói um ponteiro, desalocando a área de memória por ele ocupada.

5 .* e ->* - Acesso a ponteiro para membro de tipo agregado. *, / e % - Multiplicação, divisão e módulo para tipos primitivos. + e - - Adição e subtração para tipos primitivos. >> e << - Operação de deslocamento bit-a-bit. Tipos permitidos: primitivos. <, <=, > e >= - Operador de comparação, retorna tipo booleano. Aplicável para tipos primitivos. ==,!= - Comparação de igualdade e diferença entre tipos primitivos. & - Conjunção bit-a-bit. Tipos primitivos. ^ - Ou exclusivo bit-a-bit. Tipos primitivos. - Disjunção bit-a-bit. Tipos primitivos. && - Conjunção lógica. Aplicável a tipos primitivos. - Disjunção lógica. Aplicável a tipos primitivos. c?t:f - Condicional ternário, c deve ser de tipo primitivo. = - Atribuição. Aplicável a todos os tipos. += e -= - Atribuição do left value somado/subtraído da explessão. Aplicável a tipos primitivos. %=, *= e /= - Atribuição do left value módulo/vezes/dividido pela explessão. Aplicável a tipos primitivos. <<= e >>= - Atribuição do left value deslocado bit a bit pela explessão. Aplicável a tipos primitivos. &=, ^= e = - Atribuição do left value and/xor/or bit a bit com a explessão. Aplicável a tipos primitivos. Os únicos operadores que não podem ser sobrecarregados por polimorfismo ad-hoc (ou seja, sobrecarga de operadores) são sizeof, o condicional ternário e a resolução de escopo. Os operadores de pós incremento, chamada de função, índice de array, seleção de membro, operaçõs aritméticas, lógicas e de bits binárias e comparações booleanas possuem associatividade da esquerda para a direita.

6 Já o condicional ternário, as atribuições, o pré-incremento, os sinais unários, a negação lógica e de bit, o derreferenciador e referenciador, os operadores de tamanho, alocação e desalocação possuem associatividade da direita para a esquerda. O modelo de alocação de variáveis do C++ é por valor. Quando se passa um parâmetro para uma função, sua alteração não é refletida no exterior. No caso dos ponteiros, a área de memória por ele apontada pode ser modificada, mas não seu valor. Apenas tipos referência são passados por referência no modelo de C++. A atribuição em C++ de tipos primitivos é feita por cópia, ou seja, é "deep". Para tipos estruturados, a cópia é feita por referência, ou seja, ela é "shallow". Da mesma forma para a igualdade. A tipagem do C++ é estática, ou seja, é necessário declarar os tipos das variáveis no código, não havendo sistema de inferência de tipos. A verificação de tipos é feita em tempo de compilação. A tipagem do C++ é fraca. Em primeiro lugar, é importante relembrar o conceito de tipagem fraca e forte. Uma linguagem fracamente tipada é aquela na qual nem todo erro de tipo pode ser detectado. No caso do C++, o problema é explícito nas unions. Um acesso a membro de uma union pode ser feito através dos vários tipos declarados na mesma. Dessa forma, é impossível verificar se um dado do tipo t1 está sendo acessado como do tipo t2 se a union permitir ambos os tipos. Além disso, o C++ oferece coerção automática de tipos primitivos em que o tipo de destino é maior ou igual ao de origem (pois o contrário resulta em perda de informação). Essa coerção permite que um caractere seja acessado como um inteiro, por exemplo, e esse erro de tipo também não pode ser detectado. Apesar disso, essa é uma escolha da linguagem para flexibilizar a programação, abrindo mão da segurança. Como dito anteriormente, C++ possui tanto conversão explícita quanto coerção. A conversão explícita se dá por meio do chamado "cast", em que o tipo de destino é posto entre parênteses. Para classes, o cast pode ser feito de diversas maneiras. O cast dinâmico é usado para ponteiros e referências de classes derivadas para as suas bases. O cast estático realiza a conversão em ambos os sentidos, seja de base para derivada, seja da derivada para a base. O cast de reinterpetação muda o tipo de uma área de dados apontada por um ponteiro. Por fim, o cast constante muda o modificador const de uma variável. Uma variável que pode ser alterada se torna constante por meio desse cast. A coerção é feita entre tipos básicos, desde que não haja perda de informação por arredondamento (como dito anteriormente). O arredondamento explícito é feito por meio de cast. Entre tipos estruturados, a coerção entre ponteiros e arrays também é feita automaticamente na passagem de parâmetros e no acesso a indices de arrays. A linguagem C++, como dito anteriormente, não possui inferência de tipos. As

7 questões de equivalência de tipos são baseadas no modelo de equivalência por nome. Duas estruturas são equivalentes se tiverem os mesmos membros na mesma ordem e com os mesmos nomes. Tipos sinônimos são equivalentes. A equivalência de estrutura é usada de maneira limitada apenas para tipos anônimos. Quanto à compatibilidade, os tipos básicos são compatíveis quando obedecem às regras de coerção definidas acima. Os tipos estruturados são compatíveis com os seus subtipos, isto é, classes base são compatíveis com as suas derivadas. O C++ possui todos os tipos de polimorfismo. O polimorfismo ad-hoc pode ser implementado na forma de sobrecarga de operadores e funções. A sobrecarga dos mesmos permite que se declare identificadores iguais com parâmetros de tipos diferentes, com semânticas diferentes associadas. Os operadores que podem ser sobrecarregados já foram citados. O polimorfismo paramétrico está presente na forma de templates. Num template (ou gabarito), pode-se definir uma estrutura que trabalhe sobre um tipo genérico. Dessa forma, o tipo que essa estrutura manipula pode ser substituído por qualquer outro que seja necessário. Na implementação, uma cópia é criada para cada um dos usos do template. O polimorfismo dinâmico está presente em C++ porque ele é orientado a objetos. Um exemplo é que, em C++, quando uma classe base implementa uma função e a classe filha implementa a mesma função, o compilador resolve o conflito buscando a implementação da classe pai mais acima. Quando se quer que ele use a função da classe derivada, usa-se a palavra-chave virtual antes da função. Quando se quer obrigar uma classe derivada a implementar uma função virtual, elimina-se o corpo da função na classe base, colocando-se um "=0" ao final da declaração. Quanto à abstração, o C++ possui as classes, que permitem que se "esconda" os dados através dos modificadores public, protected e private. Eles possuem a mesma semântica que nas demais linguagens de programação OO. Esses modificadores em classes permitem um grande encapsulamento dos dados (melhor que o dos registros, por exemplo) e aumenta o grau de abstração. Quanto à modularidade, o C++ não oferece pacotes, como o Java, por exemplo, mas oferece o conceito de funções "amigas" (palavra-chave friend). Uma função amiga é uma função privada que só pode ser acessada externamente por determinadas classes. Dessa forma, o conjunto das classes amigas acaba formando um "pacote", aumentando a odularidade. O conceito de funções amigas é mais flexível que os pacotes, pois permite maior acoplamento. Por outro lado, o aumento do acoplamento pode acabar prejudicando a modularidade no sentido de que modificações em um módulo afetam mais os demais módulos do que num sistema fracamente acoplado. Por esse motivo, é recomendável não abusar das funções amigas, mantendo pacotes logicamente acoplados e separando os pacotes logicamente independentes. Os tipos abstratos de dados do C++ são as classes. O suporte a OO do C++ é

8 proveniente do seu suporte a TADs, do suporte à ligação dinâmica e também da herança. A herança é o conceito pelo qual uma classe derivada herda propriedades da classe base. Dessa forma, ela não precisa redeclarar os membros da base, podendo-se fazer um melhor reuso de código. Herança também é uma ferramenta fundamental na modularização do C Resumo geral sobre as demais linguagens apresentadas SMALLTALK: Todas as coisas são objetos, logo não há tipos primitivos. Os tipos estruturados e abstratos são representados pelas classes. Atribuição e comparação é por padrão deep, no entanto, há a opção de o usuário optar por shallow. As operações permitidas sobre os dados (objetos) são as pré-definidas em sua classe. Possui tipagem dinâmina e fraca, e a conversão entre tipos muitas vezes é feita de forma implícita. Os polimorfismo possível na linguagem é o ad-hoc. Não é permitido o paramétrico e o dinâmico o grupo não soube responder. Seus Tipos Abstratos de Dados são as classes e seus atributos são privados. RUBY: Da mesma forma que no Smalltalk, não há tipos primitivos, pois tudo é objeto. Possui uma classe Array pré-definida. As operações permitidas para os tipos também são as pré-definidas em suas classes. Permite redefinição de operados. Possui tipagem dinâmica e forte. Variáveis por modelo de referência e atribuição e comparação shallow. A linguagem realiza sobrecarga em tempo de execução, a inferência de tipos é estática e possui suporte para abstração, possuindo encapsulamento privado e as TADs sendo as classes. A linguagem emula Herança múltipla, copiando o método desejado dos múltiplos pais para dentro da nova classe. VHDL: Os tipos primitivos são os escalares. Possui ainda tipos compostos (array, record, etc), enumeração, arquivos, subtipos (de tipos definidos pelo usuário. Para esse tipo não é necessária conversão explícita). Signals podem ser declarados, mas não é considerado um tipo, mesmo porque um signal deve ter um tipo entre os demais já citados. Registros podem receber listas de parâmetros (contanto que na ordem e tipo corretos). Arrays podem ser operados logicamente, mas apenas se forem do mesmo tipo. Todas as conversões entre tipos são feitas explicitamente, através de casting. Modelo de variáveis por valor. Realiza coerção de tipos próximos, desde que possível (ex.: Real p/ inteiro), possui 4 níveis de abstração e não foi comentado sobre a possibilidade de polimorfismos.

9 VERILOG: Seu tipo primitivo é o signal. De resto, possui todos os mesmos tipos que o VHDL, mas não define variáveis numéricas reais, apenas inteiras. As operações permitidas são as básicas sobre inteiros, vetores, bits. As mais comuns são as lógicas. Modelo de variáveis por valor, no entanto existe uma extensão que utiliza o modelo por referência. Possui mecanismos de sobrecarga de operadores, não possui tipos abstratos de dados, tem uma abstração própria e uma alta modularidade, sendo definida como Tudo é módulo. CLIPPER: Possui apenas tipos primitivos e arrays. Além da string, que possui tamanho fixo, existe o tipo memo, que é uma string de tamanho maior. Como o seu propósito é acesso a banco de dados, não faz sentido permitir criação de tipos definidos pelo usuário. É fortemente e dinamicamente tipada. Todas as conversões devem ser feitas de forma explícita. OBJECT PASCAL: Possui tipos primitivos (caracter, inteiros, reais, booleanos, etc) e estruturados (classe, set, registro, arquivo, array,...). Atribuição e comparação são implementadas deep para tipos primitivos, porém shallow para ponteiros. Possui tipagem e inferência estática e forte. Realiza coerção apenas entre tipos compatíveis, todas as demais conversões devem ser feitas de forma explícita, através de funções de conversão. Modelo de variáveis por valor para tipos primitivos e por referência para ponteiros. Possui suporte para todo tipo de abstração, as classes e também templates, atributos e métodos podem ser private ou public e possui herança múltipla. PERL: Seus tipos são escalares, vetores e vetores associativos. Possui tipagem dinâmica e fraca. Gerenciamento de tipos e conversões automáticos, fazendo com que erros de tipo sejam quase que inexistentes. Possui um fraco suporte à orientação a objetos. Possui apenas o polimorfismo paramétrico e alta modularidade, contando também com mecanismos para Herança Múltipla. Abstração de pacotes, não possui palavras chaves para definir visibilidade (public, static, private...). SCHEME: Seus tipos primitivos são inteiro, caracter, booleano e ponto-flutuante. Seu tipo estruturado é a lista estruturada. Permite algumas operações sobre listas, como obter o primeiro elemento, o último, testar se é vazia, etc. Atribuição e comparação shallow. Possui tipagem dinâmica e forte. Não possui suporte para abstração e nada foi dito a respeito de polimorfismos.

10 FORTRAN: Tipos primitivos número, caracter, real, etc. Possui várias operações sobre arrays e possui ponteiros a partir do Fortran 90. A partir do fortran 2003, sua última versão, começou a ter suporte para orientação a objetos (TADs, modularidade...) e também polimorfismo (não sabem qual) e tipagem dinâmica. 3. Questões sobre C++ levantadas durante o debate: A coerção automática de tipos primitivos enfraquece a tipagem da linguagem? Um exemplo da situação descrita seria uma variável do tipo char ser acessada como um inteiro. Nesse caso, não é gerado erro nem em tempo de execução nem compilação, o que caracteriza uma linguagem fracamente tipada. Isso é uma escolha da linguagem para flexibilizar a programação, logo é tida como premissa que se o programador usou coerção de tipos, ele sabe o que está fazendo. Porém, é claro que isso diminui a segurança da linguagem. Na bibliografia, os autores divergem quanto à essa questão, enquanto alguns afirmam que, por ser uma escolha da linguagem, ela não pode ser considerada fracamente tipada, outros pensam o contrário. As operações sobre os tipos das linguagens são definidas nas classes, pelo programador, ou pré-definidas pela linguagem? As operações são todas pré-definidas pela linguagem, mas algumas podem ser sobrecarregadas pelas funções membro (métodos). O que for definido dentro da classe não pode ser considerada como operação e sim como uma declaração de função. A inicialização de uma variável pode ser feita em qualquer lugar do código? Sim, tanto a declaração quanto a inicialização podem ser feitas em qualquer lugar do código, uma das características que aumentam a flexibilidade de C++. Umas das inovação do C++ com relação ao C é a possibilidade de declarar e inicializar variáveis dentro do cabeçalho de um laço for. A linguagem permite polimorfismo dinâmico? Como foi explicado anteriormente, C++ suporta polimorfismo dinâmico, que é uma característica de todas as linguagens orientadas a objetos. Polimorfismo dinâmico é aquele no qual uma classe derivada implementa o mesmo método que a sua classe de origem, com os mesmos parâmetros. O compilador de C++ resolve polimorfismo dinâmico assumindo como padrão a implementação da classe pai. Para possibilitar que o método usado esteja na classe filha, usa-se o método virtual.

11 REFERÊNCIAS: C++ - Wikipedia, the free encyclopedia. Disponível em: C++ Programming/Data Types Reference - Wikibooks, collection of open-content textbooks. Disponível em: Operators in C and C++ - Wikipedia, the free encyclopedia. Disponível em: Type Casting. Disponível em:

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica Verificação de Tipo Atividade que certifica que os operandos de um operador são de tipos compatíveis. São considerados operadores e operandos: operadores usuais (aritméticos, relacionais, etc) subprogramas

Leia mais

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 2 Expressões Combinação de dados e operadores que resulta em um valor. expressão x = 2 * y + 4; variável operador constante Memória do computador

Leia mais

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa Computação Eletrônica Tipos de dados, constantes, variáveis, operadores e expressões Prof: Luciano Barbosa Site da disciplina: www.cin.ufpe.br/~if165/ Recapitulando num cubo = n * n * n cubo Algoritmo

Leia mais

Paradigmas de Linguagens

Paradigmas de Linguagens Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos

Leia mais

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados Disciplina de Programação de Computadores I Universidade Federal de Ouro

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos de Linguagens de Programação - Características. Paavo Soeiro Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição Expressões e Instruções de Atribuição Cristiano Lehrer Introdução Expressões são o meio fundamental de especificar computações em uma linguagem de programação: Familiarização com as ordens de avaliação

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Aula 6 Nomes, Vinculações, Verificação de Tipos e Escopos Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Introdução As linguagens de

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 4 EXPRESSÕES BOOLEANAS O tipo primitivo boolean É um tipo de dados primitivo em Java que possui

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

Leia mais

Tipos. O Conceito de Tipo

Tipos. O Conceito de Tipo Tipos mleal@inf.puc-rio.br 1 O Conceito de Tipo LPs geralmente permitem a organização de dados em diferentes categorias através do conceito de tipo. Um tipo é definido a partir de um conjunto de valores

Leia mais

1/50. Conceitos Básicos. Programa Básico

1/50. Conceitos Básicos. Programa Básico 1/50 Conceitos Básicos Programa Básico 2/50 Operações básicas de entrada e saída #include main retorna um inteiro int main() { std::cout

Leia mais

Introdução à Linguagem C++

Introdução à Linguagem C++ Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado

Leia mais

Tipos Primitivos, estruturas de iteração e decisão.

Tipos Primitivos, estruturas de iteração e decisão. Tipos Primitivos, estruturas de iteração e decisão. André Luis Meneses Silva andreluis.ms@gmail.com http://br.geocities.com/programacao2ufs/ Agenda Tipos Primitivos de Dados Variáveis e Constantes es Comandos

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

Leia mais

Linguagens de Programação. Tipos. Carlos Bazilio

Linguagens de Programação. Tipos. Carlos Bazilio Linguagens de Programação Tipos Carlos Bazilio bazilio@ic.uff.br http://www.ic.uff.br/~bazilio/cursos/lp Definições Tipos de dados primitivos: tipos de dados que não são definidos em termos de outros tipos

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Operadores e Expressões: bit-a-bit e especiais

Operadores e Expressões: bit-a-bit e especiais Operadores e Expressões: bit-a-bit e especiais Objetivos Em C, OPERADORES e EXPRESSÕES podem ser classificados em cinco grande categorias: Atribuições Aritméticos Lógicos e Relacionais Bit-a-Bit Especiais

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

7 Operadores e Expressões

7 Operadores e Expressões 7 Operadores e Expressões 7.1 Definição de operador, expressão e operando Um operador é um símbolo utilizado para identificar que uma determinada operação deve ser realizada sobre um ou mais parâmetros,

Leia mais

Linguagens de Programação Aula 8

Linguagens de Programação Aula 8 Linguagens de Programação Aula 8 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Os tipos de dados de uma linguagem são uma grande parte do que determina o estilo e a utilidade de uma linguagem

Leia mais

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

Programação Aplicada à Engenharia

Programação Aplicada à Engenharia Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 07: Aritmética e Tomada de decisão Silvio Fernandes 2009.1 1 Operadores Aritméticos Operadores

Leia mais

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO ORIENTAÇÃO A OBJETOS SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO SOBRECARGA DE OPERADORES (C++) A sobrecarga de operadores ocorre quando desejamos utilizar operadores jáj conhecidos (+,-,*,/,=,+=...)

Leia mais

Linguagem Java - Introdução

Linguagem Java - Introdução Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean

Leia mais

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos Tipos de Dados Abstratos Cristiano Lehrer Conceito de Abstração O conceito de abstração é fundamental em programação. Quase todas as linguagens suportam abstração de processos, através de subprogramas:

Leia mais

Ambientação com a Sintaxe de Java: parte 1

Ambientação com a Sintaxe de Java: parte 1 Ambientação com a Sintaxe de Java: parte 1 Prof. Gustavo Wagner FATEC-PB Programas em Java Texto do programa: arquivo com extensão.java Arquivo contém ao menos uma classe Nome do arquivo deve ser IGUAL

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto Suporte para Programação Orientada a Objeto Cristiano Lehrer Categoria das Linguagens que Suportam POO Suporte a POO acrescentado a uma linguagem já existente: C++ (também suporta programação procedural

Leia mais

Expressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti

Expressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti Expressões e Instruções de Atribuição George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução Expressões Aritméticas Operadores Sobrecarregados Conversões de Tipo Expressões Relacionais

Leia mais

Programação em C++: Introdução

Programação em C++: Introdução Programação em C++: Introdução J. Barbosa J. Tavares Conceitos básicos de programação Algoritmo Conjunto finito de regras sobre as quais se pode dar execução a um dado processo (Knuth73v1) Ex: ordenação

Leia mais

Linguagens de Programação. Marco A L Barbosa

Linguagens de Programação. Marco A L Barbosa Expressões e sentença de atribuição Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Operadores compostos. Operadores relacionais. Precedências. Aula 8 Prof. Daniel Cavalcanti Jeronymo Universidade Tecnológica Federal do Paraná (UTFPR) Engenharia de Computação

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

Expressões e sentença de atribuição

Expressões e sentença de atribuição Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Introdução à Ciência da Computação. Prof. Dr. Rogério Vargas

Introdução à Ciência da Computação. Prof. Dr. Rogério Vargas Introdução à Ciência da Computação Prof. Dr. Rogério Vargas http://rogerio.in O que é dado? - Defino dado como uma sequência de símbolos quantificados ou quantificáveis. - Letras são símbolos quantificados.

Leia mais

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que

Leia mais

Linguagem C Operadores

Linguagem C Operadores Linguagem C Operadores Objetivos Abordar os conceitos sobre os Operadores demonstrando o seu uso com exemplos para um melhor aprendizado. Pré-requisitos É necessário que o leitor tenha acompanhado o artigo

Leia mais

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos

Leia mais

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays Programação Orientada a Objetos para Redes de Computadores Elias Mitre http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Arrays Estruturas de dados que contêm itens

Leia mais

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN Fundamentos de Programação Linguagem C++ Introdução, identificadores, tipos de dados Prof. Bruno E. G. Gomes IFRN 1 Linguagem de Programação Constituída por símbolos e por regras para combinar esses símbolos

Leia mais

C com introdução a OO

C com introdução a OO ... Centro Integrado de Tecnologia da Informação C com introdução a OO ... Centro Integrado de Tecnologia da Informação Aula 9 Ronald Dener - Instrutor Matheus Soares - Monitor 17 / outubro 17 / outubro

Leia mais

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos

Leia mais

Implementação da programação modular I

Implementação da programação modular I Implementação da programação modular I - 1 Implementação da programação modular I Aula 10 Agenda Espaços de dados Tipos de dados Tipos definidos pelo usuário Imposição de tipos Objetivos Apresentar os

Leia mais

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III Programação Orientada a Objetos Alexandre César Muniz de Oliveira Métodos e Atributos Parte III Métodos [mod] tipo nome ([tipo arg]) [throws exc]{ [mod]: zero ou mais modificadores separados por espaços

Leia mais

Paradigmas de Linguagens de Programação. Tipos de Dados

Paradigmas de Linguagens de Programação. Tipos de Dados Tipos de Dados Cristiano Lehrer Introdução (1/2) 1956: FORTRAN I 1983: ADA INTEGER, REAL, arrays. Usuário pode criar um único tipo para cada categoria de variáveis no espaço de problemas e deixar o sistema

Leia mais

Linguagem C Operadora

Linguagem C Operadora Linguagem C Operadora Objetivos Abordar os conceitos sobre os Operadores demonstrando o seu uso com exemplos para um melhor aprendizado. Operadores Os operadores indicam ao compilador a necessidade de

Leia mais

C Operadores e Expressões

C Operadores e Expressões C Operadores e Expressões Adriano Cruz adriano@nce.ufrj.br Instituto de Matemática Departamento de Ciência da Computação UFRJ 15 de agosto de 2013 Adriano Cruz adriano@nce.ufrj.br (IM-DCC-UFRJ)C Operadores

Leia mais

Paradigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos

Paradigmas de Linguagens de Programação. Nomes, Vinculações, Verificação de Tipos e Escopos Nomes, Vinculações, Verificação de Tipos e Escopos Cristiano Lehrer Nomes (1/6) Um nome é uma string de caracteres usada para identificar alguma entidade de um programa. O termo identificador é utilizado

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Professor: Diego Oliveira Conteúdo 05: Linguagem Java Conteúdo da Aula Linguagem Java Tipos Primitivos Operadores Aritiméticos Operadores Lógicos Precedência de Operadores

Leia mais

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão

Leia mais

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve

Leia mais

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagens de Programação Conceitos e Técnicas. Amarrações Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador

Leia mais

Aula 4 - Operadores. Prof. Laura Silva de Assis. Engenharia de Computação 2 o Período

Aula 4 - Operadores. Prof. Laura Silva de Assis. Engenharia de Computação 2 o Período Programação I Aula 4 - Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis 2 o semestre - 2015 1 Sumário

Leia mais

Nomes, Amarração, Verificação de Tipos, e Escopo

Nomes, Amarração, Verificação de Tipos, e Escopo 5 Nomes, Amarração, Verificação de Tipos, e Escopo Concepts of Programming Languages, 5/e Robert W. Sebesta Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave

Leia mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação

Leia mais

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1 CIT 2015.2 Aula 02 Variáveis e Estruturas de desvio condicional Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1 Variáveis Uma variável nada mais é que um nome que damos a uma determinada posição

Leia mais

Métodos Computacionais

Métodos Computacionais Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento

Leia mais

Introdução. Paradigmas de Linguagens. Introdução. Tipos de Dados Primitivos. Prof. Ms. Luiz Alberto Contato:

Introdução. Paradigmas de Linguagens. Introdução. Tipos de Dados Primitivos. Prof. Ms. Luiz Alberto Contato: Paradigmas de Linguagens Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Baseada no material do prof. Celso Olivete Júnior Introdução Um tipo de dado define uma coleção de dados e um conjunto de operações

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 06 (rogerio@fct.unesp.br) Aula 6 Subprogramas

Leia mais

Capítulo 5. Nomes, Vinculações e Escopos

Capítulo 5. Nomes, Vinculações e Escopos Capítulo 5 Nomes, Vinculações e Escopos Tópicos do Capítulo 5 Introdução Nomes Variáveis O conceito de vinculação Escopo Escopo e tempo de vida Ambientes de referenciamento Constantes nomeadas Introdução

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Gabriel Santa Clara Ucelli

Gabriel Santa Clara Ucelli Gabriel Santa Clara Ucelli 1. Histórico 2. Introdução 3. Visão Geral 4. Conceitos Básicos 5. Aspectos Teóricos 6. Avaliação da Linguagem 7. Referências Sumário Histórico Scala foi desenvolvida em 2001

Leia mais

Polimorfismo. O que é polimorfismo?

Polimorfismo. O que é polimorfismo? O que é polimorfismo? Polimorfismo Significa que variáveis podem referenciar mais do que um tipo. Não é um conceito novo e várias linguagens de programação aplicam. Funções são polimórficas quando seus

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Tipo de Dados Orivaldo Santana Jr ovsj@cin.ufpe.br Observação: Este material esta baseado no material do Prof. Tiago Massoni e Prof. Fernando Buarque Tipos de Dados Primitivos

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java

Leia mais

Linguagens de Programação Conceitos e Técnicas. Valores e Tipos de Dados Prof. Tiago Alves de Oliveira

Linguagens de Programação Conceitos e Técnicas. Valores e Tipos de Dados Prof. Tiago Alves de Oliveira Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Tiago Alves de Oliveira Conceituação Valor 3 2.5 'a' Paulo 0x1F 026 Tipo {true, 25, 'b', azul } não corresponde a um tipo {

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Algoritmos: tipos de dados, variáveis e expressões

Algoritmos: tipos de dados, variáveis e expressões Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Algoritmos: tipos de dados, variáveis e expressões DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão Educação Módulo Lógica e Ética de Programação com aplicações em Java Projeto khouse Profissionalizante Profª Larissa Brandão Educação e Ética Fundamentos da Programação Objetivos: Reconhecer as diferenças

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto

Leia mais

Valores e Tipos de Dados Prof. Hudson Costa

Valores e Tipos de Dados Prof. Hudson Costa Valores e Tipos de Dados Prof. Hudson Costa Valor 3 2.5 'a' Paulo 0x1F 026 Tipo {true, 25, 'b', azul não corresponde a um tipo { true, false corresponde a um tipo Linguagens de Programação Valores e Tipos

Leia mais

Programação com Acesso a BD. Programação com OO Acesso em Java

Programação com Acesso a BD. Programação com OO Acesso em Java Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados Linguagem de Programação I Aula 06 Linguagem C: Tipos de Dados Da Aula Anterior Linguagens de Programação A Linguagem C: Como tudo começou Principais características da Linguagem C O primeiro programa

Leia mais

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ). 2626262626262626262626262626262626262626262626262626 4 - OPERADORES Podem ser: aritméticos, relacionais, lógicos, incremento e decremento, atribuição. Operadores aritméticos têm precedência sobre os relacionais

Leia mais

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Prof. Zhao Liang O QUE É C? No inicial do computador, os programas eram escritos em linguagem de maquina Instruções primitivas que podiam ser executadas diretamente

Leia mais

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro

Leia mais

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio) Módulo 1 Introdução AEDS I C++ (Rone Ilídio) Introdução Linguagens de Programação Fonte Compilador Executável SO I Hardware C++ - Características Evolução do C, ou seja, possui a mesma sintaxe É uma linguagem

Leia mais

Introdução à Computação MAC0110

Introdução à Computação MAC0110 Introdução à Computação MAC0110 Prof. Dr. Paulo Miranda IME-USP Aula 2 Variáveis e Atribuições Memória Principal: Introdução Vimos que a CPU usa a memória principal para guardar as informações que estão

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Programação Estruturada Aula - Tipos, Constantes, Variáveis e Identificadores

Programação Estruturada Aula - Tipos, Constantes, Variáveis e Identificadores Programação Estruturada Aula - Tipos, Constantes, Variáveis e Identificadores Prof. Flávio Barros flavioifma@gmail.com www.flaviobarros.com.br TIPOS DE DADOS EM LINGUAGEM C 2 TIPOS DE DADOS EM LINGUAGEM

Leia mais