Implementação da programação modular I
|
|
- Madalena Cruz Campelo
- 5 Há anos
- Visualizações:
Transcrição
1 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 conceitos relacionados com espaços de dados e tipagem de espaços de dados. Referência Capítulo 6 Aula10-ProgramacaoModular-i doc 26-mar-2006
2 Implementação da programação modular I - 2 Espaços de dados Espaços de dados armazenam dados código não deixa de ser uma forma de dado Espaços de dados simples (contíguos) possuem: um meio de armazenamento uma função de acesso a forma mais simples dessa função é o endereço do espaço em memória real pode ser uma expressão complexa: TabSimb[ ObterHash( Simbolo )]->ValorElemento acessa o espaço ocupado pelo valor do 1o. elemento da lista de colisão de Simbolo uma extensão espaço ocupado em bytes sizeof Os espaços de dados podem ser realizados em diferentes meios de armazenamento memória principal sistema de arquivos bases de dados memória virtual memória segmentada máquinas remotas
3 Implementação da programação modular I - 3 Espaços de dados Cada espaço de dados possui um nome que o referencia nome de uma variável referencia o espaço designado pelo nome uma referência calculada através de uma função de acesso A[j] *pa é o espaço de dados apontado por pa robj é o espaço de dados referenciado por robj pelemtabsimb * ObterElemTabSimb(char * pszsimbolo) *( ObterElemTabSimb( "um_simbolo" )) é o espaço de dados associado ao símbolo "um_simbolo" Amarração (binding) é a operação de associar um espaço de dados a um determinado nome ou função de acesso
4 Aninhamento de espaços de dados Implementação da programação modular I - 4 Espaços de dados podem ser aninhados estruturas (struct) podem conter elementos que por sua vez também são estruturas Exemplos de espaços de dados aninhados cada um dos elementos de um vetor e o próprio vetor como um todo cada elemento de um objeto é um espaço de dados, e também o objeto como um todo cada atributo de um registro de um arquivo, cada registro de um arquivo e o próprio arquivo Exemplo de structs aninhados em C typedef struct { char Nome[ DIM_NOME ] ; char SobreNome[ DIM_NOME ] ; } tpnome ; typedef struct { tpnome Nome ; tpendereco Endereco ; } tppessoa ;
5 Espaços de dados simples e compostos Implementação da programação modular I - 5 Espaços de dados podem ser simples: todo o valor está contido em um espaço contíguo variável struct vetor lista contida em vetor compostos: o valor completo requer vários espaços de dados, simples ou compostos, para ser armazenado lista encadeada árvore base de dados bases de dados distribuídas Espaços de dados compostos também podem ser tratados como um todo através de um nome nome que designa uma lista cabeça da lista contendo dados relativos à lista como um todo sujeito a restrições, o nome poderia ser o ponteiro para a origem da lista nome que referencia uma árvore cabeça da árvore contendo dados relativos à árvore como um todo sujeito a restrições, o nome poderia ser o ponteiro para a raiz da árvore nome simbólico que referencia um arquivo nome ODBC que referencia uma base de dados como um todo handle que identifica uma janela
6 Realização física de espaços compostos Implementação da programação modular I - 6 Forma de assegurar um nome no nível físico: Usar cabeça de estrutura (structure head) Todos os clientes referenciam a cabeça A cabeça encapsula as referências internas necessárias para manipular eficientemente a estrutura O módulo encapsula os tipos Exemplo lista Cabeça da lista Lista Corrente Fim Exemplo árvore Cabeça da árvore raiz corrente
7 Implementação da programação modular I - 7 Tipos de dados Do ponto de vista do computador (quase todos eles) o conteúdo de um espaço de dados é uma seqüência de bits. A interpretação do conteúdo do espaço de dados depende do código executado ao acessá-lo. O tipo de dado de um espaço de dados determina como interpretar o conteúdo de um espaço de dados a organização de baixo nível deste espaço a codificação o tamanho em bytes o conjunto de valores permitidos Tipos computacionais são definidos pela linguagem de programação int char char * Tipos do usuário são declarados pelo programador. Em C e C++ enum struct union typedef Em C++ e Java class
8 Implementação da programação modular I - 8 Espaços de dados e tipos Para o computador o conteúdo da memória não possui interpretação específica espaços de dados são interpretados através das funções (métodos) que os manipulam O tipo de um espaço de dados determina como deve ser interpretado o seu conteúdo Cada espaço de dados tem um tipo pode ser declarado explicitamente através de código de declaração C, C++, Java pode ser declarado implicitamente por contexto Scheme, Lua C permite a declaração implícita de funções pode ser determinado através de um atributo contido no espaço de dados identificador do tipo Lua Identificadores do tipo de um espaço potencialmente polimorfo em C++ e Java pode ser estabelecido através do código usado assembler
9 Implementação da programação modular I - 9 Linguagens tipadas Em linguagens tipadas, ao amarrar um nome a um espaço de dados é explicitamente declarado o seu tipo Linguagens tipadas asseguram, por construção, a correta interpretação dos espaços de dados sempre associam tipos aos nomes as funções de acesso sempre conhecem o tipo do item acessado O compilador produzirá código em conformidade com o tipo declarado para o nome o tipo associado ao resultado da avaliação função de acesso não necessita determinar o tipo em tempo de execução Assumindo que os espaços de dados referenciados existem: typedef struct tgelemlista { char szsimbolo[ DIM_SIMBOLO ] ; unsigned IdSimbolo ; struct tgelemlista * pprox; ) tpelemlista; tpelemlista* Tabela[ DIM_TABELA ] ; ( Tabela[ ObterHash( szsimbolodado )]->pprox)->szsimbolo ou *(*( Tabela[ ObterHash( szsimbolodado )]).pprox ).szsimbolo acessam o mesmo vetor de caracteres o segundo elemento da lista
10 Implementação da programação modular I - 10 Tipos do usuário struct define agregações heterogêneas de dados cada campo contém um valor de um tipo específico pode ser diferente dos demais tipos. Em C o nome do tipo é struct tagnome typedef struct tagnome { tipo 1 campo 1 ; tipo 2 campo 2 ;... tipo n campo n ; struct tagnome * pproxnome ; } tpnome ; Em C++ o nome do tipo é o tag name struct tpnome { tipo 1 campo 1 ; tipo 2 campo 2 ;... tipo n campo n ; tpnome * pproxnome ; } ;
11 Implementação da programação modular I - 11 Tipos do usuário union define tipos alternativos para um mesmo espaço de dados possibilita acessar uma mesma área de dados utilizando diferentes tipos de um conjunto específico typedef union tagnome { tipo 1 NomeInterpretação 1 ; tipo 2 NomeInterpretação 2 ;... tipo n NomeInterpretação n ; } tpnome ; ao acessar o espaço de dados da union usando NomeInterpretação i será utiliza o tipo tipo i para interpretar o espaço o tamanho do espaço de dados da union tpnome será igual ao maior dos tamanhos dos tipos o uso descuidado desta estrutura pode trazer conseqüências desastrosas
12 Problemas de alinhamento em struct e union Implementação da programação modular I - 12
13 Implementação da programação modular I - 13 Imposição de tipos Podem-se forçar diferentes interpretações para um mesmo espaço de dados através da imposição de tipos (type casts) Uma imposição de tipos é a uma union na qual o conjunto dos possíveis tipos não é definido a priori Em C (e também em C++) ( short int * ) Vetor estabelece que o espaço de dados designado por Vetor deve ser interpretado como um ponteiro para um short int independentemente do tipo com que foi declarado A imposição de tipos em C/C++ pode violar as regras de controle de tipos, por exemplo vetor de 4 caracteres pode receber a interpretação vírgula flutuante *((float *) VetorChar ) ) Ao programar em C++ utilize as construções de imposição de tipo que a linguagem oferece ao invés da sintaxe C apresentada anteriormente: const_cast< tipo >( expressão ) static_cast< tipo >( expressão ) dynamic_cast< tipo >( expressão ) reinterpret_cast< tipo >( expressão ) Em Java existe uma forma limitada e segura de imposição de tipos impor o tipo de uma superclasse a um determinado objeto impor um tipo de classe herdeira a um objeto neste caso Java verifica se o objeto foi construído a partir da classe herdeira similar a dynamic_cast de C++
14 Exemplo do efeito da imposição de tipos #include <stdio.h> #include <memory.h> void main( void) { char Vet[ 5 ] ; int c0, c1, c2, c3 ; Implementação da programação modular I - 14 /* Definir o valor contido no espaço de dados */ memset( Vet, 0, sizeof( Vet )) ; memcpy( Vet, "ABCD", 4 ) ; /* Exibir várias interpretações do espaço de dados */ } printf( "\nlong hexa %lx", *((long * ) Vet) ) ; printf( "\nshort hexa %4x %4x", *(( short int * ) Vet ), *(( short int * ) &( Vet[ 2 ])) ) ; c0 = Vet[ 0 ] ; c1 = Vet[ 1 ] ; c2 = Vet[ 2 ] ; c3 = Vet[ 3 ] ; printf( "\nchar hexa %2x %2x %2x %2x", c0, c1, c2, c3 ); printf( "\nlong int %li", *((long * ) Vet) ) ; printf( "\nfloat %f", *((float *) Vet) ) ; printf( "\nstring %s", Vet ) ;
15 Exemplo do efeito da imposição de tipos Implementação da programação modular I - 15 Resultados da execução (em máquina Intel): long hexa short hexa char hexa long int float string ABCD Dependendo da máquina (Intel, Motorola, etc.) o resultado pode ser diferente se o conteúdo de Vet fosse executado em uma máquina Intel, seriam executadas as 4 instruções: INC CX; INC DX; INC BX; e INC SP
16 Implementação da programação modular I - 16 Quando usar imposição de tipos Justifica-se o uso de imposição de tipos irrestrita ao implementar funções de gerenciamento de memória tpmeutipo * ptmeutipo ;... ptmeutipo = ( tpmeutipo * ) malloc( sizeof( tpmeutipo )) ; Ao programar em C++ use sempre os operadores new e delete e jamais as funções malloc e free mesmo para structs Ao desenvolver módulos genéricos muitas vezes é necessário utilizar referências para estruturas ou objetos genéricos Freqüentemente isto requer ponteiros para um tipo indefinido (void *) Existem mecanismos que permitem evitar o uso de void * No módulo de definição C/C++ inclua exatamente: typedef struct tpxxx * tppxxx ; No módulo de implementação inclua: struct tpxxx {... } ; Em C++ crie uma estrutura de herança a partir da qual se derivam todas as classes da família genérica
17 Imposição versus conversão de tipos Implementação da programação modular I - 17 Conversão de tipos converter um valor inteiro para um valor vírgula flutuante faz toda a computação usando aritmética de inteiros e manipulação de bits ao terminar, atribui o valor resultante a uma variável flutuante Imposição de tipos e conversão de tipos são operações distintas. Na imposição de tipos muda-se simplesmente a interpretação do espaço de dados, sem alterar o seu conteúdo consiste meramente em uma instrução para o compilador Na conversão, opera-se sobre o conteúdo do espaço de dados transforma o valor no tipo origem para um valor no tipo destino preserva a semântica do valor int j ; char ch ; ch = 'A' ; j = ch ; /* converte o caractere 'A' para um inteiro com valor igual à sua codificação decimal: 65 */ j = 81 ; ch = j ; /* converte o valor 81 para o caractere com esta codificação: 'a' */ /* Esta conversão pode perder bits */ j = StrToInt( "1234" ) ; /* converte o string para o valor binário equivalente */ j = StrToInt( "abcd" ) ; /* sinaliza erro de conversão */ j = ( int )"abcd" ; /* impõe a interpretação int ao string */
18 Cuidados com a imposição de tipos Implementação da programação modular I - 18 Evite o uso de imposições irrestritas de tipos Quando utilizar justifique muito bem inclua comentários no programa contendo esta justificativa Evite de todas as maneiras o uso de imposição de tipos indiscriminada ao programar orientado a objetos vale impor para superclasse, é automático vale impor para classe herdeira somente se tiver certeza que objeto havia sido criado na subclasse imposta ou em uma classe herdeira dela
19 Implementação da programação modular I - 19 Tipos genéricos em C insira um campo que servirá de identificador de tipo como primeiro campo das estruturas que formam uma família de estruturas genéricas. Antes de impor o tipo, verifique o tipo identificado no valor estrutura sendo processada struct( tpidtipo idtipo,... ) ; em C++ pode-se usar o operador typeid para determinar o tipo específico de um objeto genérico, somente depois efetue a imposição para este tipo em C++ pode-se usar templates para criar estruturas que requerem parâmetros do tipo tipo em Java use o operador instanceof, o método padrão isinstance, ou o método padrão getname para determinar o tipo específico de um objeto genérico.
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 maisProgramaçã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 maisProgramaçã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 maisLinguagem 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 maisEstruturas 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 maisAlgoritmos 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 maisPrática de Programação. Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário
Prática de Programação Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário Introdução A linguagem C/C++ permite criar tipos de dados definidos pelo usuário
Leia maisEstruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C
Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos
Leia maisAlgoritmos 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 maisAlgoritmos 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 maisFundamentos 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 maisEssencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.
Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,
Leia maisProgramaçã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 maisALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória
ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos
Leia maisEstrutura de Dados. Aula 07 Alocação Dinâmica
Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).
Leia maisEntender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação
Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda
Leia maisLinguagens de Programação
Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas
Leia maisLinguagem de Montagem Assembly
Linguagem de Montagem Assembly Especificações O programa em Assembly Fica sobre a camada do Sistema Operacional Efetua chamadas ao Sistema Operacional O montador Chama-se Assembler Traduz a linguagem de
Leia maisIntrodução a Programação. Ponteiros e Vetores, Alocação Dinâmica
Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes
Leia maisVariáveis e Operadores em C
Variáveis e Operadores em C Luís Charneca luis.charneca@gmail.com NOMES DE VARIÁVEIS (1) As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: o nome deve começar com uma letra
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto
Leia maisIntroduçã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 maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisIntrodução à Computação
Introdução à Computação Linguagem C Professor: André de Carvalho Aula de hoje Introdução Tipos compostos Tipo enumeração Conclusão Tipos compostos A Linguagem C permite criar tipos de dados definíveis
Leia maisPrincípios de Desenvolvimento de Algoritmos MAC122
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Aula de Revisão: Variáveis e Atribuições Introdução Memória Principal: Vimos no curso anterior que a CPU usa a memória
Leia maisMétodos Computacionais. Vetores e Matrizes Dinâmicas
Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de
Leia mais#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 maisComputação 2. Aula 7. Profª. Fabiany Ponteiros
Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra
Leia maisLinguagem de Programação
Linguagem de Programação Estruturas e Definição de Tipo (struct / typedef) Gil Eduardo de Andrade Introdução Uma estrutura, em C, é uma coleção de variáveis referenciada por apenas um nome; As estruturas
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisVariáveis, Comandos de Atribuição e Comando de Entrada e Saída
BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c
Leia maisAula 1 Conceitos Básicos
Aula 1 Conceitos Básicos Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Capítulo 1 @ DCC/UFMG O que é um algoritmo? O que é um programa? O que é um TAD? Algoritmos e Estrutura de
Leia maisTipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação
Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,
Leia maisFACULDADE 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 maisRepresentação de Dados
Representação de Dados Representação binária Exemplo: 15213 10 11101101101101 2 Vantagens: Implementação eletrônica Possibilidade de armazenar elementos com dois estados Transmissão eletrônica confiável
Leia maisAmbiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Leia maisSumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?
Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros
Leia maisLinguagem C: Introdução
Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisIntroduçã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 maisProgramaçã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 maisa) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisPonteiro e lista dinâmica
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Ponteiro é uma variável que
Leia maisLinguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná
Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto programa estiver executando
Leia maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisPROGRAMAÇÃ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 maisEstruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?
Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o
Leia maisFundamentos de Programação
Fundamentos de Programação CP41F Aula 12 Prof. Daniel Cavalcanti Jeronymo Layout de memória. Ponteiros: conceito, operadores de referência e dereferência, operações, aritmética e indireção múltipla Universidade
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia mais4. Estruturas Fundamentais de Programação em C
4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente
Leia maisEstrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 5: Registros O objetivo desta aula é apresentar os tipos de dados definidos pelo programador, bem como exibir usos comuns desses tipos de
Leia maisFunções em Linguagem C Parte II
Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis
Leia maisLinguagem de Programação. Thiago Leite Francisco Barretto
Linguagem de Programação Thiago Leite Francisco Barretto SCHILDT, H. C Completo e Total. 3ª Edição. São Paulo: Makron, 1997. Bibliografia Ementa
Leia maisIntrodução a Programação. Ponteiros e Passagem de Argumentos por Referência
Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores
Leia maisProgramaçã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 maisPONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco
PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo
Leia maisClasses 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 maisCap. 2 Expressões na linguagem C
Programação de Computadores II Cap. 2 Expressões na linguagem C Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (24) Slides adaptados dos originais
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisAula 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 maisPROGRAMAÇÃ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 maisMCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação
MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Linguagens de programação 2 Linguagem de programação
Leia maisAula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz
Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Sumário de Aula } Conceito de Memória } Variáveis e Tipos de Dados } Constantes 2 Conceito de Memória } A memória de um computador é
Leia maisLÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Primeiro programa em C #include int main() { int num1, num2, result; scanf("%d",&num1); scanf("%d",&num2); result = num1 + num2; printf("%d",
Leia maisECT1203 Linguagem de Programação
Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira
Leia maisTópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte
Tópicos de hoje: Programação de Computadores II Cap. Expressões na linguagem C Bits, s e Palavras Variáveis e constantes Operadores e expressões Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel.
Leia maisVetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique
Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do
Leia maisExercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os
Leia maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisMódulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisAlocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Complexidade dos sistemas de software Estrutura Decomposição Abstração Hierarquia Projeto de sistemas complexos
Leia maisHello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Leia maisIntrodução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes
Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores
Leia maisRepresentação de Dados Arrays e Structs
Representação de Dados Arrays e Structs Noemi Rodriguez Ana Lúcia de Moura http://www.inf.puc-rio.br/~inf1018 Representação de Arrays C usa uma implementação bastante simples alocação contígua na memória
Leia maisMCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação
MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação Prof. João Henrique Kleinschmidt Material elaborado pelo Prof. Jesús P. Mena-Chalco 3Q-2018 Linguagens de programação
Leia maisAula 06 Introdução à Programação Matrizes
Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE
Leia maisComputaçã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 maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisValores 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 maisLinguagens 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 maisIntrodução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Leia maisCentro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros
Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
Leia maisEstrutura de Dados. Ricardo José Cabeça de Souza Parte 2
Estrutura de Dados Ricardo José Cabeça de Souza Parte 2 Em C, uma expressão é uma combinação de variáveis, constantes e operadores que pode ser avaliada computacionalmente, resultando em um valor O valor
Leia maisRESUMO DA DISCUSSÃO SOBRE LINGUAGENS DE PROGRAMAÇÃO DO DIA 26 DE OUTUBRO DE 2006
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
Leia maisLinguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
Leia maisIntrodução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Leia maisIntroduçã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 maisProgramação de Computadores
Programação de Computadores Apresentação da Disciplina Prof. Fabio Henrique N. Abe fabio.henrique.abe@gmail.com 99642-5002 http://www.comp.uems.br/~fhna/ Programação de Computadores Carga Horária da Disciplina
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada 1º Programa: olamundo.c #include // biblioteca padrão de E/S /* Programa Olá Mundo */ int main(void) { printf( Olá mundo\n ); //exibe Olá mundo
Leia maisExpoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 Data de entrega 16/09/2016 por e-mail (simone@ic.uff.br)
Leia mais3. 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.8. Estruturas 3.8.1. Introdução 3.8.2. Uso
Leia maisMC-102 Aula 21 Registros
MC-102 Aula 21 Registros Instituto de Computação Unicamp 27 de Outubro de 2016 Roteiro 1 Registros Declarando um novo tipo de Registro Acessando os campos de um Registro Lendo e Escrevendo Registros Atribuição
Leia maisMé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 maisReinaldo Gomes Alocação Dinâmica
Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente
Leia mais