Page 1

Programação para Computadores Professor: Paulo Alexandre da Silva Costa


Agenda • Aula 2/20: • Conceito de programação estruturada • Estrutura de um programa em C • Funções em C


Tipos de linguagens de programação • • • •

Paradigma Paradigma Paradigma Paradigma

Orientação a Objeto Estruturado Funcional Lógico


Linguagem estruturada • Definição • Qualquer função computacional • Sequência • Seleção • Repetição/iteração


Linguagem Estruturada • Como é que funciona em C ? • Subroutinas, • if, switch, • for/(do) while


Estrutura de um programa em C • De forma geral, • Três partes • Declarações globais, • função main, • Funções definidas pelo usuário


Um programa inicial #include <stdio.h> main() { printf(“Olá, Pessoal!”); return 1; }


Como construir um programa em C • Código Fonte • Compilação • Executável


Como construir um programa em C • Compilação • Entrada: Arquivo(s) fonte • Saída: Código executável


Como 茅 organizada a mem贸ria C贸digo

Dados est谩ticos Pilha

Heap


Como é organizada a memória? • Código • Armazena o seu código-fonte


Como é organizada a memória? • Dados estáticos • Variáveis Globais


Como é organizada a memória? • Pilha • Variáveis locais • Funções • Argumentos das funções


Como é organizada a memória? • Heap* • Região livre da memória • Pode crescer de tamanho!


Função • Definição • Blocos de construção


Função • Estrutura de uma função • tipo de retorno • parâmetros • corpo da função


Exemplo de função #include <stdio.h> void main() { int entrada=0; scanf("%d", &entrada); int saida=ePar(entrada); printf("saida %d\n", saida); } int ePar(int a) { int valorRetorno=0; if(a%2==0) valorRetorno=1; else valorRetorno=0; return valorRetorno; }


Regras de escopo • Escopo • Visibilidade


Regras de escopo #include <stdio.h> void main() { printf(“%d”, aqui); } int f1() { int aqui=0; return -1; }


Regras de escopo #include <stdio.h> void main() { int resultado=0; mult(resultado,3); } int mult(int a, int b) { int retorno=0; resultado=a*b; return a*b; }


Regras de escopo #include <stdio.h> int global=0; void main() { global=1; mult(global, 3); } int mult(int a, int b) { global=5; resultado=a*b; return a*b; }


Parâmetros de uma função • Entrada da função


Passagem de parâmetros • Por Valor • Por Referência


Passagem de parâmetros • Por Valor • Também chamada “Por cópia”


Passagem de parâmetros • Por Valor • Também chamada “Por cópia” int subtrair(int a, int b) { return a-b; }


Passagem de parâmetros #include <stdio.h> void main() { int a=5, b=3; int c=subtrair(a,b); printf(“%d menos %d vale %d”a,b,c); }


Passagem de parâmetros • Por Referência


Passagem de parâmetros • Por Referência


Retorno de valor • Constitui a saída (quando existir) • Key word • return


Retorno de valor • Constitui a saída (quando existir) • Key word • return


Parâmetros especiais argc e argv • int argc • char *argv[]


Exemplo: #include <stdio.h> #include <stdlib.h> void main(int argc char *argv[]) { if(argc!=2) printf(“É necessário pelo menos um parâmetro”); printf(“Olá, %s\n”, argv[1]); }


Exercício • Crie uma função que • recebe dois inteiros a e b, • e devolve a potenciação (a elevado a b).


Exercício • Crie uma função que: • recebe três inteiros “a”, “b” e “c” • E devolve o valor de b*b – 4*a*c.


Exercício • O que você que vai aparecer na tela? #include <stdio.h> main() { int a=9; int resposta=quadrado(&a); printf("a resposta %d\n", resposta); printf("o valor de a e %d\n", a); }

int quadrado(int *a) { int valor=*a; *a= *a - 1; return valor*valor; }

Aula 02 | Programação de Computadores  

Professor Paulo Alexandre

Read more
Read more
Similar to
Popular now
Just for you