Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Programação em Java Prof. Maurício Braga
Linguagem PASCAL Subprogramas
Programação de Computadores
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 2a série de slides Versão 19/03/2012.
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Algoritmos e Estrutura de Dados I
Teste de Software Parte 3.
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
Adaptado de material da profa. Maria Aparecida Livi
Introdução a Informática
Algoritmos e Estruturas de Dados II
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Robson Godoi / Sandra Siebra
Algoritmos e Programação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
GAUSS COM PIVOTEAMENTO
Paradigmas de programação
João Lucas de Oliveira Torres
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Variáveis, Tipos de Dados e Constantes
Estruturas de Controlo em Pascal
Programação Orientada a Objetos em Delphi
FATORAÇÃO LU.
MÉTODO JACOBI.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Estrutura de Dados Unidade 16 Simulação da função Fatorial utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Introdução a Programação COM 100 Aula 07 Procedimentos.
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Introdução ao uso de vatores na linguagem PASCAL.
O Portal do Estudante de Computação
Modelos de Paradigmas de programação
Ambiente de Execução - Rotinas
Técnicas de Desenvolvimento de Programas
Computação Eletrônica Subprograma. Função O que este programa faz? Program funcao; var n,x: real; begin write('Entre n: '); readln(n); x := cos(n); write(x);
Computação Eletrônica
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
Prof: Leandro Maranim Dei Santi Prof. Eduardo Rossit Paiossin
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Modularização Dividir um problema em subproblemas Módulos menores facilita a depuração Dividir o desenvolvimento entre vários programadores “Reutilização”
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
“Introdução a Computação” Capítulo II Estruturas de Dados
Linguagens de Programação
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Aula01 – Técnicas de Programação II
Computação Eletrônica
Algoritmos e Programação
Professor Ulisses Vasconcelos
Técnicas de Programação I
Arquivos. Motivação Imagine dar entrada (digitar), a cada execução do programa, em todos os dados de um sistema. por exemplo, todos os registro de livros.
Subprogramas : Procedimentos (procedures) em Pascal
Programação de Computadores - 1
Introdução à Programação
AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Linguagem de Programação I Parte IV
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
MODULARIZAÇÃO Existem dois tipos de sub-programas –Procedures (procedimentos).Não retorna valores –Functions (funçöes). Retorna valores.
MODULARIZAÇÃO Técnica utilizada e tida como vantajosa na confecção de programas. Consiste em dividir o programa em diversos módulos ou sub-programas, de.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
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.
Computação Eletrônica Variáveis Inteiras. A memória A memória pode ser vista como um imenso gaveteiro Em cada gaveta, guardamos uma informação. Por exemplo,
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato Professor: Sérgio Donizetti Zorzo Mestrado em Ciência da Computação Sistemas Distribuídos e Redes São Carlos – Maio 2006 “Introdução a Computação”

Introdução Evolução do Software –Problemas mais complexos; –Aumento do código; –Replicação de código; –Difícil acompanhar os trechos dos programas. Utiliza-se Funções ou Procedimentos Trechos devem ser coerentes –Cada um deve ter uma função ou tarefa definida.

Procedimentos: Procedimentos são rotinas chamadas pelo programa principal para executar alguma operação específica; Forma Geral: procedure nomeProc (lista_de_parametros) Declaração Variáveis {Área de Declarações} begin Comandos {Corpo do Procedimento} end;

Exemplo de atribuição procedure nomeProc (lista_de_parametros) Declaração Variáveis {Área de Declarações} begin Comandos {Corpo do Procedimento} end; É possível definir constantes, tipos, declarar variáveis, funções e outros procedimentos, da mesma forma como declarados no programa principal. São válidos apenas no escopo do procedimento.

Procedimentos Para chamar o procedimento, basta utilizar seu nome no programa principal; A execução é desviada do programa principal até o procedimento, para que este seja executado e depois retorna na linha do programa principal abaixo do linha da chamada do procedimento;

Procedimentos Program exemplo; var i: integer;... {Declaração de variáveis} procedure exemplo(i:integer); begin... {corpo do procedimento} end; begin... {corpo do programa} exemplo(i) {chama procedimento}... {corpo do programa} end.

Procedimentos - Exemplo 1 Informar dados do aluno (nome, idade); Calcula a média das notas; Imprime os dados do aluno e média. Implementar a parte de imprimir como procedimento.

Procedimentos - Exemplo 1 Program dados_aluno; type tipoaluno = record nome: string; idade: integer; notas: array[1..5] of real; end; var aluno : tipoaluno; media,soma : real; i : integer; procedure imprime_dados(aluno:tipoaluno; media: real); begin writeln(aluno.nome); writeln (aluno.idade); writeln (media:4:3); end;

