PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica

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

Download "PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica"

Transcrição

1 PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 9: Manipulação de dados e operações em arquivos Escola Politécnica da Universidade de São Paulo

2 Agenda 1. Noções de arquivos 2. Entrada e Saída (modo texto) 3. Entrada e Saída (modo binário) 4. Visão geral C C++ 5. Abertura de arquivos e tratamento de erros 2

3 Noções de arquivos 3

4 Noção intuitiva Arquivo Sequência de bytes (stream) Armazenamento não-volátil Identificados por uma string (nome de arquivo) Visão geral Muito mais abrangente do que simplesmente armazenamento Abstração unificadora em sistemas operacionais Abstração de hardware (rede, video, hds,...) Comunicação entre processos Obs.: processo = programa em execução 4

5 Sistema Operacional Camada de software responsável por fornecer serviços básicos de forma unificada a programas em execução Responsável pelos detalhes de manipulação de arquivos Disponibiliza uma API unificada para operações sobre arquivos 5

6 Comunicação Sistema Operacional 1. O processo requisita ao SO a abertura de um arquivo 2. O S.O. realiza a abertura do arquivo e devolve ao processo um identificador do arquivo aberto 3. O processo pede ao SO uma operação (leitura/escrita) utilizando o identificador obtido na etapa 2 4. O processo requisita ao SO o fechamento de arquivo Algumas mudanças podem não ter sido efetuadas sobre o arquivo Número limitado de arquivos que podem ser abertos por um processo 6

7 Seqüencial Tipos de Arquivo Exemplo: fitas magnéticas Necessário percorrer toda a seqüência de bytes em busca de uma informação Acesso Aleatório Exemplo: disco rígido Permitem o acesso eficiente a informação em qualquer posição na sequência de bytes Dispositivos Exemplo: monitor, interface de rede, comunicação serial Leitura e escrita realizam ações de E/S Geralmente só escrita ou só leitura (dificilmente ambos) 7

8 Modo Texto Modos de Leitura / Escrita Informações codificadas em texto Decodificação automática de caracteres Suporte a leitura de linhas e palavras Compreensível pelo ser humano Modo Binário Informações codificadas em bytes (similar a memória) Dependentes de arquitetura Little endian (byte menos significativo no menor endereço) Big endian (byte menos significativo no maior endereço) Leitura e escrita rápidas 8

9 Arquivos padrão Acesso a arquivo em C Entrada Padrão (stdin) Arquivo aberto para leitura Fonte de dados para o processo Saída Padrão (stdout) Arquivo aberto para escrita Saída de dados para o processo Saída de Erro (stderr) Arquivo aberto para escrita Saída de dados alternativa para o processo (geralmente para comunicar erros) 9

10 Arquivos Padrão Entrada e Saída Padrão podem ser qualquer tipo de arquivo A Entrada Padrão de um processo pode ser conectada à Saída Padrão de um outro processo Utilizaremos nessa aula o caso mais simples Entrada Padrão Leituras sobre esse arquivo causam a interrupção do processo e espera pelo usuário fornecer dados via teclado Saída Padrão Escritas nesse arquivo causam a escrita de dados no terminal em que o programa está executando 10

11 Entrada e saída (modo texto) 11

12 Entrada e Saída Padrão em C (Apenas para efeito de comparação) Também disponível em C++, incluir <cstdio> No namespace std temos stdin Entrada Padrão stdout Saída Padrão stderr Saída de Erro stdin, stdout e stderr são variáveis do tipo FILE* 12

13 Entrada e Saída Padrão em C Entrada Padrão int i = 0; double x = 0; scanf("%d", &i); // leitura de um inteiro scanf("%lf", &x); // leitura de um ponto flutuante Saída Padrão int i = 42; double x = ; printf("%d", i); printf("%lf", x); 13

14 Leitura de uma linha em C Necessita de uma região de memória para armazenar o conteúdo da linha (buffer) A função fgets precisa ser informada do total de caracteres char buffer[80]; fgets(buffer, 80, stdin); Número máximo de caracteres que serão lidos no código acima serão 79 Após o último caractere será armazenado o caractere \0 para seguir a codificação de strings em C 14

15 Entrada e Saída Padrão em C++ Incluir header <iostream> No namespace std temos cin Entrada Padrão ("C" in) cout Saída Padrão ("C" out) cerr Saída de Erro ("C" err) cin é uma variável global do tipo istream cout e cerr são variáveis globais do tipo ostream int i = 0; double x = 0; cin >> i; // leitura de um inteiro cin >> x; // leitura de um ponto flutuante 15

16 Entrada e Saída Padrão em C++ //cin01.cpp #include <iostream> using namespace std; int main() { int i; cout << "Entre i: "; if (cin >> i) cout << "i=" << i << endl; else cout << "Erro de leitura i" << endl; C:\hae>cin01 Entre i: 20 i=20 C:\hae>cin01 Entre i: vcvdfg Erro de leitura i C:\hae>cin01 Entre i: 123dfdfdwe i=123 16

