Pular para o conteúdo principal

Aprendendo a programar: procedimentos e funções

Retomando aquela introdução ao desenvolvimento de programas de computador (veja os dois posts listados a seguir), hoje vou falar um pouquinho sobre a criação de procedimentos e funções, que são recursos muito importantes para a modularização do código dos programas.

Para quem não leu os posts anteriores, vale a pena dar uma olhada antes de seguir na leitura deste post:

Resumindo o que foi falado nos posts anteriores, podemos dizer que um programa de computador nada mais é do que um conjunto de instruções, logicamente organizadas e escritas usando a sintaxe de uma linguagem de programação em particular, cujo propósito é ser executado sobre o sistema operacional com o objetivo de resolver problemas de forma automatizada pelo computador.

Dentre as instruções utilizadas na lógica do programa, podemos fazer desde a simples declaração de variáveis e atribuições de valores, até a resolução de expressões matemáticas, entrada e saída de dados e a definição de estruturas mais complexas, por exemplo usando recursos de condições e laços e, também, recursos específicos da linguagem de programação utilizada.

Independente das instruções utilizadas, a forma como organizamos o código do nosso programa é importante para aumentarmos as possibilidades de reuso e reduzirmos as complexidades de manutenção. Para isso podemos usar a técnica de modularização.

Modularizar significa quebrar em módulos, o que em termos mais técnicos , quer dizer criar procedimentos e funções.

Procedimentos e funções

Um aspecto muito comum nos programas é que frequentemente escrevemos trechos de código (várias instruções) que se repetem ao longo da lógica que estabelecemos.

Por exemplo, se quisermos calcular a média aritmética das provas de um aluno, temos que somar a nota da primeira prova com a nota da segunda prova e dividir por 2. Se tivermos mais de um aluno, temos que repetir esse cálculo para cada aluno. Logicamente, a forma mais simples de fazer isso é fazendo o famoso "copy and paste": para cada aluno, colocamos a regra para fazer o cálculo e impressão da média das notas.

Com o "copy and paste" conseguimos resolver o problema da repetição, mas será que foi a melhor escolha? E se tivermos 100 alunos? E se após termos escrito o programa todo, alguém nos disser que eram 3 provas? Em ambos os casos teremos um bom trabalho para ajustar o o código do programa.

Diante disso, podemos afirmar que a repetição de trechos de código dentro de um programa é considerada uma prática muito ruim. Mas será que é possível fazer diferente? A resposta é a criação de procedimentos e funções.

As instruções que precisam ser repetidas em vários locais do código devem ser isoladas em um bloco de código do programa que recebe um nome (cada linguagem estabelece a forma para delimitar esse bloco). Quando precisarmos executar aquelas instruções repetidas vezes, basta invocar o nome do bloco de código que as contém. A esse bloco de código é que chamamos de procedimentos ou funções (diferenciaremos os dois termos mais adiante).

Um programa pode ser constituído de vários procedimentos e funções e um bloco de código principal, chamado geralmente de programa principal ou bloco principal.

Ao isolarmos a regra que será repetida, escrevemos-a uma única vez dentro do procedimento ou função. E podemos chamá-la quantas vezes for necessário, tanto dentro do programa principal, quanto dentro de outros procedimentos e funções. Se errarmos na regra, ou se ela mudar com o tempo, basta fazer o ajuste no único local do código onde ela existe: dentro do procedimento ou função.

Veja o exemplo a seguir para visualizar como seria um procedimento em algoritmo estruturado.


Passagem de parâmetros


Um procedimento ou função pode receber parâmetros que carregam os dados que devem ser manipulados pelas suas instruções internas. Um parâmetro é uma variável definida no corpo do procedimento ou função que recebe um valor apenas quando o bloco é chamado.

Para tornar o exemplo da figura anterior mais interessante, podemos declarar variáveis no corpo do programa principal e passar o valor dessas variáveis para dentro do procedimento por meio de parâmetros. Veja a figura a seguir.



Repare que agora, o procedimento define 2 parâmetros: n1 e n2. Tais parâmetros recebem valores quando são chamados no programa principal. As variáveis nota1 e nota2 são usadas nas duas primeiras chamadas ao procedimento: o valor de nota1 é copiado para n1 e o valor de nota2 é copiado para n2. A regra programada dentro do procedimento é então executada com base nos valores dos parâmetros n1 e n2. A terceira chamada ao procedimento ilustra que também podemos passar valores para os parâmetros diretamente.

Procedimentos x funções

A diferença entre procedimentos e funções é unicamente no retorno do bloco de código: funções retornam valores após a execução da sua lista de instruções, procedimentos não.

