Module: Sub-rotinas: procedimentos e funções - 2


Problem

1/10

função de sub-rotina

Theory Click to read/hide

Uma função é uma sub-rotina que retorna um resultado (número, cadeia de caracteres, etc.)

Imagine que você encomendou um produto em uma loja online. Do ponto de vista da programação, você chamou uma determinada sub-rotina e, ao contrário de um procedimento, esta sub-rotina deve retornar um resultado - entregar o produto solicitado. Essas sub-rotinas são chamadas de funções.
Uma função é formatada da mesma forma que um procedimento: função <nome da função> (lista de parâmetros como <nome da variável>:<seu tipo> separados por ponto e vírgula): <tipo do valor de retorno>; começar <corpo funcional> fim;
A diferença entre uma função e um procedimento é que uma função deve retornar um valor. Para fazer isso, você precisa usar o nome da função como uma variável ou a variável especial Result: função Soma(a, b:inteiro): inteiro; começar Soma := a + b; fim; ou função Soma(a, b:inteiro): inteiro; começar Resultado:= a + b; fim;
Uma função que retorna a média aritmética de dois números inteiros ficaria assim: função média(a, b: inteiro): real; começar   média := (a + b) / 2; fim; Resta entender como chamar esta função no programa principal:
Você não deve chamar uma função da mesma forma que chama um procedimento: média(10, 5); O valor retornado pela função será perdido. É como se a mercadoria da loja online não fosse dada a ninguém, mas jogada fora. É improvável que o cliente goste.

É mais correto salvar o resultado em uma variável (ou imprimi-lo na tela): a := média(10, 5);

ou

writeln(average(10, 5));

Problem

Escreva uma função que calcule a soma dos dígitos de um número natural.
Usando esta função, escreva um programa que, entre 5 números naturais digitados, encontre o número com a soma máxima de dígitos. Se houver vários desses números, imprima o número maior
 
Exemplos
# Entrada Saída
1 15
234
11
9
111112
234