Escolar Documentos
Profissional Documentos
Cultura Documentos
Autores: Prof. Eder Fontoura, Prof. Aline Riva Reviso Prof. Ricardo Rivaldo
Subrotinas
Uma subrotina como um programa.
pode efetuar tarefas computacionais
Procedimentos
Bloco de programa, contendo incio e fim, identificado por um nome
este nome pode ser referenciado em qualquer parte do programa principal
subrotina chamada por um programa executada e ao trmino o controle retorna ao programa principal
Funes
Semelhante a Procedimentos mas com uma diferena principal:
a funo retorna um valor rotina chamadora, o procedimento no
este retorno pode ser impresso, atribudo uma varivel ou utilizado em operaes aritmticas
Escopo de Variveis
Variveis Globais e Locais
Global
pode ser utilizada por qualquer subrotina do algoritmo
Local
declarada dentro de uma subrotina somente pode ser utilizada pela prpria subrotina outras subrotinas e o prprio algoritmo principal no podem usar estas variveis
Procedimentos e Funes
Importante:
deve ter nome nico no programa
deve realizar uma nica tarefa bem definida
seu cdigo deve ser o mais independente possvel do programa (Como ????)
uma funo/procedimento pode chamar ela prpria ou outra funo/procedimento
Vetores
Vetores Unidimensionais
Permite armazenar diversos valores simultaneamente e de forma que se possa acessar cada um deles independentemente
Um vetor um conjunto de variveis de um mesmo tipo de dado as quais so acessadas e referenciadas atravs de ndices.
Vetores Unidimensionais
Declarao:
Tipo de dado Identificador[n];
Por exemplo:
int Vetor[10] definir um conjunto de dez variveis do tipo int char Cadeia[100] definir um conjunto de cem variveis do tipo char.
Vetores Unidimensionais
Inicializao:
int DiasMeses =
{0, 31, 29, 31, 30, 31, 30, 31, 31,30, 31, 30, 31};
Vetores Unidimensionais
Cada componente de um vetor pode ser acessado e referenciado atravs de ndices associados ao identificador do vetor
ndice do primeiro componente igual a zero.
Vetores Unidimensionais
O ndice de uma componente pode ser referido atravs de uma expresso que resulte num valor inteiro
Exemplo:
int i, Quadrados[100];
for (i = 1; i <= 100; i = i + 1){
Quadrados[i - 1] = i * i;
}
Vetores Multidimensionais
A linguagem C componentes de tambm vetores Declarao:
Tipo de dado Identificador[n1][n2] ... [nk];
int Mat[10][8];
Vetores Multidimensionais
Inicializao:
int DiasMeses = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31,30, 31, 30, 31}
};
Estruturas - Struct
(20)
Introduo
Um programa que administra os recursos humanos de uma empresa, manipula dados de tipos diferentes relativos a cada um dos funcionrios.
Por exemplo, para cada funcionrio deve-se ter:
matrcula
nome endereo
cargo
nmero de dependentes....
(21)
Introduo
A utilizao de uma varivel simples para cada um destes elementos, implicaria, a necessidade de vrios vetores, o que poderia dificultar a legibilidade e a manuteno do programa.
(22)
Introduo
Como voc faria o cadastro de funcionrios, utilizando o que foi apresentado na disciplina de Algoritmos e Programao + a linguagem de programao C
(23)
Estrutura - Struct
Uma estrutura um conjunto de variveis, denominadas campos ou membros, que podem ser de tipos diferentes.
comum se associar um identificador a uma estrutura, chamado etiqueta da estrutura, para que se possa definir uma varivel deste tipo.
(24)
Estrutura - Struct
A definio de uma estrutura feita com a seguinte sintaxe:
struct Testrutura { Tipo de dado Identificador do campo 1; Tipo de dado Identificador do campo n; };
(25)
Estrutura - Struct
Qualquer funo do programa pode declarar uma varivel capaz de armazenar valores de acordo com os tipos de dados dos campos.
Declarao:
struct TEstrutura Identificador;
(26)
Estrutura - Struct
Exemplo:
struct Tendereco { char Rua[40]; char Numero[5]; char Bairro[10]; char Cep[9]; }; }; struct Testrutura { char Matricula[11]; char Nome[40]; struct TEndereco Endereco; int NumDependentes; float Salario; char Cargo[8];
(27)
Estrutura - Struct
Ao se definir struct TEstrutura est se definindo um novo tipo de dado. A linguagem C oferece uma outra forma de se definir um novo tipo de dado. A declarao typedef
(28)
Estrutura - Struct
typedef struct{ char Matricula[11]; char Nome[40]; struct TEndereco Endereco;
int NumDependentes;
float Salario; char Cargo[8];
} TEstrutura;
Algoritmos
(30)
Introduo
As subrotinas (funes/procedimentos) em C recebem variveis por parmetros.
Existem basicamente duas maneiras de passarmos estes argumentos para as subrotinas.
Passagem por valor Passagem por referncia
(31)
(32)
Exemplo:
(33)
O valor num da funo principal foi copiado para a varivel num da funo sqr.
(34)
(35)
H entretanto, no C, um recurso de programao que podemos usar para simular uma chamada por referncia.
Quando queremos alterar as variveis que so passadas para uma funo, ns podemos declarar os parmetros como ponteiros.
(36)
(37)
Ponteiros
Ponteiro uma varivel que contm um endereo de memria.
Esse endereo normalmente a posio de uma outra varivel na memria. Se uma varivel contm o endereo de memria da outra, ento a primeira varivel dita apontar para a segunda.
(38)
(39)
(40)
(41)
#include<stdio.h>
#include<stdlib.h>
void calculo(int *num, int exp){ int i; for (i=1; i < exp; i++){ *num = (*num) + (*num); int main(){ int num = 3; int e = 4; calculo(&num, e); printf("%d", num); }
}
}