3. Linguagem de Programação C

Documentos relacionados
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara

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

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

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

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

Ponteiros de Variáveis

Aula de hoje. Funções. Introdução. Função. Definição de funções. Exemplo. SCC Introdução à Programação para Engenharias

Universidade Estadual do Maranhão Curso de Engenharia da Computação Mestrado em Engenharia da Computação e Sistemas

ponteiros INF Programação I Prof. Roberto Azevedo

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

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.

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

INF 1007 Programação II

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

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

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

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

2ª Licenciatura AED1 e PC1 Prof. Eduardo 1 1 MODULARIZAÇÃO

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

Introdução à Computação

3. Linguagem de Programação C

Linguagem C: Introdução

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

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Fig. 1: Ilustração de um exemplo de Modularização de um guindaste em suas partes Fonte: Internet

Algoritmos e Estruturas de Dados I Prof. Eduardo 1 1 MODULARIZAÇÃO

Noção de Funções. A Linguagem C permite que um programa seja escrito como um conjunto de funções que são executadas a partir de uma

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

Linguagem C (Funções)

LISTA DE EXERCÍCIOS MÊS 04

Alocação Dinâmica em C

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

3. Linguagem de Programação C

CURSO BÁSICO DE PROGRAMAÇÃO AULA 19. Netbeans - Linguagem JAVA - Vetores - Matrizes - Métodos

Algoritmos e Estruturas de Dados I IEC012. Procedimentos e Funções. Prof. César Melo Todos os créditos para o professor Leandro Galvão

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

Funções em Linguagem C Parte II

DAS5102 Fundamentos da Estrutura da Informação

Tipos Abstratos de Dados. Estrutura de Dados

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

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

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

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

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

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

Linguagens de Programação I

1. Selecione a Estrutura de Dados que melhor representa os diretórios ou pastas de arquivos do computador.

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

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

Modularidade - Fun ções e Procedimentos

Linguagem C. André Tavares da Silva.

Linguagem e Técnicas de Programação

LINGUAGEM C Estrutura / Funções

Computação 2. Diego Addan Aula 3. Funções

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

Comandos em C (cont.)

Programação: Vetores

Métodos e Procedimentos. Prof. Jesus José de Oliveira Neto

As funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:

Programação C/C++ Slide 5 Nielsen Castelo Damasceno

C Comandos de Controle

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

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Linguagem C: Subprogramação

Principais paradigmas de programação. Programação imperativa Programação funcional Programação lógica Programação OO

Templates. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

6 Alguns conceitos e comandos em programação

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

Variáveis primitivas e Controle de fluxo

Linguagens de Programação Aula 11

SUB-ROTINAS (PROCEDIMENTOS E FUNÇÕES)

Introdução à Computação

p A modularização consiste num método utilizado para facilitar a construção de grandes programas;

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

ALGORITMOS I. Procedimentos e Funções

Introdução à Linguagem C

Métodos Computacionais em Física I (FIW234) Turmas IFA e IFB Noções Básicas de Linguagem C

LP II Estrutura de Dados

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

1 Exercícios com ponteiros

Métodos Computacionais

Algoritmos e Programação de Computadores I Prof. Eduardo 1 1. FUNÇÕES

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

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

3. Linguagem de Programação C

Capítulo 7. Expressões e Sentenças de Atribuição

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO. Profa. Dra. Milena Guessi Margarido

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

Subprogramas. Prof. Carlos Lopes

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

12 - Dados Estruturados Vetores, Matrizes e Strings

Ponteiros. um ponteiro é uma variável que contém o endereço um dado declaração: * indica que a variável é um ponteiro. Ex: tipo_dado *nome_ponteiro;

Introdução à Programação em C

Introdução a Programação de Jogos

A linguagem C (visão histórica)

4. Algoritmos de Busca em Vetores

Transcrição:

Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1

Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de Funções 3.7.3. Passagem de Parâmetros 3.7.4. Funcionamento 3.7.5. Exercícios 2

