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

12 ESQUENTAS TDC ESPERANDO POR VOCÊ

O TDC nasceu do sonho de profissionais que valorizam o compartilhamento de conhecimento, experiências e oportunidades entre as comunidades de desenvolvedores.  Por isso, o crescimento do TDC nunca poderia ficar longe do crescimento das comunidades! Pensando nessa união, criamos um projeto quente: O ESQUENTA TDC ! Visando divulgar os meetups de comunidades que querem transformar e inspirar carreiras, foi co-criado este projeto lindo e cheio de apoio, onde o TDC abraça meetups de diversas comunidades espalhadas pelo Brasil e elas contribuem com a divulgação da edição regente.  O TDC Innovation vai rolar de 14 a 16 de JUNHO, mas até lá vão acontecer muitos encontros incríveis!  Fique por dentro das comunidades que vão participar, quais temas irão abordar e claro as datas e locais para você participar. 💥Esquentas TDC Innovation 2023: 24/05 - Esquenta TDC: Carreira e Desenvolvimento Presencial em Floripa das 19:00 as 21:30 com inscrição AQUI Comunidade: Google Developers Groups Nova

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

Palestras do TDC Business Disponíveis Online

🚨 Atenção, TDC Lovers! O TDC Business em São Paulo acabou, mas os conteúdos mal começaram!  Não pô de aproveitar a STADIUM ao vivo? Não tem problema, porque trouxemos ela até você. Todas as palestras da STADIUM, palco principal do TDC, já estão no ar e liberadas para qualquer pessoa assistir. Essa Trilha incrível conta com palestras de Trilhas Premium e temas variados de forma GRATUITA para você poder maratonar de casa!  Aproveite para prestigiar seu evento de TI favorito com pipoca direto do seu sofá. 🎥 🍿 Gravação da STADIUM, 22 a 24 de Agosto de 2022, disponível aqui: https://www.globalcode.com.br/videos/tdc-2022-business/  Todas as demais trilhas do TDC Business serão publicadas gradualmente nas próximas semanas, fique atento aos nossos e-mails, você será notificado por lá quando sua Trilha estiver disponível. Acompanhe nossas redes sociais para não perder nada e ficar por dentro de todas as novidades do TDC!

Inspire a mudança com a liderança ágil

A liderança ágil é essencial para que uma organização realize mudanças de negócios significativas. Ser líder é uma tarefa desafiadora, especialmente em um cenário de constantes transformações, principalmente na forma de lidar com a relação empresa e pessoal. Pesquisas sobre liderança na era digital revelam que algumas soft skills têm sido substituídas por outras, o profundo conhecimento na área de negócio, ser referência nas tecnologias utilizadas, ter foco total no prazo e nas entregas e conhecer um arsenal de técnicas e ferramentas, têm dado espaço a habilidades, como: empatia; adaptabilidade; senso de equipe; visão e propósito; engajamento constante. A colaboração entre pessoas de todos os níveis hierárquicos são vitais, afinal, as equipes estão trabalhando para o mesmo objetivo: o encantamento e atendimento das necessidades do cliente que proporcionarão um crescimento sustentável da organização. Com propósito claro, estratégia e prioridades definidas, os times desfrutam de uma ma

TDC Digital: o que você precisa saber para transformar sua carreira em 2022

O TDC Digital é o maior evento de TI do mercado e proporciona crescimento profissional a partir de palestras com especialistas e oportunidades de networking com o mundo todo, direto da sua casa. Através da escolha individual de cada participante é possível obter experiências imersivas e transformadoras conforme o tema-chave de cada trilha.  O evento também é o lugar ideal para ajudar no desenvolvimento de carreiras, permitindo que qualquer pessoa com vontade — e um tema interessante — seja palestrante e compartilhe suas experiências e conhecimentos. Para aqueles que querem  participar como ouvinte a plataforma do TDC favorece conferências dinâmicas, e o encontro de diversas comunidades e ecossistemas de TI. E, após a escolha de uma trilha, fica mais fácil acompanhar especialistas para aprender e se inspirar. Em 2021 , o The Developer’s Conference (TDC) foi 100% digital e, em três dias de evento, contou com mais de 300 horas de conteúdos , incluindo: Agile; Testes; Design; Web e Mobile;

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