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

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

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

Transcrição

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

2 Organização de Código Um programa de computador representa a implementação de uma solução de um determinado problema. O processo de desenvolvimento de um programa envolve diversas etapas: Entender o problema. Fazer uma análise do problema tentando identificar possíveis soluções. Desenvolver o projeto do software em si.

3 Organização de Código Por isso é fundamental que nosso programa seja escrito de forma organizada, a fim de facilitar a manutenção, o reuso, a adaptação do código, durante o processo de desenvolvimento ou no futuro. FUNÇÕES EM C: são procedimentos que podem ser executados por outros códigos (outras funções). As funções em C representam o mecanismo pelo qual podemos estender a linguagem. Por exemplo, estamos usando funções auxiliares para capturar dados oriundos do teclado (scanf) e também para imprimir dados na tela como saída (printf).

4 Criação de Novas Funções Um programa C é dividido em pequenas funções: Bons programas são compostos por diversas pequenas funções. Como o próprio nome diz, uma função representa uma funcionalidade. A vantagem de se ter o código modularizado em funções é que o código fica mais fácil de entender, de manter, de atualizar e de reusar. Toda função em C é definida assim: _tipo_retorno nome_da_funcao (lista_de_argumentos) { _corpo_da_funcao

5 Criação de Novas Funções Um programa C não pode ter duas funções com o mesmo nome. _tipo_de_retorno _nome_da_funcao { variáveis locais (params_entrada) instruções em C (comandos: expressões e operadores) return _tipo; Se uma função não tem uma lista de parâmetros colocamos void ou apenas o (). Se uma função não tem retorno colocamos void. Consiste no bloco de comandos que compõem a função.

6 Criação de Novas Funções #include <stdio.h> float celsius_fahrenheit(float tc) { float tf; /* 6 */ tf = 1.8 * tc + 32; /* 7 */ return tf; /* 8 */ int main(void) { float cels; /* 1 */ float fahr; /* 2 */ printf("entre com temperatura em Celsius: "); /* 3 */ scanf("%f", &cels); /* 4 */ fahr = celsius_fahrenheit(cels); /* 5 */ printf("temperatura em Fahrenheit: "); /* 9 */ printf("%f", fahr); /* 10 */ Uma grande vantagem de dividir o programa é aumentar seu potencial de reuso. Podemos usar essa função em qualquer outro programa que precise de uma conversão deste tipo. NO CÓDIGO AS FUNÇÕES DEVEM SER ESCRITAS ANTES DE SEREM CHAMADAS (exceção se usar.h) return 0; /* 11 */

7 Parâmetros e Valor de Retorno Uma função deve ter sua INTERFACE bem definida, tanto do ponto de vista semântico quanto do ponto de vista sintático: SEMÂNTICO: quando projetamos uma função, identificamos sua funcionalidade e com isso definimos que dados de entrada são recebidos e qual o resultado (saída) é produzido pela função. SINTÁTICO: os tipos dos dados de entrada e saída são especificados no cabeçalho da função.

8 Parâmetros e Valor de Retorno Analisando algumas funções: float celsius_fahrenheit (float tc) Funções que recebem mais de um parâmetro volume do cilindro: PI x r 2 x h #include <math.h> #define PI float volume_cilindro (float r, float h) { float v; v = PI * pow(r,2) * h; return v; Um único parâmetro de entrada Dois parâmetros de entrada que mesmo sendo do mesmo tipo cada um deve ter bem definito seu tipo e seu nome (armazenados como variáveis locais à função auxiliar) Uso da função auxiliar double pow (double b, double e); da biblioteca math.h

9 Parâmetros e Valor de Retorno int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); return 0;

10 Parâmetros e Valor de Retorno Uma chamada de uma função pode aparecer dentro de uma expressão maior. Por exemplo, se quiséssemos calcular a metade do volume do cilindro: volume = volume_cilindro(raio,altura)/2.0; Pode ser utilizada uma expressão válida na passagem de parâmetros: volume = volume_cilindro(raio, 2*altura);

11 Escopo de Variáveis Quando durante a execução do código é encontrada uma declaração de variável, o sistema reserva o espaço de memória correspondente. Este espaço de memória permanece disponível para o programa durante o tempo de vida da variável. VARIÁVEL LOCAL: Variável declarada dentro da função. A duração dela é enquanto a função estiver executando e ela só é visível dentro da função que ela está declarada. Assim que a função retorna os espaços de memória reservados para as suas variáveis locais são liberados para outros usos e o programa não pode mais acessar esses espaços.

12 Escopo de Variáveis VARIÁVEL LOCAL: Note que uma função pode ser chamada diversas vezes. Para cada execução da função, os espaços das variáveis locais são automaticamente reservados, sendo então liberados ao final da execução. Dentro de uma função não se tem acesso a variáveis locais definidas em outras funções. Os parâmetros de uma função também são variáveis automáticas com escopo dentro da função.

13 Escopo de Variáveis #include <math.h> #define PI float volume_cilindro (float raio, float altura) { float volume; volume = PI * pow(raio,2) * altura; return volume; Os nomes das variáveis locais são iguais mas a visibilidade é diferente. int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); return 0;

14 Escopo de Variáveis Não abordaremos nesse curso: Variável Global:» Declarada fora das funções» Existe ao longo de toda a execução do programa» Visível por todas as funções subsequentes Variável Estática:» Existe durante toda a execução do programa» Só é visível dentro da função que a declara

15 Modelo de Pilha A alocação dos espaços de memória dos parâmetros e das variáveis locais segue um modelo de pilha: ADICIONA SEMPRE NO TOPO e REMOVE SEMPRE DO TOPO, ou seja: QUANDO UMA DECLARAÇÃO DE UMA VARIÁVEL É ENCONTRADA, O ESPAÇO DE MEMÓRIA NO TOPO DA PILHA DE EXECUÇÃO É ASSOCIADO À VARIÁVEL. QUANDO O TEMPO DE VIDA DA VARIÁVEL SE EXTINGUE, O ESPAÇO CORRESPONDENTE DO TOPO DA PILHA É LIBERADO PARA SER USADO POR OUTRA VARIÁVEL.

16 Modelo de Pilha (2) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); return 0; Início e declaração de 3 variáveis já alocando (reservando) o espaço de memória na pilha de execução. Como nenhuma variável foi inicializada, elas estão com "lixo"

