Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-12-2021, 23:22   #1
Demonius
Senior Member
 
Iscritto dal: Feb 2004
Città: venezia
Messaggi: 1319
Da frammento di codice individuale trovare risultato

Ciao a tutti. Stavo svolgendo un'esercizio dove mi si chiede da questo frammento di codice di ricavare la risposta esatta:

Fr codice:
int num, dato,conta
num=4
dato=2
per conta=1 a conta<=num
scrivi (dato)
dato=dato+num
num+=1
fine per


devo scegliere tra le risposte: a) 2688 b)ciclo infinito c)2222 d)261014

In c++ ho scritto questo codice:

#include <iostream>
using namespace std;
int main()
{
int num;
int dato;
int conta;
num=4;
dato=2;

for (conta= 1;conta<= num;conta=conta+1)
{
cout << dato << endl;
dato=dato+num;
num+=1;
}
system("Pause");


}
Come risposta mi da un ciclo infinito (spero che sia giusta). Ho dovuto creare anche lo stesso codice in Visual Basic ma qui non riesco a venirne a capo. Questo è il mio codice:
Module VBModule

Sub Main ()

dim num,dato,conta As integer
num=4
dato=2

For conta =1 To num Step
dato=dato+num
num+=1
Console.WriteLine ("dato = {0}",dato)
Next

End Sub
End Module

Come lo eseguo non mi da un ciclo infinito ma solo: 6-11-17-24
Potreste aiutarmi a capire dove sbaglio visto che sono alle prime armi. Grazie mille
__________________
cpu: CoreDuo E6750 Vga: Geforce 8800 gtx
Alimentatore: Corsair Hw 620 watt Case: Cool master Stacker Ram: 2gb 800 mhz Extreme Hard Disk: Wd Raptor 10000 rpm
Demonius è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 08:58   #2
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
non sono molto convinto di quello che ti ho evidenziato in grassetto

Sub Main ()

dim num,dato,conta As integer
num=4
dato=2

For conta =1 To num Step
dato=dato+num
num+=1
Console.WriteLine ("dato = {0}",dato)
Next

End Sub
End Module



For conta =1 To num
num = num + 1
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 10:16   #3
Demonius
Senior Member
 
Iscritto dal: Feb 2004
Città: venezia
Messaggi: 1319
Per prima cosa grazie per la risposta. Ho provato a mettere come suggerito:

For conta =1 To num
num = num + 1

eliminando Step e modificando num+=1 in num = num + 1 ma niente da fare
__________________
cpu: CoreDuo E6750 Vga: Geforce 8800 gtx
Alimentatore: Corsair Hw 620 watt Case: Cool master Stacker Ram: 2gb 800 mhz Extreme Hard Disk: Wd Raptor 10000 rpm
Demonius è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 10:40   #4
-MiStO-
Senior Member
 
Iscritto dal: May 2005
Città: Trieste
Messaggi: 2288
nono ri-leggi meglio la parte in grassetto di misterx...
chi è l'indice nel for? viene gestito correttamente?
cosa rappresenta num? deve cambiare o no?
__________________
neo mini v2 / asus strix z490i / 10600k@? / uh12s / rx6700xt / 32gb ddr4@3200 / sandisk 250 + asenno 1tb / lenovo g34w
trattative concluse : tante...

-MiStO- è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 11:11   #5
Kaya
Senior Member
 
Iscritto dal: Apr 2005
Messaggi: 3302
Quote:
Originariamente inviato da Demonius Guarda i messaggi
Ciao a tutti. Stavo svolgendo un'esercizio dove mi si chiede da questo frammento di codice di ricavare la risposta esatta:

Fr codice:
int num, dato,conta
num=4
dato=2
per conta=1 a conta<=num
scrivi (dato)
dato=dato+num
num+=1
fine per