17 Entrada e Saída Padrão em C++ //cin03.cpp #include <iostream> using namespace std; int main() { string st; cout << "Entre st: "; cin >> st; cout << "st=" << st << endl; C:\hae>cin03 Entre st: abc def st=abc Nota: Branco, tab e fim de linha são separadores. 17

18 Saída Padrão em C++ int i = 42; double x = ; cout << i; // escrita de um inteiro cout << x; // escrita de um ponto flutuante cout << "Hello World"; // escrita de uma sequência de // caracteres terminada em \0 18

19 //cout01.cpp #include <iostream> using namespace std; int main() { int i = 42; double x = ; cout << i << endl; cout << x << endl; cout << "Hello World"; Saída Padrão em C++ Saída: Hello World 19

20 Redirecionar saída padrão C:\hae>cout Hello World C:\hae>cout01 > saida.txt C:\hae>type saida.txt [Linux=cat saida.txt] Hello World C:\hae> 20

21 Leitura de uma linha da entrada padrão em C++ Incluir header <string> (using namespace std) Usar a função getline Exemplo string name; getline(std::cin, name); Permite ler até o fim da linha, mesmo com branco. 21

22 Leitura de uma linha da entrada Redirecionar entrada //getline01.cpp #include <iostream> using namespace std; int main() { string nome; cout << "Entre nome completo: "; getline(cin,nome); cout << "Nome: " << nome << endl; C:\hae>getline01 Entre nome completo: Hae Yong Kim Nome: Hae Yong Kim C:\hae>getline01 < getline01.txt 22

23 Imprimir para string #include <iostream> #include <sstream> using namespace std; int main() { ostringstream sai; int i=3; sai << "Testando saida " << "i=" << i << endl; cout << sai.str(); 23

24 Curiosidade: << e >> O operador << quando aplicado a números realiza o shift à esquerda enquanto que o operador >> realiza o shift à direita C++ permite a definição de comportamento para a maioria dos operadores Os operadores << e >> foram escolhidos para os objetos ostream e istream por melhor indicarem o deslocamento de informação Os operadores << e >> são sobrecarregados conforme o seu operando No exemplo anterior para ler ou escrever um int e um double apresentaram o mesmo formato de invocação 24

25 Entrada e saída (modo binário) 25

26 Modo binário Usaremos apenas modo texto nesta disciplina Leitura e escrita de seqüências de bytes Não há interpretação dos bytes, se quiser um inteiro terá que compor o valor do inteiro a partir de seus bytes Comuns em formatos de mídias (imagens, sons, vídeos, etc.) 26

27 Visão geral C C++ 27

28 C Vantagens Visão geral C C++ Amplamente conhecido por desenvolvedores (Imitados por outras linguagens) Desvantagens Compilador C normalmente não verifica Se o número de parâmetros estão corretos Se os tipos de parâmetros passados estão corretos C++ Vantagens O compilador C++ é capaz de verificar sobrecargas Sem necessidade de manipulação de ponteiros Desvantagens Overhead comparado ao C Discutível alteração da semântica dos operadores << e >> 28

29 Abertura de arquivos e tratamento de erros 29

30 Abertura de Arquivos Limites no uso da entrada e saída padrão Entrada e Saída Padrão podem estar associadas a arquivos voláteis (terminal, /dev/null) É comum uma aplicação trabalhar com vários arquivos Log, configuração, internacionalização, arquivos de dados, etc. Arquivos em C++ Incluir header <fstream> Objetos std::ifstream para leitura (derivados de std::istream) Objetos std::ofstream para escrita (derivados de std::ostream) 30

31 Formato geral Abertura de arquivo in_or_out_stream.open(arquivo, parâmetros) Parâmetros (múltiplos possíveis usando ) app ate binary in out trunc Significado (append) escritas no final de arquivo (at end) move para final após abertura (binary) modo binário (input) operações de leitura (output) operações de escrita (truncate) apaga conteúdo atual do arquivo Os parâmetros in e out são adicionados automaticamente no método open para objetos do tipo ifstream e ofstream respectivamente 31

32 Leitura ifstream input; input.open("/home/user/teste.txt"); int i; double x; input >> i; // lê um valor inteiro input >> x; // lê um valor ponto flutuante "input" ao sair de escopo fecha o arquivo automaticamente (RAII Resource Aquisition Is Initialization) 32

33 Leitura //leitura01.cpp #include <iostream> #include <fstream> using namespace std; int main() { ifstream ent("leitura01.txt"); int i; ent >> i; cout << "i=" << i << endl; double x; ent >> x; cout << "x=" << x << endl; C:\hae>leitura01 i=2 x=3.14 O arquivo é fechado automaticamente quando ent sai do escopo pelo destruidor. 33