3.7.1. Introdução Função ou Procedimento ou Sub-Rotina Agrupa um conjunto de comandos e associa a ele um nome O uso deste nome é uma chamada da função Após sua execução, programa volta ao ponto do programa situado imediatamente após a chamada A volta ao programa que chamou a função é chamada de retorno 3

3.7.1. Introdução A chamada de uma função pode passar informações (argumentos) para o processamento da função Argumentos = lista de expressões Lista pode ser vazia Lista aparece entre parênteses após o nome da função Ex. int Soma(int x, int y) { 4

3.7.1. Introdução Retornando resultados de funções No seu retorno, uma função pode retornar resultados ao programa que a chamou Exemplo: return (resultado); O valor da variável local resultado é passado de volta como o valor da função Valores de qualquer tipo podem ser retornados Funções: retornam valores Procedimentos: não retornam valores» Exemplo: void function (int x) 5

3.7.1. Introdução Comando return Encerra a execução da função No caso de procedimentos, é opcional Procedimentos return; Funções return (expressão); Expressão não precisa estar entre parênteses 6

3.7.2. Uso de Funções Definições e protótipos de funções Funções são definidas de acordo com a seguinte sintaxe: tipo nome (lista de parâmetros) { corpo de função } 7

3.7.2. Uso de Funções Definições e protótipos de funções Tipo de resultado Quando a função é um procedimento (ou seja, não retorna nenhum valor), usa-se a palavra chave void Procedimento não retorna valor Lista de parâmetros Funcionam como variáveis locais com valores iniciais Quando função não recebe parâmetros, a lista de parâmetros é substituída pela palavra void 8

3.7.2. Uso de Funções Protótipos Declaração Antes de usar uma função em C, é aconselhável declará-la especificando seu protótipo Tem a mesma forma que a função, só que substitui o corpo por um (;) 9

3.7.2. Uso de Funções Funcionamento de uma chamada: Cada expressão na lista de argumentos é avaliada O valor da expressão é convertido, se necessário, para o tipo de parâmetro formal Este tipo é atribuído ao parâmetro formal correspondente no início do corpo da função O corpo da função é executado 10

3.7.2. Uso de Funções Funcionamento de uma chamada: Se um comando return é executado, o controle é passado de volta para o trecho que chamou a função Se um comando return inclui uma expressão, o valor da expressão é convertido, se necessário, pelo tipo do valor que a função retorna O valor então é retornado para o trecho que chamou a função Se um comando return não inclui uma expressão nenhum valor é retornado ao trecho que chamou a função 11

3.7.2. Uso de Funções Funcionamento de uma chamada: Se não existir um comando return, o controle é passado de volta para o trecho que chamou a função após o corpo da função ser executado 12

3.7.2. Uso de Funções... float media (float prova_1, float prova_2, float trabalho) { float final; } if (trabalho > 5){ final = 0.3*trabalho + 0.7*(prova_1+prova_2)/2 ; } else{ final = 0.5*trabalho + 0.5*(prova_1+prova_2)/2 ; } return final; void main(void) {... for (i=0;i<nro_alunos;i++) { media_aluno[i]=media(prova_1[i],prova_2[i],trabalho[i]); }... } 13

3.7.3. Passagem de Informações Ocorre através da declaração de argumentos dentro da declaração Declaração de argumentos informa o número e tipo dos argumentos Conjunto de argumentos forma uma lista de declarações de variáveis separadas por vírgulas Ex.: double bolsa, double notas, int idade 14

3.7.3. Passagem de Informações Passagem de informações por valores Argumentos são passados como valores Quando chamada, a função recebe o valor da variável A passagem por valor significa que a função não pode mudar seu valor Os argumentos deixam de existir após a execução do método 15

3.7.3. Passagem de Informações Variáveis locais e globais A variável local só existe durante a vida da função Mesmo nome para variáveis locais em diferentes funções significam diferentes variáveis No entanto, se a variável for global, ela vale para toda a função Não se aconselha a utilização excessiva de variáveis globais Torna mais difícil manutenção do programa Torna mais difícil a busca por erros nos programas 16

3.7.3. Passagem de Informações Passagem de informações por referência Uso de ponteiros Possibilita modificar na função mais de uma variável da função original Possibilita alterar as variáveis na função original Exemplo... void func (int *a) {... } main() { int a;... }... func(&a); 17

3.7.3. Passagem de Informações Passagem de vetores como parâmetros Em C, vetores podem ser passados como parâmetro Tamanho do vetor não precisa ser informado na declaração da função Passar junto uma variável com o tamanho Funciona como passagem por referência Alteração em um valor do parâmetro, muda automaticamente o valor correspondente no argumento 18

3.7.3. Passagem de Informações... double media (double ind_notas[], int n){ int i; double total = 0.0; }... for (i = 0; i < n; i++){ total += ind_notas[i]; } return (total / n); 19

3.7.3. Passagem de Informações Relacionamento entre ponteiros e vetores Para o compilador, não existe diferença entre vetor e ponteiro quando eles são passados como parâmetros Dentro do computador, declarações vetor[ ] e *vetor são equivalentes Declaração de parâmetros deve refletir o seu uso 20

3.7.3. Passagem de Informações Se uma função recebe um vetor de uma dimensão, o parâmetro formal pode ser declarado de três formas: func (int *x){... } func (int x[10]){... } func (int x[]){... } 21

3.7.3. Passagem de Informações Os três métodos de declaração têm o mesmo resultado Cada um deles avisa ao compilador que um apontador para inteiro será recebido Primeira declaração usa um ponteiro Segunda declaração usa uma declaração padrão de vetor Terceira declaração avisa que um vetor do tipo int de tamanho indefinido será recebido 22

3.7.3. Passagem de Informações Uma declaração do tipo func (int val[32]){ Teria o mesmo funcionamento Compilador gera código instruindo func() a receber um ponteiro Não cria um vetor com 32 elementos 23

3.7.3. Passagem de Informações... sum = Soma (int v[], int vn);... int Soma (int vetor[], int n) { int i, soma; sum = Soma (int *v, int vn); int Soma (int *vetor, int n) { }... soma = 0; for (i = 0; i < n; i++){ soma += vetor[i]; } return (soma); 24

3.7.4. Funcionamento Mecanismo do processo de chamada de função 1. Valor dos argumentos é calculado pelo programa que está chamando a função 2. Sistema cria nova espaço para todas as variáveis locais da função (estrutura de pilha) 3. Valor de cada argumento é copiado na variável parâmetro correspondente na ordem em que aparecem 3.1 Realiza conversões de tipo necessárias 25

3.7.4. Funcionamento Mecanismo do processo de chamada de função 4. Comandos do corpo da função são executados até: 4.1 Encontrar comando return 4.2 Não existirem mais comandos para serem executados 5. O valor da expressão return, se ele existe, é avaliado e retornado como valor da função 6. Pilha criada é liberada 7. Programa que chamou continua sua execução 26

3.7.4. Funcionamento Projeto top-down Procedimentos e funções permitem dividir um programa em pedaços menores Facilita sua leitura É chamado de processo de decomposição Estratégia de programação fundamental Encontrar a decomposição certa não é fácil Requer experiência 27

3.7.4. Funcionamento Projeto top-down Melhor estratégia para escrever programas é começar com o programa principal Pensar no programa como um todo Identificar as principais partes da tarefa completa Maiores pedaços são candidatos a funções Mesmos estas funções podem ser decompostas em funções menores Continuar até cada pedaço ser simples o suficiente para ser resolvido por si só 28

3.7.5. Exercícios Exercício 3.7.1. Escrever um programa C, sem utilizar funções, que a) Leia três conjuntos de n números reais digitados pelo usuário (n pode ser diferente para cada conjunto); b) Imprima a média e o desvio padrão de cada um dos três conjuntos; c) Imprima a média e o desvio padrão das médias calculadas no item b). Exercício 3.7.2. Repetir o exercício anterior utilizando funções. 29

3.7.5. Exercícios Exercício 3.7.3. Escrever um programa C, utilizando funções, que a) Leia n números inteiros digitados pelo usuário; b) Imprima o máximo e o mínimo valor digitado. 30