Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Documentos relacionados
Funções - Variáveis globais

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. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

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

ESTRUTURA DE DADOS (TCC )

ponteiros INF Programação I Prof. Roberto Azevedo

Aula 08: Funções (Parte II)

Programação Estruturada

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

Aula 07 Introdução à Programação Subprogramas

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Subprogramas. Prof. Carlos Lopes

Ponteiros e Tabelas. K&R: Capítulo 5

Linguagem C. André Tavares da Silva.

Apontadores/ponteiros

Ponteiros e Alocação de Memória

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

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

Introdução à Programação

Revisão para Prova 2. Mirella M. Moro

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Programação I Funções. Prof. Carlos Alberto

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

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

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

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

ECT1203 Linguagem de Programação

LINGUAGEM C Estrutura / Funções

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

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Faculdade de Computação

INF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas

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

Curso de C para Engenharias

Funções em Linguagem C Parte II

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

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Programação de Computadores II. Cap. 5 Vetores

Funções. Prof. Fabrício Olivetti de França

Introdução. Ponteiros

Introdução à Programação

Podemos declarar um ponteiro para um ponteiro com a seguinte notação: tipo_da_variável **nome_da_variável;

Linguagem de Programação C. Expressões em C

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Ponteiros. Baseado nos slides do Prof. Mauro.

Dividir para Conquistar. Material da Prof. Ana Eliza

Linguagem de Programação I. Aula 10 Funções

Aula 15 - Aula sobre Funções e Procedimentos

Algoritmos e Estruturas de Dados I (AEDI) Introdução - AEDI. Prof. Paulo Henrique Pisani

Estruturas Dinâmicas - Ponteiros Parte I

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

Programação de Computadores II. Cap. 4 Funções

INF 1007 Programação II

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

Vetores. Marina Andretta. 11 de abril de 2016 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 11 de abril de / 20

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática

Capítulo 3: Programando com Funções

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

Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO

Ponteiros de Variáveis

Introdução a Linguagem C

Slide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.

char *strchr (const char *str, int ch);

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Mais sobre Ponteiros em C

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

CURSO BÁSICO DE PROGRAMAÇÃO AULA 14. Funções e procedimentos

Linguagem C Funções. André Tavares da Silva.

Introdução a Programação de Jogos

Cap. 3 Entrada e Saída e Controle de Fluxo

Modularidade - Funções e Procedimentos

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

MC-102 Aula 13. Instituto de Computação Unicamp. 29 de Setembro de 2016

Estruturas de Dados Homogêneas (Vetores e Matrizes) e Ponteiros em C

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

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

Algoritmos e Programação

Linguagem C Princípios Básicos (parte 1)

Aula 18: Funções em C

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

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

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

GFM015 Introdução à Computação Algoritmos e Programação / Estrutura de Controle de Fluxo / Ambiente de Programação

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Linguagem C: Elementos fundamentais

Encapsulamento de Código: Funções e Procedimentos

Linguagem C: Introdução

Linguagem de Programação

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

Aula 1 Apresentação do Curso

Transcrição:

Linguagem C: funções e ponteiros Prof. Críston Algoritmos e Programação

Funções Recurso das linguagens de programação que permite dar um nome para um conjunto de instruções Facilita a reutilização de algoritmos com um pouco de organização não precisamos fazer novamente algoritmos que já implementamos no passado podemos utilizar algoritmos implementados por outras pessoas

Funções em C tipo_retorno nome_função (parâmetros) comando1; comando2;... Bloco: conjunto de instruções entre chaves Comando return

Exemplo double pi () printf( Retorna o valor de pi\n ); return 3.14; main() double raio = 1.0; double area = 2 * pi() * raio;

Função sem retorno: tipo void void imprime_menu () printf( 1- Inserir\n ); printf( 2- Remover\n ); printf( Opcao? ); main() imprime_menu();... imprime_menu();

Modificando o comportamento das funções: passagem de parâmetros double area (double raio) return 2 * 3.14 * raio; main() printf( A area vale %f\n, area(1.0));

Escopo de variáveis Regras que determinam onde as variáveis podem ser acessadas no programa. Variáveis locais Parâmetros Variáveis globais

Variáveis locais Existem apenas no bloco onde foram declaradas Ex.: variável raio existe apenas dentro da função area double area () double raio = 1.0; return 2 * 3.14 * raio; main() // variável raio não pode ser acessada aqui

Parâmetros Podemos interpretar parâmetros como variáveis locais criadas no início da função e inicializadas com os valores recebidos na chamada da função. double area (double raio) // é o mesmo que double raio = 1.0; return 2 * 3.14 * raio; main() printf( A area vale %f\n, area(1.0));

Exercício Função fatorial que recebe um inteiro n e retorna o fatorial de n. Função base_ln que recebe um inteiro k e retorna a soma dos k primeiros termos da série 1 + 1/1! + 1/2! + 1/3! + Utilize a função fatorial.

Variáveis globais (uso deve ser evitado) São declaradas fora das funções e podem ser acessadas por qualquer função Se uma função tem uma variável local com o mesmo nome de uma variável local, a variável local será utilizada

Variáveis globais (uso deve ser evitado) int z,k; func1 (...) int x,y;... func2 (...) int x,y,z;... z=10;... main () int count; z=7; func2(...);...

Exercício O que vai ser impresso na tela? int num; int func(int a, int b) a = (a+b)/2; num -= a+1; return a; main() int first = 0, sec = 50; num = 10; printf("%d %d %d\n", num, first, sec); num += func(first, sec); printf("%d %d %d\n", num, first, sec);

Ponteiro Variável que armazenam o endereço de memória de outra variável Declaração: tipo *nome; Ex: int *pt; Operador &: foneçe o end. de memória de uma variável Ex.: int count = 10; int *pt; pt = &count; Operador *: acessando/modificando variável apontada Ex.: int n = 2 + *pt; // n recebe valor 12 *pt = 5; // isto modifica também count

Exemplo main() int n = 10; int *p; p = &n; printf( Valor na memória: %d\n", *p); printf( Endereço de memória %p\n", p); *p = 5; printf( Valor de n: %d\n", n);

Passagem de parâmetro por valor x referência Por valor: valor é copiado para o parâmetro da função double area (double raio) return 2 * 3.14 * raio; main() double r = 1.0; printf( A area vale %f\n, area(r)); // valor de r é copiado para o parâmetro raio

Passagem de parâmetro por valor x referência Por referência: o endereço de memória é copiado para o parâmetro da função (permite modificar a variável passada como parâmetro) double area (double *raio) return 2 * 3.14 * (*raio); raio = 0.0; main() double r = 1.0; printf( A area vale %f\n, area(&r)); // r agora vale 0.0

Exemplo O que vai ser impresso na tela? void incrementa (int *a, int b) *a += b; main () int num; num=100; printf ( Valor de num %d\n, num); incrementa (&num,50); printf ( Valor de num %d\n, num);

Exemplos Exemplo: função scanf Função para trocar o valor de duas variáveis inteiras passadas como parâmetro.

Exercício Função que retorna 1 se o valor passado como parâmetro for primo, e 0 caso contrário. Função para imprimir todos os valores primos entre A e B recebidos como parâmetro. Utilizar a função anterior. Função que recebe por referência 4 variáveis ponto flutuante e ordena (crescente) os valores destas variáveis. Utilize a função que troca os valores de 2 variáveis.