Grupo Paralelismo – Unesp RC

Slides:



Advertisements
Apresentações semelhantes
Programação Orientada a Objetos – Parte II
Advertisements

Multiplicação Matriz-Vector
Manipulação de Arquivos de Dados
Usando o botões de comando, label e textbox
Java: Comandos Básicos
VHDL - uma visão geral 5 tipos de unidades
VHDL - Tipos de dados e operações
VHDL - Introdução MO801/MC912.
Espalhamento.
1 Estruturas de Controle Márcia J. N. Rodrigues Lucena Especialização em Técnicas e Ferramentas de Apoio à Decisão Departamento.
1 A Linguagem SQL Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. Com relação aos Bancos de Dados Relacionais,
Capítulo 4 Controle de fluxo. 2Capítulo 4 – Controle de fluxo Controle de fluxo if / else switch / case while do / while for break / continue Instruções.
Banco de Dados Aula 01: Conceitos Básicos
FORTRAN 90 Danilo Ueno Takahagi.
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
Modularização de Código. Modularizar código Construção do algoritmo em um módulo único (Início...Fim/ Program... End) Único arquivo.
Introdução ao Fortran 4/abril/2006. Pseudocódigo Compreensão do problema Elaboração da lógica de resolução Tradução da lógica para pseudocódigo.
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Utilização do montador Daedalus
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
(Como implementar multiplicação e divisão uma vez só :-)
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
Funções de um computador
Agregado Homogêneo e Heterogêneo
2ª Aula Teórica Prof. Cesar Costa
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
CES-41 COMPILADORES Capítulo IV Complementos de Análise Léxica.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo III Declarações e Comandos de Atribuição.
CES-41 COMPILADORES Aulas Práticas
CES-10 INTRODUÇÃO À COMPUTAÇÃO
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
CES-41 COMPILADORES Aulas Práticas Capítulo III Análise Semântica no Yacc.
CES-41 COMPILADORES Aulas Práticas Capítulo III Análise Semântica no Yacc.
Capítulo III Diagramas de Transições
Copyright, 2002 © Universidade de Caxias do Sul. Conceitos Básicos de Algoritmos.
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 1a série de slides versão 19/03/2012.
ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA SEQUENCIA DE INSTRUÇÕES
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
C/C++.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Laboratório de Programação
Gerador de Analisadores Léxicos
Prof. Giovanny Lucero Introdução Prof. Giovanny Lucero
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Intodução a C# Tecnologias Web
Entendendo as definições de classe
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Curso de Programação em C++
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
LINGUAGENS DE PROGRAMAÇÃO
Baseado no documento do Prof. Ronaldo Martins da Costa
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
HandyBoard & Interactive C. HandyBoard Especificações –Clock de 2 MHz –32 Kb de RAM –7 entradas para sensores analógicos –9 entradas para sensores digitais.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
FUNDAMENTO DE PROGRAMAÇÃO
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Algoritmos e Estruturas de Dados I
C / C++ Grupo Paralelismo – Unesp RC Juliana Danelute Rafael Amaro Saulo Ricardo Guerra Selma Haruyo Shimono.
Transcrição da apresentação:

Grupo Paralelismo – Unesp RC C / C++ Juliana Danelute Rafael Amaro Saulo Ricardo Guerra Selma Haruyo Shimono

Grupo Paralelismo - Unesp RC Parte 1 – C Parte 2 – C++

PARTE 1 C

Índice C parte 1 CONCEITOS BÁSICOS rf Estruturas Condicionais rf Matrizes rf Ponteiros JULIANA DANELETI Funções saulo Tipos de Dados do usuário rf Entrada e Saída ju Arquivos selma Diretivas de pré-processadores saulo Comentários saulo Units selma

Visão Geral de C C é uma linguagem de médio nível. C é uma linguagem estruturada. C é uma linguagem compilada. C pode ser compilada em separada.

Tipos de Dados Char Int ( Integer ) Float ( Real ) Double Void

Identificadores Os identificadores em C devem começar com uma letra ou _ ( sublinhado ) Os identificadores podem conter letras, números ou _ ( sublinhado) As primeiras 31 letras são significativas

Variáveis Forma geral da declaração de uma variável tipo ListaDeVariáveis As variáveis podem ser inicializadas na definição Variáveis globais Variáveis locais

Especificadores de tipo de classe de armazenamento EspDeArmazenamento tipo NomeDaVariável Extern - Referenciar variáveis globais em módulos compilados separadamente. Static - Mantém o valor de uma variável entre chamadas Register - Acesso mais rápido possível ( usando registradores em vez da memória )