34 Tratamento de erros em C++ Erros ao se trabalhar com arquivos Arquivo não existe Fim de arquivo Erro na leitura (string quando esperava inteiro) Erro no dispositivo 34

35 Tratamento de erros em C++ Baseado na verificação de estado Muito antes de C++ incorporar exceções Estado composto por 4 bits (mais de um bit pode estar ativo) goodbit: sem erros eofbit: fim de arquivo encontrado em operações de leitura failbit: falha na leitura de um valor; erro lógico badbit: erro no dispositivo de E/S Dica: pode-se recuperar de um failbit mas não de um badbit 35

36 Tratamento de erros em C++ Métodos auxiliares rdstate() good() eof() fail() bad() goodbit eofbit failbit badbit Conversão automática para bool ajuda a verificar erros 36

37 Exemplo (média) #include <iostream> #include <fstream> using namespace std; int main() { ifstream in; in.open("avg.txt"); if (!in) { cerr << "Arquivo nao encontrado\n"; return EXIT_FAILURE; double total = 0; int n = 0; while (in) { double x; in >> x; if (in) { total += x; n++; if (in.bad()) { cerr << "Erro de E/S\n"; return EXIT_FAILURE; if (n > 0) { in.clear(); double avg = total / n; cout << "media: " << avg << "\n"; return EXIT_SUCCESS; 37

38 //media01.cpp #include <iostream> #include <fstream> using namespace std; int main() { ifstream in("media01.txt"); if (!in) { cerr << "Arquivo nao encontrado\n"; exit(1); double total = 0; int n = 0; double x; while (in >> x) { total += x; n++; if (n > 0) { double avg = total / n; cout << "media: " << avg << endl; Exemplo (média) media.txt Saída: media: 3 38

39 Fechamento de arquivos Um arquivo pode ser desconectado de um programa, chamando o método close( ); #include <fstream> using namespace std; const int filecnt = 3; const char* filetable [filecnt] = { "ClariceLispector.txt", MachadoDeAssis.txt, ManuelBandeira.txt ; int main() { ifstream infile; // não está associado a nenhum arquivo for (int ix = 0; ix < filecnt; ix++) { infile.open (filetable[ix]); //... Verifica se a abertura teve sucesso //... Processa o arquivo infile.close( ); 39

40 Exercício (baseado nas duas últimas aulas) 40

41 Exercício Considere um pequeno sistema que simula o controle de temperatura de um Local (residência, prédio, etc) Atua sobre uma quantidade de espaços (quartos, salas, escritórios, etc) Cada espaço controlado pode conter dispositivos de refrigeração e também sensores de temperatura e/ou de presença Valores podem ser lidos pelo sistema 41

42 Exercício O objetivo do exercício é lidar com sensores em um local, tratando dois aspectos básicos do sistema Gravação de um arquivo de registro (CSV) A leitura dos dados de cada sensor em cada espaço será simulada por meio de arquivos e o CSV é um arquivo texto O sistema deverá possuir um arquivo de configuração, a ser lido ao início de funcionamento do sistema Obs: Não trataremos de controle de arcondicionado ou de mudanças na estrutura do local ou dos espaços, apenas SENSORES. 42

43 Esquema de um Local controlado Quarto 1 66 ( Ar Condicionado com Ventilação) (Sensor de Temperatura) Cozinha 22 (Ventilador) (Sensor de Temperatura e de presença) Quarto 2 77 (Ar condicionado) (Sensor de Temperatura) Quarto 3 88 (Ventilador) (Sensor Temperatura) Escritório A 33 (Ar condicionado com ventilação) (Sensor de Temperatura) Quarto 4 99 (Ventilador) (Sensor Temperatura) Escritorio B 44 (Ar condicionado) (Sensor de Temperatura) Sala 55 ( Ar Condicionado com Ventilação) (Sensor de Temperatura e de presença) Copa 11 " (Ventilador) (Sensor Temperatura e de presença) 43

44 Características dos Refrigeradores e Sensores Ar condicionado com ventilação: Temperatura: de 10 oc a 30 oc Ventilação: de 0 a 4 Ventilador: Sensor de Temperatura/Presença: Cada espaço controlado pode ter um ou mais sensores. O sistema coleta esta informação e o valor lido permite verificar se o respectivo refrigerados está funcionando. Atenção: No exercício, o seu funcionamento será simulado por meio de valores aleatórios Ar condicionado simples: Não tem ventilação. Temperatura: de 5oC a 30 oc Não muda a temperatura. Apenas a percepcão do usuário. Ventilação: de 0 a 8. 44

45 Esqueleto O esqueleto do exercício permite definir sensores simples com seus identificadores (números inteiros) e representar o seu estado de alarme em um painel O estado do sensor será produzido por meio de um gerador aleatório Para iniciar o funcionamento o sistema solicita a leitura de um arquivo de configuração, que descreve a estrutura do Local 45

