Module: Subrutinas: procedimientos y funciones - 2


Problem

1/10

función de subrutina

Theory Click to read/hide

Una función es una subrutina que devuelve un resultado (número, cadena de caracteres, etc.)

Imagina que has pedido un producto en una tienda online. Desde el punto de vista de la programación, ha llamado a una determinada subrutina y, a diferencia de un procedimiento, esta subrutina debe devolver un resultado: entregar el producto que ordenó. Estas subrutinas se denominan funciones.
Una función tiene el mismo formato que un procedimiento: función <nombre de función> (lista de parámetros como <nombre de variable>: <su tipo> separados por punto y coma): <tipo de valor de retorno>; comenzar <cuerpo de la función> fin;
La diferencia entre una función y un procedimiento es que una función debe devolver un valor. Para hacer esto, necesita usar el nombre de la función como una variable o la variable especial Resultado: función Suma(a, b:entero): entero; comenzar Suma := a + b; fin; o función Suma(a, b:entero): entero; comenzar Resultado := a + b; fin;
Una función que devuelve la media aritmética de dos enteros se vería así: función promedio(a, b: entero): real; comenzar   promedio := (a + b) / 2; fin; Queda por entender cómo llamar a esta función en el programa principal:
No debe llamar a una función de la misma manera que llama a un procedimiento: promedio (10, 5); El valor devuelto por la función se perderá. Es como si los productos de la tienda en línea no se dieran a nadie, sino que se tiraran. Es poco probable que al cliente le guste.

Es más correcto guardar el resultado en una variable (o imprimirlo en la pantalla): a := promedio(10, 5);

o

writeln(promedio(10, 5));

Problem

Escribe una función que calcule la suma de los dígitos de un número natural.
Usando esta función, escriba un programa que, entre 5 números naturales ingresados, encuentre el número con la suma máxima de dígitos. Si hay varios de esos números, escriba el número mayor
 
Ejemplos
# Entrada Salida
1 15
234
11
9
111112
234
Write the program below
var n, i, max, nmax: integer;
// функция, которая вычисляет сумму цифр числа    
// основная программа   
begin
    max := 0;
    nmax := 0; 
    for i := 0 to 4 do
    begin 
    end;
    writeln(nmax);
end. 

     

Program check result

To check the solution of the problem, you need to register or log in!