Qualcuno sarebbe in grado di svolgere il seguente esercizio senza errori?
"Realizzare un algoritmo che, ricevendo in ingresso un numero intero N>0, calcoli il quadrato di N eseguendo la somma dei primi N numeri dispari partendo da 1 e ne stampi in uscita il valore ottenuto, stampi infine il cubo di N.
Rappresentare la tabella dei dati per N=4"
Grazie
Copyright © 2024 QUIZSILO.COM - All rights reserved.
Answers & Comments
in algobuild
prog da scaricare : http://pedroperaria.altervista.org/prog.algobuild
flowchart
Preferirei avere soluzioni utilizzando algobuild
La richiesta è di produrre, da N > 0, N^2 ed N^3.
C'è inoltre la prescrizione di produrre N^2 sommando i primi N numeri dispari.
Nulla è prescritto sul come produrre N^3, ma (per analogia) dovrebb'essere ancora per somme di dispari.
Sia il quadrato che il cubo del numero naturale N sono dati dalla somma di N numeri dispari consecutivi della forma
* d(k) = 2*k + 1
cioè dalla somma, a partire dall'indice "a",
* s(N, a) = Σ [k = a, a - 1 + N] (2*k + 1) = N*(N + 2*a)
Si ha
* s(N, 0) = N*(N + 2*0) = N^2
* s(N, (N - 1)*N/2) = N*(N + 2*(N - 1)*N/2) = N*(N + N^2 - N) = N^3
ESEMPIO
Per N = 5 si ha, per il cubo,
* a = (5 - 1)*5/2 = 10
* 2*a + 1 = 21 = il primo dei cinque dispari da sommare
* 21 + 23 + 25 + 27 + 29 = 125 = 5^3
==============================
MOTIVAZIONE
Disponendo i successivi dispari "a triangolo" in modo che sulla riga #1 ce ne sia uno, sulla riga #2 ce ne siano due, sulla riga #k ce ne siano k, e così via si forma il seguente quadro, nel formato
* {#k, {elenco di k dispari consecutivi}}
------------------------------
{1, {1}}
{2, {3, 5}}
{3, {7, 9, 11}}
{4, {13, 15, 17, 19}}
{..., {...}}
{N, {((N - 1)*N + 1), ..., ((N + 2)*(N - 1) + 1)}}
NOTA
La somma dei dispari su ogni riga è il cubo dell'indice di riga, cioè il cubo di N è la somma della riga #N.
==============================
DEFINIZIONI DI ALGORITMI
FUNZIONE sommaDiDispariConsecutivi(quanti, indiceIniziale)
A) Inizializzare
A1) porre n = quanti
A2) porre k = indiceIniziale
A3) porre totale = 0
B) Totalizzare
B1) se n = 0 proseguire da C
B2) porre totale = totale + k + k + 1
B3) porre k = k + 1
B4) n = n - 1
B5) proseguire da B1
C) Terminare col valore di "totale"
------------------------------
FUNZIONE esercizioDiMario(N)
A) porre quadrato = sommaDiDispariConsecutivi(N, 0)
B) porre cubo = sommaDiDispariConsecutivi(N, (N - 1)*N/2)
C) Terminare con la coppia di valori "quadrato, cubo"
==============================
"Rappresentare la tabella dei dati per N=4"
Puoi regolarti come in ESEMPIO.
read(n)
if (n>0 & int(n) = n),
s = 0;
for k = 1 : n,
s = s + 2*k - 1
endfor
endif
write(s);
write(s*n);
Provato su Octave Online.