Operadores e Atribuição = comando de atribuição - Menos + Mais * Multiplicação / Divisão % Resto da Divisão -- Decremento ++ Incremento

Operadores Relacionais > Maior < Menor >= Maior igual <= Menor igual = = Igual != Diferente

Operadores Lógicos && And || Or ! Not

Conversão de tipos Quando duas variáveis de tipos diferentes são misturadas, o compilador converte todos os operandos no tipo do maior operando.

Índice C parte 1 Conceitos Básicos ESTRUTURAS CONDICIONAIS Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units

Comando If If ( expressão ) comando; Else comando; ex: if (x > y) x = y; else x = 0;

Comando Switch Switch ( expressão ){ Case Comando1: seqüência de comandos Break ..... Default }

Exemplo Switch ( x ){ Case 1: escreve(x); break; Case 2: Registra(x); Default apaga(x); }

Comando For For( inicialização; condição; Incremento) comando; For( i = 0;i < 100; i++) j += i;

Comando while While ( condição ) comando; ex: while (x<12) { y += x y = y*y }

Comando do-while Do { comando; } while ( condição ); y += x; } while (x < 12);

Índice C parte 1 Conceitos Básicos Estruturas Condicionais MATRIZES Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units

Matrizes Unidimensionais Tipo NomeVar[tamanho] Ponteiros para matrizes Apenas o nome leva ao 1º elemento var == &var[0]