{... continuação} begin readln(aluno.nome); readln(aluno.idade); for i:=1 to 5 do begin readln (aluno.notas[i]); end; soma:=0; for i:=1 to 5 do begin soma:=soma+aluno.notas[i]; end; media:=soma/5; imprime_dados(aluno,media); end.

Exercício 1: Utilizar o programa anterior e criar uma rotina de Calcular a média.

Resolução - Exercício 1 Program dados_aluno; type tipoaluno = record nome: string; idade: integer; notas: array[1..5] of real; end; var aluno : tipoaluno; i : integer; media : real;

procedure imprimirdados(aluno:tipoaluno; media:real); begin writeln(aluno.nome); writeln (aluno.idade); writeln (media:4:3); end; {... continuação}

procedure calcularmedia(aluno: tipoaluno); var media, soma: real; i: integer; begin soma:=0; for i:=1 to 5 do begin soma:=soma + aluno.notas[i]; end; media:=soma/5; imprimirdados(aluno,media); end; {... continuação}

{corpo do programa principal} begin writeln (‘Digite o nome do aluno’); readln(aluno.nome); writeln (‘Digite a idade do aluno’); readln(aluno.idade); writeln (‘Digite as 5 notas do aluno’); for i:=1 to 5 do begin readln (aluno.notas[i]); end; calcularmedia(aluno); end. {... continuação}

Observações Se você for chamar um modulo (procedimento ou funcao), lembre-se que este modulo deve ter sido declarado previamente. Procedure a () begin... end; Procedure b () begin a(); //a dever ter sido declarado primeiro end; Programa Principal.... b();...

Funções: Uma Função é parecida com os Procedimentos, tem praticamente a mesma estrutura; Retorna um valor; Forma Geral: function nomeFunc (lista_de_parametros): tipo de dado a ser retornado Declaração Variáveis {Área de Declarações} begin Comandos {Corpo da Função} end;

Exemplo de atribuição function nomeFunc (lista_de_parametros): tipo Declaração Variáveis {Área de Declarações} begin Comandos {Corpo da Função} nomeFunc:= x; end; O nome da variável que vai retornar tem que ser igual ao nome da função.

Funções Program exemplo; var i: integer;... {Declaração de variáveis} function exemplo(i:integer): integer; begin... {corpo da função} end; begin... {corpo do programa} exemplo(i) {chama função}... {corpo do programa} end.

Funções - Exemplo 2 Informar dois números; Definir maior número; Retornar o valor do maior número; Imprimir o resultado no Programa Principal. Implementar a parte de verificar maior número através de Função.

Program calc_max; var max, a, b: integer; function maximo(a,b:integer): integer; begin if(a>b) then maximo := a else maximo := b; end; Procedimentos - Exemplo 1

... continuação begin writeln(‘Digite dois números’); readln(a, b); max := maximo(a,b); writeln(‘O valor maximo é ', max) end. As 2 últimas linhas dentro do bloco poderia ser: writeln(‘O valor maximo é ', maximo(a,b));

Exercício 2: Utilizar o programa anterior e criar uma rotina de Calcular a Fatorial. Ler um nro inteiro; Chamar uma função e passar esse nro.

Program Fatorial; function fat(n:integer): integer; {Início da Função} var F,i:integer; begin F:=1; for i:=2 to n do F:=F*i; fat:=F; end; {Fim da função} {Programa Principal} var n:integer begin writeln(‘Entre com o número: ‘); readln(n); writeln(‘O fatorial de ‘,n,’ é: ‘,fat(n)); end. Resolução - Exercício 2

Passagem por Valor: apenas o valor da variável é passado; Passagem por Referência: A variável é passada. –Utiliza-se o Var antes do parâmetro. Passagem por Valor e por Referência

Exemplo

... continuação

Função

Program dadosaluno; var nome: string; procedure mostranome(parametro:string); begin writeln('*********************************'); writeln(' Valor original', parametro); parametro:= 'Luanna'; writeln(' Valor modificado',parametro); end; {corpo do Programa Principal} begin nome := 'Zorzo'; mostranome(nome); writeln('Valor no programa', nome); readln; end. Passagem por Valor

Passagem por Referência Program dadosaluno; var nome: string; procedure mostranome(var parametro:string); begin writeln('*********************************'); writeln(' Valor original', parametro); parametro:= 'Luanna'; writeln(' Valor modificado',parametro); end; {corpo do Programa Principal} begin nome := 'Zorzo'; mostranome(nome); writeln('Valor no programa', nome); readln; end.