devo scegliere tra le risposte: a) 2688 b)ciclo infinito c)2222 d)261014
[..]
Come risposta mi da un ciclo infinito (spero che sia giusta).
Non sono stato dietro a leggere tutto ma NON può dare un ciclo infinito per un motivo semplice: il tipo INT ha un valore massimo.
Poniamo che compili a 64 bit, un int raggiunge al massimo il valore 9.223.372.036.854.775.807
quindi non appena fai un "+1" il valore "fa il giro" è diventa -9.223.372.036.854.775.807
In quel momento quindi conta sarà sicuramente maggiore di num, e quindi il ciclo termina.
Kaya è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 11:17   #6
Demonius
Senior Member
 
Iscritto dal: Feb 2004
Città: venezia
Messaggi: 1319
Ragazzi penso di esserci riuscito grazie ai vostri suggerimenti (ma non sono sicuro al 100%).

Questo è quello che ho fatto:

For conta=conta To num step conta
dato=dato+num
num+=1
Console.WriteLine ("dato = {0}",dato)

Adesso mi da il ciclo infinito.
__________________
cpu: CoreDuo E6750 Vga: Geforce 8800 gtx
Alimentatore: Corsair Hw 620 watt Case: Cool master Stacker Ram: 2gb 800 mhz Extreme Hard Disk: Wd Raptor 10000 rpm
Demonius è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 11:21   #7
Demonius
Senior Member
 
Iscritto dal: Feb 2004
Città: venezia
Messaggi: 1319
Quote:
Originariamente inviato da Kaya Guarda i messaggi
Non sono stato dietro a leggere tutto ma NON può dare un ciclo infinito per un motivo semplice: il tipo INT ha un valore massimo.
Poniamo che compili a 64 bit, un int raggiunge al massimo il valore 9.223.372.036.854.775.807
quindi non appena fai un "+1" il valore "fa il giro" è diventa -9.223.372.036.854.775.807
In quel momento quindi conta sarà sicuramente maggiore di num, e quindi il ciclo termina.
quindi ho sbagliato da principio ?
__________________
cpu: CoreDuo E6750 Vga: Geforce 8800 gtx
Alimentatore: Corsair Hw 620 watt Case: Cool master Stacker Ram: 2gb 800 mhz Extreme Hard Disk: Wd Raptor 10000 rpm
Demonius è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 13:14   #8
Kaya
Senior Member
 
Iscritto dal: Apr 2005
Messaggi: 3302
Modifica il tuo programma in c++ e stampa a video sia il valore di conta che di num e lascialo andare. (hint: magari fai partire num da 2^31 che ci impiega meno)
Kaya è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2021, 17:10   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da Demonius Guarda i messaggi
Per prima cosa grazie per la risposta. Ho provato a mettere come suggerito:

For conta =1 To num
num = num + 1

eliminando Step e modificando num+=1 in num = num + 1 ma niente da fare

Non ho a disposizione un ambiente di sviluppo VB, ho provato un VBA per Excel in una vecchia versione del 2000 e num+=1 non è supportata, magari 20 dopo si?
Ma nemmeno il non specificare il valore di Step non è supportato, devi digitare qualcosa. Se non metti nulla, per default prende Step 1.


Per evitare errori negli esercizi, usa il solito metodo passo passo con carta e penna e fai la simulazione con solita tabella che sicuramente ti hanno insegnato a costruire nella quale elenchi per ogni passo, il contenuto delle variabili.
Perdi molto ma molto meno tempo.
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
iPhone 18e: le prime indiscrezioni antic...
Motorola Edge 70 Neo in arrivo, un leak ...
Apple rilascia iOS 27.2 e iPadOS 27.2: n...
Ondata di licenziamenti in casa PlayStat...
macOS 27.2 Golden Gate è disponib...
Fujifilm vuole quintuplicare la produzio...
ChatGPT ora legge email e calendario di ...
Canon, un brevetto descrive un 70-200mm ...
La volante della polizia adesso... vola:...
SK hynix supera i 100.000 miliardi di wo...
Surface Laptop Ultra ha 1.344 zone di lo...
TOP 10 offerte Amazon in 2 minuti: 3 sup...
Mythos 5 ha creato identità false per fa...
Google DeepMind presenta Genie 4, il mod...
Beats Studio Pro a 179€ in 3 colori, sup...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v