Linguaguem de Programação II

Slides:



Advertisements
Apresentações semelhantes
Centro Integrado de Tecnologia da Informação
Advertisements

Um programa em C Bibliotecas Variáveis globais
V Procedimentos – são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento é chamado. v Funções – são procedimentos.
Construção de Algoritmos AULA 07
Programação II Estruturas de Dados
Algoritmos e Estrutura de Dados I
Alocação Dinâmica de Memória
Linguagem C LPG – I - FUNÇÕES Prof. Flavio Marcello
LPG-I: Tipos Complexos - Estruturas
LINGUAGEM ESTRUTURADA TURBO C
Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Programação II Estruturas Professora: Norminda Luiza.
Linguagem C Strings.
Linguagem C Funções.
Vetores, Matrizes e Funções
Linguagem C Estruturas de Seleção.
Matrizes e Funções - Continuação
Modularização: funções e procedimentos (continuação)
Unidade I: “Dê um mergulho rápido”
Subprogramas São blocos de execução internas a um programa.
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação.
PROGRAMAÇÃO ESTRUTURADA II
Marco Antonio Montebello Júnior
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Prof. Ricardo Santos PONTEIROS
Técnicas de Desenvolvimento de Programas
F UNÇÕES : PASSAGEM DE PARÂMETROS Aluno:Kaynã Vasconcelos Santos Matéria: Estrutura de dados e algoritmos I Turma: Professor: Danilo Silva dos Santos.
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Uso de parâmetros na linha de comando. Parâmetros da função main:
Introdução à Linguagem C
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Revisão Luis Antonio Tavares
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Construção de Algoritmos AULA 05
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Programação Computacional Aula 9: Meu primeiro programa em C
Ameliara Freire Dividir para Conquistar.
Introdução à Programação Engenharia da Computação Aula Prática 3 Funções Monitoria
Profa. Maria Augusta Constante Puget
Ponteiros em C Prof. Kariston Pereira
Linguaguem de Programação II
Linguagem de Programação II
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Estruturas Homogêneas – Vetores e Matrizes
PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez.
Profa. Maria Augusta Constante Puget
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
Algoritmo e Estrutura de Dados I Aulas 14 – Linguagem C Matriz Márcia Marra
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
PRE 1002 Éverlin Marques 2015/1.
Fundamentos de Programação 1
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Estruturas Homogêneas - Vetores
1 Aula 07 Strings Prof. Filipe Mutz. 2 Em nossos programas ainda não vimos como armazenar palavras e textos, e eles são muito importantes! Exemplos: Programas.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Estrutura de Dados Revisão
Transcrição da apresentação:

Linguaguem de Programação II Aula 6 Funções Prof. Luiz José Hoffmann Filho ljhfilho@gmail.com

O Que é uma função? Funções são os blocos de contrução de C e o local onde toda a atividade do programa ocorre. Elas são uma das características mais importantes do C.

Forma Geral de uma função <tipo> nome_da_função(lista de parâmetros) { <Corpo da função> } Declaração do parâmetros: (<tipo> <nomevar1>, …, <tipo><nomevarN) Corpo da função: Declaração de variáveis locais. Incluisão de comandos (if else, while, for …)