17 Modelo de Pilha (3) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); Valores fornecidos pelo usuário, capturados e armazenados na posição correspondente. return 0;

18 Modelo de Pilha (4) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); return 0; A chamada da função representa uma transferência do fluxo de execução para a função. Os parâmetros da função são alocados na pilha e seus valores são inicializados com os valores passados na chamada da função.

19 Modelo de Pilha (5) Note que neste momento como o controle da execução foi transferido para a função auxiliar, não se tem acesso às variáveis declaradas dentro da função main, apesar delas ainda estarem alocadas na base da pilha (A FUNÇÃO MAIN AINDA NÃO TERMINOU, APENAS TEVE SUA EXECUÇÃO SUSPENSA).

20 Modelo de Pilha (6) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); volume = volume_cilindro(raio, altura); Na função auxiliar, uma nova variável é declarada (com valor indefinido). printf("volume do cilindro = "); printf("%f", volume); return 0;

21 Modelo de Pilha (7) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) {... Neste momento, os parâmetros e variáveis locais são desempilhados e deixam de existir. Seu valor é computado e atribuído à variável local. Este valor é retornado pela função. NESTE MOMENTO A FUNÇÃO AUXILIAR TERMINA SUA EXECUÇÃO E DEVOLVE O CONTROLE PARA A MAIN.

22 Modelo de Pilha (8) #include <stdio.h> #define PI float volume_cilindro(float r, float h) { float v; v = PI * r * r * h; return v; int main(void) { float raio, altura, volume; printf("entre com o valor do raio: "); scanf("%f", &raio); printf("entre com o valor da altura: "); scanf("%f", &altura); No retorno do controle para a main, o valor retornado pela função é atribuído à variável volume. volume = volume_cilindro(raio, altura); printf("volume do cilindro = "); printf("%f", volume); return 0; SEMPRE: Ao término de cada função, as variáveis locais correspondentes são desempilhadas e o controle volta para a função que a chamou.

Capítulo 3: Programando com Funções

Capítulo 3: Programando com Funções Capítulo 3: Programando com Funções INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Organização de Código Um programa de computador representa a implementação

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 04 Funções Edirlei Soares de Lima Organização de Código Um programa representa a implementação de uma solução de um determinado problema. É fundamental

Leia mais

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

INF1005: PROGRAMAÇÃO I. Capítulo 12. Ivan Mathias Filho Funções Matemáticas INF1005: PROGRAMAÇÃO I Capítulo 12 Ivan Mathias Filho ivan@inf.puc-rio.br 1 Funções Matemáticas Função é uma relação de um ou vários valores de argumentos de entrada em um ÚNICO resultado de saída. O conjunto

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 Funções Prof. Augusto Baffa < abaffa@inf.puc-rio.br> Organização de Código Um programa representa a implementação de uma solução de um determinado problema. É

Leia mais

Introdução à Engenharia ENG1000

Introdução à Engenharia ENG1000 Introdução à Engenharia ENG1000 Aula 05 Funções 2018.1 Prof. Augusto Baffa Organização de Código Um programa representa a implementação de uma solução de um determinado problema.

Leia mais

Capítulo 3: Programando com Funções

Capítulo 3: Programando com Funções Capítulo 3: Programando com Funções Waldemar Celes e Roberto Ierusalimschy 9 de Fevereiro de 01 1 Organização de códigos Um programa de computador representa a implementação de uma solução de um determinado

Leia mais

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

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.

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

Introdução à Linguagem C Variáveis e Expressões

Introdução à Linguagem C Variáveis e Expressões INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída

Leia mais

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática Capítulo 2: Condicionais Pontifícia Universidade Católica Departamento de Informática Tomada de Decisão Até o momento, todas as instruções eram executadas, uma após a outra. No capítulo 3, vimos que a

Leia mais

Capítulo 4: Condicionais

Capítulo 4: Condicionais Capítulo 4: Condicionais INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Tomada de Decisão Até o momento, todas as instruções eram executadas, uma após a outra.

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 05 Estruturas Condicionais Edirlei Soares de Lima Tomada de Decisão Até o momento, todas as instruções dos nossos programas eram executadas sequencialmente.

Leia mais

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

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

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

Programação de Computadores II. Cap. 4 Funções Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

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

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. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

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

Introdução a Programação de Jogos

Introdução a Programação de Jogos Introdução a Programação de Jogos Aula 06 Estruturas Condicionais Edirlei Soares de Lima Tomada de Decisão Até o momento, todas as instruções dos nossos programas eram executadas

Leia mais

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1 INF1005: Programação 1 Condicionais 08/03/10 (c) Rogério Rodrigues 1 Tópicos Principais Tomada de Decisão Expressões Booleanas Blocos de Comandos Exemplos 08/03/10 (c) Paula Rodrigues 2 Tomada de decisão

Leia mais

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

Aula 07 Introdução à Programação Subprogramas Aula 07 Introdução à Programação Subprogramas Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro SubProgramas Procedimentos Funções Exercícios Gustavo Callou DEINFO/UFRPE 2 Sistema

Leia mais

ESTRUTURA DE DADOS (TCC )

ESTRUTURA DE DADOS (TCC ) ESTRUTURA DE DADOS (TCC-00.319) Ponteiros e funções Cristina Boeres 2 Ponteiros Variável do tipo ponteiro:! Linguagens como C permite o armazenamento e a manipulação de valores de endereços de memória!

Leia mais

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica

Leia mais

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

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

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

Linguagem C Funções. André Tavares da Silva. Linguagem C Funções André Tavares da Silva andre.silva@udesc.br Funções É uma coleção de comandos identificados por um nome (identificador); As funções executam ações e podem retornar valores; main, printf

Leia mais

Linguagem C: Elementos fundamentais

Linguagem C: Elementos fundamentais Instituto de C Linguagem C: Elementos fundamentais Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Variáveis e Constantes Operadores

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens

Leia mais

Ponteiros de Variáveis

Ponteiros de Variáveis Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem

Leia mais

Tópicos Especiais em Linguagens de Programação

Tópicos Especiais em Linguagens de Programação Tópicos Especiais em Linguagens de Programação Aula 03 Introdução à Linguagem Lua Edirlei Soares de Lima Linguagem Lua Lua é uma linguagem de programação projetada para dar suporte

Leia mais

Conceito de procedimentos e funções

Conceito de procedimentos e funções Tópicos Introdução Como funcionam as funções Declaração de funções Exemplo de funções 1 Introdução As funções, são unidades de código desenhadas para cumprir uma determinada tarefa. Até agora, já utilizamos

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória

Leia mais

Programação de Computadores II. Cap. 5 Alocação Dinâmica

Programação de Computadores II. Cap. 5 Alocação Dinâmica Programação de Computadores II Cap. 5 Alocação Dinâmica Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação

Leia mais

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

Cap. 3 Entrada e Saída e Controle de Fluxo Programação de Computadores II Cap. 3 Entrada e Saída e Controle de Fluxo Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

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

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

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

Programação : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação. Cap. 6 Subprogramas I Subprogramas I Programação 11543 : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação Cap. 6 Subprogramas I Subprogramas I Sumário: Modelo de programação imperativa revisitado Relação hierárquica entre

Leia mais

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

Introdução à Programação. Funções e Escopo de Variáveis Introdução à Programação Funções e Escopo de Variáveis Funções em C Funções constituem programas em C 2 Tópicos da Aula Hoje vamos detalhar funções em C Importância Escrevendo funções Comando return Passagem

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

Algoritmos e Estruturas de Dados I (DCC/003) Funções

Algoritmos e Estruturas de Dados I (DCC/003) Funções Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída

Leia mais

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ Ponteiros em C Adriano Joaquim de Oliveira Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Declaração Incrementando e Decrementando

Leia mais

Material sobre Funções AEDS 1

Material sobre Funções AEDS 1 Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -

Leia mais

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

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Modularidade - Funções e Procedimentos

Modularidade - Funções e Procedimentos Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 08 Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 03 - Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

Engenharia de Software

Engenharia de Software Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

5. Vetores e alocação dinâmica

5. Vetores e alocação dinâmica 5. Vetores e alocação dinâmica W. Celes e J. L. Rangel 5.1. Vetores A forma mais simples de estruturarmos um conjunto de dados é por meio de vetores. Como a maioria das linguagens de programação, C permite

Leia mais

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

Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO Programação de Computadores I Funções na Linguagem C PROFESSORA CINTIA CAETANO Introdução Funções são as estruturas que permitem ao usuário separar seus programas em blocos de construção. A principal característica

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

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

Podemos declarar um ponteiro para um ponteiro com a seguinte notação: tipo_da_variável **nome_da_variável; Ponteiros - Ponteiros para Ponteiros Podemos declarar um ponteiro para um ponteiro com a seguinte notação: tipo_da_variável **nome_da_variável; Algumas considerações: **nome_da_variável é o conteúdo final

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Aula Passada 1º Programa: olamundo.c #include // biblioteca padrão de E/S /* Programa Olá Mundo */ int main(void) { printf( Olá mundo\n ); //exibe Olá mundo

Leia mais

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

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 05 Subprogramas I Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre T. 05 Subprogramas I Sumário: Modelo de programação imperativa revisitado Relação hierárquica entre funções Diagrama de sintaxe

Leia mais

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

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

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos

Leia mais

Aula 07: Introdução a Funções

Aula 07: Introdução a Funções Aula 07: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos condicionais Exemplos diversos

Leia mais

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

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação Entender o problema Encontrar um algoritmo para resolvê-lo Implementar o algoritmo numa linguagem de programação Permitem implementar um algoritmo Expressar o algoritmo numa forma que o computador entenda

Leia mais

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

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programaçã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

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,

Leia mais

Controle de Fluxo - Condicionais. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Controle de Fluxo - Condicionais. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC Controle de Fluxo - Condicionais INF1005 Programação I Profa. Simone D.J. Barbosa simone@inf.puc-rio.br sala 410 RDC 1 controle de fluxo - condicionais tópicos if if else if else if else expressões booleanas

Leia mais

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

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

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

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

Encapsulamento de Código: Funções e Procedimentos Luciano Moraes Da Luz Brum Universidade Federal do Pampa Unipampa Campus Bagé email: lucianobrum18@gmail.com Encapsulamento de Código: Funções e Procedimentos Sumário Introdução à Funções e Procedimentos

Leia mais

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

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa? Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 09 Vetores Edirlei Soares de Lima Introdução Até agora nós temos usado variáveis simples para armazenar valores usados por nossos programas. Em várias

Leia mais

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

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C

Introdução à Ciência da Computação. Sumário. Modularização de Algoritmos. Agradecimentos. Modularização de Algoritmos e Funções em C Agradecimentos Introdução à Ciência da Computação e Funções em C Parte dos slides a seguir são adaptações dos originais: de A. L. V. Forbellone e H. F. Eberspächer do Prof. Rudinei Goularte Prof. Ricardo

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática INF1005 Programação I Pontifícia Universidade Católica Departamento de Informática 1 INF1005 Funções Pontifícia Universidade Católica Departamento de Informática 2 Funções Matemáticas Argumento 1 Argumento

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros 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 e Arranjos

Leia mais

controle de fluxo - condicionais

controle de fluxo - condicionais controle de fluxo - condicionais controle de fluxo - condicionais tópicos if if else if else if else expressões booleanas switch referências Capítulo 4 da apostila Capítulo 3 do livro condicionais (tomada

Leia mais

INF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1

INF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1 INF1005: Programação 1 Repetições 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Construção de Laços com while Algoritmos com Repetição Construção de Laços com for Repetição com Teste no Final 08/03/10

Leia mais

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

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Introdução a Linguagem C GE4 Bio GE4Bio Grupo de Estudos

Leia mais

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

Laboratório de Introdução à Ciência da Computação I Laboratório de Introdução à Ciência da Computação I Aula 1 - Estrutura Sequencial Professores: Vanderlei Bonato (responsável) - vbonato@icmc.usp.br Roberto de M. F. Filho (aluno PAE) - rmdff@icmc.usp.br>

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

Dividir para Conquistar. Material da Prof. Ana Eliza

Dividir para Conquistar. Material da Prof. Ana Eliza Dividir para Conquistar Material da Prof. Ana Eliza Modularização Situação: Necessidade de resolução de problemas cada vez maiores e/ou mais complexos. Solução: Dividir o problema grande e/ou complexo

Leia mais

C++ - Funções. Forma geral das funções C++

C++ - Funções. Forma geral das funções C++ C++ - Funções Conjunto de instruções para executar uma tarefa particular, agrupadas numa unidade com um nome para referenciá-las. O código é agregado ao programa uma única vez e pode ser executado muitas

Leia mais

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores

Leia mais

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012 Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012 PARTE 1: OPERADORES E COMANDOS BÁSICOS EXEMPLO 1.1: Programa que

Leia mais

C Estruturas. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

C Estruturas. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ C Estruturas Adriano Cruz adriano@nce.ufrj.br 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Section Summary 1 Introdução 2 Definições Básicas 3 typedef 4 typedef

Leia mais

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

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros Métodos Computacionais Funções, Escopo de Variáveis e Ponteiros Tópicos da Aula Hoje vamos detalhar funções em C Escrevendo funções Comando return Passagem de argumentos por valor Execução de uma função

Leia mais

Funções em Linguagem C Parte II

Funções em Linguagem C Parte II Slides inicialmente preparados pelo Prof. Dr. Claudio Fabiano Motta Toledo Funções em Linguagem C Parte II Profa. Dra. Elisa Yumi Nakagawa 1. Semestre 2017 Sumário Introdução a Ponteiros Escopo de Variáveis

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

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

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Funções Escopo de Variáveis Variáveis Globais

Leia mais

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse Introdução a C Formatação do codigo em C Todos os códigos em C possuem a seguinte formatação: bibliotecas variáveis globais procedimentos ou funções (se necessário) função principal E sempre são salvos

Leia mais

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

Programação I Funções. Prof. Carlos Alberto Programação I Funções Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Funções Funções são blocos de códigos que podem ser nomeados e chamados de dentro de um programa; Funções

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento

Leia mais

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

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 Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é

Leia mais

Módulo 8 Tipos Estruturados

Módulo 8 Tipos Estruturados Estruturas de Dados Módulo 8 Tipos Estruturados 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Modularidade - Fun ções e Procedimentos

Modularidade - Fun ções e Procedimentos Modularidade - Fun ções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situa ções, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de

Leia mais

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

INF 1620 P1-04/10/03 Questão 1 Nome: INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float

Leia mais