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

Documentos relacionados
UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Capítulo 2: Introdução à Linguagem C

INF 1005 Programação I

Curso C: Ponteiros e Arrays

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INF 1620 P1-10/04/02 Questão 1 Nome:

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

17 - Funções e Procedimentos em C Programação Modular

Introdução a C Tipos de Dados Variáveis Operadores

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Programação de Computadores I. Linguagem C Função

Estruturas de entrada e saída

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

Conteúdo programático

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Expressões. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

José Romildo Malaquias

Introdução à orientação a objetos

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Tipos de Dados Simples

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Curso de Linguagem C

Orientação a Objetos

Conceitos de Linguagens de Programação

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução à Programação

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Linguagem C. Ricardo Terra. Ricardo Terra Linguagem C 1 de agosto de / 341

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Introdução a Computação

Linguagem de Programação I

Aula 3/4: Vetores/Matrizes e Ponteiros

Introdução a POO. Introdução a Linguagem C++ e POO

Algoritmos e Programação Estruturada

Estrutura de Dados. Prof. Gustavo Willam Pereira. Créditos: Profa. Juliana Pinheiro Campos

Princípios de programação em Linguagem C Cesar Tadeu Pozzer UFSM 16/08/2010

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

INF 1007 Programação II

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Exercício de Revisão Linguagem C

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

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

Noções sobre Objetos e Classes

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

Algoritmos e Programação

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Universidade Federal de Uberlândia Faculdade de Computação. A Linguagem C

Alocação dinâmica de memória

INF 1005 Programação I

Analise o código abaixo:

Curso de C: uma breve introdução

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS

Algoritmos APRENDENDO A PROGRAMAR COM C#

5 Apresentando a linguagem C

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

20 Caracteres - Tipo char

Estruturas (Registros)

Variáveis e Comandos de Atribuição

Simulado de Linguagem de Programação Java

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

Linguagem de Programação I

struct LISTA item quant

Funções e Estrutura de Blocos

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

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

13 Números Reais - Tipo float

Do alto-nível ao assembly

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!):

Vetores, Matrizes e String

Programação Estruturada I

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

O COMPUTADOR. Introdução à Computação

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

A Linguagem Java. Alberto Costa Neto DComp - UFS

Introdução a Linguagem C

Primeiro Curso de Programação em C 3 a Edição

Programação de Computadores I. Ponteiros

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Curso de C para Engenharias

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Fundamentos de Programação

Transcrição:

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 o valor de uma variável de uma unidade O incremento/decremento pode ser antes ou depois da variável ser usada N++, incrementa n depois de ser usado ++N, incrementa n antes de ser usado Operador Sizeof Retorna o número de bytes ocupado por um determinado tipo int a = sizeof (float); Armazena 4 na variável a pois um float ocupa 4 bytes de memória Também pode ser usado em uma variável, retornando o número de bytes ocupado por esta variável

Conversão de tipo Ou Type Casting Conversão é feita automaticamente pelo C na avaliação de expressões Pode ser requisitado explicitamente pelo programador Entrada e saída São feitas com uso de funções Função printf printf (formato, lista de constantes/variáveis/expr...); Entrada e saída printf ("Inteiro = %d Real = %g", 33, 5.3); Entrada e saída Especificação do tamanho do campo com saída: Inteiro = 33 Real = 5.3 Caracteres de escape

Entrada e saída scanf (formato, lista de endereços das variáveis...) int n; scanf ("%d", &n); Funções Comando de definição de uma função Tipo_retorno nome_funcao (lista de parametros) Corpo da função Definição de Funções Pilha de Execução Variáveis locais têm escopo local Funções são independentes entre si Transferência de dados entre funções através de Passagem de parâmetros Valor de retorno Parâmetros em C são passados por valor Pilha de Execução: Coordena comunicação entre a função que chama e a função chamada Permite passagem de parâmetros e valores de retorno

Esquema representativo da memória Exemplo fat (5) Pilha de execução Ponteiro de variáveis Pode ser necessário comunicar mais de um valor de retorno para função que chama Por exemplo, uma função que deve calcular a soma e o produto de dois números #include <stdio.h> void somaprod (int a, int b, int c, int d) c = a + b; d = a * b; int main (void) int s, p; somaprod (3, 5, s, p); printf ( soma = %d produto =%d\n, s, p); return 0;

Ponteiros Permitem manipulação direta de endereços de memória no C Variáveis do tipo ponteiro Armazenam endereços de memória É possível definir um ponteiro para cada tipo do C que seja capaz de armazenar endereços de memória em que existem valores do tipo correpondente int a; int* p; // p armazena endereço de memória em que há valor inteiro Operadores de ponteiros Operador & ( endereço de ) Aplicado a variáveis, retorna o endereço da posição de memória reservada para variável Operador * ( conteúdo de ) Aplicado a ponteiros, acessa o conteúdo de memória do endereço armazenado pela variável ponteiro Exemplo int a; int* p; int c; Exemplos int main (void) int a; int *p; p = &a; *p = 2; printf ( %d, a); return; Imprime o valor 2

Exemplos int main (void) int a, b, *p; a = 2; *p = 3; b = a + (*p); printf ( %d, b); return 0; ERRO! Passando ponteiros para função Ponteiros permitem modificar o valor das variáveis indiretamente Possível solução para passagem por valor! void somaprod (int a, int b, int *p, int *q) *p = a + b; *q = a * b; int main (void) int s, p; somaprod (3, 5, &s, &p); printf ( soma = %d produto =%d\n, s, p); return 0; Exemplo Exemplo

Variáveis Globais Declaradas fora do escopo das funções São visíveis a todas as funções Existem enquanto o programa existir (não estão na pilha de execução) Utilização: Devem ser usadas com critério Pode criar muita dependência entre as funções Dificulta o entendimento e o reuso de código Exemplo de Variáveis Globais Variáveis Estáticas Declaradas no escopo de funções Existem enquanto o programa existir (não estão na pilha de execução) Somente são visíveis dentro das funções nas quais são declaradasa Utilização Quando for necessário recuperar o valor de uma variável na execução passada da função Exemplo de variável estática Função que imprime números reais Imprime um número por vez (máximo de 5 números por linha) void imprime (float a) static int n=1; printf ( %f, a); if ((n%5) == 0) printf ( \n ); n++;

Sobre variáveis estáticas e globais... Variáveis estáticas e globais são inicializadas com zero, quando não forem explicitamente inicializadas Variáveis globais estáticas São visíveis para todas funções subsequentes Não podem ser acessadas por funções de outros arquivos Funções estáticas Não podem ser acessadas por funções de outros arquivos Pré-processador e Macros Código C antes de ser compilado é passado pelo préprocessador O Pré-processador Reconhece diretivas Altera o código e envia para o compilador Diretiva #include O pré-processador substitui pelo corpo do arquivo especificado Pré-processador e Macros # include nome_do_arquivo Procura o arquivo do diretório local Caso não encontre, procura nos diretórios de include especificados para compilação # include <nome_do_arquivo> Não procura no diretório local Pré-processador e Macros Constantes #define PI 3.1415 Macros Definição com parâmetros #define MAX (a,b) ((a)>(b)?(a):(b)) O pré-processador substituirá o trecho de código: v = 4.5; c = MAX (v, 3.0); Por: v = 4.5; c = ((v) > (3.0)? (v): (3.0));