Para facilitar o entendimento, vamos ver o exemplo a seguir.


Agora criamos uma função que calcula a média das notas com base nos parâmetros recebidos, e devolve o valor da média ao invés de fazer a impressão. A função deve ser definida usando o tipo de retorno que ela irá fornecer (no caso do exemplo, valor de tipo real) além dos parâmetros que são opcionais. Dentro do bloco da função, devemos usar uma instrução que indique o valor que será retornado (nas linguagens geralmente a palavra é return para retornar um valor). No algoritmo, a representação usada é de que o nome da função recebe um valor... isso quer dizer que quando chamarmos essa função podemos atribuí-la a uma variável de tipo real, pois ela irá conter um valor de resposta.

Linguagens orientadas a objetos

Nas linguagens que seguem o paradigma da orientação a objetos, não há diferenciação entre procedimentos e funções. Todos os blocos de código são chamados de métodos, inclusive o programa principal, que é o método principal (geralmente nomeado com a palavra main).

Conclusões

Considerando minha experiência de alguns anos ministrando treinamentos da Globalcode, e em especial a Academia Java, eu posso dizer que o pré-requisito fundamental para uma pessoa ingressar no desenvolvimento com uma linguagem de programação orientada a objetos, como é o caso de Java, é ter todos os conceitos que citei nesses três posts sobre programação muito bem fundamentados.

É necessário entender perfeitamente como funcionam os programas: código-fonte, linguagem de programação, compilação e execução. É preciso saber usar os vários tipos de instruções que um programa pode conter, incluindo principalmente instruções de uso de variáveis, condições e laços. E para organizar e facilitar a escrita de código, é preciso entender como funcionam os procedimentos, funções, passagens de parâmetros e retornos de função. Obviamente que isso não é tudo, mas para quem pensa em começar a estudar Java, por exemplo, é necessário começar por essa parte mais básica de lógica de programação.

Deixo novamente a dica de que esses e vários outros assuntos fundamentais para o iniciante em programação podem ser encontrados no treinamento Academia do Programador de forma bem mais aprofundada. Se tiver interesse, entre em contato com a Globalcode para tirar suas dúvidas.

Além disso, a Globalcode também tem minicursos gratuitos voltados para iniciantes como o MC59 - Aprendendo a programar de forma divertida e eficiente além de vários outros minicursos que variam de assuntos básicos a avançados. Vale a pena conferir a grade disponível.


Até a próxima.

Elaine Quintino Silva
http://www.globalcode.com.br/instrutores/ElaineSilva
http://twitter.com/elaineqsilva

Comentários

Maria disse…
Oi,eu faço aprendizagem em programação JAVA,adoro o curso,pois ja sei programar em C e adoro também,mas eu não me dou nada bem com os métodos,o post me ajudou muito
obrigada
espero novos posts

Postagens mais visitadas deste blog

Você já pensou em ser palestrante em algum evento ?

Você já deve ter participado de algum evento e pensado como deve ser legal ser palestrante... E para falar a verdade, é muito bom mesmo. Eu adoro, o Vinicius adora e conheço muitas pessoas que curtem cada minuto da participação no evento como palestrante. Com certeza é uma responsabilidade a mais. Você sente medo, adrenalina, tem que se preparar. Literalmente coloca a cara a tapa para qualquer pessoa te avaliar em todos os sentidos. Qual o seu tom de voz?  Seus slides são legais? Você manja mesmo ?  Seu português está ok?  E as palavras em inglês ?  Teve algum deslize técnico? E MUITO mais.  Mas é claro que a exposição tem dois lados... e os resultados podem ser ótimos. Normalmente conhecemos mais pessoas como palestrantes e podem surgir boas oportunidades de negócio. É sempre positivo ter uma nova referência positiva quando as pessoas buscam nosso nome no Google, podemos fazer a diferença para quem está assistindo a palestra e muito mais.  No The Developer's

TDC INNOVATION lança University Pass

Modalidade de ingresso tem como objetivo ajudar na capacitação dos universitários Uma pesquisa realizada em 2020 pela Associação Brasileira das Empresas de Tecnologia da Informação e Comunicação (Brasscom) diz que até o ano de 2024 o Brasil precisará de cerca de 420 mil profissionais na área de Tecnologia da Informação. Porém, por ano, a mesma pesquisa diz que o país forma apenas 46 mil profissionais capacitados no nicho. Pensando nisso, para ajudar na formação e capacitação desses jovens profissionais, o TDC INNOVATION, segunda edição do ano do The Developer's Conference, lança o University Pass, modalidade de ingresso que possibilita aceso digital gratuito a todas as palestras do evento, ou com 50% de desconto para quem preferir ir pessoalmente. Com o tema central “Desafios para a criação do futuro Digital”, o TDC INNOVATION ocorrerá entre 1 e 3 de junho, de forma híbrida: presencialmente no Centro de Convenções CentroSul, em Florianópolis, e com transmissão simultaneamente pela