46 Formato do arquivo <nome do local> <número de espaços> <nome do espaço> <número de sensores> <tipo do sensor> <nome > <faixa de valores>... <nome do espaço> <número de sensores> <tipo do sensor> <nome > <faixa de valores>... A <faixa de valores> depende do tipo do sensor: Se o tipo é T, então há dois inteiros, mínimo e máximo Se o tipo é P então há um inteiro, 1 - ativado, ou 0 - não 46

47 Exemplo de arquivo de entrada Residencia 3 Sala 3 T SensorTemperatura_ T SensorTemperatura_ P SensorPresenca_1 1 Quarto 2 T SensorTemperatura_ P SensorPresenca_2 1 Banheiro 1 T SensorTemperatura_

48 Exemplo de Painel Residencia(alarme: LIGADO) Sala(alarme: LIGADO) SensorTemperatura_1(0 <= t <= 40) leitura: 10 C seguro: sim SensorTemperatura_2(0 <= t <= 40) leitura: -8 C seguro: nao SensorPresenca_1(ativa o alarme: sim) leitura: MOVIMENTO seguro: nao Quarto(alarme: LIGADO) SensorTemperatura_3(0 <= t <= 40) leitura: 3 C seguro: sim SensorPresenca_2(ativa o alarme: sim) leitura: MOVIMENTO seguro: nao Banheiro(alarme: DESLIGADO) SensorTemperatura_4(0 <= t <= 40) leitura: 17 C seguro: sim 48

49 Exemplo de arquivo de saída (CSV) Local;Espaþo;Sensor;Leitura Residencia;Sala;SensorTemperatura_1;-6 Residencia;Sala;SensorTemperatura_2;47 Residencia;Sala;SensorPresenca_1;1 Residencia;Quarto;SensorTemperatura_3;17 Residencia;Quarto;SensorPresenca_2;0 Residencia;Banheiro;SensorTemperatura_4;34 49

50 Exercício Suponha que o Local possa ter dois tipos de sensores SensorTemperatura, que dá alarme quando a temperatura ambiente cai abaixo de um valor limite SensorPresença, que dá alarme quando algum objeto interrompe o feixe de infravermelho 1. Em main, implemente a função carregararquivo que ao iniciar ler a configuração de um arquivo, que deverá ser construído com o padrão descrito anteriormente 2. Implemente a função de CSV no sistema. Ela deverá ser implementada na classe Registro. Construa tanto o header quanto a implementação 3. Implemente o caso 5 do menu prompt em main 50

51 Observação sobre o item 3 Visitor Padrão de projeto que permite desvincular a descrição de uma estrutura da especificação das ações que devem ser executadas sobre ela; Através de uma INTERFACE, torna-se obrigatória a implementação da ação a ser executada para todos os elementos (tipos) que compõem a estrutura em questão. Cria-se uma INTERFACE com métodos abstratos de visitação para todos os elementos: a) Todos os elementos deverão estar associados ao seu correspondente método de visitação; b) O nome do método deverá fazer referência ao tipo de elemento visitado; c) O método deverá receber como argumento um objeto correspondente ao tipo de nó visitado. 51

52 Continuação - Visitor Acrescentar, em todas classes que representam os elementos um método de visitação: a) Todos os métodos deverão ter o mesmo nome; b) Todos os métodos deverão receber como argumento um objeto da classe Visitor; c) O corpo desses métodos será composto por um único comando, responsável pela chamada no método de visitação específico, no argumento, conforme o tipo de nó em questão. Para cada tipo de operação diferente que se deseje executar sobre um elemento cria-se uma nova classe que implementa a interface VISITOR: a) Todas as classes assim especificadas deverão conter implementações para todos os métodos relacionados na interface; b) Cada método é responsável por executar a operação requerida sobre o tipo de elemento a que se refere; c) A referência THIS deverá ser passada como argumento em toda chamada de métodos de visitação. 52

53 Exemplo #include <cstdlib> #include <iostream> using namespace std; class Gato; class Cachorro; class AnimalVisitor { public: virtual void visit(gato *gato) = 0; virtual void visit(cachorro *cachorro) = 0; ; class Animal { private: int idade; public: Animal(int age) { idade = age; virtual void accept(animalvisitor *visitor) = 0; ; class EmissorDeSom : public AnimalVisitor { ; void visit(gato *gato){ cout << "Miau\n"; void visit(cachorro *cachorro){ cout << "Au!\n"; 53

