PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Documentos relacionados
Revisão de Programação em C++ Leandro Tonietto Estruturas de Dados em C++ Segurança da Informação

Controlo de Execução. K&R: Capitulo 3

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

Introdução à linguagem C

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make

Linguagem C. André Tavares da Silva.

Linguagem C: diretivas, compilação separada. Prof. Críston Algoritmos e Programação

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

Conhecendo a Linguagem de Programação C

6 Alguns conceitos e comandos em programação

Linguagens de Programação

A linguagem C (visão histórica)

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Acadêmico: Subprogramação (funções)

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

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

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Introdução à Programação Aula 16. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Preprocessador. Macros. #include. #define

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( )

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Programação: Vetores

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

16. Compilação no Linux

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Computação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função

Ambiente de desenvolvimento

Conceitos Básicos de C

3. Linguagem de Programação C

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

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Programação de Computadores II

Linguagem C Ficheiros Compilação Separada

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

Conceitos Básicos Linguagem C

ADTs (Abstract Data Types): Motivação

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Métodos Computacionais em Física Noções Básicas de Linguag

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011

Carlos Eduardo Batista. Centro de Informática - UFPB

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

UNIVERSIDADE DA BEIRA INTERIOR

TAD: Tipo Abstrato de Dados (parte 2)

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Laboratório de Introdução à Ciência da Computação I

Introdução a Programação de Jogos

TAD: Tipo Abstrato de Dados (parte 2)

Introdução à Linguagem C

Programação : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação. Cap. 6 Subprogramas I Subprogramas I

Algoritmos e Programação

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

Aula 10: Funções (Parte III)

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Computação eletrônica: Funções

Linguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Elementos de Linguagem C

ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018

Linguagem de Programação

Linguagens de Programação I

Mestrado em Engenharia Física Tecnológica

Introdução à Programação. Funções e Escopo de Variáveis

Introdução à Programação I

Introdução a linguagem C. Introdução à Programação 06/07

Revisão. Profa Marina Gomes

Estrutura de Programas e Tipos de Dados Simples

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)

Apêndice 1. Padrão de composição de módulos

Aula 2: Introdução a Linguagem C

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Linguagem de Programação C. Funções e Procedimentos

Introdução a Programação. Tipos Estruturados de Dados

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays

#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () {

Laboratório de Introdução à Ciência da Computação I

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Modularidade - Funções e Procedimentos

TE091 Programação Orientada a Objetos Engenharia Elétrica

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 05 Subprogramas I

Segundo programa: media.c

A ferramenta make. A - Introdução. O C é orientado para a produção de aplicações informáticas de grande dimensão

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

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Linguagem C: Introdução

Aula 3 Constantes e funções de E/S

Regras de estilo para código fonte em C/C++

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS CEFET-MG UNIDADE DE ENSINO

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Linguagem de Programação C

Linguagem C ponteiros

Transcrição:

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Resumo Pré-processador Directivas Macros Exemplos Exercícios

Pré-Processador O pré-processador da linguagem C é um processo automaticamente executado pelo compilador da linguagem antes do processo de compilação. Em termos gerais, disponibiliza quatro tipos de funcionalidades: Inclusão de ficheiros cabeçalho (header) Definição de Macros Compilação condicional Controlo de código

Pré-Processador #include <stdio.h> #define M 10 int main(){ int x[m];... Préprocess ador void printf() { int scanf(){ int main(){ int x[10];... Comp ilador

Pré-Processador: Transformações Gerais As directivas do pré-processador são normalmente indicadas pelo caractér "#". No entanto, existem 3 transformações feitas ainda antes da procura de directivas: Todos os comentários são substituídos por espaços em branco. Mudanças de linha através do caractér "\" são removidas. As macros pré-definidas são expandidas.

Pré-Processador:Directivas Inclusão Os diferentes ficheiros de código-fonte são incluídos no programa a compilar através da directiva #include. Pode incluir tanto ficheiros criados pelo programador, como bibliotecas nativas da linguagem. #include <ficheiro> Procura por ficheiro numa lista de directorias pré-definidas. É normalmente utilizado para incluir as bibliotecas de sistema. #include ficheiro Procura por ficheiro na directoria actual. É utilizado para incluir bibliotecasde funções criadas pelo programador.

Pré-Processador: #include Exemplo: void funcao1(){ void funcao2(){ F1.h F2.h F3.h typedef struct{ int bi; Pessoa; #include F3.h #include F1.h #include F2.h int main(){ typedef struct{ int bi; Pessoa; void funcao1(){ void funcao2(){ int main(){

Pré-Processador: Definição A directiva #define serve para criar alias para uma determinada sequência de caracteres. Quero que ABC DDEEE seja designado por AB. É bastante comum para definir constantes. Exemplo: #define TOTAL 100 int main(){ int x[total];

Pré-Processador: Condicional É comum que diferentes ficheiros necessitem de incluir bibliotecas comuns. Suponha-se que um nosso programa necessitava de funções das bibliotecas bib1.h e bib2.h. No entanto, por hipótese, tanto bib1.h como bib2.h inluíam bib3.h. Ao fazer a inclusão de bib1.h e bib2.h estava-se a incluir uma biblioteca repetida. #include bib1.h #include bib2.h int main(){...

Pré-Processador: Condições A solução será definir constantes identificadoras no ínicio de cada biblioteca e posteriormante só fazer a sua inclusão caso a respectiva constante não esteja definida. Exemplo: #define BIBLIOTECA1 Inclusão condicional: #ifndef BIBLIOTECA1 #include bib1.h #endif

Pré-Processador: Macros Uma macro pode ser entendida como um alias (#define é uma macro). Na sua forma mais simples, servem para substituir blocos de código extenso por abreviaturas: #define ST1 Esta é uma string escrita no programa int main(){ printf( %s,st1);

Pré-Processador A utilização de macros é especialmente vantajosa quando elas permitem a entrada de argumentos. Este tipo de macros designa-se por "funções macro". Para definir uma função macro utiliza-se também a directiva "#define", seguida imediatamente dos parêntesis e da lista de parâmetros. Exemplo: #define min(x, Y) ((X) < (Y)? (X) : (Y))

Pré-Processador Para utilizar a macro no programa, basta colocar o seu nome e os respectivos parâmetros, semelhante à utilização de 1 função: "min(a,b);" vai utilizar a macro "min" e fazer a subtituição de "X-->a" e "Y-->b". de igual forma, `min (x + 28, *p)' expande-se para: n ((x + 28) < (*p)? (x + 28) : (*p))

Pré-Processador Deve-se ter em atenção que o uso de parêntesis imediatamente a seguir ao nome da macro é o que determina se esta tem ou não parâmetros. Por exemplo, a seguinte macro recebe 1 argumento (x) e substitui-o por -1/x: #define BAR(x) - 1 / (x) No entanto, a seguinte macro apenas substitui a ocorrência de "BAR" pela expressão "(x) - 1/(x) #define BAR (x) - 1 / (x) A maior vantagem para o uso de macros é o desempenho, em comparação com a utilização de funções. Não são gastos recursos a passar o controlo de execução para a nova função.