Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Kobo Sage e Kobo Libra 2: si confermano sul podio degli eReader. La recensione
Kobo Sage e Kobo Libra 2: si confermano sul podio degli eReader. La recensione
Kobo Sage e Kobo Libra 2 sono i nuovi eReader che permettono da subito di far toccare con mano l’abbonamento mensile per leggere di tutto introdotto da Kobo stessa. Sono due device diversi ma accomunati da una stessa cosa: la qualità. Ma vediamo come funzionano e quanto costano nella nostra recensione.
Dreame T30: l'aspirapolvere ciclonico "tutto compreso"
Dreame T30: l'aspirapolvere ciclonico "tutto compreso"
L'evoluzione della pulizia di casa passa attraverso la disponibilità di prodotti sempre più potenti ed efficienti, al contempo in grado di assicurare elevata flessibilità di configurazione così da adattarsi ai diversi ambienti domestici. Dreame T30 è un aspirapolvere ciclonico senza fili dalle caratteristiche tecniche ai vertici, proposto ad un prezzo molto competitivo
Leica M11: tradizione e innovazione fuse insieme, guardando anche alla tecnologia degli smartphone
Leica M11: tradizione e innovazione fuse insieme, guardando anche alla tecnologia degli smartphone
Leica M11 è una Leica, è una Leica M, con tutti i pregi e i difetti del sistema, ma tra tutte le Leica M è quella che forse ha fatto il passo tecnologico più spinto e può rappresentare una pietra miliare al pari di Leica M8 (la prima digitale) e Leica M9 (la prima full frame). Leica M10 era stato il modello della differenziazione, Leica M11 è il modello del 'tutto in uno' potendo scattare a 60, 36 e 18 megapixel senza crop, ma sfruttando il pixel binning
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: 1302
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: 3575
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: 1302
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: 2251
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?
__________________
metallicgear neo mini v2 / asus rog strix z490i / 10600k@? / noctua uh12s / AMD rx 6700xt / 32gb corsair 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: 2309
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: 1302
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: 1302
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: 2309
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: 3575
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


Kobo Sage e Kobo Libra 2: si confermano sul podio degli eReader. La recensione Kobo Sage e Kobo Libra 2: si confermano sul podi...
Dreame T30: l'aspirapolvere ciclonico "tutto compreso" Dreame T30: l'aspirapolvere ciclonico "tutt...
Leica M11: tradizione e innovazione fuse insieme, guardando anche alla tecnologia degli smartphone Leica M11: tradizione e innovazione fuse insieme...
Lenovo Thinkpad P14s, la workstation con Ryzen 7 Pro 5850U Lenovo Thinkpad P14s, la workstation con Ryzen 7...
Dissipatori a liquido AIO per raffreddare la CPU, Pro e Contro Dissipatori a liquido AIO per raffreddare la CPU...
DHL, Microsoft, Whatsapp e non solo sono...
Netflix aumenta nuovamente il prezzo deg...
LOL 2 è in arrivo! Ecco data e ca...
HPE Aruba EdgeConnect Microbranch, SD-WA...
Incentivi moto elettriche, ecco tre prop...
Svolta nella sicurezza automobilistica. ...
Apple: ecco come potrebbe chiamarsi il v...
Visore AR/VR di Apple con prestazioni (e...
SysJoker è il malware multipiatta...
OnlyOffice Docs 7.0: la protezione dei d...
Ora Good Cat arriverà presto in E...
Sony ripesca il marchio Psygnosis, già r...
Oracle e l'università di Napoli F...
Niente display a 120Hz sugli iPhone 14: ...
TravelMate B3 e TravelMate Spin B3: i no...
K-Lite Codec Pack Update
K-Lite Mega Codec Pack
K-Lite Codec Pack Full
K-Lite Codec Pack Standard
K-Lite Codec Pack Basic
Chromium
Avira Internet Security Suite
Avira Free Antivirus
CrystalDiskInfo
EZ CD Audio Converter
Firefox 96
Driver NVIDIA GeForce 511.23 WHQL
Dropbox
HyperSnap
OCCT
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: 04:53.


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