54 Exemplo class Cachorro : public Animal { public: Cachorro(int age) : Animal(age) { void accept(animalvisitor *visitor){ visitor->visit(this); ; class Gato : public Animal { public: Gato(int age) : Animal(age) { void accept(animalvisitor *visitor){ visitor->visit(this); ; void emitirsom(animal *animal){ AnimalVisitor *visitor = new EmissorDeSom(); animal->accept(visitor); // faltou delete int main(int argc, char** argv) { Gato gato(3); Cachorro cachorro(5); Animal* animal[2] = {&gato, &cachorro; for (int i = 0; i < 2; i++) emitirsom(animal[i]); return 0; 54

55 //animal03b.cpp #include <cstdlib> #include <iostream> using namespace std; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Gato; class Cachorro; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class AnimalVisitor { public: virtual void visit(gato *gato) = 0; virtual void visit(cachorro *cachorro) = 0; virtual ~AnimalVisitor() { // Faltou ; class EmissorDeSom : public AnimalVisitor { void visit(gato *gato); void visit(cachorro *cachorro); ; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< class Animal { public: int idade; Animal(int age) : idade(age) { virtual void accept(animalvisitor *visitor) = 0; ; class Cachorro : public Animal { public: Cachorro(int age) : Animal(age) { void accept(animalvisitor *visitor); ; class Gato : public Animal { public: Gato(int age) : Animal(age) { void accept(animalvisitor *visitor); ; class ImprimirIdade : public AnimalVisitor { void visit(gato *gato); void visit(cachorro *cachorro); ; 55

56 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void EmissorDeSom::visit(Gato *gato) { cout << "Miau!\n"; void EmissorDeSom::visit(Cachorro *cachorro) { cout << "Au!\n"; void ImprimirIdade::visit(Gato *gato){ cout << "Gato com " << gato->idade << " anos\n"; void ImprimirIdade::visit(Cachorro *cachorro){ cout << "Cachorro com " << cachorro->idade << " anos\n"; //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void Cachorro::accept(AnimalVisitor *visitor){ visitor->visit(this); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void emitirsom(animal *animal){ AnimalVisitor *visitor = new EmissorDeSom(); animal->accept(visitor); delete visitor; // Faltou void imprimiridade(animal *animal){ AnimalVisitor *visitor = new ImprimirIdade(); animal->accept(visitor); delete visitor; int main() { Gato gato(3); Cachorro cachorro(5); Animal* animal[2] = {&gato, &cachorro; for (int i = 0; i < 2; i++) emitirsom(animal[i]); for (int i = 0; i < 2; i++) imprimiridade(animal[i]); void Gato::accept(AnimalVisitor *visitor){ visitor->visit(this); 56

57 Diagrama de Classes 57

58 Vector Container seqüencial, implementado como um array que automaticamente altera seu tamanho ao se acrescentar elementos ao seu final. private: typedef std::vector<int> IntVect; Nesse caso o apelido IntVect foi definido como um vetor de inteiros, que o permite alterar o tamanho dinamicamente (diferentemente de um array). 58

59 Unique_ptr unique_ptr é um tipo de ponteiro especial que automaticamente invoca o delete sobre uma memória alocada dinamincamente ao sair do escopo. Muito útil para gerência de memória. 59

60 Passagem por referência void f(int& a) { a=a+1; void g() { a=2; f(a); // aqui a vale 3 60

61 Referência para acelerar void f(const string& st) { cout << st << endl; void g() { st= abcdefdfsdfdfdfdfdfdfdfdfdfdfdfdf ; f(a); // O programa roda mais rápido 61

62 Bibliografia Lafore, R. Object-Oriented Programming in C++. Sams, 4th ed Savitch, W. C++ Absoluto. Pearson, 1st ed

Manipulação de Streams e arquivos

Manipulação de Streams e arquivos Manipulação de Streams e arquivos Prof. Leandro Tonietto Estruturas de Dados em C++ - Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto mar-09 Introdução Streams: Área de memória intermediária

Leia mais

Outline. 33. Manipulação de arquivos DIM

Outline. 33. Manipulação de arquivos DIM Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de

Leia mais

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros

Leia mais

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica. Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);

Leia mais

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem

Leia mais

Técnicas de Programação I

Técnicas de Programação I Técnicas de Programação I Conceitos básicos C/C++ Material baseado em sites da internet em especial no livro: STARTING OUT WITH C++ C++: Manipulação de Arquivos (1) ifstream : leitura (2) ofstream : escrita

Leia mais

Manipulação de Arquivos Binários

Manipulação de Arquivos Binários Introdução à Computação I Departamento de Física e Matemática FFCLRP-USP Prof. Dr. José Augusto Baranauskas IBm1006 1º Semestre/2006 Notas de Aula Manipulação de Arquivos Binários Até agora vimos como

Leia mais

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Nesta unidade vamos ver os últimos assuntos de interesse em java. O primeiro deles, bem simples, é o tratamento

Leia mais

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um

Leia mais

Programação Estruturada em C++: Extensões ao C

Programação Estruturada em C++: Extensões ao C Programação Estruturada em C++: Extensões ao C João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luís Paulo Reis (versão 2005/2006 e 2006/2007) FEUP - MIEEC Programação 2-2006/2007

Leia mais

Técnicas de Programação:

Técnicas de Programação: Técnicas de Programação: Programação Orientada a Objeto PROF. PROTÁSIO DEE-UFPB Classes e Objetos Classe É uma estrutura de dados que pode conter: Objeto Dados, e Funções. É uma instância de uma classe.

Leia mais

Carlos Eduardo Batista. Centro de Informática - UFPB

Carlos Eduardo Batista. Centro de Informática - UFPB Linguagem de Programação I Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação para o uso de C++ para o aprendizado de POO Quando usar C e quando usar C++ C++ versus Java Ambientes

Leia mais

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos: CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta

Leia mais

Introdução e Conceitos

Introdução e Conceitos Introdução e Conceitos Aula 1 11/08/2017 diegoquirino@gmail.com 1 Agenda 1. Motivações: porque estudar linguagens de programação? 2. Breve Histórico sobre as Linguagens de Programação 3. Processos de Tradução

Leia mais

PCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados

PCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados PCS 3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 5: Encapsulamento e Tipo Abstrato de Dados Escola Politécnica da Universidade de São Paulo Agenda Questões Típicas

Leia mais

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout

Leia mais

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 3: Introdução à linguagem C++ Introdução à linguagem C++ Vetores Estruturas Objetos Arquivos-texto 1 Vetores Vetores são uma séria de

Leia mais

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Exercícios Aula 2: Conceitos Básicos de OO

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Exercícios Aula 2: Conceitos Básicos de OO PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Exercícios Aula 2: Conceitos Básicos de OO Escola Politécnica da Universidade de São Paulo Cozinha REFAZER ESTE EXERCÍCIO

Leia mais

Pesquisa Linear. Adriano J. Holanda 15/3/2016

Pesquisa Linear. Adriano J. Holanda 15/3/2016 Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária

Leia mais

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia Calculo da área de um triângulo Algoritmo Área Var base,

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

Introdução à linguagem C++

Introdução à linguagem C++ Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas

Leia mais

Utilizando cin: primeiros passos

Utilizando cin: primeiros passos Utilizando cin: primeiros passos Já sabemos Que cout é usado para imprimir informações na tela Uma alterna6va em C é o prin9. Procure mais informações dele O que poderia ser usado para fazer entrada? Se

Leia mais

Linguagens compiladas: C++ Fora do livro adoptado

Linguagens compiladas: C++ Fora do livro adoptado Linguagens compiladas: C++ Fora do livro adoptado (rep.) Conceitos iniciais Computador Um computador é genericamente uma máquina programável capaz de receber, processar, e fornecer informação. Computador

Leia mais

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada

5COP088. Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior. Laboratório de Programação. Aula 2 Linguagem Estruturada 5COP088 Laboratório de Programação Aula 2 Linguagem Estruturada Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Exercícios - Laços 2) Ponteiros 3) Funções 4) Procedimentos 5) Recursividade 2 Exercícios sobre

Leia mais

1. Programação estruturada em C++: extensões ao C

1. Programação estruturada em C++: extensões ao C 1 FEUP/LEEC/AED/2002-2003 1. Programação estruturada em C++: extensões ao C João Pascoal Faria (versão original) Cristina Ribeiro (versão 2002/2003) Introdução à programação estruturada em C++ (extensões

Leia mais

ITENS FUNDAMENTAIS Programando em C++

ITENS FUNDAMENTAIS Programando em C++ INFORMÁTICA E COMPUTAÇÃO - CMP 1060 AULA 3 ITENS FUNDAMENTAIS Programando em C++ 1. Constantes São valores que são mantidos fixos pelo compilador. Tipo de Dado Exemplos de Constantes char b \n \0 int 2

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Manipulação de Arquivos Linguagem de Programação Estruturado Sumário Introdução; E/S ANSI Versus E/S UNIX; E/S em C Versus E/S

Leia mais

Alocação Dinâmica de Memória - Exercício Escreva um programa em C que manipule um vetor de inteiros não nulos alocado dinamicamente.

Alocação Dinâmica de Memória - Exercício Escreva um programa em C que manipule um vetor de inteiros não nulos alocado dinamicamente. 1 Alocação Dinâmica de Memória - Exercício Escreva um programa em C que manipule um vetor de inteiros não nulos alocado dinamicamente. O programa recebe inteiros, através da entrada padrão, e os insere

Leia mais

LINGUAGEM C: ARQUIVOS

LINGUAGEM C: ARQUIVOS LINGUAGEM C: ARQUIVOS Prof. André Backes ARQUIVOS Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial; Acesso

Leia mais

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015

PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015 PCS - 3111 Laboratório de Programação Orientada a Objetos 1a. Prova 02 de Setembro de 2015 Questão 1 (2,6) Deseja-se implementar um programa que recebe um mês e um dia atual de um ano e o mês e o dia de

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET43G Aula 7 Prof. Daniel Cavalcanti Jeronymo Orientada a Objetos Polimorfismo. Polimorfismo estático e dinâmico. Métodos virtuais, interfaces. Universidade Tecnológica Federal

Leia mais

Modelo de plano analitico

Modelo de plano analitico Modelo de pla analitico Disciplina: Algoritmização e Programação Curso: Licenciatura em Ensi de Informática A/Semestre: 1º A/2º Semestre Carga horária: 4 h/semana; Docente: Célio Sengo Introdução A linguagem

Leia mais

The Cyclops Project. Introdução: C++

The Cyclops Project. Introdução: C++ The Cyclops Project Introdução: C++ Aula 1 Visão Geral Histórico da Linguagem Programa C++: header, source função main() GCC Arquivos objeto, bibliotecas dinâmicas e estáticas #include, #define, namespaces,

Leia mais

Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco

Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco 168 Linguagem de Programação C++ Se analisarmos a manipulação do objeto c, efetuada no exercício anterior, e compararmos com o que acontece em um banco real no momento da abertura de uma conta, perceberemos

Leia mais

Bits e operações. Sistemas de Computação

Bits e operações. Sistemas de Computação Bits e operações Porque utilizar base 2? Representação na base 10 Estamos acostumados Representação natural para transações financeiras (precisão) Implementação eletrônica na base 10 Difícil de armazenar

Leia mais

Entrad Entrada / Saíd a / Saída

Entrad Entrada / Saíd a / Saída Entrada / Saída Entrada e Saída em C Entrada e saída pelo console Funções getchar e putchar Retorna ou escreve na saída padrão 1 caracter Função puts Escreve uma cadeia de caracteres na saída padrão (gets

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

Capítulo 11 Sistemas de Arquivos

Capítulo 11 Sistemas de Arquivos Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo Sistemas de s Introdução O armazenamento e a recuperação de informações

Leia mais

Arquivos. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Arquivos. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Arquivos Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Arquivos Um arquivo é uma coleção homogênea de itens que reside em disco. teclado

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

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

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

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

Capítulo 6: Arquivos

Capítulo 6: Arquivos Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de

Leia mais

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS

LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS Prof. André Backes DEFINIÇÃO String Sequência de caracteres adjacentes na memória. Essa sequência de caracteres, que pode ser uma palavra ou frase Em outras palavras,

Leia mais

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo Estruturas K&R: Capitulo 6 Estruturas Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo 2 1 Motivação Definir uma representação agregada na linguagem C para manipular

Leia mais

Centro 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 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 mais

Introdução a Programação de Jogos

Introduçã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 mais

Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1

Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1 Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1 Sumário As Origens da Linguagem C++; Primeiro Programa em C++; Declaração e Leitura de Variáveis; Estruturas de Seleção; if; switch; Estruturas

Leia mais

Fundamentos de Arquivos

Fundamentos de Arquivos Fundamentos de Arquivos Leandro C. Cintra M.C.F. de Oliveira Rosane Minghim 2004-2010 Fonte: Folk & Zoelick, File Structures 2 Arquivos Informação mantida em memória secundária HD Fitas magnéticas CD DVD

Leia mais

Overloading de Operadores

Overloading de Operadores Overloading de Operadores João Pascoal Faria (versão original) Ana Paula Rocha (versão 2004/2005) Luis Paulo Reis (versão 2005/2006) FEUP - MIEEC Prog2-2006/2007 Overloading de Operadores C++ permite utilizar

Leia mais

Programação Orientada a Objetos CLASSES E OBJETOS

Programação Orientada a Objetos CLASSES E OBJETOS Programação Orientada a Objetos CLASSES E OBJETOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Em que Parte do Conteúdo Estamos? Da Unidade III Classes e Objetos, já

Leia mais

Linguagem C: Introdução

Linguagem 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 mais

Introdução à Programação em C (II)

Introdução à Programação em C (II) Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem

Leia mais

Orientação a Objetos. Programação em C++

Orientação a Objetos. Programação em C++ OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 13: A classe Predefinida String. Prof. Jean Marcelo SIMÃO Classe String Uma classe Predefinida. Atribuição e concatenação de strings

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Classes e Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Lembrando Na Unidade II Modelagem Orientada a Objetos, vimos: Como utilizar

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 Introdução à Programação em C 28/01/2008 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Descreva,

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos Prof.: Bruno E. G. Gomes IFRN 1 Introdução Entrada e saída de dados pode ser feita: Para dispositivo de entrada/saída (monitor, impressora,

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

Métodos Computacionais. Arquivos

Métodos Computacionais. Arquivos Métodos Computacionais Arquivos Arquivos Um arquivo representa um elemento de informação armazenado em memória secundária (disco) Características: Informações são persistidas Atribui-se nomes aos elementos

Leia mais

Programação Estruturada em C++: Extensões ao C. Breve Historial

Programação Estruturada em C++: Extensões ao C. Breve Historial Programação Estruturada em C++: Extensões ao C Ana Paula Rocha, Luís Paulo Reis, João Pascoal Faria Programação 2-2008/2009 1972 1978 1983 1988 1995 Breve Historial Primeira versão da linguagem C criada

Leia mais

Linguagens de Programação I

Linguagens 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 mais

Projeto de Linguagem. Linguagens de Programação

Projeto de Linguagem. Linguagens de Programação Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumá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 mais

Elementos de programação em C

Elementos de programação em C Elementos de programação em C Entrada e saída: teclado e monitor de vídeo Francisco A. C. Pinheiro, Elementos de Programação em C, Bookman, 2012. Visite os sítios do livro para obter material adicional:

Leia mais

Programação Procedimental GBC /1 Prof. Renan Cattelan Prática 10. Estruturas e alocação dinâmica

Programação Procedimental GBC /1 Prof. Renan Cattelan  Prática 10. Estruturas e alocação dinâmica Programação Procedimental GBC014 2015/1 Prof. Renan Cattelan www.facom.ufu.br/~renan Prática 10 Estruturas e alocação dinâmica Exercício Crie um programa para armazenar uma agenda de contatos pessoais

Leia mais

6 Alguns conceitos e comandos em programação

6 Alguns conceitos e comandos em programação 6 Alguns conceitos e comandos em programação 6.1 Diretivas Diretivas são instruções que permitem ao programador efetuar algum tipo de modificação à compilação, sendo analisadas e executadas pelo pré-compilador,

Leia mais

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes

CIV 2802 Sistemas Gráficos para Engenharia º Trabalho: Programação básica em C++: Classes CIV 2802 Sistemas Gráficos para Engenharia 2011.1 4º Trabalho: Programação básica em C++: Classes Implementação de uma calculadora RPN (Reversed Polish Notation) Entrega: 05/abril/2011 Pede-se complementar

Leia mais

Representação de Dados

Representaçã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 mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos 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 mais

Overloading de Operadores

Overloading de Operadores Overloading de Operadores FEUP - MIEEC Programação 2-2008/2009 Overloading de Operadores C++ permite utilizar operadores standard para realizar operações com classes em adição aos tipos fundamentais. Por

Leia mais

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem 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 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

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome

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

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas 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 mais

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída Nome: Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída 1. A gerência de dispositivos de entrada e saída é uma das principais e mais complexas funções de um sistema

Leia mais

Aula 14: Funções Passagem de Parâmetros por Referência

Aula 14: Funções Passagem de Parâmetros por Referência CI208 - Programação de Computadores Aula 14: Funções Passagem de Parâmetros por Referência Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor

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

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem C foi desenvolvida no início da década de 70 por dois pesquisadores do Bell Laboratories, Brian Kernihgan e Dennis Ritchie,

Leia mais

LINGUAGEM C: ARQUIVOS

LINGUAGEM C: ARQUIVOS LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

Outras Linguagens. Aulas 26 e 27. DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos

Outras Linguagens. Aulas 26 e 27. DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos Outras Linguagens Aulas 26 e 27 Francisco Regateiro 1 Objetivos Revisitar os conceitos apresentados na 1ª aula. Reconhecer a aplicabilidade

Leia mais

Sobrecarga de Operadores

Sobrecarga de Operadores BCC702 - Programação de Computadores II Emiliana Mara Lopes Simões simoes.eml@gmail.com Universidade Federal de Ouro Preto junho 2010 Dificuldade: Tipos definidos pelo programador (classes) não podem ser

Leia mais

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler Aula 10 Alocação Dinâmica de Memória Listas Encadeadas prof Leticia Winkler 1 Prof. Leticia Winkler 2 Alocação de Memória Reservar na memória (principal), o espaço para guardar a informação através da

Leia mais

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Templates BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Os templates ou gabaritos fornecem a base para existência da programação genérica

Leia mais

Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler

Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Linguagem C - Arquivos - Prof. César Melo cavmelo@dcc.ufam.edu.br Slides preparados pelo Prof. Leandro Galvão galvao@dcc.ufam.edu.br Conceitos iniciais Um arquivo

Leia mais

Aula 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 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 mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Linguagem C++: arrays - aula I Bruno Emerson Gurgel Gomes 1 1 Instituto Federal de Educação, Ciência e Tecnologia do RN (IFRN) 2012 Bruno Gomes (IFRN) Fundamentos de Programação

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

Linguagem de Programação C++

Linguagem de Programação C++ Exercício: Linguagem de Programação C++ Construa o diagrama de classes UML para as classes envolvidas na solução do exercício do slide 253. 267 Sobrecarga Linguagem de Programação C++ Neste exercício vimos

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de

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