Matrizes como parâmetros Como ponteiro ex: func1(int* x) Como matriz dimensionada ex: func1(int x[10] Como matriz adimensional ex: func1(int x[]) Mesmo resultado pois a função recebe apenas um ponteiro e não cria de fato a matriz

Strings Matriz de caracteres terminados com o caractere nulo “/0” Constantes strings são declarados entre aspas duplas ex: “Olha eu aqui!”

Matrizes Bidimensionais tipo NomeVar [tamanho][tamanho] Matrizes multidimensionais tipo NomeVar[tamanho][tamanho]...[tamanho]

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes PONTEIROS Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units

Ponteiros Forma Geral de Declaração: tipo *nome; Operadores: &: devolve o endereço na memória do seu operando – “recebe o endereço de” *: devolve o valor da variável localizada no endereço que o segue – “recebe o valor que está no endereço de”

Ponteiros – Continuação Operações: Adição Subtração Não limitado a apenas incremento e decremento. Pode-se somar ou subtrair inteiros de ponteiros. Comparação: Em expressões relacionais

Ponteiros – Continuação Ponteiros e Matrizes: Para acessar elementos de matrizes usa–se aritmética de ponteiros ou indexação de matrizes Matrizes de Ponteiros: tipo *nome[num];

Ponteiros - Continuação Inicialização de Ponteiros: é necessário para evitar erros Alocação Dinâmica Malloc(): aloca memória Free(): libera memória

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros FUNÇÕES Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units

Funções EspTipo Nome ( ListaParâmetros ) { corpo da função } C não aceita funções dentro de funções

Parâmetros Formais Chamadas por valor ex: func1(int x) Chamadas por referência ex: func1(int *x)

Funções Programa principal Arquivo separado Biblioteca

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções TIPOS DE DADOS DO USUÁRIO Entrada e Saída Arquivos Diretivas de pré-processadores Comentários Units

Tipos de dados do usuário Estrutura (Struct) Campo de bit União (Union) Enumeração typedef

Struct Forma geral NomeVar { tipo NomeVar } ListaDeVariáveis Declaração de variáveis Struct NomeStruct NomeVar Struct podem ser passadas inteiras como argumentos Ponteiros para estruturas Struct também podem ser usados

Campos de Bit Usado para acessar um único bit dentro de um byte Forma Geral Struct nome { tipo nome1: comprimento; tipo nome2: comprimento; ... } Lista de variáveis

Uniões Posição de memória que é compartilhada por duas ou mais variáveis em momentos diferentes. Forma Geral Union nome { tipo NomeDaVariável; ... } ListaVariáveis

Enumerações enum Nome {ListaEnumeração} NomeVar É possível atribuir valores a seqüência criada

Typedef Typedef tipo nome Onde nome é o novo nome do tipo

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário ENTRADA E SAÍDA Arquivos Diretivas de pré-processadores Comentários Units

E/S pelo Console Lendo: Getch(); ch=getch(); Gets(); gets(str); Scanf(); scanf(“%t”,&variável); Escrevendo: Putchar(); putchar(ch); Puts(); puts(“alo”); Printf(); printf(“texto %t texto”, variável);

E/S pelo Console - Continuação %d %i %e %E %f %g %G Caractere Inteiros decimais com sinal Notação Científica Ponto flutuante decimal Usa %e ou %f, o que for mais curto Usa %E ou %F, o que for mais curto

E/S pelo Console - Continuação %x %X %p %n %% Octal sem sinal String de caracteres Inteiros decimais sem sinal Hexadecimal sem sinal (letras minúsculas) Hexadecimal sem sinal (letras maiúsculas) Apresenta um ponteiro Escreve o símbolo %

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída ARQUIVOS Diretivas de pré-processadores Comentários Units

E/S com Arquivos Para se iniciar a utilização das funções de arquivos em C é necessário saber a diferença entre Streams e Arquivo. Arquivo é um dispositivo real, que pode ser desde de um arquivo em disco até um terminal ou impressora. Streams é um dispositivo lógico criado pelo sistema de arquivos, sendo associada a um arquivo para que possamos trabalhar com diferentes tipos de dispositivos de uma mesma maneira.Existem dois tipos de Streams: texto e binária.

Considerações iniciais Para se utilizar as funções de E/S com arquivos é necessário que o cabeçalho STDIO.H esteja presente no programa. O arquivo de cabeçalho STDIO.H fornece protótipos para as funções e define três tipos: size_t, ftpos_t e FILE, onde size_t e ftpos_t são do tipo unsigned e FILE é um ponteiro para arquivo. A macro EOF definida em STDIO.H indica fim de arquivo e é definida como –1.

Ponteiro de Arquivo Um ponteiro de arquivo é um ponteiro para informações que definem várias coisas sobre o arquivo como o nome, status e a posição atual. Um ponteiro de arquivo é do tipo FILE. FILE *fp;

Funções Fopen() – abre arquivo FILE *fopen(const *char nomearq, const *char modo); Fclose() – fecha arquivo int fclose(FILE *fp);

Modos de abertura r – Abre arquivo texto para leitura w – Cria arquivo texto para escrita a – Anexa a um arquivo texto rb – Abre um arquivo binário para leitura wb – Cria um arquivo binário para escrita ab – Anexa a um arquivo binário OBS: Acrescentando + nos modos anteriores o arquivo trabalha tanto com leitura como com escrita.

Funções de caractere putc() ou fputc() int putc( int ch, FILE *fp); getc() ou fgetc() int getc( FILE *fp);

feof(), rewind() e ferror() Testa fim de arquivo int feof (FILE *fp); Reposiciona indicador de posição no início do arquivo void rewind (FILE *fp); Determina se operação de arquivo produziu erro int ferror (FILE *fp)

Funções de string fputs() int fputs (const char *str, FILE *fp); fgets() char *fgets (char *str, int lenght,FILE *fp);

remove() e fflush() remove() – apaga arquivo int remove (char *filename); fflush() – esvazia stream int fflush (FILE *fp);

fread() e fwrite() fread() size_t fread (void *buffer, size_t numbytes, size_t count, FILE *fp); fwrite() size_t fwrite (void *buffer, size_t numbytes, size_t count, FILE *fp);

fprintf() e fscanf() fprintf() int fprintf (FILE *fp, const char *control_string,...); fscanf() int fscanf (FILE *fp, const char *control_string,...);

fseek() fseek() int fseek (FILE *fp, long numbytes, int origin); Origin Nome da macro Inicío do arquivo SEEK_SET Posição atual SEEK_CUR Final do arquivo SEEK_END

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos DIRETIVAS DE PRÉ-PROCESSADORES Comentários Units

Diretivas de pré-processador #define #include #error #undef

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores COMENTÁRIOS Units

Comentários /* ... */ ex: /* Isto é um comentário! */ /* ... */ ex: /* Isto é um comentário! */ Obs: Todos os comentários são ignorados pelo compilador C.

Índice C parte 1 Conceitos Básicos Estruturas Condicionais Matrizes Ponteiros Funções Tipos de Dados do usuário Entrada e Saída Arquivos Diretivas de pré-processadores Comentários UNITS

Protótipo de função TipoDeRetorno NomeDaFunção (DeclaraçãoDeParâmetros);

Arquivos-cabeçalho Cabeçalho = header ; arquivos “.h” Contêm protótipos de funções Código em outro programa Compilação conjunta (projeto) Ex: stdio.h, conio.h

PARTE 2 C ++

Índice C++ parte 2 CLASSES Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga

Classes de C++ Ferramenta principal para Programação Orientada a Objetos Similar a Struct no sentido de agrupar membros (dados do objeto + funções) Permite definir atributos (características) ao objeto Simplifica programação e amplia reutilização do código

Classes de C++ Objeto, em um sentido mais simples, é um objeto mesmo, uma “coisa”, como por exemplo, um telefone, um arquivo Num sentido de programação, objeto é uma variável do tipo classe Classe dados n° fone, tipo métodos discar, atender Objeto telefone

Classes de C++ - Estrutura Class nome_classe { tipo dado_membro; // Dados do Objeto void exibe_membro; // Métodos }; // No programa principal Nome_classe objeto_um, objeto_dois;

Classes de C++ - Métodos A medida que os métodos se tornarem maiores, defini-los dentro da classe poderá congestionar a definição de classe Solução: colocar o protótipo dentro da classe e definir o método fora dela

Classes de C++ - Métodos Ex: class funcionario { void exibe_func(void); //Protótipo }; void funcionario::exibe_func(void) { Nome do método Nome da classe

Índice C++ parte 2 Classes DADOS PRIVADOS E PÚBLICOS Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga

Dados Públicos e Privados Se não colocar o rótulo public, pressupõe-se que todos os membros são privados Sendo privados, os programas não podem acessar os membros da classe usando o operador ponto objeto.alguma_variável = valor Somente as funções (métodos) de membro da classe podem acessar os membros de classe privados

Dados Públicos e Privados Ex: class funcionario { public: int atribui_valores(char*, long, float); void exibe_funcinario(void); private: char nome[64]; long func_id; float salario; };

Índice C++ parte 2 Classes Dados Privados e Públicos FUNÇÃO CONSTRUTORA E DESTRUTORA Sobrecarga de Operador Funções e Dados-membro estáticos Herança Classe Amiga

Função Construtora Métodos que facilitam aos programadores a inicialização dos dados-membro da classe Tem o mesmo nome da classe, porém, não precede o nome dela com a palavra-chave void Não retorna tipo É chamada quando se cria um objeto

Função Destrutora É chamada para descartar um objeto, liberando a memória que estava sendo usada Tem o mesmo nome da classe, porém, precedido do caractere til (~) Não retorna tipo, nem precede o nome dela com a palavra-chave void

Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora SOBRECARGA DE OPERADOR Funções e Dados-membro estáticos Herança Classe Amiga

Sobrecarga de operador Ao sobrecarregar um operador para uma classe, especifica-se uma função que C++ chama toda vez que a classe usa o operador sobrecarregado. O significado do operador muda somente para a classe, não para o programa todo.

Sobrecarga de operador Exemplo: void operator +(char *str) //na classe string { strcpy(data, str); } string titulo(“aprendendo ”); //func. constr. titulo + “C++”;

Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador FUNÇÕES E DADOS –MEMBRO ESTÁTICOS Herança Classe Amiga

Funções e dados-membro estáticos Para objetos de uma mesma classe compartilharem um ou mais dados-membro: public ou private: static tipo membro_compartilhado; Então, definir o membro como uma variável global, fora da classe: tipo nome_classe membro_compartilhado;

Funções e dados-membro estáticos Se a classe define, por exemplo: public: static int conta-pagina; /*definido depois como variável global*/ static void limpa_tela(void); os membros declarados podem ser usados pelo programa mesmo que não existam objetos da classe.

Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos HERANÇA Classe Amiga

Herança É a capacidade de uma classe derivada herdar as características de uma classe-base existente. A classe derivada acessa membros public (todo o programa acessa) e membros protected (só ela acessa) da classe-base.

Herança múltipla Acontece quando uma classe deriva de mais de uma classe-base. Exemplo: class computador : public tela_computador, public placa_mae Na derivação de uma classe por herança múltipla, a construtora da classe derivada precisa chamar funções construtoras para cada uma das classes-base.

Cadeia de herança Acontece quando uma classe é derivada de uma classe-base que já foi derivada de uma ou mais outras classes. Exemplo: Tela_computador Computador Estacao_trabalho Placa_mae Neste caso, a classe estacao_trabalho herda as características das três classes.

Índice C++ parte 2 Classes Dados Privados e Públicos Função Construtora e Destrutora Sobrecarga de Operador Funções e Dados-membro estáticos Herança CLASSE AMIGA

Classe amiga Permite o acesso aos membros privados entre classes não-relacionadas A classe cujos membros privados terão o acesso permitido declara uma outra classe como amiga na sua definição através do comando friend

Restringindo o acesso de uma amiga friend ProtótipoDaFunção Onde ProtótipoDaFunção define que funções a classe amiga terá acesso.

Bibliografia Schildt, Herbert C, Completo e Total; 1990; Editora Makron Books Jamsa, Kris Aprendendo C++; 1999; Editora Makron Books