Inscrever sua equipe em eventos de TI vale a pena? Entenda aqui

Os eventos de TI são importantes para o aprendizado contínuo, especialmente em uma área tão dinâmica, como a de tecnologia. A necessidade de estar sempre por dentro das tendências pode esbarrar em algumas objeções, como investir em especializações pouco práticas ou opções pulverizadas de mercado. Por isso, participar de conferências e assistir palestras de especialistas é uma excelente oportunidade para sua equipe se desenvolver. O melhor de participar de eventos de TI é expandir os conhecimentos e habilidades independentemente da experiência específica, seja um desenvolvedor web ou full stack, por exemplo, as conferências de tecnologia podem ajudar o profissional a se aperfeiçoar. Isso ocorre devido ao contato com outros especialistas e colegas da mesma área. Além disso, é possível descobrir novas soluções e fazer networking . Neste artigo, você conhecerá as vantagens da sua equipe participar em eventos de TI. Aproveite a leitura! Vantagens de participar de eventos de TI Se o seu ob

Entendendo como funciona a programação de computadores: linguagens de programação, lógica, banco de dados

Nesse post, diferente dos últimos que foram mais enfáticos nas experiências com tecnologias, vou focar um pouco mais nos profissionais que estão começando, ou pretendem ingressar na área de desenvolvimento de software, falando sobre conceitos fundamentais relacionados a programação em geral . Mercado de trabalho para programação Conforme já sabemos, o mercado de desenvolvimento de software, especialmente no Brasil, continua em franca expansão, sendo que cada vez mais as empresas buscam desenvolver seus próprios sistemas usando as mais diferentes e novas tecnologias. Algumas matérias interessantes: As seis profissões mais valorizadas em 2010 no IDG Now! Muitas vagas e sensação de reaquecimento da economia Por isso, a área de desenvolvimento de software tem despertado interesse em muitos profissionais de outras áreas que desejam mudar de profissão, já que as oportunidades de trabalho tendem a ser maiores. Esse é um perfil presente em muitos dos clientes da Globalcode que acabou m

Segurança da informação no alvo: o que esperar do futuro?

A segurança da informação não se trata apenas de proteger os dados contra acesso não autorizado. Na prática, refere-se aos recursos que impedem: uso; registro; inspeção; divulgação; interrupção; modificação; destruição de dados. O uso de dados pode abranger desde um perfil nas redes sociais a detalhes financeiros, biometrias ou novos projetos. Por isso, a preocupação com a proteção dos dados é crescente, tanto para empresas quanto clientes. Para muitas pessoas, a coleta de dados é considerada invasão de privacidade, criando desconfiança do titular dos dados, pois o uso dos dados pode ser facilmente corrompido, utilizado para fins não declarados. Apesar de o uso dos dados terem impulsionado os avanços tecnológicos na última década, as organizações lidam com o desafio de distinguir dados de informações pessoais de modo a proteger a privacidade e as preferências dos clientes. Neste artigo, abordaremos o impacto da segurança da informação e o que esperar do futuro. Confira casos conhecido

TDC ONLINE: SUA PLATAFORMA DE PALESTRAS GRAVADAS DO TDC DISPONÍVEL

Além do conteúdo ao vivo transmitido online nas edições do TDC, agora você pode ter acesso à centenas de palestras gravadas, através da nossa nova plataforma de vídeos - o TDC Online, que reúne todas as Trilhas premium, Stadium e Salas dos Patrocinadores das edições anteriores de 2022, TDC Innovation e TDC Connections.  Para acessar, basta clicar na edição em que você participou ( TDC Innovation ou TDC Connections ); Fazer o mesmo login (com e-mail e senha) cadastrados na hora de adquirir ou resgatar o seu ingresso no TDC; E clicar na Trilha de sua opção, e de acordo com a modalidade do seu ingresso. Logo em seguida, você será direcionado para a seguinte página com a lista de todas as palestras por Trilha: Pronto! Agora você tem acesso à centenas de palestras gravadas da sua área de interesse, para assistir como e quando quiser! Caso tenha esquecido a senha, clique na opção "Esqueci a senha" , insira o e-mail que você realizou para o cadastro no evento, e aparecerá a op