Argumentos de funções Se uma função usa argumentos, ela deve declarar variáveis que aceitem os valores dos argumentos. Essas variáveis são chamadas de parâmetros formais da função. Elas se comportam como quaisquer outras variáveis locais dentro das função e são criadas na entrada e destruídas na saída. Exemplo: is_in(char *s, char c) { while(*s) { if(*s == c) return 1; else s++; } return 0;

Chamada por valor Esse método copia o valor de uma argumento no parâmetro fomal da sub- rotina. Assim, alterações feitas nos parâmetros das sub-rotina não têm nenhum efeito nas variáveis usadas para chamá-la.

Chamada por valor Exemplo: #include <stdio.h> int sqr( int x) { x =x *x; return x; } int main () { int t = 10; printf(“%d %d”, sqr(t), t); return 0;

Chamada por referência Nesse método, o endereço de um argumento é copiado no parâmetro. Dentro da sub-rotina, o endereço é usado para acessar o argumento real utilizado na chamada. Isso significa que alterações feitas no parâmetro afetam a veriável usada para chamar a rotina.

Chamada por referência Exemplo: #include <stdio.h> void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int i, j; i = 10; j = 20; swap(&I, &j); printf(“%d %d”, i, j); return 0;

Chamando funções com Matrizes A passagem de matrizes, como argumentos, para funções, é uma exceção à conveção de passagem de parâmetros com chamada por valor. Quando uma matriz é usada um argumento para um função, apenas o endereço da matriz é passado para a função. Isso significa que a declaração de parâmetros deve ser de um tipo ponteiro compatível. Existem 3 maneiras de declarar um parâmetro que receberá um ponteiro para matriz.

Exemplo : Primeira forma #include <stdio.h> void display( int num[10]) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0;

Exemplo: Segunda Forma #include <stdio.h> void display( int num[]) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0; Declarado com tamanho desconhecido

Exemplo: Terceira Forma #include <stdio.h> void display( int *num) { int i; for(i=0;i<10;i++) printf(“%d”, num[i]); } int main() { int t[10], i; for(i=0; i<10;i++) { t[i] = i; display(t); return 0; Com ponteiro, e poderá utilizar o [] sem problemas.

Chamando Funções com Matrizes Importante: Uma matriz é usada como um argumento para uma função, seu endereço é passado para a função. Isso é uma exceção à convernção de C no que diz respeito a passar parâmetros. Nesse caso, o código dentro da função está operando com, e pontecialmente alterando, o conteúdo real da matriz usada para chamar a função

argv e argc – Argumentos para main Geralemente, você passa informações para a função main() via argumentos da linha de comando. Um argumento da linha de comando é a informação que segue o nome do programa na linha de comando do sistema operacional. O parâmentro argc contém o número de argumentos da linha de comando e é um inteiro. Ele é sempre pelo menos 1 por que é o nome do programa é qualificado como primeiro argumento. O parâmetro argv é um ponteiro para uma vetor de ponteiros para caractere. Cada elemento nese vetor aponta para um argumento da linha de comando. Todos os argumentos da linha de comando são strings – quaisquer números terão de ser convertidos pelo programa no formato interno apropriado.

Exemplo: #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { if(argc !=2) { printf(“Você esqueceu de digitar seu nome”); return 1; } printf(“Ola %s”, argv[1]); return 0;

Importante Se tiver mais de um argumento de ser utilizado o “espaço” para separa-los. Exemplo: Run Sport, run - > são 3 argumentos Herb,rick,fred -> é apenas 1 argumento.

Comando return O comando return tem dois importantes usos: Ele provoca uma saída imediata da função que o contém. Isto é, faz com que a execução do programa retorne ao código chamador. Ele pode ser usado para devolver um valor.

Exemplo 1: finalizado um programa int find(char *s1, char *s2) { int t; char *p, *p2; for(t=0;s1[t];t++){ p = &s1[t]; p2 = s2; while(*p2 && *p2==*p) { p++; p2++; } if(!*p2) return t; return -1;

Exemplo 2: Retornando valores #include <stdio.h> int mul(int a, int b) { return a*b; } int main() { int x, y, z; x = 10; y = 20; x = mul(x, y); printf(“%d”, mul(x, y)); mul(x, y); return;

Protótipo de funções É a declaração da função no inicio do arquivo. Exemplo: #include <stdio.h> void sqrt_int(int *i); int main(){ int x; x = 10; sqr_it(&x); return; } void sqr_it(int *i) { *i = *i * *i;

Exercícios Escreva uma funçã que recebe as 3 notas de um aluno por parâmetro e uma letra. Se a letra for A o procedimento calcula a média aritmética das notas do aluno, se for P, a sua média ponderada (pesos: 5, 3 e 2) e se for H, a sua média harmônica. A média calculada também deve retornar por parâmetro. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna o valor lógico Verdadeiro caso o valor seja primo e Falso em caso contrário. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.

Exercícios Faça uma função que recebe um vetor X(15) de inteiros , por parâmetro, e retorna a quantidade de valores pares em X. Faça uma função que recebe um vetor X(20) de reais , por parâmetro, e retorna a soma dos elementos de X; Faça uma função que receba, por parâmetro, uma matriz A(7,7)e retorne o menor valor dos elementos abaixo da diagonal secundária. Faça uma função que receba, por parâmetro, uma matriz A(8,8) e retorne o menor valor dos elementos acima da diagonal secundária.