Funções - Variáveis globais

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

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

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

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

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

Programação Estruturada

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

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

ALGORITMOS E ESTRUTURAS DE DADOS II (Parte 1)

Matrizes. Técnicas de Programação. Rafael Silva Guimarães <p://<p.ci.ifes.edu.br/informabca/rafael_guimaraes

Funções em Linguagem C Parte II

ponteiros INF Programação I Prof. Roberto Azevedo

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

Apontadores/ponteiros

Subprogramas. Prof. Carlos Lopes

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

Fundação Universidade de Rondônia Estrutura de Dados 1º semestre/2010 LISTA DE EXERCÍCIOS

Índice. Índice... 0 Passagem de parâmetros... 3 Procedures... 5 Funções... 5

LINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha

Modularidade - Funções e Procedimentos

Programação: Vetores

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

Arranjos. David Déharbe

Computação 2. Aula 7. Profª. Fabiany Ponteiros

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

INF 1007 Programação II

Ponteiros. Baseado nos slides do Prof. Mauro.

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

Aula 13 Oficina de Programação Modularização. Profa. Elaine Faria UFU

Vetores e Strings. 6. Comandos de entrada e saída formatada que trabalham sobre strings

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

Variáveis e Operadores em C

Curso de Programação C em Ambientes Linux Aula 04

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

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

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

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Aula 14: Funções Passagem de Parâmetros por Referência

#include <stdio.h> #define nl 3 #define nc 4 main () { int matriz[nl][nc],*p,i; for (i=0, p=&matriz[0][0];i<nl*nc;i++) *(p++)=i+1; for (i=0,

Modularidade - Fun ções e Procedimentos

LINGUAGEM C Estrutura / Funções

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

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

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

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.

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

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

Matrizes. Marina Andretta. 17 de abril de 2017 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 17 de abril de / 30

Introdução. Ponteiros

11a. Aula Ponteiros e Vetores

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

Introdução à Programação

INF 1005 Programação I - Prof. Hélio Lopes 24/04/2012

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

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

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

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

Estruturas Dinâmicas - Ponteiros Parte I

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

Vetores. e o programa deverá ler os valores separadamente:

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

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

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

Introdução à Programação. Estruturas de Repetição

PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS

Alocação Dinâmica de Memória - Exercício

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Exercícios Aula Prática XIV

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Dividir para Conquistar. Material da Prof. Ana Eliza

Computação 2. Aula 6B. Profª. Fabiany Vetor de Estruturas (structs)

LISTA DE EXERCÍCIOS MÊS 04

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.

Linguagem de Programação I Vetores e Strings. Thiago Leite Francisco Barretto

Programação para Games I

Ponteiros. prof. Fabrício Olivetti de França

Algoritmos e Estruturas de Dados I (DCC/003) Variável Indexada Vetor

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013

Fundamentos de Programação 1

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Manipulação de Arquivos Exercício/Exemplo:

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

Algoritmos e Programação

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.

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

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

Aula 5 - Mais C e repetição

Funciona como uma matriz unidimensional, mas tem mais de um índice. Sintaxe:

1) Operadores de auto incremento ++ e auto decremento --

Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação. Cap. 9 Subprogramas II: Passagem de Parâmetros Subprogramas II

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

Métodos Computacionais. Vetores e Matrizes Dinâmicas

INF 1620 P1-18/09/04 Questão 1 Nome:

Variáveis, Tipos de Dados e Operadores

LÓGICA DE PROGRAMAÇÃO. Resumo da Linguagem C. Sérgio Carlos Portari Júnior

Transcrição:

- Variáveis globais Variáveis globais são declaradas fora de todas as funções do programa. Elas são conhecidas e podem ser alteradas por todas as funções do programa. Quando uma função tem uma variável local com o mesmo nome de uma variável global a função dará preferência à variável local. Vamos ver um exemplo: 265

266 int z,k; func1 (...) int x,y;... func2 (...) int x,y,z;... z=10;... main () int count; z=7; func2(...);...

267 Exercício: Analise o seguinte programa e indique o que será impresso na saída padrão. #include <stdio.h> 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("\nnum antes = %d\tfirst antes = %d\tsec antes = %d", num, first, sec); num += func(first, sec); printf("\nnum depois = %d\tfirst depois = %d\tsec depois = %d", num, first, sec);

Exercício: Escreva o código fonte de um programa, na linguagem C, que manipule um vetor de inteiros com dez elementos. O programa deve possuir uma função responsável pela inicialização do vetor e outra função que efetue a impressão do vetor na saída padrão. Por meio das funções mencionadas, o programa deve inicializar o vetor e em seguida retorná-lo no monitor. 268

- Passagem de parâmetros por valor e passagem por referência Vimos que quando chamamos uma função os parâmetros formais da função recebem uma copia dos valores dos parâmetros que são passados para a função. Isto quer dizer que não são alterados os valores que os parâmetros têm fora da função. 272

- Passagem de parâmetros por valor e passagem por referência (continuação) Este tipo de chamada de função é denominado chamada por valor. Isto ocorre porque são passados para a função apenas os valores dos parâmetros e não os próprios parâmetros. Veja o exemplo a seguir: 273

274 #include <stdio.h> float sqr (float num) num=num*num; return num; main () float num,sq; printf ("Entre com um numero: "); scanf ("%f",&num); sq=sqr(num); printf ("\n\no numero original e: %f\n",num); printf ("O seu quadrado vale: %f\n",sq);

- Passagem de parâmetros por valor e passagem por referência (continuação) Outro tipo de passagem de parâmetros para uma função ocorre quando alterações nos parâmetros formais, dentro da função, alteram os valores dos parâmetros que foram passados para a função. Este tipo de chamada de função tem o nome de "chamada por referência". 275

- Passagem de parâmetros por valor e passagem por referência (continuação) O C só faz chamadas por valor. Isto é bom quando queremos usar os parâmetros formais à vontade dentro da função, sem termos que nos preocupar em estar alterando os valores dos parâmetros que foram passados para a função. Mas, isto também pode ser ruim, porque, às vezes, podemos querer que mudanças nos valores dos parâmetros formais reflitam nos parâmetros que foram passados para a função. 276

- Passagem de parâmetros por valor e passagem por referência (continuação) Quando queremos alterar as variáveis que são passadas para uma função, nós podemos declarar seus parâmetros formais como sendo ponteiros. Os ponteiros são a "referência" que precisamos para poder alterar a variável fora da função. O único inconveniente é que, quando usarmos a função, teremos de lembrar de colocar um & na frente das variáveis que estivermos passando para a função. Veja um exemplo: 277

278 #include <stdio.h> void incrementa (int *a,int b) *a+=b; main () int num; num=100; printf ( \nvalor de num antes da chamada %s%d, da funcao:, num); incrementa (&num,50); printf ( \nvalor de num depois da chamada %s%d, da funcao:, num);

Exercício: Construa um programa em C que possua uma função responsável por fazer a troca de valores entre duas variáveis. O programa deve receber dois valores inteiros, através da entrada padrão, armazená-los em variáveis, e com a utilização da função mencionada trocar o conteúdo das variáveis e depois retorná-las na saída padrão. 279

Exercício: Escreva o código fonte de um programa, na linguagem C, que manipule um vetor de inteiros com dez elementos. O programa deve possuir uma função responsável pela inicialização do vetor e outra função que efetue a impressão do vetor na saída padrão. Por meio das funções mencionadas, o programa deve inicializar o vetor e em seguida retorná-lo no monitor. Obs. o programa não pode possuir variáveis globais. 281